<?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>86000</bug_id>
          
          <creation_ts>2012-05-09 09:35:10 -0700</creation_ts>
          <short_desc>Take referrer policy into account when clearing the referrer header</short_desc>
          <delta_ts>2013-02-06 03:25:48 -0800</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>All</rep_platform>
          <op_sys>All</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>
          <dependson>86061</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter>jochen</reporter>
          <assigned_to name="Marja Hölttä">marja</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>beidson</cc>
    
    <cc>buildbot</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>jochen</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>marja</cc>
    
    <cc>mifenton</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yong.li.webkit</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>619583</commentid>
    <comment_count>0</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-05-09 09:35:10 -0700</bug_when>
    <thetext>In order to correctly support the meta-referrer tag, network stacks used by the various ports need to take the referrer policy into account when clearing the Referrer header:

e.g. in Source/WebCore/platform/network/mac/ResourceHandleMac.mm the referrer header is cleared when redirecting from https to !https. This should only happen, if the referrer policy for this request as &quot;default&quot;. For others (&quot;always&quot;, &quot;never&quot;, &quot;origin&quot;) the header should not be touched.

Test is in http/tests/security/referrer-policy-redirect-link.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>619641</commentid>
    <comment_count>1</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-05-09 10:48:21 -0700</bug_when>
    <thetext>Alexey suggests to move the logic that strips the referrer from the platform specific ResourceHandle implementations to ResourceLoader::willSendRequest which is invoked on every redirect anyway (different from chrome which does the resource loading out of process). In ResourceLoader, we have access to the frame and thus the document&apos;s referrer policy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622238</commentid>
    <comment_count>2</comment_count>
      <attachid>141552</attachid>
    <who name="">jochen</who>
    <bug_when>2012-05-11 23:08:12 -0700</bug_when>
    <thetext>Created attachment 141552
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622241</commentid>
    <comment_count>3</comment_count>
      <attachid>141552</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-05-11 23:11:54 -0700</bug_when>
    <thetext>Comment on attachment 141552
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=141552&amp;action=review

Holy duplicated code batman.

&gt; Source/WebCore/loader/ResourceLoader.cpp:237
&gt; +    if (!m_frame-&gt;document() || m_frame-&gt;document()-&gt;referrerPolicy() == ReferrerPolicyDefault) {

!m_frame-&gt;document() &lt;- shouldn&apos;t be possible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622256</commentid>
    <comment_count>4</comment_count>
      <attachid>141552</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-12 00:37:58 -0700</bug_when>
    <thetext>Comment on attachment 141552
Patch

I suggested this, but now I realize that this is a fragile solution. Every ResourceHandleClient now needs to implement this, and ResourceHandle may still need this when its client is null.

Specifically, BlobResourceSynchronousLoader is a ResourceHandleClient, and need to implement the same logic. And so is ApplicationCacheGroup.

I guess that we need to add a new client call, so that clients that care would be able to customize the behavior that&apos;s still in ResourceHandle. Sorry for a false lead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622444</commentid>
    <comment_count>5</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-05-12 18:46:00 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 141552 [details])
&gt; I suggested this, but now I realize that this is a fragile solution. Every ResourceHandleClient now needs to implement this, and ResourceHandle may still need this when its client is null.
&gt; 
&gt; Specifically, BlobResourceSynchronousLoader is a ResourceHandleClient, and need to implement the same logic. And so is ApplicationCacheGroup.
&gt; 
&gt; I guess that we need to add a new client call, so that clients that care would be able to customize the behavior that&apos;s still in ResourceHandle. Sorry for a false lead.

Right. Should we make it a pure virtual function? After all, all possible code paths should take the policy into account.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>622640</commentid>
    <comment_count>6</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-05-13 22:01:10 -0700</bug_when>
    <thetext>ApplicationCacheGroup at least shouldn&apos;t take it into account. Cache group is not tied to a single document.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>625751</commentid>
    <comment_count>7</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2012-05-16 12:36:21 -0700</bug_when>
    <thetext>*** Bug 86061 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671165</commentid>
    <comment_count>8</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-17 04:23:53 -0700</bug_when>
    <thetext>I revived that patch, however, I ran into another problem. E.g. ResourceHandleCFNet implements a ResourceHandleClient for synchronous loads which would need to know the referrer policy. A possible solution would be to include whether or not to apply the default referrer policy in the NetworkingContext which is passed for a synchronous load. wdyt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671171</commentid>
    <comment_count>9</comment_count>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-07-17 04:29:19 -0700</bug_when>
    <thetext>If possible, please take care EFL port as well.

http://trac.webkit.org/browser/trunk/LayoutTests/platform/efl/Skipped#L1043</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671176</commentid>
    <comment_count>10</comment_count>
    <who name="">jochen</who>
    <bug_when>2012-07-17 04:40:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; If possible, please take care EFL port as well.
&gt; 
&gt; http://trac.webkit.org/browser/trunk/LayoutTests/platform/efl/Skipped#L1043

Sure, will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806248</commentid>
    <comment_count>11</comment_count>
      <attachid>182545</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 04:49:03 -0800</bug_when>
    <thetext>Created attachment 182545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806253</commentid>
    <comment_count>12</comment_count>
      <attachid>182545</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-14 04:55:50 -0800</bug_when>
    <thetext>Comment on attachment 182545
Patch

Attachment 182545 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/15867449</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806257</commentid>
    <comment_count>13</comment_count>
      <attachid>182545</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-01-14 04:57:20 -0800</bug_when>
    <thetext>Comment on attachment 182545
Patch

Attachment 182545 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/15870485</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806259</commentid>
    <comment_count>14</comment_count>
      <attachid>182545</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-14 04:58:16 -0800</bug_when>
    <thetext>Comment on attachment 182545
Patch

Attachment 182545 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15875471</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806262</commentid>
    <comment_count>15</comment_count>
      <attachid>182549</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 05:02:14 -0800</bug_when>
    <thetext>Created attachment 182549
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806292</commentid>
    <comment_count>16</comment_count>
      <attachid>182549</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-14 05:47:52 -0800</bug_when>
    <thetext>Comment on attachment 182549
Patch

Attachment 182549 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/15867462</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806305</commentid>
    <comment_count>17</comment_count>
      <attachid>182549</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-01-14 06:04:55 -0800</bug_when>
    <thetext>Comment on attachment 182549
Patch

Attachment 182549 did not pass efl-ews (efl):
Output: http://queues.webkit.org/results/15841502</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806312</commentid>
    <comment_count>18</comment_count>
      <attachid>182564</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 06:13:35 -0800</bug_when>
    <thetext>Created attachment 182564
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806324</commentid>
    <comment_count>19</comment_count>
      <attachid>182568</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 06:42:10 -0800</bug_when>
    <thetext>Created attachment 182568
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806339</commentid>
    <comment_count>20</comment_count>
      <attachid>182573</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 07:23:42 -0800</bug_when>
    <thetext>Created attachment 182573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806369</commentid>
    <comment_count>21</comment_count>
      <attachid>182573</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-14 08:18:36 -0800</bug_when>
    <thetext>Comment on attachment 182573
Patch

ap@, could you have a look at the new version of this patch? Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>806883</commentid>
    <comment_count>22</comment_count>
      <attachid>182573</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-14 18:53:32 -0800</bug_when>
    <thetext>Comment on attachment 182573
Patch

Attachment 182573 did not pass win-ews (win):
Output: http://queues.webkit.org/results/15853788</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807119</commentid>
    <comment_count>23</comment_count>
      <attachid>182719</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-15 01:46:27 -0800</bug_when>
    <thetext>Created attachment 182719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807129</commentid>
    <comment_count>24</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-15 02:07:21 -0800</bug_when>
    <thetext>beidson@, could you review this? (ap@ redirected me to you.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>807579</commentid>
    <comment_count>25</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-15 12:41:13 -0800</bug_when>
    <thetext>This touches a lot of surface area.  I can&apos;t meaningfully review this today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>810588</commentid>
    <comment_count>26</comment_count>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-01-18 07:37:15 -0800</bug_when>
    <thetext>beidson@: A friendly ping, could you have a look at this, or suggest another reviewer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819864</commentid>
    <comment_count>27</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 00:08:33 -0800</bug_when>
    <thetext>@beidson: Are you interested in reviewing this patch?  If not, I can try to take a look.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819868</commentid>
    <comment_count>28</comment_count>
      <attachid>182719</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-01-30 00:11:50 -0800</bug_when>
    <thetext>Comment on attachment 182719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=182719&amp;action=review

&gt; Source/WebCore/platform/network/ResourceHandle.cpp:57
&gt; -ResourceHandle::ResourceHandle(const ResourceRequest&amp; request, ResourceHandleClient* client, bool defersLoading, bool shouldContentSniff)
&gt; -    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff &amp;&amp; shouldContentSniffURL(request.url()))))
&gt; +ResourceHandle::ResourceHandle(const ResourceRequest&amp; request, ResourceHandleClient* client, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)
&gt; +    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff &amp;&amp; shouldContentSniffURL(request.url()), context)))

I haven&apos;t studied the full patch in detail, but it looks like the crux of the issue is whether it makes sense to change these two lines in this way.

@beidson: If you don&apos;t have time to review the entire patch, I&apos;d certainly welcome your views on this question.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820317</commentid>
    <comment_count>29</comment_count>
      <attachid>182719</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-01-30 10:43:55 -0800</bug_when>
    <thetext>Comment on attachment 182719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=182719&amp;action=review

I asked Marja to talk to Brady, because Brady was doing some refactoring of sync loads, and the approaches could be in conflict.

Brady&apos;s work has already landed, and it&apos;s orthogonal to this patch, so this is no longer gated on him. The only thing is that it would be useful to run the patch by EWS again, as it could be breaking the build now.

&gt; Source/WebCore/loader/FrameNetworkingContext.h:37
&gt; +    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const

WebKit style to to keep acronyms in upper case in function names (so, HTTPSToHTTPRedirect, not HttpsToHttpRedirect).

&gt; Source/WebCore/platform/network/BlobResourceHandle.cpp:144
&gt; +    : ResourceHandle(request, client, false, false, 0)

This special case is certainly not nice (but probably not worse that existing peculiarities of BlobResourceHandle).

&gt; Source/WebCore/platform/network/NetworkingContext.h:68
&gt; +    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const { return true; }

Is using this base class implementation ever the right behavior? It doesn&apos;t look like it is.

I think that this function should be pure virtual, or at the very least, a comment should explain that every subclass should override it, and that hasn&apos;t been done only due to implementation difficulty of fixing all ports.

&gt;&gt; Source/WebCore/platform/network/ResourceHandle.cpp:57
&gt;&gt; +    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff &amp;&amp; shouldContentSniffURL(request.url()), context)))
&gt; 
&gt; I haven&apos;t studied the full patch in detail, but it looks like the crux of the issue is whether it makes sense to change these two lines in this way.
&gt; 
&gt; @beidson: If you don&apos;t have time to review the entire patch, I&apos;d certainly welcome your views on this question.

Adam, please feel free to review this patch.

The only thing that worries me a little is possible reference cycles between ResourceHandle and NetworkingContext form the new RefPtr member, but they don&apos;t seem too likely.

&gt; Source/WebCore/platform/network/ResourceHandle.h:219
&gt; +    ResourceHandle(const ResourceRequest&amp;, ResourceHandleClient*, bool defersLoading, bool shouldContentSniff, NetworkingContext*);

ResourceHandle::create takes NetworkingContext* as the first argument, and so should the constructor, for consistency.

&gt; Source/WebCore/platform/network/ResourceHandleInternal.h:86
&gt; +        ResourceHandleInternal(ResourceHandle* loader, const ResourceRequest&amp; request, ResourceHandleClient* c, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)

Now that we have both &quot;c&quot; and &quot;context&quot;, it&apos;s time to rename &quot;c&quot; to &quot;client&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>820325</commentid>
    <comment_count>30</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2013-01-30 10:54:46 -0800</bug_when>
    <thetext>Confirming Alexey: Please feel free to move forward without any further input from me.

Another EWS run might be important.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822720</commentid>
    <comment_count>31</comment_count>
      <attachid>186032</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-01 06:33:09 -0800</bug_when>
    <thetext>Created attachment 186032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822787</commentid>
    <comment_count>32</comment_count>
      <attachid>186032</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 07:59:43 -0800</bug_when>
    <thetext>Comment on attachment 186032
Patch

Attachment 186032 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16298707</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822858</commentid>
    <comment_count>33</comment_count>
      <attachid>186032</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 09:23:21 -0800</bug_when>
    <thetext>Comment on attachment 186032
Patch

Attachment 186032 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16296744</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>822913</commentid>
    <comment_count>34</comment_count>
      <attachid>186032</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-01 10:16:06 -0800</bug_when>
    <thetext>Comment on attachment 186032
Patch

Attachment 186032 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16301851</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824247</commentid>
    <comment_count>35</comment_count>
      <attachid>186350</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-04 04:32:30 -0800</bug_when>
    <thetext>Created attachment 186350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824259</commentid>
    <comment_count>36</comment_count>
      <attachid>186354</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-04 04:55:56 -0800</bug_when>
    <thetext>Created attachment 186354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824274</commentid>
    <comment_count>37</comment_count>
      <attachid>186354</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 05:28:42 -0800</bug_when>
    <thetext>Comment on attachment 186354
Patch

Attachment 186354 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16376127</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824306</commentid>
    <comment_count>38</comment_count>
      <attachid>186354</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 06:18:20 -0800</bug_when>
    <thetext>Comment on attachment 186354
Patch

Attachment 186354 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16372217</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824320</commentid>
    <comment_count>39</comment_count>
      <attachid>186354</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 06:50:21 -0800</bug_when>
    <thetext>Comment on attachment 186354
Patch

Attachment 186354 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16379110</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824363</commentid>
    <comment_count>40</comment_count>
      <attachid>186376</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-04 08:09:22 -0800</bug_when>
    <thetext>Created attachment 186376
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824389</commentid>
    <comment_count>41</comment_count>
      <attachid>186376</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-02-04 08:34:24 -0800</bug_when>
    <thetext>Comment on attachment 186376
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=186376&amp;action=review

WebKit2 changes look good to me.

&gt; LayoutTests/ChangeLog:11
&gt; +        Skipping the tests on wk2, because other referrer policy tests are
&gt; +        skipped, too ( https://bugs.webkit.org/show_bug.cgi?id=73913 ).

I&apos;m curious if bug 73913 is still an issue (commented in that bug).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824447</commentid>
    <comment_count>42</comment_count>
      <attachid>186376</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 09:31:05 -0800</bug_when>
    <thetext>Comment on attachment 186376
Patch

Attachment 186376 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16371301</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824455</commentid>
    <comment_count>43</comment_count>
      <attachid>186376</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 09:36:17 -0800</bug_when>
    <thetext>Comment on attachment 186376
Patch

Attachment 186376 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16374231</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824536</commentid>
    <comment_count>44</comment_count>
      <attachid>186417</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-04 10:36:20 -0800</bug_when>
    <thetext>Created attachment 186417
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824582</commentid>
    <comment_count>45</comment_count>
      <attachid>186417</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-04 11:06:29 -0800</bug_when>
    <thetext>Comment on attachment 186417
Patch

Attachment 186417 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16372329</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>824598</commentid>
    <comment_count>46</comment_count>
      <attachid>186421</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-04 11:25:34 -0800</bug_when>
    <thetext>Created attachment 186421
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825211</commentid>
    <comment_count>47</comment_count>
      <attachid>182719</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-05 00:23:53 -0800</bug_when>
    <thetext>Comment on attachment 182719
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=182719&amp;action=review

&gt;&gt; Source/WebCore/loader/FrameNetworkingContext.h:37
&gt;&gt; +    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const
&gt; 
&gt; WebKit style to to keep acronyms in upper case in function names (so, HTTPSToHTTPRedirect, not HttpsToHttpRedirect).

Done.

&gt;&gt; Source/WebCore/platform/network/BlobResourceHandle.cpp:144
&gt;&gt; +    : ResourceHandle(request, client, false, false, 0)
&gt; 
&gt; This special case is certainly not nice (but probably not worse that existing peculiarities of BlobResourceHandle).

(Ack.)

&gt;&gt; Source/WebCore/platform/network/NetworkingContext.h:68
&gt;&gt; +    virtual bool shouldClearReferrerPolicyOnHttpsToHttpRedirect() const { return true; }
&gt; 
&gt; Is using this base class implementation ever the right behavior? It doesn&apos;t look like it is.
&gt; 
&gt; I think that this function should be pure virtual, or at the very least, a comment should explain that every subclass should override it, and that hasn&apos;t been done only due to implementation difficulty of fixing all ports.

Made the function pure virtual.

&gt;&gt;&gt; Source/WebCore/platform/network/ResourceHandle.cpp:57
&gt;&gt;&gt; +    : d(adoptPtr(new ResourceHandleInternal(this, request, client, defersLoading, shouldContentSniff &amp;&amp; shouldContentSniffURL(request.url()), context)))
&gt;&gt; 
&gt;&gt; I haven&apos;t studied the full patch in detail, but it looks like the crux of the issue is whether it makes sense to change these two lines in this way.
&gt;&gt; 
&gt;&gt; @beidson: If you don&apos;t have time to review the entire patch, I&apos;d certainly welcome your views on this question.
&gt; 
&gt; Adam, please feel free to review this patch.
&gt; 
&gt; The only thing that worries me a little is possible reference cycles between ResourceHandle and NetworkingContext form the new RefPtr member, but they don&apos;t seem too likely.

Some ports already have a RefPtr&lt;NetworkingContext&gt; in ResourceHandleInternal.

&gt;&gt; Source/WebCore/platform/network/ResourceHandle.h:219
&gt;&gt; +    ResourceHandle(const ResourceRequest&amp;, ResourceHandleClient*, bool defersLoading, bool shouldContentSniff, NetworkingContext*);
&gt; 
&gt; ResourceHandle::create takes NetworkingContext* as the first argument, and so should the constructor, for consistency.

Done &amp; also changed the parameter order in ResourceHandlerInternal ctor.

&gt;&gt; Source/WebCore/platform/network/ResourceHandleInternal.h:86
&gt;&gt; +        ResourceHandleInternal(ResourceHandle* loader, const ResourceRequest&amp; request, ResourceHandleClient* c, bool defersLoading, bool shouldContentSniff, NetworkingContext* context)
&gt; 
&gt; Now that we have both &quot;c&quot; and &quot;context&quot;, it&apos;s time to rename &quot;c&quot; to &quot;client&quot;.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825212</commentid>
    <comment_count>48</comment_count>
      <attachid>186421</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-05 00:26:47 -0800</bug_when>
    <thetext>Comment on attachment 186421
Patch

/Now with fixed build.) abarth &amp; ap, could you have another look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>825933</commentid>
    <comment_count>49</comment_count>
      <attachid>186421</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-05 16:33:22 -0800</bug_when>
    <thetext>Comment on attachment 186421
Patch

Rejecting attachment 186421 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=gce-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 186421, &apos;--port=chromium-xvfb&apos;]&quot; exit_code: 2 cwd: /mnt/git/webkit-commit-queue

Last 500 characters of output:
(offset 5 lines).
patching file LayoutTests/platform/mac/TestExpectations
patching file LayoutTests/platform/qt/TestExpectations
Hunk #1 succeeded at 1897 (offset 3 lines).
patching file LayoutTests/platform/win/TestExpectations
Hunk #1 succeeded at 1853 (offset 24 lines).
patching file LayoutTests/platform/wk2/TestExpectations

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, &apos;Alexey Proskuryakov&apos;]&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/16376933</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826235</commentid>
    <comment_count>50</comment_count>
      <attachid>186793</attachid>
    <who name="Marja Hölttä">marja</who>
    <bug_when>2013-02-06 01:56:10 -0800</bug_when>
    <thetext>Created attachment 186793
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826292</commentid>
    <comment_count>51</comment_count>
      <attachid>186793</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 03:25:40 -0800</bug_when>
    <thetext>Comment on attachment 186793
Patch

Clearing flags on attachment: 186793

Committed r141981: &lt;http://trac.webkit.org/changeset/141981&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826293</commentid>
    <comment_count>52</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-06 03:25:48 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>141552</attachid>
            <date>2012-05-11 23:08:12 -0700</date>
            <delta_ts>2013-01-14 04:48:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20120512080809.patch</filename>
            <type>text/plain</type>
            <size>11274</size>
            <attacher>jochen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTE2ODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzlkYTU3Y2RiYzc2OWRj
NGM0MzY0OGYwM2QxNDNkYzAwOGRiYjMyZC4uZjliM2UyODA0OWM2N2QyMmRmMTVjYjI2ZjhjMDg2
NGJlMDc0MDc4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDEyLTA1LTExICBKb2No
ZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJy
ZXIgcG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gb3JkZXIg
dG8gZ2V0IHRoZSByZWZlcnJlciBwb2xpY3ksIEkgbW92ZWQgdGhlIGxvZ2ljIHRoYXQgY2xlYXJz
IHRoZQorICAgICAgICByZWZlcnJlciBoZWFkZXIgZnJvbSBSZXNvdXJjZUhhbmRsZSB0byBSZXNv
dXJjZUxvYWRlci4KKworICAgICAgICBUZXN0OiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKKworICAgICAgICAqIGxvYWRlci9SZXNvdXJjZUxv
YWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRSZXF1
ZXN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKC1bV2ViQ29y
ZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpyZWRp
cmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRsZXI6
OnJlZGlyZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnJlc3RhcnRlZENhbGxiYWNrKToKKwogMjAx
Mi0wNS0xMSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAg
ICAgW1RleHR1cmVNYXBwZXJdIFRpbGVzIGFyZSBub3QgY3JlYXRlZCBmb3IgbGFyZ2UgdGV4dHVy
ZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IGFkZTAwYjU0
Y2Q5OTFjNTcwMzczNGZjNGNkN2VmYjY4ODM1NjRkMzYuLjBkM2Q2MzY3ODY0Y2ZmZWIwMjcyZjcy
Y2UyM2Y1YTE0ZGRjZDgxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9SZXNv
dXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVy
LmNwcApAQCAtMjMzLDYgKzIzMywxMyBAQCB2b2lkIFJlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJl
cXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlcwogCiAgICAg
aWYgKCFyZWRpcmVjdFJlc3BvbnNlLmlzTnVsbCgpKQogICAgICAgICByZXNvdXJjZUxvYWRTY2hl
ZHVsZXIoKS0+Y3Jvc3NPcmlnaW5SZWRpcmVjdFJlY2VpdmVkKHRoaXMsIHJlcXVlc3QudXJsKCkp
OworCisgICAgaWYgKCFtX2ZyYW1lLT5kb2N1bWVudCgpIHx8IG1fZnJhbWUtPmRvY3VtZW50KCkt
PnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0KSB7CisgICAgICAgIC8v
IFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJl
c291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgorICAgICAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJv
dG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJo
dHRwcyIpKQorICAgICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOworICAgIH0K
KwogICAgIG1fcmVxdWVzdCA9IHJlcXVlc3Q7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4
IDBmMzllYjBiZDhjNzZkNTExMDNkYWZiZWMzZmIxMWE1YWQ2ZDQ0ZWEuLjBhNmU5M2FkOTI4OTg4
OTI1YmZhZWY2ZmYzOTZiOGM0ODAyNTI0MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMTg2
LDEwICsxODYsNiBAQCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVS
TENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgaWYgKHJlcXVlc3QuaXNO
dWxsKCkpCiAgICAgICAgIHJlcXVlc3QgPSBjZlJlcXVlc3Q7CiAKLSAgICAvLyBTaG91bGQgbm90
IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBu
b24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMi
KSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQotICAgICAg
ICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7Ci0KICAgICBoYW5kbGUtPndpbGxTZW5kUmVx
dWVzdChyZXF1ZXN0LCBjZlJlZGlyZWN0UmVzcG9uc2UpOwogCiAgICAgaWYgKHJlcXVlc3QuaXNO
dWxsKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9S
ZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFj
L1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IDQxNGQwYjgyYWY0MzE5M2Y0MDdiNDRkNmQyZjJi
ZTg3YzljZmE1MjguLmZjMGJlN2Q1MmViZmFiNWQzYTIxZDg2ODM5YjI0OGZmMzU2YzdmMWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFu
ZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291
cmNlSGFuZGxlTWFjLm1tCkBAIC03MDUsMTAgKzcwNSw2IEBAIC0gKE5TVVJMUmVxdWVzdCAqKWNv
bm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2lsbFNlbmRSZXF1ZXN0OihO
U1VSCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7CiAKLSAgICAv
LyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSBy
ZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRw
cyIpKQotICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7Ci0KICAgICBtX2hhbmRs
ZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwogCiAgICAgcmV0
dXJuIHJlcXVlc3QubnNVUkxSZXF1ZXN0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IGQz
MGZmY2U5MjY0OGI2MDA0MjE2NTMwYjIxMjg1NWEzZDM0ZjRhZjcuLjJhODNiYjA0NTcxZDM3NjBk
YTg3ZGI5NzFlYzc2OGVhNGRhOTYxOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC01NDEs
MTAgKzU0MSw2IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnJlZGlyZWN0KFJlc291cmNl
UmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiByZWRpCiAgICAgbmV3UmVxdWVzdC5zZXRI
VFRQTWV0aG9kKGh0dHBNZXRob2QoKSk7CiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsK
IAotICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEg
c2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51
cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVm
ZXJyZXIoKSwgImh0dHBzIikpCi0gICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIo
KTsKLQogICAgIGNsaWVudC0+d2lsbFNlbmRSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1Jl
cXVlc3QsIHJlc3BvbnNlKTsKICAgICBpZiAod2FzQWJvcnRlZCgpKSAvLyBOZXR3b3JrIGVycm9y
IGNhbmNlbGxlZCB0aGUgcmVxdWVzdC4KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcAppbmRleCBkYzBjYjYyNDNhY2M0MjcyYTdmNjNhNTZlZjVlZjkzZDcwZTM3MjQ5Li5lZWM5
MDM5YTNmMWFjYzcwODUxNzBhNjgwYmYzNzBiMjFmM2JhYTFkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcApAQCAtMjU3LDE0ICsyNTcsMTEgQEAgc3RhdGljIHZvaWQgcmVzdGFydGVkQ2FsbGJhY2so
U291cE1lc3NhZ2UqIG1zZywgZ3BvaW50ZXIgZGF0YSkKICAgICByZXF1ZXN0LnNldFVSTChuZXdV
UkwpOwogICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZChtc2ctPm1ldGhvZCk7CiAKLSAgICAvLyBT
aG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNv
dXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJ
cygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIp
KSB7Ci0gICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKLSAgICAgICAgc291cF9t
ZXNzYWdlX2hlYWRlcnNfcmVtb3ZlKG1zZy0+cmVxdWVzdF9oZWFkZXJzLCAiUmVmZXJlciIpOwot
ICAgIH0KLQorICAgIFN0cmluZyByZWZlcnJlciA9IHJlcXVlc3QuaHR0cFJlZmVycmVyKCk7CiAg
ICAgaWYgKGQtPmNsaWVudCgpKQogICAgICAgICBkLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0
KGhhbmRsZSwgcmVxdWVzdCwgZC0+bV9yZXNwb25zZSk7CisgICAgaWYgKCFyZWZlcnJlci5pc0Vt
cHR5KCkgJiYgcmVxdWVzdC5odHRwUmVmZXJyZXIoKS5pc0VtcHR5KCkpCisgICAgICAgIHNvdXBf
bWVzc2FnZV9oZWFkZXJzX3JlbW92ZShtc2ctPnJlcXVlc3RfaGVhZGVycywgIlJlZmVyZXIiKTsK
IAogICAgIGlmIChkLT5tX2NhbmNlbGxlZCkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGIwYTcz
YmFhM2FkY2UwNjkwM2EwY2VkZGRiOGY1ZTU2NmY2NzI5NzYuLjc2MTE4MDI5OTIyOGNmNjMxY2M5
ZGEzZjM1NzA0MGNlOTg4ZmE4YzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMi0wNS0xMSAg
Sm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJl
ZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVh
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAw
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tp
cCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwK
KworICAgICAgICBPbiB3azIsIHRoZSB0ZXN0IHN0aWxsIGZhaWxzLCBhcyBpdCByZXF1aXJlcyBI
VFRQUyBzdXBwb3J0CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvdGVzdF9leHBlY3RhdGlvbnMu
dHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvU2tpcHBl
ZDoKKwogMjAxMi0wNS0xMSAgRGF2aWQgQmFydG9uICA8ZGJhcnRvbkBtYXRoc2NyaWJlLmNvbT4K
IAogICAgICAgICBDb252ZXJ0IHNvbWUgTWF0aE1MIGxheW91dCB0ZXN0cyB0byByZWZ0ZXN0cwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXgg
OWM0MWVkOTc3NGMxMWU3NWJkMmY1Y2UzZDc5ZWQ3NDViMzY2OWY0MC4uOTI3NDA1ODk4YWIyMmU5
NzIyNjhiNjVhOTFhZjc1OTVmOWYwZDk1YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZ3RrL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0xMzMwLDkgKzEzMzAsNiBAQCBCVUdXSzg1Njg5
IFNLSVAgOiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5o
dG1sID0gVEVYVAogLy8gU3RhcnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2
NDczCiBCVUdXSzg1OTY5IDogaHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgt
YmFjay1uYXZpZ2F0aW9uLmh0bWwgPSBGQUlMCiAKLS8vIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBp
dCB3YXMgYWRkZWQgaW4gcjExNjU2MwotQlVHV0s4NjA2MSA6IGh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbCA9IEZBSUwKLQogLy8gU3RhcnRlZCBm
YWlsaW5nIGFmdGVyIHRoZXkgd2VyZSBhZGRlZCBpbiByMTE2NDk4CiBCVUdXSzg2MDYyIDogc3Zn
L3RleHQvYWRkLXRzcGFuLXBvc2l0aW9uLWJ1Zy5odG1sID0gSU1BR0UKIEJVR1dLODYwNjIgOiBz
dmcvdGV4dC9tb2RpZnktdHNwYW4tcG9zaXRpb24tYnVnLmh0bWwgPSBJTUFHRQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZAppbmRleCA2NTM2NDY1ZjBlNmY3NDk1MThiNzRiMWI3ZjVhNGNiMzJlNmE0
NTY3Li5hZjhiMGVhZDIzZGQwNTEzNTBjMjQ0MjI4OWQ5OTc5ZDk1ZjViMTk4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZApAQCAtODMzLDggKzgzMyw1IEBAIG1lZGlhL3ZpZGVvLXBsYXllZC1y
ZXNldC5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk2
OQogaHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9u
Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAot
CiAjIEhpdHMgYXNzZXJ0IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04
NjIwOAogaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKaW5kZXggM2UwYWU1M2I3YjQxOGUyYzkxYjRlMGI1ZThkOWU2Njlm
NDBlZTZjYi4uZDMyODZlNzQ1Yzc3MGM0ZDUxOWNiYzI4NzExZTQxZmViYTJhY2ZjMCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9xdC9Ta2lwcGVkCkBAIC0xOTY0LDkgKzE5NjQsNiBAQCBmb250cy9zZXJpZi5odG1s
CiBzZWN1cml0eS9ibG9jay10ZXN0LW5vLXBvcnQuaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC5o
dG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1o
dHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQog
IyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZhaWxpbmcgdGFibGVzIHRlc3RzCiAjID09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggOTNhMDYxMmEz
YjA4NGY4OTMzZDM3YTA2ZDAxZmQxZTQ3ODZjODJkNC4uYjA2MjEyNTk1OGIwYjE5NmUyM2Y5NzM4
ZGVmNDA3YmE4NDQyMDBjMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTE3NDAsNiAr
MTc0MCwzIEBAIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogIyBJ
bnRlcmZlcmVzIHdpdGggdGhlIG90aGVyIHJlcXVlc3RBbmltYXRpb25GcmFtZSB0ZXN0cwogIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2ODkKIGZhc3QvYW5pbWF0
aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwKLQotIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNh
aXJvL1NraXBwZWQKaW5kZXggOTgzYzNiNTI5NjkzMDJjMmE2MGI5ZDRiYmYxOGMyMjVlN2E4NmY0
MS4uZjk1MWY0NzM1NzAwZmZlYjdiYWFjNDRmZTgyYTNmMzk2MWZhMTcwMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW5jYWlyby9Ta2lwcGVkCkBAIC0yMDk0LDYgKzIwOTQsMyBAQCBuZXR3b3JraW5m
b3JtYXRpb24KIAogIyBHZW5lcmF0ZSByZXN1bHRzIGZvciB5b3VyIHBsYXRmb3JtIGh0dHA6Ly93
ZWJraXQub3JnL2IvODU1NjcKIGZhc3QvaW1hZ2VzL3BuZy1zdWl0ZS90ZXN0Lmh0bWwKLQotIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvU2tpcHBlZAppbmRleCA5ZDc5YjU0MjM4YjE3ZDVlYjU4NjBlNThhOWUyNDI2YmZhYTA4MDky
Li41ZWVjZDhiNGRlNjY0MDc3ZjA2Y2U5MzljNmY3Yjg3OGYyZjVhZmZiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvU2tpcHBlZApAQCAtODMzLDYgKzgzMyw3IEBAIGxvYWRlci9sb2FkLWRlZmVyLXJlc3Vt
ZS1jcmFzaC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1h
bHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3Jp
Z2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0
bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRt
bAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCiAK
QEAgLTg1NCwxMSArODU1LDYgQEAgZmFzdC9zZWxlY3RvcnMvc2VsZWN0aW9uLXdpbmRvdy1pbmFj
dGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0V2lkdGgoKS4KIGluc3BlY3Rvci9zdHlsZXMv
b3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0jIFRoZSBuZXR3b3JrIHN0YWNrIHVuY29uZGl0
aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0cmFuc2l0aW9ucyBmcm9tCi0jIHNlY3VyZSB0
byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291
bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0
bWwKLQogIyMjIEVORCBPRiAoMSkgQ2xhc3NpZmllZCBmYWlsdXJlcyB3aXRoIGJ1ZyByZXBvcnRz
CiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182545</attachid>
            <date>2013-01-14 04:49:03 -0800</date>
            <delta_ts>2013-01-14 05:02:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130114134603.patch</filename>
            <type>text/plain</type>
            <size>37394</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMTQ2YmFkYWI4MTBkNzY3NjU3NjU0Yjc4ZTQwYTVk
YmE5OGM2OTBkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcxIEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluIG9yZGVyIHRv
IGdldCB0aGUgcmVmZXJyZXIgcG9saWN5LCBhZGRlZCBhIGZ1bmN0aW9uIGZvciBjaGVja2luZyBp
dCBpbgorICAgICAgICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2lu
Z0NvbnRleHQgaW4gUmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyAgYWxy
ZWFkeSBkaWQpLgorCisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6
OnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAg
ICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9C
bG9iUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlc291cmNlSGFu
ZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0
d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0Ojpz
aG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRwc1RvSHR0cFJlZGlyZWN0KToKKyAgICAgICAg
KE5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhh
bmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUp
OgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAg
KFJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6
OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxl
QmxhY2tCZXJyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQp
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5l
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNv
dXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50
ZXJuYWw6OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJj
ZUhhbmRsZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxs
U2VuZFJlcXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3
b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9x
dC9SZXNvdXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb1JlZGlyZWN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZv
cm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKwogMjAxMy0wMS0xMSAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE9wdGlvbitD
bGljayBvbiBOb2RlIEV4cGFuZGVyIERvZXNuJ3QgV29yayB0aGUgRmlyc3QgVGltZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggN2YwODgw
MWNiNWMzZTc0NDU5YWM4ZjhmNDk4ZGUzOWUzYzZhNmRiYS4uYTE1NjQ3OWEzZDBlNTBhZDVlMWI1
ZjI2MjIwOTkxZjI5ZTBlMWM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVO
ZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yMCw4ICsyMCwxMCBAQAogI2lmbmRlZiBGcmFtZU5ldHdv
cmtpbmdDb250ZXh0X2gKICNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKKyNpbmNs
dWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTmV0d29ya2lu
Z0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTMyLDYgKzM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IDA7
CiAgICAgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0
dHBzVG9IdHRwUmVkaXJlY3QoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWUt
PmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0Owor
ICAgIH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEZyYW1lTmV0d29ya2luZ0NvbnRleHQo
RnJhbWUqIGZyYW1lKQogICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
YzgyYjQ2YzYwODdmZjk2MTI1Nzk5OGE1NGFlZjVlZTZlNmFiY2QzNi4uYTBmYjVmNzg2ZDc1OTE5
YjcxM2Q4OTRkN2QwOWI4MzRlMTI1MmZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtNDAsNyArNDAsNiBA
QAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2lu
Y2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUg
IlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtMTQyLDcgKzE0MSw3IEBAIHZvaWQgQmxvYlJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFBhc3NSZWZQdHI8QmxvYlN0
b3JhZ2VEYXRhPiBiCiB9CiAKIEJsb2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxl
KFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFzeW5jKQot
ICAgIDogUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCisgICAg
OiBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSwgMCkKICAgICAs
IG1fYmxvYkRhdGEoYmxvYkRhdGEpCiAgICAgLCBtX2FzeW5jKGFzeW5jKQogICAgICwgbV9lcnJv
ckNvZGUoMCkKQEAgLTYzNiw0ICs2MzUsMyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90
aWZ5RmluaXNoKCkKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShC
TE9CKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdv
cmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKaW5kZXggODQxZjdlY2ZlM2RkN2FiNzZlMDM4MmJlMDk3MWZlOTk3NzZhYjdl
Yy4uNjRiZmMwOTJkN2NiNmI3NTlhMzIxMGU5YTQ2YzEzN2M5MGU5OTA1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAt
NjUsNiArNjUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0
IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
UG9saWN5T25IdHRwc1RvSHR0cFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAj
aWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdyYXAgV2ViQ29va2llSmFyIGlu
dG8gYSBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUgY29kZSBjcm9zcy1wbGF0Zm9y
bS4KICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBjb29raWVKYXIoKSBjb25zdCA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCmluZGV4IDU3ZWVmZWRjNDUxNTkwNDBjYjdhZmQ0ZDMwZDU2YTVlMWE5ZmUzYjMuLjY1
NjljMmE2MDZhY2NiMzdjM2Q4ODQ3OTgyYmU4ZGRiM2JkYzQ4YjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01Myw4ICs1
Myw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNv
bnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVpbHRpblJlc291cmNlSGFuZGxl
Q29uc3RydWN0b3JNYXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVjdG9yKTsKIH0KIAotUmVzb3Vy
Y2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50
ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50
U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCitSZXNvdXJj
ZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IGQoYWRv
cHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBk
ZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJM
KHJlcXVlc3QudXJsKCkpLCBjb250ZXh0KSkpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlz
VmFsaWQoKSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpA
QCAtNzQsMTIgKzc0LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFu
ZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvCiAgICAgaWYgKHByb3Rv
Y29sTWFwSXRlbSAhPSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCgpLmVuZCgp
KQogICAgICAgICByZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1ZShyZXF1ZXN0LCBjbGllbnQp
OwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJl
c291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVu
dFNuaWZmKSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3Vs
ZENvbnRlbnRTbmlmZiwgY29udGV4dCkpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2No
ZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxl
LnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlm
IChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgp
OwogCiAgICAgcmV0dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBAIFJlc291cmNlUmVxdWVzdCYg
UmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0dXJuIGQtPm1fZmlyc3RSZXF1
ZXN0OwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRleHQoKSBj
b25zdAoreworICAgIHJldHVybiBkLT5tX2NvbnRleHQ7Cit9CisKIGNvbnN0IFN0cmluZyYgUmVz
b3VyY2VIYW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9s
YXN0SFRUUE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaAppbmRleCA0MWJhMzg4ODFiMmRhMzk2NTEwMGQ5NGY5ZjM1NGViNzkxODAw
MWI1Li42YWJkYjkyZWZlMzY0ZmU0Mjk0MjNkODkxZmNjYTg5ZGJlN2Y5YmRlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xOTks
NiArMTk5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaXJlRmFpbHVyZShUaW1lcjxSZXNvdXJj
ZUhhbmRsZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisK
ICAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6cmVmOwogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsKIApAQCAtMjE0LDcgKzIxNiw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBB
dG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29uc3RydWN0b3IpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsK
KyAgICBSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5l
dHdvcmtpbmdDb250ZXh0Kik7CiAKIHByaXZhdGU6CiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CkBA
IC0yMjcsNyArMjI5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZh
aWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRleHQqKTsKKyAgICBi
b29sIHN0YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggYjg0OTU2YmE0MmNhYTM0YmU3MTA3
NzE3MWUyMmIwOWNkM2ZjNDRiMi4uZTAwZmJmY2Q0NTk5MDE4ZTFkZTU3ODgxZjFiZDI1MjVjZGUw
ZDgxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDEzICs4MywxNCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7CiAgICAgICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoUmVz
b3VyY2VIYW5kbGUqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNv
dXJjZUhhbmRsZUNsaWVudCogYywgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSog
bG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAgICAgICAgIDogbV9jbGllbnQoYykKICAgICAg
ICAgICAgICwgbV9maXJzdFJlcXVlc3QocmVxdWVzdCkKICAgICAgICAgICAgICwgbV9sYXN0SFRU
UE1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSkKICAgICAgICAgICAgICwgc3RhdHVzKDApCiAg
ICAgICAgICAgICAsIG1fZGVmZXJzTG9hZGluZyhkZWZlcnNMb2FkaW5nKQogICAgICAgICAgICAg
LCBtX3Nob3VsZENvbnRlbnRTbmlmZihzaG91bGRDb250ZW50U25pZmYpCisgICAgICAgICAgICAs
IG1fY29udGV4dChjb250ZXh0KQogI2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgICAgICAsIG1f
Y29ubmVjdGlvbigwKQogI2VuZGlmCkBAIC0xNTIsNiArMTUzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiAgICAgICAgIGJvb2wgbV9kZWZlcnNMb2FkaW5nOwogICAgICAgICBib29sIG1fc2hv
dWxkQ29udGVudFNuaWZmOworICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29u
dGV4dDsKICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0
aW9uUmVmPiBtX2Nvbm5lY3Rpb247CiAjZW5kaWYKQEAgLTIwMiw3ICsyMDQsNiBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBs
b25nIG1fYm9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7Ci0g
ICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBTb3Vw
U2Vzc2lvbiogc291cFNlc3Npb24oKTsKICAgICAgICAgaW50IG1fcmVkaXJlY3RDb3VudDsKICNl
bmRpZgpAQCAtMjE0LDcgKzIxNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lm
IFBMQVRGT1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAg
ICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQ
TEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3Bw
CmluZGV4IGFjYzI3OTJhZWQ4MTU4Yzk0ZWZiNDkxZTczNDgzNWM1OWE1YTg5MjEuLjBjMjYxMzkx
MjMzNzZiNWY0YTJmODUyNjM4NGI1Zjc2YjQyMzgwZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNv
dXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCkBAIC0xMDcsOSArMTA3LDkgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKICAg
ICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c2V0RGVmZXJzTG9hZGluZyh0aGlzLCBkZWZl
cnNMb2FkaW5nKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYg
KCFjb250ZXh0IHx8ICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQg
fHwgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAvLyBGSVhNRTogY2xlYW4gdXAgdXNlIG9mIEZyYW1lIG5vdyB0aGF0IHdlIGhhdmUgTmV0d29y
a2luZ0NvbnRleHQgKHNlZSBSSU0gQnVnICMxNTE1KQpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0CiAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CiAgICAg
Ym9vbCBzaG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxSZXNvdXJjZUhh
bmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5j
TG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1
ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBjb250
ZXh0KSk7CiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklk
LCBoYW5kbGUsIGZyYW1lLCBkZWZlcnNMb2FkaW5nKTsKIAogICAgIGNvbnN0IGRvdWJsZSBzeW5j
TG9hZFRpbWVPdXQgPSA2MDsgLy8gc2Vjb25kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggNzYx
Njc1YjQyNjc1YzM0ZWY1YzE0MzhkZmVhYWE0Yzc1NjhhYzg4Yi4uNDM4NmIxOWUwNGQ5MzEyYTMy
MWE0NzY4NjFlZWRiY2MyZDFhZDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0xODQsNyAr
MTg0LDcgQEAgc3RhdGljIENGVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3QoQ0ZVUkxDb25u
ZWN0aW9uUmVmIGNvbm4sIENGVVJMUmVxdWVzdFJlZgogICAgICAgICByZXF1ZXN0ID0gY2ZSZXF1
ZXN0OwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZy
b20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZl
cnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0
cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIGQt
Pm1fY29udGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVj
dCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBoYW5kbGUt
PndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCBjZlJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtNDk2LDE0
ICs0OTYsMTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJv
b2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24u
YWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0Lmdl
dCgpLCByZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBj
b25uZWN0aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFs
aWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAgICAvLyB0aGlz
IG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0
J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
IWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBk
LT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNl
c3Npb24oKTsKQEAgLTkyNCw0ICs5MjQsMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpoYW5kbGVE
YXRhQXJyYXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IGY1ZTdjYmVkMzdhZTBjODllNGIw
Yzg1MTdjNWIzZThiM2MwZmJjZmQuLmVlM2QwODQ0YWJhMjA5Yjc4OWUxZmVhMWFkZDljNDhlZjJl
MWY0ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21p
dW0vUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01MiwxMSArNTIsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gUmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQotUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQpCitSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKICAg
ICAsIG1fb3duZXIoMCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc3RhdGUoQ29u
bmVjdGlvblN0YXRlTmV3KQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiB7CiB9CiAKQEAgLTE3
MywxMSArMTc0LDggQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbDo6RnJvbVJlc291cmNlSGFuZGxlKFJlc291cmNlSGFuZGwKIAogLy8gUmVzb3VyY2VIYW5k
bGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNl
SGFuZGxlQ2xpZW50KiBjbGllbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v
bCBkZWZlcnNMb2FkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hv
dWxkQ29udGVudFNuaWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbChyZXF1ZXN0LCBjbGllbnQpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbChyZXF1ZXN0LCBjbGllbnQsIGNvbnRleHQpKSkKIHsKICAgICBkLT5zZXRPd25lcih0
aGlzKTsKIApAQCAtMTkxLDkgKzE4OSw5IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJl
c291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKAotICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVy
c0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgICAgICByZXF1ZXN0LCBjbGllbnQs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgY29udGV4dCkpOwogCi0gICAgaWYg
KG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoKSkK
ICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAg
LTIwNCw2ICsyMDIsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6Zmlyc3RS
ZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+cmVxdWVzdCgpOwogfQogCitOZXR3b3JraW5nQ29udGV4
dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5jb250
ZXh0KCk7Cit9CisKIFJlc291cmNlSGFuZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2xpZW50
KCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+Y2xpZW50KCk7CkBAIC0yMTksOSArMjIyLDkgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQt
PnNldERlZmVyc0xvYWRpbmcodmFsdWUpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKIHsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5jb250ZXh0KCkpCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGQtPnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oCmluZGV4IDllZWZlZThiMjA1NTFiZTI5NDEzN2QxNDkyYzhkZDMwNWZjNjUxYTMu
LmRjNTExZTVlZWE4ZWVmZjhmMTdiOWZkMjQyNGEzY2U2MzE0Y2ZkOWUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC0zOCwxMiArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlSGFuZGxl
OwogY2xhc3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwgOiBwdWJsaWMgV2ViS2l0OjpXZWJVUkxMb2FkZXJDbGllbnQgewogcHVibGljOgotICAg
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VI
YW5kbGVDbGllbnQqKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgTmV0d29ya2luZ0NvbnRleHQqKTsKIAog
ICAgIHZpcnR1YWwgflJlc291cmNlSGFuZGxlSW50ZXJuYWwoKSB7IH0KIApAQCAtNzgsNiArNzks
NyBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAgICAgdm9pZCBzZXRDbGllbnQoUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIFdlYktpdDo6V2ViVVJMTG9h
ZGVyKiBsb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2xvYWRlci5nZXQoKTsgfQorICAgIE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9
CiAKICAgICBzdGF0aWMgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogRnJvbVJlc291cmNlSGFuZGxl
KFJlc291cmNlSGFuZGxlKik7CiAKQEAgLTkwLDYgKzkyLDggQEAgcHJpdmF0ZToKICAgICAvLyBV
c2VkIGZvciBzYW5pdHkgY2hlY2tpbmcgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGV4cGVyaWVuY2Ug
aWxsZWdhbCBzdGF0ZQogICAgIC8vIHRyYW5zaXRpb25zLgogICAgIENvbm5lY3Rpb25TdGF0ZSBt
X3N0YXRlOworCisgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDFkNDJh
NWIwNGMzYTUxMzFmYWIxNDIyOWRkMmQxMWNmNjMxMzhiOTEuLjlkYmJhYTNmNjY1OTEyMzBjMmZm
MmUzOThiZmY1ZjhlNmM5YmZmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC05NiwxNCAr
OTYsMTQgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7
CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIC8vIFRoZSBmcmFtZSBj
b3VsZCBiZSBudWxsIGlmIHRoZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBh
bnkKICAgICAvLyBGcmFtZSwgZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAg
IC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11
c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBz
byBsZXQncyBqdXN0IGJsb2NrIGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUg
cGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQg
JiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2Nv
bnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VI
YW5kbGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpLT5hZGQodGhpcyk7CkBAIC0xNzUsNyArMTc1
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6bG9hZHNCbG9ja2VkKCkKIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRl
bnRpYWxzLCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2Us
IFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3lu
Y0xvYWRlcjsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UsIGNvbnRleHQpKTsKIAogICAg
IFJlc291cmNlSGFuZGxlTWFuYWdlciogbWFuYWdlciA9IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6
c2hhcmVkSW5zdGFuY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBjMGI4ZDNhYjc4ZGQxNjQx
OWFhMDlmNTNkMmM4OGQ2N2JjMDMxNGMyLi5hZGNjOWIzYzU2YjYxNDk2OWU0MWY5ZmNlYzIwYmZl
NTgyZjQ3ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjE4LDE5ICsyMTgsMTkgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNo
b3VsZFVzZUNyZWRlbnRpYWwKIAogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsK
LSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIC8vIElm
IE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFj
aGVkIHRvIGEgUGFnZSwKICAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJv
bSBhbiB1bmxvYWQgZXZlbnQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBp
ZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNWYWxpZCgp
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5tX3N0b3Jh
Z2VTZXNzaW9uID0gZC0+bV9jb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lv
bigpOwogCiAgICAgQVNTRVJUKCFkLT5tX3Byb3h5KTsKICAgICBkLT5tX3Byb3h5LmFkb3B0TlMo
d2tDcmVhdGVOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZVByb3h5KCkpOwpAQCAtMjM4LDE2ICsyMzgs
MTYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCiAKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8
IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKIAotICAgIGQtPm1f
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cygpOworICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBkLT5tX2NvbnRleHQtPm5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAg
ICAgICAgIGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlLAotICAgICAgICBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koY29udGV4dCwg
Zmlyc3RSZXF1ZXN0KCkudXJsKCkpLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8
fCBjb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBz
aG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LCBmaXJzdFJlcXVl
c3QoKS51cmwoKSksCisgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29u
dGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogICAgIGJvb2wgc2No
ZWR1bGVkID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBh
aXJzID0gY29udGV4dC0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1
bGVQYWlySGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBkLT5tX2NvbnRleHQtPnNjaGVkdWxlZFJ1
bkxvb3BQYWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVu
ZCA9IHNjaGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNo
U2V0OjppdGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsr
aXQpIHsKICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5M
b29wKCkpIHsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChO
U09wZXJhdGlvblF1ZXVlICpvcGVyYXRpb25RdWV1ZSA9IGNvbnRleHQtPnNjaGVkdWxlZE9wZXJh
dGlvblF1ZXVlKCkpIHsKKyAgICBpZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUg
PSBkLT5tX2NvbnRleHQtPnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkpIHsKICAgICAgICAgQVNT
RVJUKCFzY2hlZHVsZWQpOwogICAgICAgICBbY29ubmVjdGlvbigpIHNldERlbGVnYXRlUXVldWU6
b3BlcmF0aW9uUXVldWVdOwogICAgICAgICBzY2hlZHVsZWQgPSB0cnVlOwpAQCAtMzgxLDcgKzM4
MSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgT3duUHRyPFdlYkNvcmVTeW5jaHJv
bm91c0xvYWRlckNsaWVudD4gY2xpZW50ID0gV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50
OjpjcmVhdGUoKTsKICAgICBjbGllbnQtPnNldEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVk
Q3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CiAKLSAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29u
dGVudFNuaWZmKi8pKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVm
ZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8sIGNvbnRleHQpKTsKIAog
ICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CiAKQEAgLTY2OCw3ICs2NjgsNyBAQCAtIChOU1VSTFJlcXVl
c3QgKiljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVx
dWVzdDooTlNVUgogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gbmV3UmVxdWVzdDsKIAog
ICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2Vj
dXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghcmVxdWVzdC51cmwoKS5w
cm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwg
Imh0dHBzIikpCisgICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYg
cHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBkLT5tX2NvbnRl
eHQtPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QoKSkKICAg
ICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgbV9oYW5kbGUtPndpbGxT
ZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAKaW5kZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZlOTMwMGVkMTJiMzRiY2IwOC4uZDU4Njc1
MmFiYTVlZjcwMjM1OTMxMDlmNmJhOWRiMGQ1MWZlMGMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5j
cHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVj
dChSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVybCYgcmVkaQogICAgIG5ld1Jl
cXVlc3Quc2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFm
dGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4K
LSAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2Nv
bElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghbmV3UmVx
dWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5o
dHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNvdXJjZUhhbmRsZS0+Y29udGV4dCgpLT5z
aG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRwc1RvSHR0cFJlZGlyZWN0KCkpCiAgICAgICAg
IG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGNsaWVudC0+d2lsbFNlbmRS
ZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVlc3QsIHJlc3BvbnNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwCmluZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0YTY4MjY2MTc4YjQyYWI2MWEuLjE1ZjVi
ODJiMGE2ZDYxNDUzMGJjZGRkMjMwMWJhNjhiMmM5OTBkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAt
OTAsMTEgKzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgICAg
ICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8g
SWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0
YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBm
cm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAg
IGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4
dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGlmICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlzRW1wdHkoKSkgewpA
QCAtMTA2LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0
aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQgPSBj
b250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwog
ICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwogICAgIHJl
dHVybiB0cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAg
ICAgfQogI2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJy
b3IsIHJlc3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwg
ZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UsIGNvbnRl
eHQpKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVy
bmFsKCk7CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0
eSgpKSB7CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICAg
ICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsKICAgICAgICAgZC0+bV9m
aXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQotICAgIGQtPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFydGluZyBpbiBkZWZlcnJlZCBtb2RlIGdp
dmVzIGQtPm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcgc2V0IGJlZm9yZSBzZW5kaW5nIHRoZSBy
ZXF1ZXN0LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5n
ZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9hZCwgdHJ1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5k
bGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCmluZGV4IGM3YWMwMzQ1ODE1OTMxOTM2YzgxOTY1NTBiOTJmMmUyNzU4
NzJmOTMuLjNhMGE0MGJiNmEyNTNkODNkMDk3ZTQ4MWUzZTMwNDRlZGI0NjA4NzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNv
dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJj
ZUhhbmRsZVNvdXAuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgc3RhdGljIHZvaWQgZG9SZWRpcmVj
dChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0KIAogICAgIC8vIFNob3VsZCBub3Qgc2V0
IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1z
ZWN1cmUgb25lLgotICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9j
b2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIW5ld1VSTC5w
cm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwg
Imh0dHBzIikgJiYgZC0+bV9jb250ZXh0LT5zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRw
c1RvSHR0cFJlZGlyZWN0KCkpCiAgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsK
IAogICAgIGQtPm1fdXNlciA9IG5ld1VSTC51c2VyKCk7CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBz
dGF0aWMgYm9vbCBjcmVhdGVTb3VwUmVxdWVzdEFuZE1lc3NhZ2VGb3JIYW5kbGUoUmVzb3VyY2VI
YW5kbGUqIGhhbmRsZSwgY29uc3QgUgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoIWQtPm1fc291cE1lc3NhZ2UpOwogCkBA
IC0xMDA5LDEyICsxMDA5LDkgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2lu
Z0NvbnRleHQqIGNvbnRleHQpCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0
aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZy
b20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYg
Ym90aCB0aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2
YWxpZC4KLSAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChk
Xz5tX2NvbnRleHQgJiYgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKLSAgICAvLyBVc2VkIHRvIHNldCB0aGUga2VlcCB0cmFjayBvZiBjdXN0b20gU291
cFNlc3Npb25zIGZvciBwb3J0cyB0aGF0IHN1cHBvcnQgaXQgKEVGTCkuCi0gICAgZC0+bV9jb250
ZXh0ID0gY29udGV4dDsKLQogICAgIC8vIE9ubHkgYWxsb3cgdGhlIFBPU1QgYW5kIEdFVCBtZXRo
b2RzIGZvciBub24tSFRUUCByZXF1ZXN0cy4KICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJl
cXVlc3QgPSBmaXJzdFJlcXVlc3QoKTsKICAgICBib29sIGlzSFRUUEZhbWlseVJlcXVlc3QgPSBy
ZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKTsKQEAgLTEwMzAsNyArMTAyNyw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBzZXRTb3VwUmVxdWVzdEluaXRp
YXRpbmdQYWdlSURGcm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwg
Y29udGV4dCk7CisgICAgc2V0U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtp
bmdDb250ZXh0KGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY29udGV4dC5nZXQoKSk7CiAK
ICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5
IGRlZmVycmVkLgogICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKQpAQCAtMTI3OSw3ICsxMjc2
LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICAgICAgcmV0dXJuOyAgICAgICAgICAg
ICAgICAgICAgLy8gd2Ugd2FudCB0byBhdm9pZCBhY2NpZGVudGFsbHkgZ29pbmcgaW50byBhbiBp
bmZpbml0ZSBsb29wIG9mIHJlcXVlc3RzLgogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
IHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBzZXNzaW9uRnJvbUNvbnRleHQoY29udGV4dCks
IGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gY3JlYXRlKGNvbnRl
eHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgZmFsc2Ug
LypzaG91bGRDb250ZW50U25pZmYqLyk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBjcmVhdGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIsIGZhbHNlIC8qZGVmZXJz
TG9hZGluZyovLCBmYWxzZSAvKnNob3VsZENvbnRlbnRTbmlmZiovLCBjb250ZXh0KTsKICAgICBp
ZiAoIWhhbmRsZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggOGEx
ZDE5OWFlMTRlZWM5YTM4YTYzZDg2ZTA0MDk1ODQ5N2QyNzkzZC4uNTkwZWIzMTIzZTBhOWQ1ZWRj
NDEyNTM0NTE2ZDFkMTU3NzY2YmI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMjY1LDcgKzI2
NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKCkKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIGlmIChm
aXJzdFJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgp
LnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVm
IGluIGZpbGVMb2FkVGltZXIKQEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlc291cmNlSGFuZGxl
OjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICB9CiAKICAgICBpZiAoIWQt
Pm1faW50ZXJuZXRIYW5kbGUpCi0gICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hy
b25vdXNJbnRlcm5ldEhhbmRsZShjb250ZXh0LT51c2VyQWdlbnQoKSk7CisgICAgICAgIGQtPm1f
aW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShkLT5tX2NvbnRleHQt
PnVzZXJBZ2VudCgpKTsKIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtNDE5LDEwICs0MTksMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QKICAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHMpOwogCiAgICAgV2ViQ29yZVN5
bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCByZXF1ZXN0
Lmh0dHBVc2VyQWdlbnQoKSk7Ci0gICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCB0cnVlLCBmYWxzZSk7CisgICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVl
c3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSwgY29udGV4dCk7CiAKICAgICBoYW5kbGUuc2V0
U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShzeW5jTG9hZGVyLmludGVybmV0SGFuZGxlKCkpOwot
ICAgIGhhbmRsZS5zdGFydChjb250ZXh0KTsKKyAgICBoYW5kbGUuc3RhcnQoKTsKIH0KIAogdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6c2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShISU5URVJORVQg
aW50ZXJuZXRIYW5kbGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDdlZjM0NDQ1MGM5ODAyMmNiNzg5ODhhYTI1NDIxY2Y2
ZGZiNjc2NS4uMjI1MDA0MGM0ODE1ZjYxZjYyN2IxYjM1MjkwYmNlYzRlY2ZmYjA4YyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDEzLTAxLTE0ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgd2hl
biBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKKworICAgICAgICBPbiB3azIsIHRoZSB0ZXN0IHN0
aWxsIGZhaWxzLCBhcyBpdCByZXF1aXJlcyBIVFRQUyBzdXBwb3J0CisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jh
b3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9u
IE5vZGUgRXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg0YjFlYzFkZTYzNTkxMmFjYzJhZmJl
MzZjNDYxMjRhOTZhYzk3ZTYuLjJlYWFiNGJhYjNmYjQ1MzE4NzcwYjEwZjRmYTJlOGRmNzFmYjE4
ZTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjA2
LDkgKzEyMDYsNiBAQCB3ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcg
YWZ0ZXIgaXQgd2FzIGFkZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rl
c3RzL2xvYWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZh
aWx1cmUgXQogCi0jIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjU2
Mwotd2Via2l0Lm9yZy9iLzg2MDYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXJlZGlyZWN0LWxpbmsuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODUzMDggWyBS
ZWxlYXNlIF0gaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bSBb
IEltYWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg1MzEwIGlldGVzdGNlbnRlci9jc3Mz
L3ZhbHVlc2FuZHVuaXRzL3VuaXRzLTAxMC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1OWMxMTg5NzFiZDlh
YzEwNWY4NTE2ZGY0YWNmMjAyOWQ5MjZiOGRkLi5jMWIzMmU5N2UzNTI4YTUzNGNjNGJhNWRkOGEx
YjZkZWJlOWY2ZTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtNzU3LDkgKzc1Nyw2IEBAIG1lZGlhL3ZpZGVvLXBsYXllZC1yZXNldC5odG1sCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk2OQogaHR0cC90ZXN0cy9s
b2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0bWwKIAotIyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2Vj
dXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3RvciBv
bmx5IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwg
c2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5zcGVj
dG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKIGluc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY1M2Q0ZGY2NTkyNjA5
MTFhNzhlODA0OGEyMzJjZjExZTRjMmIzOTAuLmY3ODEyZTgxYjc1MDRjYjkyNjBmOWVjZGMyNzRm
MTk1OWQ5MTU2NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTgxNSw5ICsxODE1LDYgQEAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1u
b25leGlzdGVudC1maWxlLmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3Qtbm8tcG9ydC5odG1sCiBz
ZWN1cml0eS9ibG9jay10ZXN0Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJl
ZGlyZWN0LWxpbmsuaHRtbAotCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyB0
YWJsZXMgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYTk4MWE4Mjc3MzEzYmQzNzljOGMyYTFlNTgx
MmY5NGMzMjdkNjA1Li5hNzgxZDM5ZjIxMjhhZDlkZDFhNTNhNjkwYzMzZWU5NWU4ZWNhYjU3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgwOCw5ICsx
ODA4LDYgQEAgaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY4OQogZmFzdC9hbmltYXRp
b24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAogCi0jIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3Vw
cG9ydHMgZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCAKIGluc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjVkZDhhZTAwMTNjODk4MmIz
ZjM3YTg5YzZlN2FiMjhmOGI5NjU0Yy4uYmQ2NzJmMDI5MWQ0Y2RmYTQyZjFkMDk0ZTc4M2ZhODQ2
ZjVkOGE0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTMxNyw2ICszMTcsNyBAQCBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3Vi
cmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktaHR0cHMtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJy
ZXItcG9saWN5LXJlZGlyZWN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LXJlZGlyZWN0LWxpbmsuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktaHR0cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtZGVmYXVsdC5odG1sCiAKQEAgLTMzOCwxMSArMzM5LDYgQEAgZmFzdC9zZWxlY3RvcnMv
c2VsZWN0aW9uLXdpbmRvdy1pbmFjdGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0V2lkdGgo
KS4KIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0jIFRoZSBu
ZXR3b3JrIHN0YWNrIHVuY29uZGl0aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0cmFuc2l0
aW9ucyBmcm9tCi0jIHNlY3VyZSB0byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhlIHJlZmVy
cmVyIHBvbGljeSBpbnRvIGFjY291bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBjc3MzLWNvbmRpdGlvbmFscyBzdXBwb3J0IGlz
IG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwK
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182549</attachid>
            <date>2013-01-14 05:02:14 -0800</date>
            <delta_ts>2013-01-14 06:13:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130114135915.patch</filename>
            <type>text/plain</type>
            <size>37559</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMDNhZGEwYjc3Nzk1ZGY0YTdkMjU3OTNiZDkzMGIy
OTdmNTQ5ZGIzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyAgYWxyZWFkeSBkaWQpLgor
CisgICAgICAgIFRlc3Q6IGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFy
UmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAgICAoRnJhbWVOZXR3
b3JraW5nQ29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVz
b3VyY2VIYW5kbGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRl
eHQuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJl
ZmVycmVyUG9saWN5T25IdHRwc1RvSHR0cFJlZGlyZWN0KToKKyAgICAgICAgKE5ldHdvcmtpbmdD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKFJlc291cmNlSGFu
ZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OmNvbnRl
eHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6
cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3
b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpyZWRpcmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpkb1JlZGlyZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKwogMjAxMy0wMS0xMSAgQW50b2luZSBRdWludCAgPGdyYW91dHNA
YXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE9wdGlvbitDbGljayBvbiBOb2Rl
IEV4cGFuZGVyIERvZXNuJ3QgV29yayB0aGUgRmlyc3QgVGltZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggN2YwODgwMWNiNWMzZTc0NDU5
YWM4ZjhmNDk4ZGUzOWUzYzZhNmRiYS4uYTE1NjQ3OWEzZDBlNTBhZDVlMWI1ZjI2MjIwOTkxZjI5
ZTBlMWM0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2lu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29u
dGV4dC5oCkBAIC0yMCw4ICsyMCwxMCBAQAogI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0
X2gKICNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKKyNpbmNsdWRlICJEb2N1bWVu
dC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIK
KyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAg
LTMyLDYgKzM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IDA7CiAgICAgfQogCisg
ICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVk
aXJlY3QoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCkt
PnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0OworICAgIH0KKwogcHJv
dGVjdGVkOgogICAgIGV4cGxpY2l0IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1l
KQogICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYzgyYjQ2YzYwODdm
Zjk2MTI1Nzk5OGE1NGFlZjVlZTZlNmFiY2QzNi4uYTBmYjVmNzg2ZDc1OTE5YjcxM2Q4OTRkN2Qw
OWI4MzRlMTI1MmZhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUg
IkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIktVUkwu
aCIKLSNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJy
b3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291
cmNlUmVxdWVzdC5oIgpAQCAtMTQyLDcgKzE0MSw3IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBi
CiB9CiAKIEJsb2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKFBhc3NSZWZQdHI8
QmxvYlN0b3JhZ2VEYXRhPiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0
LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFzeW5jKQotICAgIDogUmVzb3Vy
Y2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCisgICAgOiBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSwgMCkKICAgICAsIG1fYmxvYkRhdGEo
YmxvYkRhdGEpCiAgICAgLCBtX2FzeW5jKGFzeW5jKQogICAgICwgbV9lcnJvckNvZGUoMCkKQEAg
LTYzNiw0ICs2MzUsMyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShCTE9CKQotCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgK
aW5kZXggODQxZjdlY2ZlM2RkN2FiNzZlMDM4MmJlMDk3MWZlOTk3NzZhYjdlYy4uNjRiZmMwOTJk
N2NiNmI3NTlhMzIxMGU5YTQ2YzEzN2M5MGU5OTA1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNjUsNiArNjUsOCBA
QCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIHRy
dWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRw
c1RvSHR0cFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQorCiAjaWYgUExBVEZPUk0o
Q0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdyYXAgV2ViQ29va2llSmFyIGludG8gYSBOZXR3b3Jr
U3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUgY29kZSBjcm9zcy1wbGF0Zm9ybS4KICAgICB2aXJ0
dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBjb29raWVKYXIoKSBjb25zdCA9IDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4
IDU3ZWVmZWRjNDUxNTkwNDBjYjdhZmQ0ZDMwZDU2YTVlMWE5ZmUzYjMuLjlhZTVlYWZmNTAzNWYx
YTJiYWZkNzQ3N2I0OTY4NjIwMGYxNDM5NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01Myw4ICs1Myw4IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JN
YXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVjdG9yKTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywg
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hv
dWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmLCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJl
c291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJs
KCkpLCBjb250ZXh0KSkpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewog
ICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzQsMTIgKzc0
LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvCiAgICAgaWYgKHByb3RvY29sTWFwSXRlbSAh
PSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCgpLmVuZCgpKQogICAgICAgICBy
ZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1ZShyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOwor
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlm
ZiwgY29udGV4dCkpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVy
ZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsK
IAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUt
PnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0
dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5k
bGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0dXJuIGQtPm1fZmlyc3RSZXF1ZXN0OwogfQogCitO
ZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRleHQoKSBjb25zdAoreworICAg
IHJldHVybiBkLT5tX2NvbnRleHQuZ2V0KCk7Cit9CisKIGNvbnN0IFN0cmluZyYgUmVzb3VyY2VI
YW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9sYXN0SFRU
UE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGUuaAppbmRleCA0MWJhMzg4ODFiMmRhMzk2NTEwMGQ5NGY5ZjM1NGViNzkxODAwMWI1Li42
YWJkYjkyZWZlMzY0ZmU0Mjk0MjNkODkxZmNjYTg5ZGJlN2Y5YmRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xOTksNiArMTk5
LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaXJlRmFpbHVyZShUaW1lcjxSZXNvdXJjZUhhbmRs
ZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisKICAgICB1
c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50
ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsKIApAQCAtMjE0LDcgKzIxNiw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBBdG9taWNT
dHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29uc3RydWN0b3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAg
UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtp
bmdDb250ZXh0Kik7CiAKIHByaXZhdGU6CiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CkBAIC0yMjcs
NyArMjI5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVU
eXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRleHQqKTsKKyAgICBib29sIHN0
YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJl
ZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRl
cmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggYjg0OTU2YmE0MmNhYTM0YmU3MTA3NzE3MWUy
MmIwOWNkM2ZjNDRiMi4uZTAwZmJmY2Q0NTk5MDE4ZTFkZTU3ODgxZjFiZDI1MjVjZGUwZDgxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDEzICs4MywxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCB7CiAgICAgICAgIFdURl9NQUtFX05P
TkNPUFlBQkxFKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKICAgICBwdWJsaWM6Ci0gICAgICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoUmVzb3VyY2VI
YW5kbGUqIGxvYWRlciwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogYywgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZikKKyAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhhbmRsZSogbG9hZGVy
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKICAgICAgICAgICAgIDogbV9jbGllbnQoYykKICAgICAgICAgICAg
ICwgbV9maXJzdFJlcXVlc3QocmVxdWVzdCkKICAgICAgICAgICAgICwgbV9sYXN0SFRUUE1ldGhv
ZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSkKICAgICAgICAgICAgICwgc3RhdHVzKDApCiAgICAgICAg
ICAgICAsIG1fZGVmZXJzTG9hZGluZyhkZWZlcnNMb2FkaW5nKQogICAgICAgICAgICAgLCBtX3No
b3VsZENvbnRlbnRTbmlmZihzaG91bGRDb250ZW50U25pZmYpCisgICAgICAgICAgICAsIG1fY29u
dGV4dChjb250ZXh0KQogI2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgICAgICAsIG1fY29ubmVj
dGlvbigwKQogI2VuZGlmCkBAIC0xNTIsNiArMTUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiAgICAgICAgIGJvb2wgbV9kZWZlcnNMb2FkaW5nOwogICAgICAgICBib29sIG1fc2hvdWxkQ29u
dGVudFNuaWZmOworICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsK
ICNpZiBVU0UoQ0ZORVRXT1JLKQogICAgICAgICBSZXRhaW5QdHI8Q0ZVUkxDb25uZWN0aW9uUmVm
PiBtX2Nvbm5lY3Rpb247CiAjZW5kaWYKQEAgLTIwMiw3ICsyMDQsNiBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgICAgIGNoYXIqIG1fYnVmZmVyOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1f
Ym9keVNpemU7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7Ci0gICAgICAg
IFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBTb3VwU2Vzc2lv
biogc291cFNlc3Npb24oKTsKICAgICAgICAgaW50IG1fcmVkaXJlY3RDb3VudDsKICNlbmRpZgpA
QCAtMjE0LDcgKzIxNSw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKFFUKQogICAgICAgICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAgIFJl
ZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQTEFURk9S
TShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCmluZGV4
IGFjYzI3OTJhZWQ4MTU4Yzk0ZWZiNDkxZTczNDgzNWM1OWE1YTg5MjEuLjBjMjYxMzkxMjMzNzZi
NWY0YTJmODUyNjM4NGI1Zjc2YjQyMzgwZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhh
bmRsZUJsYWNrQmVycnkuY3BwCkBAIC0xMDcsOSArMTA3LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cGxhdGZvcm1TZXREZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKICAgICBOZXR3
b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c2V0RGVmZXJzTG9hZGluZyh0aGlzLCBkZWZlcnNMb2Fk
aW5nKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250
ZXh0IHx8ICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQgfHwgIWQt
Pm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBG
SVhNRTogY2xlYW4gdXAgdXNlIG9mIEZyYW1lIG5vdyB0aGF0IHdlIGhhdmUgTmV0d29ya2luZ0Nv
bnRleHQgKHNlZSBSSU0gQnVnICMxNTE1KQpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0CiAgICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CiAgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVy
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICBSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAm
c3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBjb250ZXh0KSk7
CiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklkLCBoYW5k
bGUsIGZyYW1lLCBkZWZlcnNMb2FkaW5nKTsKIAogICAgIGNvbnN0IGRvdWJsZSBzeW5jTG9hZFRp
bWVPdXQgPSA2MDsgLy8gc2Vjb25kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggNzYxNjc1YjQy
Njc1YzM0ZWY1YzE0MzhkZmVhYWE0Yzc1NjhhYzg4Yi4uNDM4NmIxOWUwNGQ5MzEyYTMyMWE0NzY4
NjFlZWRiY2MyZDFhZDdmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0xODQsNyArMTg0LDcg
QEAgc3RhdGljIENGVVJMUmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3QoQ0ZVUkxDb25uZWN0aW9u
UmVmIGNvbm4sIENGVVJMUmVxdWVzdFJlZgogICAgICAgICByZXF1ZXN0ID0gY2ZSZXF1ZXN0Owog
CiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBz
ZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFyZXF1ZXN0LnVybCgp
LnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigp
LCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAm
JiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIGQtPm1fY29u
dGV4dC0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCgpKQog
ICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBoYW5kbGUtPndpbGxT
ZW5kUmVxdWVzdChyZXF1ZXN0LCBjZlJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtNDk2LDE0ICs0OTYs
MTQgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRD
RihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCBy
ZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0
aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkK
IHsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhl
biB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAgICAvLyB0aGlzIG11c3Qg
YmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVz
dCBibG9jayBpdC4KLSAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1f
Y29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBkLT5tX3N0
b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24o
KTsKQEAgLTkyNCw0ICs5MjQsMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhQXJy
YXkoQ0ZBcnJheVJlZiBkYXRhQXJyYXkpCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IGY1ZTdjYmVkMzdhZTBjODllNGIwYzg1MTdj
NWIzZThiM2MwZmJjZmQuLmVlM2QwODQ0YWJhMjA5Yjc4OWUxZmVhMWFkZDljNDhlZjJlMWY0ZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hy
b21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01MiwxMSArNTIsMTIgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogLy8gUmVzb3VyY2VIYW5kbGVJbnRl
cm5hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpCitS
ZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1f
b3duZXIoMCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc3RhdGUoQ29ubmVjdGlv
blN0YXRlTmV3KQorICAgICwgbV9jb250ZXh0KGNvbnRleHQpCiB7CiB9CiAKQEAgLTE3MywxMSAr
MTc0LDggQEAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6
RnJvbVJlc291cmNlSGFuZGxlKFJlc291cmNlSGFuZGwKIAogLy8gUmVzb3VyY2VIYW5kbGUgLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQogCi1SZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZl
cnNMb2FkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChy
ZXF1ZXN0LCBjbGllbnQpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bChyZXF1ZXN0LCBjbGllbnQsIGNvbnRleHQpKSkKIHsKICAgICBkLT5zZXRPd25lcih0aGlzKTsK
IApAQCAtMTkxLDkgKzE4OSw5IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNl
SGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQogewogICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYo
bmV3IFJlc291cmNlSGFuZGxlKAotICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRp
bmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVy
c0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiwgY29udGV4dCkpOwogCi0gICAgaWYgKG5ld0hh
bmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoKSkKICAgICAg
ICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTIwNCw2
ICsyMDIsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6Zmlyc3RSZXF1ZXN0
KCkKICAgICByZXR1cm4gZC0+cmVxdWVzdCgpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVz
b3VyY2VIYW5kbGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5jb250ZXh0KCk7
Cit9CisKIFJlc291cmNlSGFuZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2xpZW50KCkgY29u
c3QKIHsKICAgICByZXR1cm4gZC0+Y2xpZW50KCk7CkBAIC0yMTksOSArMjIyLDkgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6c2V0RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERl
ZmVyc0xvYWRpbmcodmFsdWUpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsK
LSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5jb250ZXh0KCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGQtPnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5h
bC5oCmluZGV4IDllZWZlZThiMjA1NTFiZTI5NDEzN2QxNDkyYzhkZDMwNWZjNjUxYTMuLmRjNTEx
ZTVlZWE4ZWVmZjhmMTdiOWZkMjQyNGEzY2U2MzE0Y2ZkOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCkBAIC0zOCwxMiArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCitjbGFzcyBOZXR3b3JraW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xh
c3MgUmVzb3VyY2VIYW5kbGVDbGllbnQ7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwg
OiBwdWJsaWMgV2ViS2l0OjpXZWJVUkxMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFJlc291
cmNlSGFuZGxlSW50ZXJuYWwoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqKTsKKyAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVz
dCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgTmV0d29ya2luZ0NvbnRleHQqKTsKIAogICAgIHZp
cnR1YWwgflJlc291cmNlSGFuZGxlSW50ZXJuYWwoKSB7IH0KIApAQCAtNzgsNiArNzksNyBAQCBw
dWJsaWM6CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xpZW50OyB9CiAgICAgdm9pZCBzZXRDbGllbnQoUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIFdlYktpdDo6V2ViVVJMTG9hZGVyKiBs
b2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2xvYWRlci5nZXQoKTsgfQorICAgIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9CiAKICAg
ICBzdGF0aWMgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogRnJvbVJlc291cmNlSGFuZGxlKFJlc291
cmNlSGFuZGxlKik7CiAKQEAgLTkwLDYgKzkyLDggQEAgcHJpdmF0ZToKICAgICAvLyBVc2VkIGZv
ciBzYW5pdHkgY2hlY2tpbmcgdG8gbWFrZSBzdXJlIHdlIGRvbid0IGV4cGVyaWVuY2UgaWxsZWdh
bCBzdGF0ZQogICAgIC8vIHRyYW5zaXRpb25zLgogICAgIENvbm5lY3Rpb25TdGF0ZSBtX3N0YXRl
OworCisgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiB9OwogCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDFkNDJhNWIwNGMz
YTUxMzFmYWIxNDIyOWRkMmQxMWNmNjMxMzhiOTEuLjlkYmJhYTNmNjY1OTEyMzBjMmZmMmUzOThi
ZmY1ZjhlNmM5YmZmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC05NiwxNCArOTYsMTQg
QEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBi
ZSBudWxsIGlmIHRoZSBSZXNvdXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAg
ICAvLyBGcmFtZSwgZS5nLiBpZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElm
IHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUg
YW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQn
cyBqdXN0IGJsb2NrIGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBh
cmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNv
bnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQt
PmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VIYW5kbGVN
YW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpLT5hZGQodGhpcyk7CkBAIC0xNzUsNyArMTc1LDcgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6bG9hZHNCbG9ja2VkKCkKIHZvaWQgUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNv
dXJjZVJlcXVlc3QmIHJlcXVlc3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxz
LCBSZXNvdXJjZUVycm9yJiBlcnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3Rv
cjxjaGFyPiYgZGF0YSkKIHsKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRl
cjsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShy
ZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UsIGNvbnRleHQpKTsKIAogICAgIFJlc291
cmNlSGFuZGxlTWFuYWdlciogbWFuYWdlciA9IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVk
SW5zdGFuY2UoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQppbmRleCBjMGI4ZDNhYjc4ZGQxNjQxOWFhMDlm
NTNkMmM4OGQ2N2JjMDMxNGMyLi5hZGNjOWIzYzU2YjYxNDk2OWU0MWY5ZmNlYzIwYmZlNTgyZjQ3
ZjM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21h
Yy9SZXNvdXJjZUhhbmRsZU1hYy5tbQpAQCAtMjE4LDE5ICsyMTgsMTkgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlTlNVUkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWwKIAogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBp
ZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIEJFR0lOX0JMT0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIC8vIElmIE5ldHdv
cmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRv
IGEgUGFnZSwKICAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1
bmxvYWQgZXZlbnQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIWNv
bnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+
c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5tX3N0b3JhZ2VTZXNz
aW9uID0gZC0+bV9jb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwog
CiAgICAgQVNTRVJUKCFkLT5tX3Byb3h5KTsKICAgICBkLT5tX3Byb3h5LmFkb3B0TlMod2tDcmVh
dGVOU1VSTENvbm5lY3Rpb25EZWxlZ2F0ZVByb3h5KCkpOwpAQCAtMjM4LDE2ICsyMzgsMTYgQEAg
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAK
ICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVu
dCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKIAotICAgIGQtPm1fbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MgPSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwor
ICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MgPSBkLT5tX2NvbnRleHQtPm5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzKCk7CiAKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAg
IGQtPm1fcHJveHkuZ2V0KCksCiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAot
ICAgICAgICBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koY29udGV4dCwgZmlyc3RS
ZXF1ZXN0KCkudXJsKCkpLAotICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250
ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBzaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51
cmwoKSksCisgICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29udGV4dC0+
bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogICAgIGJvb2wgc2NoZWR1bGVk
ID0gZmFsc2U7Ci0gICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0g
Y29udGV4dC0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1bGVQYWly
SGFzaFNldCogc2NoZWR1bGVkUGFpcnMgPSBkLT5tX2NvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQ
YWlycygpKSB7CiAgICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNj
aGVkdWxlZFBhaXJzLT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0Ojpp
dGVyYXRvciBpdCA9IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsK
ICAgICAgICAgICAgIGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkp
IHsKQEAgLTI1Nyw3ICsyNTcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChOU09wZXJh
dGlvblF1ZXVlICpvcGVyYXRpb25RdWV1ZSA9IGNvbnRleHQtPnNjaGVkdWxlZE9wZXJhdGlvblF1
ZXVlKCkpIHsKKyAgICBpZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBkLT5t
X2NvbnRleHQtPnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkpIHsKICAgICAgICAgQVNTRVJUKCFz
Y2hlZHVsZWQpOwogICAgICAgICBbY29ubmVjdGlvbigpIHNldERlbGVnYXRlUXVldWU6b3BlcmF0
aW9uUXVldWVdOwogICAgICAgICBzY2hlZHVsZWQgPSB0cnVlOwpAQCAtMzgxLDcgKzM4MSw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2lu
Z0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgT3duUHRyPFdlYkNvcmVTeW5jaHJvbm91c0xv
YWRlckNsaWVudD4gY2xpZW50ID0gV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpjcmVh
dGUoKTsKICAgICBjbGllbnQtPnNldEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVu
dGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50aWFscyk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGll
bnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNu
aWZmKi8pKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9h
ZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8sIGNvbnRleHQpKTsKIAogICAgIGhh
bmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxh
dGZvcm1TZXNzaW9uKCk7CiAKQEAgLTY2OCw3ICs2NjgsNyBAQCAtIChOU1VSTFJlcXVlc3QgKilj
b25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb25uZWN0aW9uIHdpbGxTZW5kUmVxdWVzdDoo
TlNVUgogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0ID0gbmV3UmVxdWVzdDsKIAogICAgIC8v
IFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJl
c291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2Nv
bElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBz
IikpCisgICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9j
b2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBkLT5tX2NvbnRleHQtPnNo
b3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QoKSkKICAgICAgICAg
cmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgbV9oYW5kbGUtPndpbGxTZW5kUmVx
dWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5k
ZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZlOTMwMGVkMTJiMzRiY2IwOC4uZDU4Njc1MmFiYTVl
ZjcwMjM1OTMxMDlmNmJhOWRiMGQ1MWZlMGMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAg
LTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdChSZXNv
dXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVybCYgcmVkaQogICAgIG5ld1JlcXVlc3Qu
c2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEg
cmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBp
ZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKG5l
d1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghbmV3UmVxdWVzdC51
cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVm
ZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNvdXJjZUhhbmRsZS0+Y29udGV4dCgpLT5zaG91bGRD
bGVhclJlZmVycmVyUG9saWN5T25IdHRwc1RvSHR0cFJlZGlyZWN0KCkpCiAgICAgICAgIG5ld1Jl
cXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGNsaWVudC0+d2lsbFNlbmRSZXF1ZXN0
KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVlc3QsIHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCmlu
ZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0YTY4MjY2MTc4YjQyYWI2MWEuLjE1ZjViODJiMGE2
ZDYxNDUzMGJjZGRkMjMwMWJhNjhiMmM5OTBkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtOTAsMTEg
KzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgICAgICBjYW5j
ZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8gSWYgTmV0
d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQg
dG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFu
IHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChj
b250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAh
ZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlm
ICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlzRW1wdHkoKSkgewpAQCAtMTA2
LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRl
bnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5tX2NvbnRleHQgPSBjb250ZXh0
OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQt
Pm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xvYWRpbmcpOwogICAgIHJldHVybiB0
cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgfQog
I2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJl
c3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2Up
KTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UsIGNvbnRleHQpKTsK
IAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7
CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSB7
CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICAgICAgdXJs
V2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsKICAgICAgICAgZC0+bV9maXJzdFJl
cXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQotICAgIGQtPm1fY29udGV4
dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFydGluZyBpbiBkZWZlcnJlZCBtb2RlIGdpdmVzIGQt
Pm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcgc2V0IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0
LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwg
UU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9hZCwgdHJ1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3Vw
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCmluZGV4IGM3YWMwMzQ1ODE1OTMxOTM2YzgxOTY1NTBiOTJmMmUyNzU4NzJmOTMu
LjNhMGE0MGJiNmEyNTNkODNkMDk3ZTQ4MWUzZTMwNDRlZGI0NjA4NzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgc3RhdGljIHZvaWQgZG9SZWRpcmVjdChSZXNv
dXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0KIAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVy
ZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUg
b25lLgotICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhy
ZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIW5ld1VSTC5wcm90b2Nv
bElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBz
IikgJiYgZC0+bV9jb250ZXh0LT5zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRwc1RvSHR0
cFJlZGlyZWN0KCkpCiAgICAgICAgIHJlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAg
IGQtPm1fdXNlciA9IG5ld1VSTC51c2VyKCk7CkBAIC0xMDAwLDcgKzEwMDAsNyBAQCBzdGF0aWMg
Ym9vbCBjcmVhdGVTb3VwUmVxdWVzdEFuZE1lc3NhZ2VGb3JIYW5kbGUoUmVzb3VyY2VIYW5kbGUq
IGhhbmRsZSwgY29uc3QgUgogICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KCkKIHsKICAgICBBU1NFUlQoIWQtPm1fc291cE1lc3NhZ2UpOwogCkBAIC0xMDA5
LDEyICsxMDA5LDkgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFn
ZSBpcyBudWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4g
dW5sb2FkIGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0
aGUgZnJhbWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4K
LSAgICBpZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkXz5tX2Nv
bnRleHQgJiYgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICAvLyBVc2VkIHRvIHNldCB0aGUga2VlcCB0cmFjayBvZiBjdXN0b20gU291cFNlc3Np
b25zIGZvciBwb3J0cyB0aGF0IHN1cHBvcnQgaXQgKEVGTCkuCi0gICAgZC0+bV9jb250ZXh0ID0g
Y29udGV4dDsKLQogICAgIC8vIE9ubHkgYWxsb3cgdGhlIFBPU1QgYW5kIEdFVCBtZXRob2RzIGZv
ciBub24tSFRUUCByZXF1ZXN0cy4KICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qg
PSBmaXJzdFJlcXVlc3QoKTsKICAgICBib29sIGlzSFRUUEZhbWlseVJlcXVlc3QgPSByZXF1ZXN0
LnVybCgpLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKTsKQEAgLTEwMzAsNyArMTAyNyw3IEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBzZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQ
YWdlSURGcm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgY29udGV4
dCk7CisgICAgc2V0U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250
ZXh0KGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGQtPm1fY29udGV4dC5nZXQoKSk7CiAKICAgICAv
LyBTZW5kIHRoZSByZXF1ZXN0IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5IGRlZmVy
cmVkLgogICAgIGlmICghZC0+bV9kZWZlcnNMb2FkaW5nKQpAQCAtMTI3OSw3ICsxMjc2LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCwgY29uc3QKICAgICAgICAgcmV0dXJuOyAgICAgICAgICAgICAgICAg
ICAgLy8gd2Ugd2FudCB0byBhdm9pZCBhY2NpZGVudGFsbHkgZ29pbmcgaW50byBhbiBpbmZpbml0
ZSBsb29wIG9mIHJlcXVlc3RzLgogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNM
b2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBzZXNzaW9uRnJvbUNvbnRleHQoY29udGV4dCksIGRhdGEp
OwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gY3JlYXRlKGNvbnRleHQsIHJl
cXVlc3QsICZzeW5jTG9hZGVyLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgZmFsc2UgLypzaG91
bGRDb250ZW50U25pZmYqLyk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBj
cmVhdGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIsIGZhbHNlIC8qZGVmZXJzTG9hZGlu
ZyovLCBmYWxzZSAvKnNob3VsZENvbnRlbnRTbmlmZiovLCBjb250ZXh0KTsKICAgICBpZiAoIWhh
bmRsZSkKICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggOGExZDE5OWFl
MTRlZWM5YTM4YTYzZDg2ZTA0MDk1ODQ5N2QyNzkzZC4uNTkwZWIzMTIzZTBhOWQ1ZWRjNDEyNTM0
NTE2ZDFkMTU3NzY2YmI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBA
IGJvb2wgUmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKCkKICAgICByZXR1cm4gZmFs
c2U7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIGlmIChmaXJzdFJl
cXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3Rv
Y29sSXNEYXRhKCkpIHsKICAgICAgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGZp
bGVMb2FkVGltZXIKQEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICB9CiAKICAgICBpZiAoIWQtPm1faW50
ZXJuZXRIYW5kbGUpCi0gICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJ
bnRlcm5ldEhhbmRsZShjb250ZXh0LT51c2VyQWdlbnQoKSk7CisgICAgICAgIGQtPm1faW50ZXJu
ZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShkLT5tX2NvbnRleHQtPnVzZXJB
Z2VudCgpKTsKIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpAQCAtNDE5LDEwICs0MTksMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAg
ICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlhbHMpOwogCiAgICAgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCByZXF1ZXN0Lmh0dHBV
c2VyQWdlbnQoKSk7Ci0gICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9h
ZGVyLCB0cnVlLCBmYWxzZSk7CisgICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCB0cnVlLCBmYWxzZSwgY29udGV4dCk7CiAKICAgICBoYW5kbGUuc2V0U3luY2hy
b25vdXNJbnRlcm5ldEhhbmRsZShzeW5jTG9hZGVyLmludGVybmV0SGFuZGxlKCkpOwotICAgIGhh
bmRsZS5zdGFydChjb250ZXh0KTsKKyAgICBoYW5kbGUuc3RhcnQoKTsKIH0KIAogdm9pZCBSZXNv
dXJjZUhhbmRsZTo6c2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShISU5URVJORVQgaW50ZXJu
ZXRIYW5kbGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggMDdlZjM0NDQ1MGM5ODAyMmNiNzg5ODhhYTI1NDIxY2Y2ZGZiNjc2
NS4uMjI1MDA0MGM0ODE1ZjYxZjYyN2IxYjM1MjkwYmNlYzRlY2ZmYjA4YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIwIEBACisyMDEzLTAxLTE0ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBUYWtlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVh
cmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVuc2tpcCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1yZWRpcmVjdC1saW5rLmh0bWwKKworICAgICAgICBPbiB3azIsIHRoZSB0ZXN0IHN0aWxsIGZh
aWxzLCBhcyBpdCByZXF1aXJlcyBIVFRQUyBzdXBwb3J0CisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
dGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAq
IHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5vZGUg
RXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg0YjFlYzFkZTYzNTkxMmFjYzJhZmJlMzZjNDYx
MjRhOTZhYzk3ZTYuLjJlYWFiNGJhYjNmYjQ1MzE4NzcwYjEwZjRmYTJlOGRmNzFmYjE4ZTYgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjA2LDkgKzEy
MDYsNiBAQCB3ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcgYWZ0ZXIg
aXQgd2FzIGFkZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rlc3RzL2xv
YWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZhaWx1cmUg
XQogCi0jIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjU2Mwotd2Vi
a2l0Lm9yZy9iLzg2MDYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODUzMDggWyBSZWxlYXNl
IF0gaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bSBbIEltYWdl
T25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg1MzEwIGlldGVzdGNlbnRlci9jc3MzL3ZhbHVl
c2FuZHVuaXRzL3VuaXRzLTAxMC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1OWMxMTg5NzFiZDlhYzEwNWY4
NTE2ZGY0YWNmMjAyOWQ5MjZiOGRkLi5jMWIzMmU5N2UzNTI4YTUzNGNjNGJhNWRkOGExYjZkZWJl
OWY2ZTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NzU3LDkgKzc1Nyw2IEBAIG1lZGlhL3ZpZGVvLXBsYXllZC1yZXNldC5odG1sCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk2OQogaHR0cC90ZXN0cy9sb2FkaW5n
L3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0bWwKIAotIyBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3RvciBvbmx5IHN1
cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2VlIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKIGluc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY1M2Q0ZGY2NTkyNjA5MTFhNzhl
ODA0OGEyMzJjZjExZTRjMmIzOTAuLmY3ODEyZTgxYjc1MDRjYjkyNjBmOWVjZGMyNzRmMTk1OWQ5
MTU2NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgx
NSw5ICsxODE1LDYgQEAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1ub25leGlz
dGVudC1maWxlLmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3Qtbm8tcG9ydC5odG1sCiBzZWN1cml0
eS9ibG9jay10ZXN0Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0
LWxpbmsuaHRtbAotCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyB0YWJsZXMg
dGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
VGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYTk4MWE4Mjc3MzEzYmQzNzljOGMyYTFlNTgxMmY5NGMz
MjdkNjA1Li5hNzgxZDM5ZjIxMjhhZDlkZDFhNTNhNjkwYzMzZWU5NWU4ZWNhYjU3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgwOCw5ICsxODA4LDYg
QEAgaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAjIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY4OQogZmFzdC9hbmltYXRpb24vcmVx
dWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3VwcG9ydHMg
ZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCAKIGluc3BlY3Rvci9leHRlbnNp
b25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjVkZDhhZTAwMTNjODk4MmIzZjM3YTg5
YzZlN2FiMjhmOGI5NjU0Yy4uYmQ2NzJmMDI5MWQ0Y2RmYTQyZjFkMDk0ZTc4M2ZhODQ2ZjVkOGE0
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMxNyw2
ICszMTcsNyBAQCBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3VicmVzb3Vy
Y2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1odHRwcy1hbHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1w
b2xpY3ktaHR0cHMtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LXJlZGlyZWN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJl
ZGlyZWN0LWxpbmsuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0
cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMt
ZGVmYXVsdC5odG1sCiAKQEAgLTMzOCwxMSArMzM5LDYgQEAgZmFzdC9zZWxlY3RvcnMvc2VsZWN0
aW9uLXdpbmRvdy1pbmFjdGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0V2lkdGgoKS4KIGlu
c3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0jIFRoZSBuZXR3b3Jr
IHN0YWNrIHVuY29uZGl0aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0cmFuc2l0aW9ucyBm
cm9tCi0jIHNlY3VyZSB0byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhlIHJlZmVycmVyIHBv
bGljeSBpbnRvIGFjY291bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1y
ZWRpcmVjdC1saW5rLmh0bWwKLQogIyBjc3MzLWNvbmRpdGlvbmFscyBzdXBwb3J0IGlzIG5vdCB5
ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182564</attachid>
            <date>2013-01-14 06:13:35 -0800</date>
            <delta_ts>2013-01-14 06:42:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130114151035.patch</filename>
            <type>text/plain</type>
            <size>37581</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMDcxMmJkMmM2NWU4MWE4OTNmNTkwMzQ1MTFlZTY2
YjJhZTNkYTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJS
ZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCk6CisgICAgICAgIChGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNv
dXJjZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVm
ZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAgICAoTmV0d29ya2luZ0Nv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6Y29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpy
ZWRpcmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRvUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5vZGUg
RXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA3ZjA4ODAxY2I1YzNlNzQ0NTlh
YzhmOGY0OThkZTM5ZTNjNmE2ZGJhLi5hMTU2NDc5YTNkMGU1MGFkNWUxYjVmMjYyMjA5OTFmMjll
MGUxYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTIwLDggKzIwLDEwIEBACiAjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRf
aAogI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzIsNiArMzQsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gMDsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQ7CisgICAgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUp
CiAgICAgICAgIDogbV9mcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAppbmRleCBjODJiNDZjNjA4N2Zm
OTYxMjU3OTk4YTU0YWVmNWVlNmU2YWJjZDM2Li5hMGZiNWY3ODZkNzU5MTliNzEzZDg5NGQ3ZDA5
YjgzNGUxMjUyZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC0xNDIsNyArMTQxLDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoUGFzc1JlZlB0cjxCbG9iU3RvcmFnZURhdGE+IGIK
IH0KIAogQmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUoUGFzc1JlZlB0cjxC
bG9iU3RvcmFnZURhdGE+IGJsb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgYXN5bmMpCi0gICAgOiBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKKyAgICA6IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlLCAwKQogICAgICwgbV9ibG9iRGF0YShi
bG9iRGF0YSkKICAgICAsIG1fYXN5bmMoYXN5bmMpCiAgICAgLCBtX2Vycm9yQ29kZSgwKQpAQCAt
NjM2LDQgKzYzNSwzIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEJMT0IpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCA4NDFmN2VjZmUzZGQ3YWI3NmUwMzgyYmUwOTcxZmU5OTc3NmFiN2VjLi42NGJmYzA5MmQ3
Y2I2Yjc1OWEzMjEwZTlhNDZjMTM3YzkwZTk5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC02NSw2ICs2NSw4IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBz
VG9IdHRwUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKICAgICAvLyBGSVhNRTogV3JhcCBXZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNyb3NzLXBsYXRmb3JtLgogICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUphcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
NTdlZWZlZGM0NTE1OTA0MGNiN2FmZDRkMzBkNTZhNWUxYTlmZTNiMy4uOWFlNWVhZmY1MDM1ZjFh
MmJhZmQ3NDc3YjQ5Njg2MjAwZjE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUzLDggKzUzLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm90b2NvbCwgUmUKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1h
cCgpLmFkZChwcm90b2NvbCwgY29uc3RydWN0b3IpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCBy
ZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91
bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwo
KSksIGNvbnRleHQpKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CkBAIC03NCwxMiArNzQs
MTIgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY28KICAgICBpZiAocHJvdG9jb2xNYXBJdGVtICE9
IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiBwcm90b2NvbE1hcEl0ZW0tPnZhbHVlKHJlcXVlc3QsIGNsaWVudCk7CiAKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBjb250ZXh0KSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwog
Ci0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+
c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1
cm4gMDsKQEAgLTEyOCw2ICsxMjgsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRs
ZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+bV9maXJzdFJlcXVlc3Q7CiB9CiAKK05l
dHdvcmtpbmdDb250ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPm1fY29udGV4dC5nZXQoKTsKK30KKwogY29uc3QgU3RyaW5nJiBSZXNvdXJjZUhh
bmRsZTo6bGFzdEhUVFBNZXRob2QoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX2xhc3RIVFRQ
TWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCmluZGV4IDQxYmEzODg4MWIyZGEzOTY1MTAwZDk0ZjlmMzU0ZWI3OTE4MDAxYjUuLjZh
YmRiOTJlZmUzNjRmZTQyOTQyM2Q4OTFmY2NhODlkYmU3ZjliZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE5OSw2ICsxOTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVGYWlsdXJlKFRpbWVyPFJlc291cmNlSGFuZGxl
PiopOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKKwogICAgIHVz
aW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxSZXNvdXJjZUhhbmRsZT46OmRlcmVmOwogCkBAIC0yMTQsNyArMjE2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5Db25zdHJ1Y3Rvcik7CiAKIHByb3RlY3RlZDoKLSAgICBS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTmV0d29ya2lu
Z0NvbnRleHQqKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIEZhaWx1cmVUeXBlIHsKQEAgLTIyNyw3
ICsyMjksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5
cGUpOwogCi0gICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOworICAgIGJvb2wgc3Rh
cnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCBiODQ5NTZiYTQyY2FhMzRiZTcxMDc3MTcxZTIy
YjA5Y2QzZmM0NGIyLi5lMDBmYmZjZDQ1OTkwMThlMWRlNTc4ODFmMWJkMjUyNWNkZTBkODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaApAQCAtODMsMTMgKzgzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhh
bmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KQorICAgICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgICAgICAgICAgOiBtX2NsaWVudChjKQogICAgICAgICAgICAg
LCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAgICAgLCBtX2xhc3RIVFRQTWV0aG9k
KHJlcXVlc3QuaHR0cE1ldGhvZCgpKQogICAgICAgICAgICAgLCBzdGF0dXMoMCkKICAgICAgICAg
ICAgICwgbV9kZWZlcnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICAsIG1fc2hv
dWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiAjaWYgVVNFKENGTkVUV09SSykKICAgICAgICAgICAgICwgbV9jb25uZWN0
aW9uKDApCiAjZW5kaWYKQEAgLTE1Miw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDb250
ZW50U25pZmY7CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0Owog
I2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+
IG1fY29ubmVjdGlvbjsKICNlbmRpZgpAQCAtMjAyLDcgKzIwNCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9i
b2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRhU2VudDsKLSAgICAgICAg
UmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRpcmVjdENvdW50OwogI2VuZGlmCkBA
IC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUmVm
UHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXgg
YWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVhODkyMS4uMGMyNjEzOTEyMzM3NmI1
ZjRhMmY4NTI2Mzg0YjVmNzZiNDIzODBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQogICAgIE5ldHdv
cmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2FkaW5nKHRoaXMsIGRlZmVyc0xvYWRp
bmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dCB8fCAhZC0+
bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJ
WE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQgd2UgaGF2ZSBOZXR3b3JraW5nQ29u
dGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKICAgICBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsK
ICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQsIGhhbmRs
ZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29uc3QgZG91YmxlIHN5bmNMb2FkVGlt
ZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA3NjE2NzViNDI2
NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi45NmFkYzM4MWM4OWY5NmQxYzY4NzU3YWZk
ZTM2YTQ4MWExODljZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE4NCw3ICsxODQsNyBA
QCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTENvbm5lY3Rpb25S
ZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJlcXVlc3QgPSBjZlJlcXVlc3Q7CiAK
ICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNl
Y3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCku
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCks
ICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYm
IHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgaGFuZGxlLT53
aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTQ5NiwxNCAr
NDk2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+bV9jb25uZWN0aW9uLmFk
b3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwgY29u
bmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFk
LT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+
bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CkBAIC05MjQsNCArOTI0LDMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0
YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBmNWU3Y2JlZDM3YWUwYzg5ZTRiMGM4
NTE3YzViM2U4YjNjMGZiY2ZkLi5lZTNkMDg0NGFiYTIwOWI3ODllMWZlYTFhZGQ5YzQ4ZWYyZTFm
NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTIsMTEgKzUyLDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
KQorUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
LCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N0YXRlKENvbm5l
Y3Rpb25TdGF0ZU5ldykKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQogewogfQogCkBAIC0xNzMs
MTEgKzE3NCw4IEBAIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OkZyb21SZXNvdXJjZUhhbmRsZShSZXNvdXJjZUhhbmRsCiAKIC8vIFJlc291cmNlSGFuZGxl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZGVmZXJzTG9hZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJu
YWwocmVxdWVzdCwgY2xpZW50KSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50
ZXJuYWwocmVxdWVzdCwgY2xpZW50LCBjb250ZXh0KSkpCiB7CiAgICAgZC0+c2V0T3duZXIodGhp
cyk7CiAKQEAgLTE5MSw5ICsxODksOSBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKLSAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNM
b2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBk
ZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsKIAotICAgIGlmIChu
ZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAg
ICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0y
MDQsNiArMjAyLDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVx
dWVzdCgpCiAgICAgcmV0dXJuIGQtPnJlcXVlc3QoKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQq
IFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+Y29udGV4
dCgpOworfQorCiBSZXNvdXJjZUhhbmRsZUNsaWVudCogUmVzb3VyY2VIYW5kbGU6OmNsaWVudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPmNsaWVudCgpOwpAQCAtMjE5LDkgKzIyMiw5IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5z
ZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+Y29udGV4dCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAppbmRleCA5ZWVmZWU4YjIwNTUxYmUyOTQxMzdkMTQ5MmM4ZGQzMDVmYzY1MWEzLi5k
YzUxMWU1ZWVhOGVlZmY4ZjE3YjlmZDI0MjRhM2NlNjMxNGNmZDllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzgsMTIgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZTsK
IGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsIDogcHVibGljIFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50Kik7CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkgeyB9CiAKQEAgLTc4LDYgKzc5LDcg
QEAgcHVibGljOgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVSTExvYWRl
ciogbG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQog
CiAgICAgc3RhdGljIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhhbmRsZShS
ZXNvdXJjZUhhbmRsZSopOwogCkBAIC05MCw2ICs5Miw4IEBAIHByaXZhdGU6CiAgICAgLy8gVXNl
ZCBmb3Igc2FuaXR5IGNoZWNraW5nIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBleHBlcmllbmNlIGls
bGVnYWwgc3RhdGUKICAgICAvLyB0cmFuc2l0aW9ucy4KICAgICBDb25uZWN0aW9uU3RhdGUgbV9z
dGF0ZTsKKworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCAxZDQyYTVi
MDRjM2E1MTMxZmFiMTQyMjlkZDJkMTFjZjYzMTM4YjkxLi45ZGJiYWEzZjY2NTkxMjMwYzJmZjJl
Mzk4YmZmNWY4ZTZjOWJmZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtOTYsMTQgKzk2
LDE0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwog
fQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291
bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55
CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAv
LyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28g
bGV0J3MganVzdCBibG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBh
Z2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYm
ICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250
ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFu
ZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50
aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNM
b2FkZXI7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcg
UmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAg
UmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5k
bGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBjb250ZXh0KSk7CiAKICAgICBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXIqIG1hbmFnZXIgPSBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNo
YXJlZEluc3RhbmNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggYzBiOGQzYWI3OGRkMTY0MTlh
YTA5ZjUzZDJjODhkNjdiYzAzMTRjMi4uMDRjZjI0MTZmMmFjZGE0NjM0YjllZjFjYTM3NDVlMDU3
YjlmZTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTIxOCwxOSArMjE4LDE5IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsCiAKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0g
ICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBJZiBO
ZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hl
ZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRl
eHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdl
U2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24o
KTsKIAogICAgIEFTU0VSVCghZC0+bV9wcm94eSk7CiAgICAgZC0+bV9wcm94eS5hZG9wdE5TKHdr
Q3JlYXRlTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSgpKTsKQEAgLTIzOCwxNiArMjM4LDE2
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBj
bGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBkLT5tX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZC0+bV9jb250ZXh0LT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAg
ICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwKLSAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZp
cnN0UmVxdWVzdCgpLnVybCgpKSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwg
Y29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RS
ZXF1ZXN0KCkudXJsKCkpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5t
X2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBib29s
IHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gZC0+bV9jb250ZXh0LT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWly
SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5z
UnVuTG9vcCgpKSB7CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBjb250ZXh0LT5zY2hlZHVsZWRP
cGVyYXRpb25RdWV1ZSgpKSB7CisgICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1
ZXVlID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CiAgICAgICAg
IEFTU0VSVCghc2NoZWR1bGVkKTsKICAgICAgICAgW2Nvbm5lY3Rpb24oKSBzZXREZWxlZ2F0ZVF1
ZXVlOm9wZXJhdGlvblF1ZXVlXTsKICAgICAgICAgc2NoZWR1bGVkID0gdHJ1ZTsKQEAgLTM4MSw3
ICszODEsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNs
aWVudDo6Y3JlYXRlKCk7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0
b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3Vs
ZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAv
KmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovLCBjb250ZXh0KSk7
CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vz
c2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC02NjgsNyArNjY4LDcgQEAgLSAoTlNVUkxS
ZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2Vu
ZFJlcXVlc3Q6KE5TVVIKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7
CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBh
IHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJs
KCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVy
KCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9oYW5k
bGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBtX2hh
bmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcAppbmRleCAwYjY0Yjc5YmE0NDllYTQ3ODJhYzcwZmU5MzAwZWQxMmIzNGJj
YjA4Li5kNTg2NzUyYWJhNWVmNzAyMzU5MzEwOWY2YmE5ZGIwZDUxZmUwYzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiByZWRp
CiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0
IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1z
ZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAg
aWYgKCFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhu
ZXdSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBtX3Jlc291cmNlSGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgY2xpZW50
LT53aWxsU2VuZFJlcXVlc3QobV9yZXNvdXJjZUhhbmRsZSwgbmV3UmVxdWVzdCwgcmVzcG9uc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAKaW5kZXggMTM3NTFlYjY1ZDdmMzNmYzk3YmMyMzRhNjgyNjYxNzhiNDJh
YjYxYS4uMTVmNWI4MmIwYTZkNjE0NTMwYmNkZGQyMzAxYmE2OGIyYzk5MGQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxl
UXQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRs
ZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkK
IHsKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5v
IGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
ZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNF
bXB0eSgpKSB7CkBAIC0xMDYsNyArMTA2LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNl
dFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldElu
dGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywg
UU5ldHdvcmtSZXBseUhhbmRsZXI6OkFzeW5jaHJvbm91c0xvYWQsIGQtPm1fZGVmZXJzTG9hZGlu
Zyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QKICAgICB9CiAjZW5kaWYKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3lu
Y0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9h
ZGVyLCB0cnVlLCBmYWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSwgY29udGV4dCkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fdXNlci5pc0VtcHR5KCkgfHwgIWQtPm1f
cGFzcy5pc0VtcHR5KCkpIHsKQEAgLTE0NSw3ICsxNDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdAogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAg
ICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9
Ci0gICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIC8vIHN0YXJ0aW5nIGluIGRlZmVy
cmVkIG1vZGUgZ2l2ZXMgZC0+bV9qb2IgdGhlIGNoYW5jZSBvZiBiZWluZyBzZXQgYmVmb3JlIHNl
bmRpbmcgdGhlIHJlcXVlc3QuCiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6U3luY2hyb25vdXNMb2FkLCB0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYzdhYzAzNDU4MTU5MzE5MzZjODE5NjU1
MGI5MmYyZTI3NTg3MmY5My4uNDc1YWFhMGYzZTFiNmQwZGQzM2M1ZjE3Y2I3ZGQ1ZTg0YmE2YmQ2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgdm9p
ZCBkb1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgfQogCiAgICAgLy8gU2hv
dWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3Vy
Y2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMi
KSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlm
ICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZl
cnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFy
SFRUUFJlZmVycmVyKCk7CiAKICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNlcigpOwpAQCAtMTAw
MCw3ICsxMDAwLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9y
SGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKCFkLT5tX3Nv
dXBNZXNzYWdlKTsKIApAQCAtMTAwOSwxMiArMTAwOSw5IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIC8vIElmIHRoZSBmcmFtZSBp
cyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
CiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwg
dGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFs
aWQoKSkKKyAgICBpZiAoZF8+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQgdGhlIGtlZXAgdHJh
Y2sgb2YgY3VzdG9tIFNvdXBTZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBwb3J0IGl0IChFRkwp
LgotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5IGFsbG93IHRoZSBQ
T1NUIGFuZCBHRVQgbWV0aG9kcyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAgICAgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAgYm9vbCBpc0hUVFBG
YW1pbHlSZXF1ZXN0ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBA
IC0xMDMwLDcgKzEwMjcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0
U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291
cFJlcXVlc3QuZ2V0KCksIGNvbnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1Bh
Z2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2Nv
bnRleHQuZ2V0KCkpOwogCiAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90
IGJlZW4gZXhwbGljaXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykK
QEAgLTEyNzksNyArMTI3Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIHJl
dHVybjsgICAgICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gYXZvaWQgYWNjaWRlbnRhbGx5
IGdvaW5nIGludG8gYW4gaW5maW5pdGUgbG9vcCBvZiByZXF1ZXN0cy4KIAogICAgIFdlYkNvcmVT
eW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25zZSwgc2Vzc2lvbkZyb21D
b250ZXh0KGNvbnRleHQpLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IGNyZWF0ZShjb250ZXh0LCByZXF1ZXN0LCAmc3luY0xvYWRlciwgZmFsc2UgLypkZWZlcnNM
b2FkaW5nKi8sIGZhbHNlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pOworICAgIFJlZlB0cjxSZXNv
dXJjZUhhbmRsZT4gaGFuZGxlID0gY3JlYXRlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVy
LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgZmFsc2UgLypzaG91bGRDb250ZW50U25pZmYqLywg
Y29udGV4dCk7CiAgICAgaWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4u
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVX
aW4uY3BwCmluZGV4IDhhMWQxOTlhZTE0ZWVjOWEzOGE2M2Q4NmUwNDA5NTg0OTdkMjc5M2QuLjU5
MGViMzEyM2UwYTlkNWVkYzQxMjUzNDUxNmQxZDE1Nzc2NmJiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5j
cHAKQEAgLTI2NSw3ICsyNjUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21w
bGV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKIHsKICAgICBpZiAoZmlyc3RSZXF1ZXN0KCkudXJsKCkuaXNMb2NhbEZpbGUoKSB8fCBmaXJz
dFJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0YSgpKSB7CiAgICAgICAgIHJlZigpOyAvLyBi
YWxhbmNlZCBieSBkZXJlZiBpbiBmaWxlTG9hZFRpbWVyCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAg
fQogCiAgICAgaWYgKCFkLT5tX2ludGVybmV0SGFuZGxlKQotICAgICAgICBkLT5tX2ludGVybmV0
SGFuZGxlID0gYXN5bmNocm9ub3VzSW50ZXJuZXRIYW5kbGUoY29udGV4dC0+dXNlckFnZW50KCkp
OworICAgICAgICBkLT5tX2ludGVybmV0SGFuZGxlID0gYXN5bmNocm9ub3VzSW50ZXJuZXRIYW5k
bGUoZC0+bV9jb250ZXh0LT51c2VyQWdlbnQoKSk7CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRI
YW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKQEAgLTQxOSwxMCArNDE5LDEwIEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0CiAgICAgVU5VU0VEX1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzKTsK
IAogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25z
ZSwgZGF0YSwgcmVxdWVzdC5odHRwVXNlckFnZW50KCkpOwotICAgIFJlc291cmNlSGFuZGxlIGhh
bmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpOworICAgIFJlc291cmNlSGFu
ZGxlIGhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UsIGNvbnRleHQpOwog
CiAgICAgaGFuZGxlLnNldFN5bmNocm9ub3VzSW50ZXJuZXRIYW5kbGUoc3luY0xvYWRlci5pbnRl
cm5ldEhhbmRsZSgpKTsKLSAgICBoYW5kbGUuc3RhcnQoY29udGV4dCk7CisgICAgaGFuZGxlLnN0
YXJ0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldFN5bmNocm9ub3VzSW50ZXJuZXRI
YW5kbGUoSElOVEVSTkVUIGludGVybmV0SGFuZGxlKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA3ZWYzNDQ0NTBjOTgwMjJj
Yjc4OTg4YWEyNTQyMWNmNmRmYjY3NjUuLjIyNTAwNDBjNDgxNWY2MWY2MjdiMWIzNTI5MGJjZWM0
ZWNmZmIwOGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMy0wMS0xNCAgTWFyamEgSMO2bHR0
w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJlciBwb2xpY3kg
aW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbnNraXAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCisKKyAgICAgICAgT24g
d2syLCB0aGUgdGVzdCBzdGlsbCBmYWlscywgYXMgaXQgcmVxdWlyZXMgSFRUUFMgc3VwcG9ydAor
CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMS0xMSAgQW50
b2luZSBRdWludCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IE9wdGlvbitDbGljayBvbiBOb2RlIEV4cGFuZGVyIERvZXNuJ3QgV29yayB0aGUgRmlyc3QgVGlt
ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA4NGIxZWMx
ZGU2MzU5MTJhY2MyYWZiZTM2YzQ2MTI0YTk2YWM5N2U2Li4yZWFhYjRiYWIzZmI0NTMxODc3MGIx
MGY0ZmEyZThkZjcxZmIxOGU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtMTIwNiw5ICsxMjA2LDYgQEAgd2Via2l0Lm9yZy9iLzg1Njg5IGZhc3QvYW5p
bWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwgWyBTa2lwIF0KICMg
U3RhcnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NDczCiB3ZWJraXQub3Jn
L2IvODU5NjkgaHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZp
Z2F0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBTdGFydGVkIGZhaWxpbmcgYWZ0ZXIgaXQgd2Fz
IGFkZGVkIGluIHIxMTY1NjMKLXdlYmtpdC5vcmcvYi84NjA2MSBodHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0
Lm9yZy9iLzg1MzA4IFsgUmVsZWFzZSBdIGlldGVzdGNlbnRlci9jc3MzL3ZhbHVlc2FuZHVuaXRz
L3VuaXRzLTAwMC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi84NTMxMCBp
ZXRlc3RjZW50ZXIvY3NzMy92YWx1ZXNhbmR1bml0cy91bml0cy0wMTAuaHRtIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNTljMTE4OTcxYmQ5YWMxMDVmODUxNmRmNGFjZjIwMjlkOTI2YjhkZC4uYzFiMzJlOTdlMzUy
OGE1MzRjYzRiYTVkZDhhMWI2ZGViZTlmNmU1YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc1Nyw5ICs3NTcsNiBAQCBtZWRpYS92aWRlby1wbGF5ZWQt
cmVzZXQuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5
NjkKIGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlmcmFtZS13aXRoLWJhY2stbmF2aWdhdGlv
bi5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAw
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwK
LQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0
IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNj
cmlwdC5odG1sCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50
LXNjcmlwdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCBmNTNkNGRmNjU5MjYwOTExYTc4ZTgwNDhhMjMyY2YxMWU0YzJiMzkwLi5mNzgxMmU4MWI3NTA0
Y2I5MjYwZjllY2RjMjc0ZjE5NTlkOTE1NjQ4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTE4MTUsOSArMTgxNSw2IEBAIGZhc3QveG1saHR0cHJlcXVlc3Qv
eG1saHR0cHJlcXVlc3Qtbm9uZXhpc3RlbnQtZmlsZS5odG1sCiBzZWN1cml0eS9ibG9jay10ZXN0
LW5vLXBvcnQuaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC5odG1sCiAKLSMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyA9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PSAjCiAjIGZhaWxpbmcgdGFibGVzIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggY2E5ODFhODI3NzMx
M2JkMzc5YzhjMmExZTU4MTJmOTRjMzI3ZDYwNS4uYTc4MWQzOWYyMTI4YWQ5ZGQxYTUzYTY5MGMz
M2VlOTVlOGVjYWI1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE4MDgsOSArMTgwOCw2IEBAIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVu
LXNpemUuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2
ODkKIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwK
IAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAv
dGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIElu
c3BlY3RvciBvbmx5IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQg
d2l0aCB2OCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcw
OQogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0
bWwgCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlw
dC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDI1
ZGQ4YWUwMDEzYzg5ODJiM2YzN2E4OWM2ZTdhYjI4ZjhiOTY1NGMuLmJkNjcyZjAyOTFkNGNkZmE0
MmYxZDA5NGU3ODNmYTg0NmY1ZDhhNDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0zMTcsNiArMzE3LDcgQEAgaHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5
LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRzLW1heC1hZ2UtaHR0cHMuaHRtbAogaHR0cC90
ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC5odG1sCitodHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQuaHRtbAogCkBAIC0zMzgsMTEgKzMzOSw2IEBA
IGZhc3Qvc2VsZWN0b3JzL3NlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUuaHRtbAogIyBhdXRvWm9v
bVBhZ2VUb0ZpdFdpZHRoKCkuCiBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXpl
Lmh0bWwKIAotIyBUaGUgbmV0d29yayBzdGFjayB1bmNvbmRpdGlvbmFsbHkgc3RyaXBzIHRoZSBo
ZWFkZXIgb24gdHJhbnNpdGlvbnMgZnJvbQotIyBzZWN1cmUgdG8gaW5zZWN1cmUuIEl0IHNob3Vs
ZCB0YWtlIHRoZSByZWZlcnJlciBwb2xpY3kgaW50byBhY2NvdW50IGluc3RlYWQuCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgY3NzMy1jb25kaXRp
b25hbHMgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODYxNDYgY3Nz
My9zdXBwb3J0cy5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182568</attachid>
            <date>2013-01-14 06:42:10 -0800</date>
            <delta_ts>2013-01-14 07:23:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130114153910.patch</filename>
            <type>text/plain</type>
            <size>36964</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMDcxMmJkMmM2NWU4MWE4OTNmNTkwMzQ1MTFlZTY2
YjJhZTNkYTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJS
ZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCk6CisgICAgICAgIChGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNv
dXJjZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVm
ZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAgICAoTmV0d29ya2luZ0Nv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6Y29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpy
ZWRpcmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRvUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5vZGUg
RXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA3ZjA4ODAxY2I1YzNlNzQ0NTlh
YzhmOGY0OThkZTM5ZTNjNmE2ZGJhLi5hMTU2NDc5YTNkMGU1MGFkNWUxYjVmMjYyMjA5OTFmMjll
MGUxYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTIwLDggKzIwLDEwIEBACiAjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRf
aAogI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzIsNiArMzQsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gMDsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQ7CisgICAgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUp
CiAgICAgICAgIDogbV9mcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAppbmRleCBjODJiNDZjNjA4N2Zm
OTYxMjU3OTk4YTU0YWVmNWVlNmU2YWJjZDM2Li5hMGZiNWY3ODZkNzU5MTliNzEzZDg5NGQ3ZDA5
YjgzNGUxMjUyZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC0xNDIsNyArMTQxLDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoUGFzc1JlZlB0cjxCbG9iU3RvcmFnZURhdGE+IGIK
IH0KIAogQmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUoUGFzc1JlZlB0cjxC
bG9iU3RvcmFnZURhdGE+IGJsb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgYXN5bmMpCi0gICAgOiBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKKyAgICA6IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlLCAwKQogICAgICwgbV9ibG9iRGF0YShi
bG9iRGF0YSkKICAgICAsIG1fYXN5bmMoYXN5bmMpCiAgICAgLCBtX2Vycm9yQ29kZSgwKQpAQCAt
NjM2LDQgKzYzNSwzIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEJMT0IpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCA4NDFmN2VjZmUzZGQ3YWI3NmUwMzgyYmUwOTcxZmU5OTc3NmFiN2VjLi42NGJmYzA5MmQ3
Y2I2Yjc1OWEzMjEwZTlhNDZjMTM3YzkwZTk5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC02NSw2ICs2NSw4IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBz
VG9IdHRwUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKICAgICAvLyBGSVhNRTogV3JhcCBXZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNyb3NzLXBsYXRmb3JtLgogICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUphcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
NTdlZWZlZGM0NTE1OTA0MGNiN2FmZDRkMzBkNTZhNWUxYTlmZTNiMy4uOWFlNWVhZmY1MDM1ZjFh
MmJhZmQ3NDc3YjQ5Njg2MjAwZjE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUzLDggKzUzLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm90b2NvbCwgUmUKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1h
cCgpLmFkZChwcm90b2NvbCwgY29uc3RydWN0b3IpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCBy
ZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91
bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwo
KSksIGNvbnRleHQpKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CkBAIC03NCwxMiArNzQs
MTIgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY28KICAgICBpZiAocHJvdG9jb2xNYXBJdGVtICE9
IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiBwcm90b2NvbE1hcEl0ZW0tPnZhbHVlKHJlcXVlc3QsIGNsaWVudCk7CiAKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBjb250ZXh0KSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwog
Ci0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+
c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1
cm4gMDsKQEAgLTEyOCw2ICsxMjgsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRs
ZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+bV9maXJzdFJlcXVlc3Q7CiB9CiAKK05l
dHdvcmtpbmdDb250ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPm1fY29udGV4dC5nZXQoKTsKK30KKwogY29uc3QgU3RyaW5nJiBSZXNvdXJjZUhh
bmRsZTo6bGFzdEhUVFBNZXRob2QoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX2xhc3RIVFRQ
TWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCmluZGV4IDQxYmEzODg4MWIyZGEzOTY1MTAwZDk0ZjlmMzU0ZWI3OTE4MDAxYjUuLjZh
YmRiOTJlZmUzNjRmZTQyOTQyM2Q4OTFmY2NhODlkYmU3ZjliZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE5OSw2ICsxOTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVGYWlsdXJlKFRpbWVyPFJlc291cmNlSGFuZGxl
PiopOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKKwogICAgIHVz
aW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxSZXNvdXJjZUhhbmRsZT46OmRlcmVmOwogCkBAIC0yMTQsNyArMjE2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5Db25zdHJ1Y3Rvcik7CiAKIHByb3RlY3RlZDoKLSAgICBS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTmV0d29ya2lu
Z0NvbnRleHQqKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIEZhaWx1cmVUeXBlIHsKQEAgLTIyNyw3
ICsyMjksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5
cGUpOwogCi0gICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOworICAgIGJvb2wgc3Rh
cnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCBiODQ5NTZiYTQyY2FhMzRiZTcxMDc3MTcxZTIy
YjA5Y2QzZmM0NGIyLi5lMDBmYmZjZDQ1OTkwMThlMWRlNTc4ODFmMWJkMjUyNWNkZTBkODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaApAQCAtODMsMTMgKzgzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhh
bmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KQorICAgICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgICAgICAgICAgOiBtX2NsaWVudChjKQogICAgICAgICAgICAg
LCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAgICAgLCBtX2xhc3RIVFRQTWV0aG9k
KHJlcXVlc3QuaHR0cE1ldGhvZCgpKQogICAgICAgICAgICAgLCBzdGF0dXMoMCkKICAgICAgICAg
ICAgICwgbV9kZWZlcnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICAsIG1fc2hv
dWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiAjaWYgVVNFKENGTkVUV09SSykKICAgICAgICAgICAgICwgbV9jb25uZWN0
aW9uKDApCiAjZW5kaWYKQEAgLTE1Miw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDb250
ZW50U25pZmY7CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0Owog
I2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+
IG1fY29ubmVjdGlvbjsKICNlbmRpZgpAQCAtMjAyLDcgKzIwNCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9i
b2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRhU2VudDsKLSAgICAgICAg
UmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRpcmVjdENvdW50OwogI2VuZGlmCkBA
IC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUmVm
UHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXgg
YWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVhODkyMS4uMGMyNjEzOTEyMzM3NmI1
ZjRhMmY4NTI2Mzg0YjVmNzZiNDIzODBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQogICAgIE5ldHdv
cmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2FkaW5nKHRoaXMsIGRlZmVyc0xvYWRp
bmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dCB8fCAhZC0+
bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJ
WE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQgd2UgaGF2ZSBOZXR3b3JraW5nQ29u
dGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKICAgICBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsK
ICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQsIGhhbmRs
ZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29uc3QgZG91YmxlIHN5bmNMb2FkVGlt
ZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA3NjE2NzViNDI2
NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi45NmFkYzM4MWM4OWY5NmQxYzY4NzU3YWZk
ZTM2YTQ4MWExODljZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE4NCw3ICsxODQsNyBA
QCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTENvbm5lY3Rpb25S
ZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJlcXVlc3QgPSBjZlJlcXVlc3Q7CiAK
ICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNl
Y3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCku
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCks
ICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYm
IHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgaGFuZGxlLT53
aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTQ5NiwxNCAr
NDk2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+bV9jb25uZWN0aW9uLmFk
b3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwgY29u
bmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFk
LT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+
bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CkBAIC05MjQsNCArOTI0LDMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0
YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBmNWU3Y2JlZDM3YWUwYzg5ZTRiMGM4
NTE3YzViM2U4YjNjMGZiY2ZkLi5lZTNkMDg0NGFiYTIwOWI3ODllMWZlYTFhZGQ5YzQ4ZWYyZTFm
NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTIsMTEgKzUyLDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
KQorUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
LCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N0YXRlKENvbm5l
Y3Rpb25TdGF0ZU5ldykKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQogewogfQogCkBAIC0xNzMs
MTEgKzE3NCw4IEBAIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OkZyb21SZXNvdXJjZUhhbmRsZShSZXNvdXJjZUhhbmRsCiAKIC8vIFJlc291cmNlSGFuZGxl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZGVmZXJzTG9hZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJu
YWwocmVxdWVzdCwgY2xpZW50KSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50
ZXJuYWwocmVxdWVzdCwgY2xpZW50LCBjb250ZXh0KSkpCiB7CiAgICAgZC0+c2V0T3duZXIodGhp
cyk7CiAKQEAgLTE5MSw5ICsxODksOSBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKLSAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNM
b2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBk
ZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsKIAotICAgIGlmIChu
ZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAg
ICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0y
MDQsNiArMjAyLDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVx
dWVzdCgpCiAgICAgcmV0dXJuIGQtPnJlcXVlc3QoKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQq
IFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+Y29udGV4
dCgpOworfQorCiBSZXNvdXJjZUhhbmRsZUNsaWVudCogUmVzb3VyY2VIYW5kbGU6OmNsaWVudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPmNsaWVudCgpOwpAQCAtMjE5LDkgKzIyMiw5IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5z
ZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+Y29udGV4dCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAppbmRleCA5ZWVmZWU4YjIwNTUxYmUyOTQxMzdkMTQ5MmM4ZGQzMDVmYzY1MWEzLi5k
YzUxMWU1ZWVhOGVlZmY4ZjE3YjlmZDI0MjRhM2NlNjMxNGNmZDllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzgsMTIgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZTsK
IGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsIDogcHVibGljIFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50Kik7CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkgeyB9CiAKQEAgLTc4LDYgKzc5LDcg
QEAgcHVibGljOgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVSTExvYWRl
ciogbG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQog
CiAgICAgc3RhdGljIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhhbmRsZShS
ZXNvdXJjZUhhbmRsZSopOwogCkBAIC05MCw2ICs5Miw4IEBAIHByaXZhdGU6CiAgICAgLy8gVXNl
ZCBmb3Igc2FuaXR5IGNoZWNraW5nIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBleHBlcmllbmNlIGls
bGVnYWwgc3RhdGUKICAgICAvLyB0cmFuc2l0aW9ucy4KICAgICBDb25uZWN0aW9uU3RhdGUgbV9z
dGF0ZTsKKworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCAxZDQyYTVi
MDRjM2E1MTMxZmFiMTQyMjlkZDJkMTFjZjYzMTM4YjkxLi45ZGJiYWEzZjY2NTkxMjMwYzJmZjJl
Mzk4YmZmNWY4ZTZjOWJmZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtOTYsMTQgKzk2
LDE0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwog
fQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291
bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55
CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAv
LyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28g
bGV0J3MganVzdCBibG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBh
Z2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYm
ICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250
ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFu
ZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50
aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNM
b2FkZXI7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcg
UmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAg
UmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5k
bGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBjb250ZXh0KSk7CiAKICAgICBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXIqIG1hbmFnZXIgPSBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNo
YXJlZEluc3RhbmNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggYzBiOGQzYWI3OGRkMTY0MTlh
YTA5ZjUzZDJjODhkNjdiYzAzMTRjMi4uMDRjZjI0MTZmMmFjZGE0NjM0YjllZjFjYTM3NDVlMDU3
YjlmZTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTIxOCwxOSArMjE4LDE5IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsCiAKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0g
ICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBJZiBO
ZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hl
ZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRl
eHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdl
U2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24o
KTsKIAogICAgIEFTU0VSVCghZC0+bV9wcm94eSk7CiAgICAgZC0+bV9wcm94eS5hZG9wdE5TKHdr
Q3JlYXRlTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSgpKTsKQEAgLTIzOCwxNiArMjM4LDE2
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBj
bGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBkLT5tX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZC0+bV9jb250ZXh0LT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAg
ICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwKLSAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZp
cnN0UmVxdWVzdCgpLnVybCgpKSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwg
Y29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RS
ZXF1ZXN0KCkudXJsKCkpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5t
X2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBib29s
IHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gZC0+bV9jb250ZXh0LT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWly
SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5z
UnVuTG9vcCgpKSB7CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBjb250ZXh0LT5zY2hlZHVsZWRP
cGVyYXRpb25RdWV1ZSgpKSB7CisgICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1
ZXVlID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CiAgICAgICAg
IEFTU0VSVCghc2NoZWR1bGVkKTsKICAgICAgICAgW2Nvbm5lY3Rpb24oKSBzZXREZWxlZ2F0ZVF1
ZXVlOm9wZXJhdGlvblF1ZXVlXTsKICAgICAgICAgc2NoZWR1bGVkID0gdHJ1ZTsKQEAgLTM4MSw3
ICszODEsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNs
aWVudDo6Y3JlYXRlKCk7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0
b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3Vs
ZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAv
KmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovLCBjb250ZXh0KSk7
CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vz
c2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC02NjgsNyArNjY4LDcgQEAgLSAoTlNVUkxS
ZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2Vu
ZFJlcXVlc3Q6KE5TVVIKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7
CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBh
IHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJs
KCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVy
KCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9oYW5k
bGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBtX2hh
bmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcAppbmRleCAwYjY0Yjc5YmE0NDllYTQ3ODJhYzcwZmU5MzAwZWQxMmIzNGJj
YjA4Li5kNTg2NzUyYWJhNWVmNzAyMzU5MzEwOWY2YmE5ZGIwZDUxZmUwYzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiByZWRp
CiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0
IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1z
ZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAg
aWYgKCFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhu
ZXdSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBtX3Jlc291cmNlSGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgY2xpZW50
LT53aWxsU2VuZFJlcXVlc3QobV9yZXNvdXJjZUhhbmRsZSwgbmV3UmVxdWVzdCwgcmVzcG9uc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAKaW5kZXggMTM3NTFlYjY1ZDdmMzNmYzk3YmMyMzRhNjgyNjYxNzhiNDJh
YjYxYS4uMTVmNWI4MmIwYTZkNjE0NTMwYmNkZGQyMzAxYmE2OGIyYzk5MGQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxl
UXQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRs
ZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkK
IHsKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5v
IGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
ZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNF
bXB0eSgpKSB7CkBAIC0xMDYsNyArMTA2LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNl
dFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldElu
dGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywg
UU5ldHdvcmtSZXBseUhhbmRsZXI6OkFzeW5jaHJvbm91c0xvYWQsIGQtPm1fZGVmZXJzTG9hZGlu
Zyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QKICAgICB9CiAjZW5kaWYKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3lu
Y0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9h
ZGVyLCB0cnVlLCBmYWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSwgY29udGV4dCkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fdXNlci5pc0VtcHR5KCkgfHwgIWQtPm1f
cGFzcy5pc0VtcHR5KCkpIHsKQEAgLTE0NSw3ICsxNDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdAogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAg
ICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9
Ci0gICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIC8vIHN0YXJ0aW5nIGluIGRlZmVy
cmVkIG1vZGUgZ2l2ZXMgZC0+bV9qb2IgdGhlIGNoYW5jZSBvZiBiZWluZyBzZXQgYmVmb3JlIHNl
bmRpbmcgdGhlIHJlcXVlc3QuCiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6U3luY2hyb25vdXNMb2FkLCB0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYzdhYzAzNDU4MTU5MzE5MzZjODE5NjU1
MGI5MmYyZTI3NTg3MmY5My4uOGQyODY2NjQ1Y2M2NjBhZWQ4ZmQxMTMyY2ViNjZhZmU2NjBlMjdi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgdm9p
ZCBkb1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgfQogCiAgICAgLy8gU2hv
dWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3Vy
Y2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMi
KSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlm
ICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZl
cnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFy
SFRUUFJlZmVycmVyKCk7CiAKICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNlcigpOwpAQCAtMTAw
MCw3ICsxMDAwLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9y
SGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKCFkLT5tX3Nv
dXBNZXNzYWdlKTsKIApAQCAtMTAwOSwxMiArMTAwOSw5IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIC8vIElmIHRoZSBmcmFtZSBp
cyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
CiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwg
dGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFs
aWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQgdGhlIGtlZXAgdHJh
Y2sgb2YgY3VzdG9tIFNvdXBTZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBwb3J0IGl0IChFRkwp
LgotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5IGFsbG93IHRoZSBQ
T1NUIGFuZCBHRVQgbWV0aG9kcyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAgICAgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAgYm9vbCBpc0hUVFBG
YW1pbHlSZXF1ZXN0ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBA
IC0xMDMwLDcgKzEwMjcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0
U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291
cFJlcXVlc3QuZ2V0KCksIGNvbnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1Bh
Z2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2Nv
bnRleHQuZ2V0KCkpOwogCiAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90
IGJlZW4gZXhwbGljaXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291
cmNlSGFuZGxlV2luLmNwcAppbmRleCA4YTFkMTk5YWUxNGVlYzlhMzhhNjNkODZlMDQwOTU4NDk3
ZDI3OTNkLi41OTBlYjMxMjNlMGE5ZDVlZGM0MTI1MzQ1MTZkMWQxNTc3NjZiYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6b25S
ZXF1ZXN0Q29tcGxldGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydCgpCiB7CiAgICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxl
KCkgfHwgZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgpAQCAtMjc3LDcgKzI3
Nyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0KQogICAgIH0KIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKLSAgICAgICAgZC0+
bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGNvbnRleHQtPnVz
ZXJBZ2VudCgpKTsKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0lu
dGVybmV0SGFuZGxlKGQtPm1fY29udGV4dC0+dXNlckFnZW50KCkpOwogCiAgICAgaWYgKCFkLT5t
X2ludGVybmV0SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MTksMTAgKzQxOSwx
MCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVk
ZW50aWFscyk7CiAKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJv
ciwgcmVzcG9uc2UsIGRhdGEsIHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpKTsKLSAgICBSZXNvdXJj
ZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBj
b250ZXh0KTsKIAogICAgIGhhbmRsZS5zZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKHN5bmNM
b2FkZXIuaW50ZXJuZXRIYW5kbGUoKSk7Ci0gICAgaGFuZGxlLnN0YXJ0KGNvbnRleHQpOworICAg
IGhhbmRsZS5zdGFydCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRTeW5jaHJvbm91
c0ludGVybmV0SGFuZGxlKEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwN2VmMzQ0
NDUwYzk4MDIyY2I3ODk4OGFhMjU0MjFjZjZkZmI2NzY1Li4yMjUwMDQwYzQ4MTVmNjFmNjI3YjFi
MzUyOTBiY2VjNGVjZmZiMDhjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTMtMDEtMTQgIE1h
cmphIEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJy
ZXIgcG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisg
ICAgICAgIE9uIHdrMiwgdGhlIHRlc3Qgc3RpbGwgZmFpbHMsIGFzIGl0IHJlcXVpcmVzIEhUVFBT
IHN1cHBvcnQKKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3Jt
L3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMt
MDEtMTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFwcGxlLmNvbT4KIAogICAgICAgICBXZWIg
SW5zcGVjdG9yOiBPcHRpb24rQ2xpY2sgb24gTm9kZSBFeHBhbmRlciBEb2Vzbid0IFdvcmsgdGhl
IEZpcnN0IFRpbWUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggODRiMWVjMWRlNjM1OTEyYWNjMmFmYmUzNmM0NjEyNGE5NmFjOTdlNi4uMmVhYWI0YmFiM2Zi
NDUzMTg3NzBiMTBmNGZhMmU4ZGY3MWZiMThlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyMDYsOSArMTIwNiw2IEBAIHdlYmtpdC5vcmcvYi84NTY4
OSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sIFsg
U2tpcCBdCiAjIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjQ3Mwog
d2Via2l0Lm9yZy9iLzg1OTY5IGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlmcmFtZS13aXRo
LWJhY2stbmF2aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgU3RhcnRlZCBmYWlsaW5nIGFm
dGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NTYzCi13ZWJraXQub3JnL2IvODYwNjEgaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sIFsgRmFpbHVyZSBd
Ci0KIHdlYmtpdC5vcmcvYi84NTMwOCBbIFJlbGVhc2UgXSBpZXRlc3RjZW50ZXIvY3NzMy92YWx1
ZXNhbmR1bml0cy91bml0cy0wMDAuaHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvODUzMTAgaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDEwLmh0bSBb
IEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDU5YzExODk3MWJkOWFjMTA1Zjg1MTZkZjRhY2YyMDI5ZDkyNmI4ZGQuLmMx
YjMyZTk3ZTM1MjhhNTM0Y2M0YmE1ZGQ4YTFiNmRlYmU5ZjZlNWMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC03NTcsOSArNzU3LDYgQEAgbWVkaWEvdmlk
ZW8tcGxheWVkLXJlc2V0Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1OTY5CiBodHRwL3Rlc3RzL2xvYWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNr
LW5hdmlnYXRpb24uaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3Qt
bGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3VwcG9ydHMgZXZhbHVhdGlvbiBpbiBjb250
ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwt
Y29udGVudC1zY3JpcHQuaHRtbAogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRp
dHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZjUzZDRkZjY1OTI2MDkxMWE3OGU4MDQ4YTIzMmNmMTFlNGMyYjM5MC4uZjc4
MTJlODFiNzUwNGNiOTI2MGY5ZWNkYzI3NGYxOTU5ZDkxNTY0OCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODE1LDkgKzE4MTUsNiBAQCBmYXN0L3htbGh0
dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW5vbmV4aXN0ZW50LWZpbGUuaHRtbAogc2VjdXJpdHkv
YmxvY2stdGVzdC1uby1wb3J0Lmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3QuaHRtbAogCi0jIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0gIwogIyBmYWlsaW5nIHRhYmxlcyB0ZXN0cwogIyA9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PSAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0
aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGNh
OTgxYTgyNzczMTNiZDM3OWM4YzJhMWU1ODEyZjk0YzMyN2Q2MDUuLmE3ODFkMzlmMjEyOGFkOWRk
MWE1M2E2OTBjMzNlZTk1ZThlY2FiNTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCkBAIC0xODA4LDkgKzE4MDgsNiBAQCBpbnNwZWN0b3Ivc3R5bGVzL292ZXJy
aWRlLXNjcmVlbi1zaXplLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg1Njg5CiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNh
YmxlZC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2
MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0
bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9uIGluIGNvbnRlbnQgc2Ny
aXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50
LXNjcmlwdC5odG1sIAogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29u
dGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAyNWRkOGFlMDAxM2M4OTgyYjNmMzdhODljNmU3YWIyOGY4Yjk2NTRjLi5iZDY3MmYw
MjkxZDRjZGZhNDJmMWQwOTRlNzgzZmE4NDZmNWQ4YTQ5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzE3LDYgKzMxNyw3IEBAIGh0dHAvdGVzdHMvY2Fj
aGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0
bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy5odG1s
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4uaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbAoraHR0cC90
ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKIApAQCAtMzM4LDEx
ICszMzksNiBAQCBmYXN0L3NlbGVjdG9ycy9zZWxlY3Rpb24td2luZG93LWluYWN0aXZlLmh0bWwK
ICMgYXV0b1pvb21QYWdlVG9GaXRXaWR0aCgpLgogaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1z
Y3JlZW4tc2l6ZS5odG1sCiAKLSMgVGhlIG5ldHdvcmsgc3RhY2sgdW5jb25kaXRpb25hbGx5IHN0
cmlwcyB0aGUgaGVhZGVyIG9uIHRyYW5zaXRpb25zIGZyb20KLSMgc2VjdXJlIHRvIGluc2VjdXJl
LiBJdCBzaG91bGQgdGFrZSB0aGUgcmVmZXJyZXIgcG9saWN5IGludG8gYWNjb3VudCBpbnN0ZWFk
LgotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAv
dGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIGNz
czMtY29uZGl0aW9uYWxzIHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9i
Lzg2MTQ2IGNzczMvc3VwcG9ydHMuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182573</attachid>
            <date>2013-01-14 07:23:42 -0800</date>
            <delta_ts>2013-01-15 01:46:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130114162042.patch</filename>
            <type>text/plain</type>
            <size>37045</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMDcxMmJkMmM2NWU4MWE4OTNmNTkwMzQ1MTFlZTY2
YjJhZTNkYTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJS
ZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCk6CisgICAgICAgIChGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNv
dXJjZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVm
ZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAgICAoTmV0d29ya2luZ0Nv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6Y29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpy
ZWRpcmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRvUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5vZGUg
RXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA3ZjA4ODAxY2I1YzNlNzQ0NTlh
YzhmOGY0OThkZTM5ZTNjNmE2ZGJhLi5hMTU2NDc5YTNkMGU1MGFkNWUxYjVmMjYyMjA5OTFmMjll
MGUxYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTIwLDggKzIwLDEwIEBACiAjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRf
aAogI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzIsNiArMzQsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gMDsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQ7CisgICAgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUp
CiAgICAgICAgIDogbV9mcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAppbmRleCBjODJiNDZjNjA4N2Zm
OTYxMjU3OTk4YTU0YWVmNWVlNmU2YWJjZDM2Li5hMGZiNWY3ODZkNzU5MTliNzEzZDg5NGQ3ZDA5
YjgzNGUxMjUyZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC0xNDIsNyArMTQxLDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoUGFzc1JlZlB0cjxCbG9iU3RvcmFnZURhdGE+IGIK
IH0KIAogQmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUoUGFzc1JlZlB0cjxC
bG9iU3RvcmFnZURhdGE+IGJsb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgYXN5bmMpCi0gICAgOiBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKKyAgICA6IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlLCAwKQogICAgICwgbV9ibG9iRGF0YShi
bG9iRGF0YSkKICAgICAsIG1fYXN5bmMoYXN5bmMpCiAgICAgLCBtX2Vycm9yQ29kZSgwKQpAQCAt
NjM2LDQgKzYzNSwzIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEJMT0IpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCA4NDFmN2VjZmUzZGQ3YWI3NmUwMzgyYmUwOTcxZmU5OTc3NmFiN2VjLi42NGJmYzA5MmQ3
Y2I2Yjc1OWEzMjEwZTlhNDZjMTM3YzkwZTk5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC02NSw2ICs2NSw4IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBz
VG9IdHRwUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKICAgICAvLyBGSVhNRTogV3JhcCBXZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNyb3NzLXBsYXRmb3JtLgogICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUphcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
NTdlZWZlZGM0NTE1OTA0MGNiN2FmZDRkMzBkNTZhNWUxYTlmZTNiMy4uOWFlNWVhZmY1MDM1ZjFh
MmJhZmQ3NDc3YjQ5Njg2MjAwZjE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUzLDggKzUzLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm90b2NvbCwgUmUKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1h
cCgpLmFkZChwcm90b2NvbCwgY29uc3RydWN0b3IpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCBy
ZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91
bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwo
KSksIGNvbnRleHQpKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CkBAIC03NCwxMiArNzQs
MTIgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY28KICAgICBpZiAocHJvdG9jb2xNYXBJdGVtICE9
IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiBwcm90b2NvbE1hcEl0ZW0tPnZhbHVlKHJlcXVlc3QsIGNsaWVudCk7CiAKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBjb250ZXh0KSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwog
Ci0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+
c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1
cm4gMDsKQEAgLTEyOCw2ICsxMjgsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRs
ZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+bV9maXJzdFJlcXVlc3Q7CiB9CiAKK05l
dHdvcmtpbmdDb250ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPm1fY29udGV4dC5nZXQoKTsKK30KKwogY29uc3QgU3RyaW5nJiBSZXNvdXJjZUhh
bmRsZTo6bGFzdEhUVFBNZXRob2QoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX2xhc3RIVFRQ
TWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCmluZGV4IDQxYmEzODg4MWIyZGEzOTY1MTAwZDk0ZjlmMzU0ZWI3OTE4MDAxYjUuLjZh
YmRiOTJlZmUzNjRmZTQyOTQyM2Q4OTFmY2NhODlkYmU3ZjliZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE5OSw2ICsxOTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVGYWlsdXJlKFRpbWVyPFJlc291cmNlSGFuZGxl
PiopOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKKwogICAgIHVz
aW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxSZXNvdXJjZUhhbmRsZT46OmRlcmVmOwogCkBAIC0yMTQsNyArMjE2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5Db25zdHJ1Y3Rvcik7CiAKIHByb3RlY3RlZDoKLSAgICBS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTmV0d29ya2lu
Z0NvbnRleHQqKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIEZhaWx1cmVUeXBlIHsKQEAgLTIyNyw3
ICsyMjksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5
cGUpOwogCi0gICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOworICAgIGJvb2wgc3Rh
cnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCBiODQ5NTZiYTQyY2FhMzRiZTcxMDc3MTcxZTIy
YjA5Y2QzZmM0NGIyLi5lMDBmYmZjZDQ1OTkwMThlMWRlNTc4ODFmMWJkMjUyNWNkZTBkODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaApAQCAtODMsMTMgKzgzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhh
bmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KQorICAgICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgICAgICAgICAgOiBtX2NsaWVudChjKQogICAgICAgICAgICAg
LCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAgICAgLCBtX2xhc3RIVFRQTWV0aG9k
KHJlcXVlc3QuaHR0cE1ldGhvZCgpKQogICAgICAgICAgICAgLCBzdGF0dXMoMCkKICAgICAgICAg
ICAgICwgbV9kZWZlcnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICAsIG1fc2hv
dWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiAjaWYgVVNFKENGTkVUV09SSykKICAgICAgICAgICAgICwgbV9jb25uZWN0
aW9uKDApCiAjZW5kaWYKQEAgLTE1Miw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDb250
ZW50U25pZmY7CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0Owog
I2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+
IG1fY29ubmVjdGlvbjsKICNlbmRpZgpAQCAtMjAyLDcgKzIwNCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9i
b2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRhU2VudDsKLSAgICAgICAg
UmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRpcmVjdENvdW50OwogI2VuZGlmCkBA
IC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUmVm
UHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXgg
YWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVhODkyMS4uMGMyNjEzOTEyMzM3NmI1
ZjRhMmY4NTI2Mzg0YjVmNzZiNDIzODBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQogICAgIE5ldHdv
cmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2FkaW5nKHRoaXMsIGRlZmVyc0xvYWRp
bmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dCB8fCAhZC0+
bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJ
WE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQgd2UgaGF2ZSBOZXR3b3JraW5nQ29u
dGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKICAgICBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsK
ICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQsIGhhbmRs
ZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29uc3QgZG91YmxlIHN5bmNMb2FkVGlt
ZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA3NjE2NzViNDI2
NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi45NmFkYzM4MWM4OWY5NmQxYzY4NzU3YWZk
ZTM2YTQ4MWExODljZDQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE4NCw3ICsxODQsNyBA
QCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTENvbm5lY3Rpb25S
ZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJlcXVlc3QgPSBjZlJlcXVlc3Q7CiAK
ICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNl
Y3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCku
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCks
ICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYm
IHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgaGFuZGxlLT53
aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTQ5NiwxNCAr
NDk2LDE0IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+bV9jb25uZWN0aW9uLmFk
b3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwgY29u
bmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFk
LT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+
bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CkBAIC05MjQsNCArOTI0LDMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0
YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBmNWU3Y2JlZDM3YWUwYzg5ZTRiMGM4
NTE3YzViM2U4YjNjMGZiY2ZkLi5lZTNkMDg0NGFiYTIwOWI3ODllMWZlYTFhZGQ5YzQ4ZWYyZTFm
NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVt
L1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTIsMTEgKzUyLDEyIEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KLVJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
KQorUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIDogbV9yZXF1ZXN0KHJlcXVlc3QpCiAgICAg
LCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3N0YXRlKENvbm5l
Y3Rpb25TdGF0ZU5ldykKKyAgICAsIG1fY29udGV4dChjb250ZXh0KQogewogfQogCkBAIC0xNzMs
MTEgKzE3NCw4IEBAIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OkZyb21SZXNvdXJjZUhhbmRsZShSZXNvdXJjZUhhbmRsCiAKIC8vIFJlc291cmNlSGFuZGxl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZGVmZXJzTG9hZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJu
YWwocmVxdWVzdCwgY2xpZW50KSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmLCBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50
ZXJuYWwocmVxdWVzdCwgY2xpZW50LCBjb250ZXh0KSkpCiB7CiAgICAgZC0+c2V0T3duZXIodGhp
cyk7CiAKQEAgLTE5MSw5ICsxODksOSBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKLSAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNM
b2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBk
ZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsKIAotICAgIGlmIChu
ZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAg
ICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0y
MDQsNiArMjAyLDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVx
dWVzdCgpCiAgICAgcmV0dXJuIGQtPnJlcXVlc3QoKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQq
IFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+Y29udGV4
dCgpOworfQorCiBSZXNvdXJjZUhhbmRsZUNsaWVudCogUmVzb3VyY2VIYW5kbGU6OmNsaWVudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPmNsaWVudCgpOwpAQCAtMjE5LDkgKzIyMiw5IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5z
ZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+Y29udGV4dCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAppbmRleCA5ZWVmZWU4YjIwNTUxYmUyOTQxMzdkMTQ5MmM4ZGQzMDVmYzY1MWEzLi5k
YzUxMWU1ZWVhOGVlZmY4ZjE3YjlmZDI0MjRhM2NlNjMxNGNmZDllIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzgsMTIgKzM4LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZTsK
IGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsIDogcHVibGljIFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50Kik7CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJl
cXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIE5ldHdvcmtpbmdDb250ZXh0Kik7CiAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkgeyB9CiAKQEAgLTc4LDYgKzc5LDcg
QEAgcHVibGljOgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJl
dHVybiBtX2NsaWVudDsgfQogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50
KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVSTExvYWRl
ciogbG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQog
CiAgICAgc3RhdGljIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhhbmRsZShS
ZXNvdXJjZUhhbmRsZSopOwogCkBAIC05MCw2ICs5Miw4IEBAIHByaXZhdGU6CiAgICAgLy8gVXNl
ZCBmb3Igc2FuaXR5IGNoZWNraW5nIHRvIG1ha2Ugc3VyZSB3ZSBkb24ndCBleHBlcmllbmNlIGls
bGVnYWwgc3RhdGUKICAgICAvLyB0cmFuc2l0aW9ucy4KICAgICBDb25uZWN0aW9uU3RhdGUgbV9z
dGF0ZTsKKworICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCAxZDQyYTVi
MDRjM2E1MTMxZmFiMTQyMjlkZDJkMTFjZjYzMTM4YjkxLi45ZGJiYWEzZjY2NTkxMjMwYzJmZjJl
Mzk4YmZmNWY4ZTZjOWJmZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtOTYsMTQgKzk2
LDE0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwog
fQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291
bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55
CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAv
LyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0
IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28g
bGV0J3MganVzdCBibG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBh
Z2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYm
ICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250
ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFu
ZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTc1LDcgKzE3NSw3
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiB2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50
aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBW
ZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNM
b2FkZXI7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcg
UmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAg
UmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5k
bGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBjb250ZXh0KSk7CiAKICAgICBS
ZXNvdXJjZUhhbmRsZU1hbmFnZXIqIG1hbmFnZXIgPSBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNo
YXJlZEluc3RhbmNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggYzBiOGQzYWI3OGRkMTY0MTlh
YTA5ZjUzZDJjODhkNjdiYzAzMTRjMi4uMDRjZjI0MTZmMmFjZGE0NjM0YjllZjFjYTM3NDVlMDU3
YjlmZTlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMv
UmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTIxOCwxOSArMjE4LDE5IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsCiAKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0g
ICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBJZiBO
ZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hl
ZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20g
YW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYg
KCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRl
eHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdl
U2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24o
KTsKIAogICAgIEFTU0VSVCghZC0+bV9wcm94eSk7CiAgICAgZC0+bV9wcm94eS5hZG9wdE5TKHdr
Q3JlYXRlTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSgpKTsKQEAgLTIzOCwxNiArMjM4LDE2
IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBj
bGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBkLT5tX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mo
KTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZC0+bV9jb250ZXh0LT5uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAg
ICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFn
ZSwKLSAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZp
cnN0UmVxdWVzdCgpLnVybCgpKSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwg
Y29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgc2hv
dWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RS
ZXF1ZXN0KCkudXJsKCkpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5t
X2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBib29s
IHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVs
ZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNj
aGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gZC0+bV9jb250ZXh0LT5zY2hlZHVs
ZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRv
ciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWly
SGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5k
OyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5z
UnVuTG9vcCgpKSB7CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBjb250ZXh0LT5zY2hlZHVsZWRP
cGVyYXRpb25RdWV1ZSgpKSB7CisgICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1
ZXVlID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CiAgICAgICAg
IEFTU0VSVCghc2NoZWR1bGVkKTsKICAgICAgICAgW2Nvbm5lY3Rpb24oKSBzZXREZWxlZ2F0ZVF1
ZXVlOm9wZXJhdGlvblF1ZXVlXTsKICAgICAgICAgc2NoZWR1bGVkID0gdHJ1ZTsKQEAgLTM4MSw3
ICszODEsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNs
aWVudDo6Y3JlYXRlKCk7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0
b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3Vs
ZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAv
KmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovLCBjb250ZXh0KSk7
CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vz
c2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC02NjgsNyArNjY4LDcgQEAgLSAoTlNVUkxS
ZXF1ZXN0ICopY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29ubmVjdGlvbiB3aWxsU2Vu
ZFJlcXVlc3Q6KE5TVVIKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7
CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBh
IHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJs
KCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVy
KCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9oYW5k
bGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBtX2hh
bmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcAppbmRleCAwYjY0Yjc5YmE0NDllYTQ3ODJhYzcwZmU5MzAwZWQxMmIzNGJj
YjA4Li5kNTg2NzUyYWJhNWVmNzAyMzU5MzEwOWY2YmE5ZGIwZDUxZmUwYzBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVw
bHlIYW5kbGVyLmNwcApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiByZWRp
CiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0
IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1z
ZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAg
aWYgKCFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhu
ZXdSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBtX3Jlc291cmNlSGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgY2xpZW50
LT53aWxsU2VuZFJlcXVlc3QobV9yZXNvdXJjZUhhbmRsZSwgbmV3UmVxdWVzdCwgcmVzcG9uc2Up
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJj
ZUhhbmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAKaW5kZXggMTM3NTFlYjY1ZDdmMzNmYzk3YmMyMzRhNjgyNjYxNzhiNDJh
YjYxYS4uMTVmNWI4MmIwYTZkNjE0NTMwYmNkZGQyMzAxYmE2OGIyYzk5MGQwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxl
UXQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRs
ZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkK
IHsKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5v
IGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxv
Y2sgaXQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
ZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNF
bXB0eSgpKSB7CkBAIC0xMDYsNyArMTA2LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNl
dFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1f
Y29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldElu
dGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywg
UU5ldHdvcmtSZXBseUhhbmRsZXI6OkFzeW5jaHJvbm91c0xvYWQsIGQtPm1fZGVmZXJzTG9hZGlu
Zyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QKICAgICB9CiAjZW5kaWYKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3lu
Y0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9h
ZGVyLCB0cnVlLCBmYWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSwgY29udGV4dCkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRs
ZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fdXNlci5pc0VtcHR5KCkgfHwgIWQtPm1f
cGFzcy5pc0VtcHR5KCkpIHsKQEAgLTE0NSw3ICsxNDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxl
Ojpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdAogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAg
ICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9
Ci0gICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIC8vIHN0YXJ0aW5nIGluIGRlZmVy
cmVkIG1vZGUgZ2l2ZXMgZC0+bV9qb2IgdGhlIGNoYW5jZSBvZiBiZWluZyBzZXQgYmVmb3JlIHNl
bmRpbmcgdGhlIHJlcXVlc3QuCiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRs
ZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6U3luY2hyb25vdXNMb2FkLCB0
cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggYzdhYzAzNDU4MTU5MzE5MzZjODE5NjU1
MGI5MmYyZTI3NTg3MmY5My4uOGQyODY2NjQ1Y2M2NjBhZWQ4ZmQxMTMyY2ViNjZhZmU2NjBlMjdi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291
cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9z
b3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzdGF0aWMgdm9p
ZCBkb1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgfQogCiAgICAgLy8gU2hv
dWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3Vy
Y2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMi
KSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlm
ICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBS
ZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZl
cnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFy
SFRUUFJlZmVycmVyKCk7CiAKICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNlcigpOwpAQCAtMTAw
MCw3ICsxMDAwLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9y
SGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKCFkLT5tX3Nv
dXBNZXNzYWdlKTsKIApAQCAtMTAwOSwxMiArMTAwOSw5IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIC8vIElmIHRoZSBmcmFtZSBp
cyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVk
CiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwg
dGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFs
aWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQgdGhlIGtlZXAgdHJh
Y2sgb2YgY3VzdG9tIFNvdXBTZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBwb3J0IGl0IChFRkwp
LgotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5IGFsbG93IHRoZSBQ
T1NUIGFuZCBHRVQgbWV0aG9kcyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAgICAgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAgYm9vbCBpc0hUVFBG
YW1pbHlSZXF1ZXN0ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBA
IC0xMDMwLDcgKzEwMjcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0
U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291
cFJlcXVlc3QuZ2V0KCksIGNvbnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1Bh
Z2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2Nv
bnRleHQuZ2V0KCkpOwogCiAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90
IGJlZW4gZXhwbGljaXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNl
SGFuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291
cmNlSGFuZGxlV2luLmNwcAppbmRleCA4YTFkMTk5YWUxNGVlYzlhMzhhNjNkODZlMDQwOTU4NDk3
ZDI3OTNkLi41OTBlYjMxMjNlMGE5ZDVlZGM0MTI1MzQ1MTZkMWQxNTc3NjZiYjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdp
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VI
YW5kbGVXaW4uY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6b25S
ZXF1ZXN0Q29tcGxldGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydCgpCiB7CiAgICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxl
KCkgfHwgZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICBy
ZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgpAQCAtMjc3LDcgKzI3
Nyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0KQogICAgIH0KIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKLSAgICAgICAgZC0+
bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGNvbnRleHQtPnVz
ZXJBZ2VudCgpKTsKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0lu
dGVybmV0SGFuZGxlKGQtPm1fY29udGV4dC0+dXNlckFnZW50KCkpOwogCiAgICAgaWYgKCFkLT5t
X2ludGVybmV0SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MTksMTAgKzQxOSwx
MCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVk
ZW50aWFscyk7CiAKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJv
ciwgcmVzcG9uc2UsIGRhdGEsIHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpKTsKLSAgICBSZXNvdXJj
ZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKTsKKyAgICBS
ZXNvdXJjZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBj
b250ZXh0KTsKIAogICAgIGhhbmRsZS5zZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKHN5bmNM
b2FkZXIuaW50ZXJuZXRIYW5kbGUoKSk7Ci0gICAgaGFuZGxlLnN0YXJ0KGNvbnRleHQpOworICAg
IGhhbmRsZS5zdGFydCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRTeW5jaHJvbm91
c0ludGVybmV0SGFuZGxlKEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwN2VmMzQ0
NDUwYzk4MDIyY2I3ODk4OGFhMjU0MjFjZjZkZmI2NzY1Li4wOGNmZWJiM2EwMTk5NGY2MGE2ODQ2
ZjYwOGZjYjc0ODRjYjVhY2Q4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDEtMTQgIE1h
cmphIEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJy
ZXIgcG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisg
ICAgICAgIFNraXBwaW5nIHRoZSB0ZXN0cyBvbiB3azIsIGJlY2F1c2Ugb3RoZXIgcmVmZXJyZXIg
cG9saWN5IHRlc3RzIGFyZQorICAgICAgICBza2lwcGVkLCB0b28gKCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTMgKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDEtMTEgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQGFw
cGxlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBPcHRpb24rQ2xpY2sgb24gTm9kZSBF
eHBhbmRlciBEb2Vzbid0IFdvcmsgdGhlIEZpcnN0IFRpbWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggODRiMWVjMWRlNjM1OTEyYWNjMmFmYmUzNmM0NjEy
NGE5NmFjOTdlNi4uMmVhYWI0YmFiM2ZiNDUzMTg3NzBiMTBmNGZhMmU4ZGY3MWZiMThlNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyMDYsOSArMTIw
Niw2IEBAIHdlYmtpdC5vcmcvYi84NTY4OSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlv
bi1mcmFtZS1kaXNhYmxlZC5odG1sIFsgU2tpcCBdCiAjIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBp
dCB3YXMgYWRkZWQgaW4gcjExNjQ3Mwogd2Via2l0Lm9yZy9iLzg1OTY5IGh0dHAvdGVzdHMvbG9h
ZGluZy9wb3N0LWluLWlmcmFtZS13aXRoLWJhY2stbmF2aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBd
CiAKLSMgU3RhcnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NTYzCi13ZWJr
aXQub3JnL2IvODYwNjEgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84NTMwOCBbIFJlbGVhc2Ug
XSBpZXRlc3RjZW50ZXIvY3NzMy92YWx1ZXNhbmR1bml0cy91bml0cy0wMDAuaHRtIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvODUzMTAgaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVz
YW5kdW5pdHMvdW5pdHMtMDEwLmh0bSBbIEltYWdlT25seUZhaWx1cmUgXQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDU5YzExODk3MWJkOWFjMTA1Zjg1
MTZkZjRhY2YyMDI5ZDkyNmI4ZGQuLmMxYjMyZTk3ZTM1MjhhNTM0Y2M0YmE1ZGQ4YTFiNmRlYmU5
ZjZlNWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC03
NTcsOSArNzU3LDYgQEAgbWVkaWEvdmlkZW8tcGxheWVkLXJlc2V0Lmh0bWwKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTY5CiBodHRwL3Rlc3RzL2xvYWRpbmcv
cG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbAogCi0jIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3Vw
cG9ydHMgZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbAogaW5zcGVjdG9yL2V4
dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjUzZDRkZjY1OTI2MDkxMWE3OGU4
MDQ4YTIzMmNmMTFlNGMyYjM5MC4uZjc4MTJlODFiNzUwNGNiOTI2MGY5ZWNkYzI3NGYxOTU5ZDkx
NTY0OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODE1
LDkgKzE4MTUsNiBAQCBmYXN0L3htbGh0dHByZXF1ZXN0L3htbGh0dHByZXF1ZXN0LW5vbmV4aXN0
ZW50LWZpbGUuaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwKIHNlY3VyaXR5
L2Jsb2NrLXRlc3QuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3Qt
bGluay5odG1sCi0KICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBmYWlsaW5nIHRhYmxlcyB0
ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGNhOTgxYTgyNzczMTNiZDM3OWM4YzJhMWU1ODEyZjk0YzMy
N2Q2MDUuLmE3ODFkMzlmMjEyOGFkOWRkMWE1M2E2OTBjMzNlZTk1ZThlY2FiNTcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODA4LDkgKzE4MDgsNiBA
QCBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1Njg5CiBmYXN0L2FuaW1hdGlvbi9yZXF1
ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBl
dmFsdWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sIAogaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNWRkOGFlMDAxM2M4OTgyYjNmMzdhODlj
NmU3YWIyOGY4Yjk2NTRjLi5iZDY3MmYwMjkxZDRjZGZhNDJmMWQwOTRlNzgzZmE4NDZmNWQ4YTQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzE3LDYg
KzMxNyw3IEBAIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJj
ZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LWh0dHBzLWFsd2F5cy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1odHRwcy1vcmlnaW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktcmVkaXJlY3QuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVk
aXJlY3QtbGluay5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRw
cy1uZXZlci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1k
ZWZhdWx0Lmh0bWwKIApAQCAtMzM4LDExICszMzksNiBAQCBmYXN0L3NlbGVjdG9ycy9zZWxlY3Rp
b24td2luZG93LWluYWN0aXZlLmh0bWwKICMgYXV0b1pvb21QYWdlVG9GaXRXaWR0aCgpLgogaW5z
cGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAKLSMgVGhlIG5ldHdvcmsg
c3RhY2sgdW5jb25kaXRpb25hbGx5IHN0cmlwcyB0aGUgaGVhZGVyIG9uIHRyYW5zaXRpb25zIGZy
b20KLSMgc2VjdXJlIHRvIGluc2VjdXJlLiBJdCBzaG91bGQgdGFrZSB0aGUgcmVmZXJyZXIgcG9s
aWN5IGludG8gYWNjb3VudCBpbnN0ZWFkLgotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJl
ZGlyZWN0LWxpbmsuaHRtbAotCiAjIGNzczMtY29uZGl0aW9uYWxzIHN1cHBvcnQgaXMgbm90IHll
dCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg2MTQ2IGNzczMvc3VwcG9ydHMuaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>182719</attachid>
            <date>2013-01-15 01:46:27 -0800</date>
            <delta_ts>2013-02-05 00:23:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130115104326.patch</filename>
            <type>text/plain</type>
            <size>38303</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM5NDI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGUxNDFiOGU3NGExNzM1
MTliNTk5ZDFjNWM2YTNlZGM3YTY0Nzg3Zi4uMDcxMmJkMmM2NWU4MWE4OTNmNTkwMzQ1MTFlZTY2
YjJhZTNkYTAzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDEzLTAxLTE0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgVGVzdDogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sCisKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
OgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJS
ZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRpcmVjdCk6CisgICAgICAgIChGcmFtZU5ldHdv
cmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNv
dXJjZUhhbmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4
dC5oOgorICAgICAgICAoV2ViQ29yZTo6TmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVm
ZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QpOgorICAgICAgICAoTmV0d29ya2luZ0Nv
bnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmNvbnRleHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAoUmVzb3VyY2VIYW5k
bGUpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5k
bGVJbnRlcm5hbCk6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGxTZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVz
b3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5h
bDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhh
bmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6Cisg
ICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50
ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6Y29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTZW5kUmVxdWVzdDpy
ZWRpcmVjdFJlc3BvbnNlOl0pOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdv
cmtSZXBseUhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UU5ldHdvcmtSZXBseUhhbmRs
ZXI6OnJlZGlyZWN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFu
ZGxlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRvUmVkaXJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3dp
bi9SZXNvdXJjZUhhbmRsZVdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJj
ZVN5bmNocm9ub3VzbHkpOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0Bh
cHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5vZGUg
RXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUv
bG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAppbmRleCA3ZjA4ODAxY2I1YzNlNzQ0NTlh
YzhmOGY0OThkZTM5ZTNjNmE2ZGJhLi5hMTU2NDc5YTNkMGU1MGFkNWUxYjVmMjYyMjA5OTFmMjll
MGUxYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTIwLDggKzIwLDEwIEBACiAjaWZuZGVmIEZyYW1lTmV0d29ya2luZ0NvbnRleHRf
aAogI2RlZmluZSBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKIAorI2luY2x1ZGUgIkRvY3VtZW50
LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgor
I2luY2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
MzIsNiArMzQsMTEgQEAgcHVibGljOgogICAgICAgICBtX2ZyYW1lID0gMDsKICAgICB9CiAKKyAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSHR0cHNUb0h0dHBSZWRp
cmVjdCgpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
cmVmZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQ7CisgICAgfQorCiBwcm90
ZWN0ZWQ6CiAgICAgZXhwbGljaXQgRnJhbWVOZXR3b3JraW5nQ29udGV4dChGcmFtZSogZnJhbWUp
CiAgICAgICAgIDogbV9mcmFtZShmcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAppbmRleCBjODJiNDZjNjA4N2Zm
OTYxMjU3OTk4YTU0YWVmNWVlNmU2YWJjZDM2Li5hMGZiNWY3ODZkNzU5MTliNzEzZDg5NGQ3ZDA5
YjgzNGUxMjUyZmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC00MCw3ICs0MCw2IEBACiAjaW5jbHVkZSAi
RmlsZVN5c3RlbS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiS1VSTC5o
IgotI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VFcnJv
ci5oIgogI2luY2x1ZGUgIlJlc291cmNlSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3Vy
Y2VSZXF1ZXN0LmgiCkBAIC0xNDIsNyArMTQxLDcgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoUGFzc1JlZlB0cjxCbG9iU3RvcmFnZURhdGE+IGIK
IH0KIAogQmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUoUGFzc1JlZlB0cjxC
bG9iU3RvcmFnZURhdGE+IGJsb2JEYXRhLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgYXN5bmMpCi0gICAgOiBSZXNvdXJj
ZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKKyAgICA6IFJlc291cmNlSGFu
ZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlLCAwKQogICAgICwgbV9ibG9iRGF0YShi
bG9iRGF0YSkKICAgICAsIG1fYXN5bmMoYXN5bmMpCiAgICAgLCBtX2Vycm9yQ29kZSgwKQpAQCAt
NjM2LDQgKzYzNSwzIEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpub3RpZnlGaW5pc2goKQog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKEJMT0IpCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApp
bmRleCA4NDFmN2VjZmUzZGQ3YWI3NmUwMzgyYmUwOTcxZmU5OTc3NmFiN2VjLi42NGJmYzA5MmQ3
Y2I2Yjc1OWEzMjEwZTlhNDZjMTM3YzkwZTk5MDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCkBAIC02NSw2ICs2NSw4IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBz
VG9IdHRwUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CisKICNpZiBQTEFURk9STShD
SFJPTUlVTSkKICAgICAvLyBGSVhNRTogV3JhcCBXZWJDb29raWVKYXIgaW50byBhIE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbiB0byBtYWtlIHRoZSBjb2RlIGNyb3NzLXBsYXRmb3JtLgogICAgIHZpcnR1
YWwgV2ViS2l0OjpXZWJDb29raWVKYXIqIGNvb2tpZUphcigpIGNvbnN0ID0gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXgg
NTdlZWZlZGM0NTE1OTA0MGNiN2FmZDRkMzBkNTZhNWUxYTlmZTNiMy4uOWFlNWVhZmY1MDM1ZjFh
MmJhZmQ3NDc3YjQ5Njg2MjAwZjE0Mzk0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUzLDggKzUzLDggQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6cmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRvbWljU3Ry
aW5nJiBwcm90b2NvbCwgUmUKICAgICBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1h
cCgpLmFkZChwcm90b2NvbCwgY29uc3RydWN0b3IpOwogfQogCi1SZXNvdXJjZUhhbmRsZTo6UmVz
b3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQotICAgIDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCBy
ZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91
bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwoKSkpKSkKK1Jlc291cmNlSGFuZGxlOjpSZXNv
dXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorICAgIDogZChhZG9wdFB0cihuZXcgUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbCh0aGlzLCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZiAmJiBzaG91bGRDb250ZW50U25pZmZVUkwocmVxdWVzdC51cmwo
KSksIGNvbnRleHQpKSkKIHsKICAgICBpZiAoIXJlcXVlc3QudXJsKCkuaXNWYWxpZCgpKSB7CiAg
ICAgICAgIHNjaGVkdWxlRmFpbHVyZShJbnZhbGlkVVJMRmFpbHVyZSk7CkBAIC03NCwxMiArNzQs
MTIgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY28KICAgICBpZiAocHJvdG9jb2xNYXBJdGVtICE9
IGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVjdG9yTWFwKCkuZW5kKCkpCiAgICAgICAgIHJl
dHVybiBwcm90b2NvbE1hcEl0ZW0tPnZhbHVlKHJlcXVlc3QsIGNsaWVudCk7CiAKLSAgICBSZWZQ
dHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
LCBjb250ZXh0KSkpOwogCiAgICAgaWYgKG5ld0hhbmRsZS0+ZC0+bV9zY2hlZHVsZWRGYWlsdXJl
VHlwZSAhPSBOb0ZhaWx1cmUpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwog
Ci0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+
c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNlKCk7CiAKICAgICByZXR1
cm4gMDsKQEAgLTEyOCw2ICsxMjgsMTEgQEAgUmVzb3VyY2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRs
ZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+bV9maXJzdFJlcXVlc3Q7CiB9CiAKK05l
dHdvcmtpbmdDb250ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIGQtPm1fY29udGV4dC5nZXQoKTsKK30KKwogY29uc3QgU3RyaW5nJiBSZXNvdXJjZUhh
bmRsZTo6bGFzdEhUVFBNZXRob2QoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX2xhc3RIVFRQ
TWV0aG9kOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5oCmluZGV4IDQxYmEzODg4MWIyZGEzOTY1MTAwZDk0ZjlmMzU0ZWI3OTE4MDAxYjUuLjZh
YmRiOTJlZmUzNjRmZTQyOTQyM2Q4OTFmY2NhODlkYmU3ZjliZGUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKQEAgLTE5OSw2ICsxOTks
OCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGZpcmVGYWlsdXJlKFRpbWVyPFJlc291cmNlSGFuZGxl
PiopOwogCisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdDsKKwogICAgIHVz
aW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpyZWY7CiAgICAgdXNpbmcgUmVmQ291bnRl
ZDxSZXNvdXJjZUhhbmRsZT46OmRlcmVmOwogCkBAIC0yMTQsNyArMjE2LDcgQEAgcHVibGljOgog
ICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0
cmluZyYgcHJvdG9jb2wsIEJ1aWx0aW5Db25zdHJ1Y3Rvcik7CiAKIHByb3RlY3RlZDoKLSAgICBS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVu
dCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpOworICAgIFJl
c291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50
KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTmV0d29ya2lu
Z0NvbnRleHQqKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIEZhaWx1cmVUeXBlIHsKQEAgLTIyNyw3
ICsyMjksNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBzY2hlZHVsZUZhaWx1cmUoRmFpbHVyZVR5
cGUpOwogCi0gICAgYm9vbCBzdGFydChOZXR3b3JraW5nQ29udGV4dCopOworICAgIGJvb2wgc3Rh
cnQoKTsKIAogICAgIHZpcnR1YWwgdm9pZCByZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgcmVm
KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGVyZWZBdXRoZW50aWNhdGlvbkNsaWVudCgpIHsgZGVy
ZWYoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZUludGVybmFsLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlSW50ZXJuYWwuaAppbmRleCBiODQ5NTZiYTQyY2FhMzRiZTcxMDc3MTcxZTIy
YjA5Y2QzZmM0NGIyLi5lMDBmYmZjZDQ1OTkwMThlMWRlNTc4ODFmMWJkMjUyNWNkZTBkODEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaApAQCAtODMsMTMgKzgzLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJjZUhh
bmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
KQorICAgICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIs
IGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMs
IGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYsIE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgICAgICAgICAgOiBtX2NsaWVudChjKQogICAgICAgICAgICAg
LCBtX2ZpcnN0UmVxdWVzdChyZXF1ZXN0KQogICAgICAgICAgICAgLCBtX2xhc3RIVFRQTWV0aG9k
KHJlcXVlc3QuaHR0cE1ldGhvZCgpKQogICAgICAgICAgICAgLCBzdGF0dXMoMCkKICAgICAgICAg
ICAgICwgbV9kZWZlcnNMb2FkaW5nKGRlZmVyc0xvYWRpbmcpCiAgICAgICAgICAgICAsIG1fc2hv
dWxkQ29udGVudFNuaWZmKHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgICwgbV9jb250
ZXh0KGNvbnRleHQpCiAjaWYgVVNFKENGTkVUV09SSykKICAgICAgICAgICAgICwgbV9jb25uZWN0
aW9uKDApCiAjZW5kaWYKQEAgLTE1Miw2ICsxNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
ICAgICAgICAgYm9vbCBtX2RlZmVyc0xvYWRpbmc7CiAgICAgICAgIGJvb2wgbV9zaG91bGRDb250
ZW50U25pZmY7CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0Owog
I2lmIFVTRShDRk5FVFdPUkspCiAgICAgICAgIFJldGFpblB0cjxDRlVSTENvbm5lY3Rpb25SZWY+
IG1fY29ubmVjdGlvbjsKICNlbmRpZgpAQCAtMjAyLDcgKzIwNCw2IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVuc2lnbmVkIGxvbmcgbV9i
b2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRhU2VudDsKLSAgICAgICAg
UmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAgICAgIFNvdXBTZXNzaW9u
KiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRpcmVjdENvdW50OwogI2VuZGlmCkBA
IC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2VuZGlmCiAjaWYgUExBVEZP
Uk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pvYjsKLSAgICAgICAgUmVm
UHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JN
KE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2ti
ZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKaW5kZXgg
YWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVhODkyMS4uMGMyNjEzOTEyMzM3NmI1
ZjRhMmY4NTI2Mzg0YjVmNzZiNDIzODBmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxl
OjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2FkaW5nKQogICAgIE5ldHdv
cmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2FkaW5nKHRoaXMsIGRlZmVyc0xvYWRp
bmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRl
eHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dCB8fCAhZC0+
bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIEZJ
WE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQgd2UgaGF2ZSBOZXR3b3JraW5nQ29u
dGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxzZTsKICAgICBib29sIHNo
b3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZz
eW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYsIGNvbnRleHQpKTsK
ICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2IocGxheWVySWQsIGhhbmRs
ZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29uc3QgZG91YmxlIHN5bmNMb2FkVGlt
ZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAppbmRleCA3NjE2NzViNDI2
NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi5iMzg0YWNmMDZjMDAxMmUyMDBlZmQ0N2E0
M2Q2Zjc0MTJjODBlYzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAgLTE4NCw3ICsxODQsNyBA
QCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChDRlVSTENvbm5lY3Rpb25S
ZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJlcXVlc3QgPSBjZlJlcXVlc3Q7CiAK
ICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNl
Y3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCku
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCks
ICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYm
IHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5j
b250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3Qo
KSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgaGFuZGxlLT53
aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNlKTsKQEAgLTQ5NiwyMSAr
NDk2LDIxIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJMQ29ubmVjdGlvbihib29s
IHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+bV9jb25uZWN0aW9uLmFk
b3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMoMCwgcmVxdWVzdC5nZXQo
KSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQqPigmY2xpZW50KSwgY29u
bmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNvIGxldCdz
IGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFk
LT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZC0+
bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNl
c3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9y
YWdlKHRoaXMpOwogCi0gICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRp
YWxTdG9yYWdlLCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koY29udGV4dCwgZmly
c3RSZXF1ZXN0KCkudXJsKCkpLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZik7CisgICAgY3JlYXRl
Q0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBzaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKS51
cmwoKSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogI2lmIFBMQVRGT1JNKFdJTikKICAg
ICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZVdpdGhDdXJyZW50TWVzc2FnZVF1ZXVlKGQtPm1fY29u
bmVjdGlvbi5nZXQoKSk7CkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6
bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29u
c3QKICAgICBPd25QdHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjbGllbnQgPSBX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZShyZXNwb25zZSwgZXJyb3IpOwog
ICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFscyA9
PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQo
KSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykp
OworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLywgY29udGV4dCkpOwogCiAgICAgaGFuZGxlLT5k
LT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNl
c3Npb24oKTsKIApAQCAtOTI0LDQgKzkyNCwzIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmhhbmRs
ZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkKICNlbmRpZgogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggZjVlN2NiZWQzN2FlMGM4OWU0
YjBjODUxN2M1YjNlOGIzYzBmYmNmZC4uZWUzZDA4NDRhYmEyMDliNzg5ZTFmZWExYWRkOWM0OGVm
MmUxZjRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUyLDExICs1MiwxMiBAQCB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBSZXNvdXJjZUhh
bmRsZUludGVybmFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCi1SZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFs
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCkKK1Jlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29u
c3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50
LCBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICA6IG1fcmVxdWVzdChyZXF1ZXN0KQog
ICAgICwgbV9vd25lcigwKQogICAgICwgbV9jbGllbnQoY2xpZW50KQogICAgICwgbV9zdGF0ZShD
b25uZWN0aW9uU3RhdGVOZXcpCisgICAgLCBtX2NvbnRleHQoY29udGV4dCkKIHsKIH0KIApAQCAt
MTczLDExICsxNzQsOCBAQCBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpGcm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbAogCiAvLyBSZXNvdXJjZUhh
bmRsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLVJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGRlZmVyc0xvYWRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKHJlcXVlc3QsIGNsaWVudCkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxl
KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNs
aWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZiwgTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCisgICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKHJlcXVlc3QsIGNsaWVudCwgY29udGV4dCkpKQogewogICAgIGQtPnNldE93bmVy
KHRoaXMpOwogCkBAIC0xOTEsOSArMTg5LDkgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCi0gICAgICAgIHJlcXVlc3QsIGNsaWVudCwgZGVm
ZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgICAgIHJlcXVlc3QsIGNsaWVu
dCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmLCBjb250ZXh0KSk7CiAKLSAgICBp
ZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydCgp
KQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpA
QCAtMjA0LDYgKzIwMiwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJlc291cmNlSGFuZGxlOjpmaXJz
dFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5yZXF1ZXN0KCk7CiB9CiAKK05ldHdvcmtpbmdDb250
ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmNv
bnRleHQoKTsKK30KKwogUmVzb3VyY2VIYW5kbGVDbGllbnQqIFJlc291cmNlSGFuZGxlOjpjbGll
bnQoKSBjb25zdAogewogICAgIHJldHVybiBkLT5jbGllbnQoKTsKQEAgLTIxOSw5ICsyMjIsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAg
ZC0+c2V0RGVmZXJzTG9hZGluZyh2YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPmNvbnRleHQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+c3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKaW5kZXggOWVlZmVlOGIyMDU1MWJlMjk0MTM3ZDE0OTJjOGRkMzA1ZmM2NTFh
My4uZGM1MTFlNWVlYThlZWZmOGYxN2I5ZmQyNDI0YTNjZTYzMTRjZmQ5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTM4LDEyICszOCwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VIYW5k
bGU7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVudDsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCA6IHB1YmxpYyBXZWJLaXQ6OldlYlVSTExvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCopOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBOZXR3b3JraW5nQ29udGV4dCopOwog
CiAgICAgdmlydHVhbCB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpIHsgfQogCkBAIC03OCw2ICs3
OSw3IEBAIHB1YmxpYzoKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gbV9jbGllbnQ7IH0KICAgICB2b2lkIHNldENsaWVudChSZXNvdXJjZUhhbmRsZUNs
aWVudCogY2xpZW50KSB7IG1fY2xpZW50ID0gY2xpZW50OyB9CiAgICAgV2ViS2l0OjpXZWJVUkxM
b2FkZXIqIGxvYWRlcigpIGNvbnN0IHsgcmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7
IH0KIAogICAgIHN0YXRpYyBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBGcm9tUmVzb3VyY2VIYW5k
bGUoUmVzb3VyY2VIYW5kbGUqKTsKIApAQCAtOTAsNiArOTIsOCBAQCBwcml2YXRlOgogICAgIC8v
IFVzZWQgZm9yIHNhbml0eSBjaGVja2luZyB0byBtYWtlIHN1cmUgd2UgZG9uJ3QgZXhwZXJpZW5j
ZSBpbGxlZ2FsIHN0YXRlCiAgICAgLy8gdHJhbnNpdGlvbnMuCiAgICAgQ29ubmVjdGlvblN0YXRl
IG1fc3RhdGU7CisKKyAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKaW5kZXggMWQ0
MmE1YjA0YzNhNTEzMWZhYjE0MjI5ZGQyZDExY2Y2MzEzOGI5MS4uOWRiYmFhM2Y2NjU5MTIzMGMy
ZmYyZTM5OGJmZjVmOGU2YzliZmY1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKQEAgLTk2LDE0
ICs5NiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICBjYW5jZWwo
KTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8gVGhlIGZyYW1l
IGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3NvY2lhdGVkIHRv
IGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBhIGZpbGUuCiAg
ICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMg
bXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRo
ZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KLSAgICBpZiAoY29udGV4
dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQgJiYgIWQtPm1f
Y29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNvdXJj
ZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAgLTE3NSw3ICsx
NzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogdm9pZCBSZXNvdXJj
ZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCosIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMgc3RvcmVkQ3Jl
ZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25z
ZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlciBz
eW5jTG9hZGVyOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYo
bmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwor
ICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSwgY29udGV4dCkpOwogCiAg
ICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBtYW5hZ2VyID0gUmVzb3VyY2VIYW5kbGVNYW5hZ2Vy
OjpzaGFyZWRJbnN0YW5jZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGMwYjhkM2FiNzhkZDE2
NDE5YWEwOWY1M2QyYzg4ZDY3YmMwMzE0YzIuLjA0Y2YyNDE2ZjJhY2RhNDYzNGI5ZWYxY2EzNzQ1
ZTA1N2I5ZmU5ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
bWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yMTgsMTkgKzIxOCwxOSBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdhdGUsIGJvb2wg
c2hvdWxkVXNlQ3JlZGVudGlhbAogCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQog
ewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPm1fY29udGV4dCkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwogCiAgICAgLy8g
SWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0
YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBm
cm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAg
IGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0LT5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGQtPm1fc3RvcmFnZVNlc3Npb24gPSBj
b250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAgIGQtPm1fc3Rv
cmFnZVNlc3Npb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CiAKICAgICBBU1NFUlQoIWQtPm1fcHJveHkpOwogICAgIGQtPm1fcHJveHkuYWRvcHRO
Uyh3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkoKSk7CkBAIC0yMzgsMTYgKzIz
OCwxNiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkg
fHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwogCi0gICAgZC0+
bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGQtPm1fY29udGV4dC0+
bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29ubmVjdGlvbigK
ICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3JlZGVudGlhbFN0
b3JhZ2UsCi0gICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShjb250ZXh0
LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksCi0gICAgICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZm
IHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CisgICAgICAg
IHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5tX2NvbnRleHQuZ2V0KCksIGZp
cnN0UmVxdWVzdCgpLnVybCgpKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwg
ZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkpOwogCiAgICAg
Ym9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgeworICAgIGlm
IChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGQtPm1fY29udGV4dC0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFzaFNldDo6aXRl
cmF0b3IgZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3IgKFNjaGVkdWxl
UGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2luKCk7IGl0ICE9
IGVuZDsgKytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9vcCA9ICgqaXQp
LT5uc1J1bkxvb3AoKSkgewpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gY29udGV4dC0+c2NoZWR1
bGVkT3BlcmF0aW9uUXVldWUoKSkgeworICAgIGlmIChOU09wZXJhdGlvblF1ZXVlICpvcGVyYXRp
b25RdWV1ZSA9IGQtPm1fY29udGV4dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSkgewogICAg
ICAgICBBU1NFUlQoIXNjaGVkdWxlZCk7CiAgICAgICAgIFtjb25uZWN0aW9uKCkgc2V0RGVsZWdh
dGVRdWV1ZTpvcGVyYXRpb25RdWV1ZV07CiAgICAgICAgIHNjaGVkdWxlZCA9IHRydWU7CkBAIC0z
ODEsNyArMzgxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBPd25QdHI8V2ViQ29y
ZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hyb25vdXNMb2Fk
ZXJDbGllbnQ6OmNyZWF0ZSgpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFs
cyhzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKIAotICAgIFJl
ZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypz
aG91bGRDb250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxl
ID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFs
c2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLywgY29udGV4
dCkpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFn
ZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtNjY4LDcgKzY2OCw3IEBAIC0gKE5T
VVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbm5lY3Rpb24gd2ls
bFNlbmRSZXF1ZXN0OihOU1VSCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBuZXdSZXF1
ZXN0OwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZy
b20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFyZXF1ZXN0
LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZl
cnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0
cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIG1f
aGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRw
UmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAg
bV9oYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBs
eUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZlOTMwMGVkMTJi
MzRiY2IwOC4uZDU4Njc1MmFiYTVlZjcwMjM1OTMxMDlmNmJhOWRiMGQ1MWZlMGMwZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3b3JrUmVwbHlI
YW5kbGVyOjpyZWRpcmVjdChSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVybCYg
cmVkaQogICAgIG5ld1JlcXVlc3Quc2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBTaG91bGQgbm90
IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBu
b24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0
cHMiKSAmJiBwcm90b2NvbElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQor
ICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29s
SXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNvdXJjZUhhbmRs
ZS0+Y29udGV4dCgpLT5zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IdHRwc1RvSHR0cFJlZGly
ZWN0KCkpCiAgICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGNs
aWVudC0+d2lsbFNlbmRSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVlc3QsIHJlc3Bv
bnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVz
b3VyY2VIYW5kbGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jl
c291cmNlSGFuZGxlUXQuY3BwCmluZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0YTY4MjY2MTc4
YjQyYWI2MWEuLjE1ZjViODJiMGE2ZDYxNDUzMGJjZGRkMjMwMWJhNjhiMmM5OTBkMDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVR
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VI
YW5kbGUoKQogICAgICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFy
ZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBh
dHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0
IGJsb2NrIGl0LgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAg
aWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIGlmICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNz
LmlzRW1wdHkoKSkgewpAQCAtMTA2LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVz
dC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgp
LT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBn
ZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRo
aXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xv
YWRpbmcpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0CiAgICAgfQogI2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVy
IHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3lu
Y0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1
ZSwgZmFsc2UsIGNvbnRleHQpKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBo
YW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFk
LT5tX3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QKICAgICAgICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsK
ICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAg
ICAgfQotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFydGluZyBpbiBk
ZWZlcnJlZCBtb2RlIGdpdmVzIGQtPm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcgc2V0IGJlZm9y
ZSBzZW5kaW5nIHRoZSByZXF1ZXN0LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlI
YW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9h
ZCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3Nv
dXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IGM3YWMwMzQ1ODE1OTMxOTM2Yzgx
OTY1NTBiOTJmMmUyNzU4NzJmOTMuLjhkMjg2NjY0NWNjNjYwYWVkOGZkMTEzMmNlYjY2YWZlNjYw
ZTI3YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9S
ZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NTUsNyArNDU1LDcgQEAgc3RhdGlj
IHZvaWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0KIAogICAgIC8v
IFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJl
c291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0
dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAg
ICBpZiAoIW5ld1VSTC5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5o
dHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFy
UmVmZXJyZXJQb2xpY3lPbkh0dHBzVG9IdHRwUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5j
bGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgZC0+bV91c2VyID0gbmV3VVJMLnVzZXIoKTsKQEAg
LTEwMDAsNyArMTAwMCw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0QW5kTWVzc2Fn
ZUZvckhhbmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIEFTU0VSVCghZC0+
bV9zb3VwTWVzc2FnZSk7CiAKQEAgLTEwMDksMTIgKzEwMDksOSBAQCBib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAvLyBJZiB0aGUgZnJh
bWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVt
cHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBi
bG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBu
dWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5p
c1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBrZWVw
IHRyYWNrIG9mIGN1c3RvbSBTb3VwU2Vzc2lvbnMgZm9yIHBvcnRzIHRoYXQgc3VwcG9ydCBpdCAo
RUZMKS4KLSAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwotCiAgICAgLy8gT25seSBhbGxvdyB0
aGUgUE9TVCBhbmQgR0VUIG1ldGhvZHMgZm9yIG5vbi1IVFRQIHJlcXVlc3RzLgogICAgIGNvbnN0
IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpOwogICAgIGJvb2wgaXNI
VFRQRmFtaWx5UmVxdWVzdCA9IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgp
OwpAQCAtMTAzMCw3ICsxMDI3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5t
X3NvdXBSZXF1ZXN0LmdldCgpLCBjb250ZXh0KTsKKyAgICBzZXRTb3VwUmVxdWVzdEluaXRpYXRp
bmdQYWdlSURGcm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+
bV9jb250ZXh0LmdldCgpKTsKIAogICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdz
IG5vdCBiZWVuIGV4cGxpY2l0bHkgZGVmZXJyZWQuCiAgICAgaWYgKCFkLT5tX2RlZmVyc0xvYWRp
bmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9S
ZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggOGExZDE5OWFlMTRlZWM5YTM4YTYzZDg2ZTA0MDk1
ODQ5N2QyNzkzZC4uNTkwZWIzMTIzZTBhOWQ1ZWRjNDEyNTM0NTE2ZDFkMTU3NzY2YmI4YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5k
bGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291
cmNlSGFuZGxlV2luLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
Om9uUmVxdWVzdENvbXBsZXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoKQogewogICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwoKS5pc0xvY2Fs
RmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAg
ICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGZpbGVMb2FkVGltZXIKQEAgLTI3Nyw3
ICsyNzcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKICAgICB9CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUpCi0gICAgICAg
IGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShjb250ZXh0
LT51c2VyQWdlbnQoKSk7CisgICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25v
dXNJbnRlcm5ldEhhbmRsZShkLT5tX2NvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAogICAgIGlmICgh
ZC0+bV9pbnRlcm5ldEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDE5LDEwICs0
MTksMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBVTlVTRURfUEFSQU0oc3RvcmVk
Q3JlZGVudGlhbHMpOwogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIo
ZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCByZXF1ZXN0Lmh0dHBVc2VyQWdlbnQoKSk7Ci0gICAgUmVz
b3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSk7Cisg
ICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxz
ZSwgY29udGV4dCk7CiAKICAgICBoYW5kbGUuc2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShz
eW5jTG9hZGVyLmludGVybmV0SGFuZGxlKCkpOwotICAgIGhhbmRsZS5zdGFydChjb250ZXh0KTsK
KyAgICBoYW5kbGUuc3RhcnQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0U3luY2hy
b25vdXNJbnRlcm5ldEhhbmRsZShISU5URVJORVQgaW50ZXJuZXRIYW5kbGUpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDdl
ZjM0NDQ1MGM5ODAyMmNiNzg5ODhhYTI1NDIxY2Y2ZGZiNjc2NS4uMDhjZmViYjNhMDE5OTRmNjBh
Njg0NmY2MDhmY2I3NDg0Y2I1YWNkOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAxLTE0
ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJl
ZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVh
ZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAw
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tp
cCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwK
KworICAgICAgICBTa2lwcGluZyB0aGUgdGVzdHMgb24gd2syLCBiZWNhdXNlIG90aGVyIHJlZmVy
cmVyIHBvbGljeSB0ZXN0cyBhcmUKKyAgICAgICAgc2tpcHBlZCwgdG9vICggaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTEzICkuCisKKyAgICAgICAgKiBwbGF0Zm9y
bS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAxLTExICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0
c0BhcHBsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogT3B0aW9uK0NsaWNrIG9uIE5v
ZGUgRXhwYW5kZXIgRG9lc24ndCBXb3JrIHRoZSBGaXJzdCBUaW1lCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDg0YjFlYzFkZTYzNTkxMmFjYzJhZmJlMzZj
NDYxMjRhOTZhYzk3ZTYuLjJlYWFiNGJhYjNmYjQ1MzE4NzcwYjEwZjRmYTJlOGRmNzFmYjE4ZTYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjA2LDkg
KzEyMDYsNiBAQCB3ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmlt
YXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcgYWZ0
ZXIgaXQgd2FzIGFkZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rlc3Rz
L2xvYWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZhaWx1
cmUgXQogCi0jIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjU2Mwot
d2Via2l0Lm9yZy9iLzg2MDYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJl
ZGlyZWN0LWxpbmsuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODUzMDggWyBSZWxl
YXNlIF0gaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bSBbIElt
YWdlT25seUZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzg1MzEwIGlldGVzdGNlbnRlci9jc3MzL3Zh
bHVlc2FuZHVuaXRzL3VuaXRzLTAxMC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1OWMxMTg5NzFiZDlhYzEw
NWY4NTE2ZGY0YWNmMjAyOWQ5MjZiOGRkLi5jMWIzMmU5N2UzNTI4YTUzNGNjNGJhNWRkOGExYjZk
ZWJlOWY2ZTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtNzU3LDkgKzc1Nyw2IEBAIG1lZGlhL3ZpZGVvLXBsYXllZC1yZXNldC5odG1sCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk2OQogaHR0cC90ZXN0cy9sb2Fk
aW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0bWwKIAotIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3RvciBvbmx5
IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2Vl
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKIGluc3BlY3Rv
ci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGY1M2Q0ZGY2NTkyNjA5MTFh
NzhlODA0OGEyMzJjZjExZTRjMmIzOTAuLmY3ODEyZTgxYjc1MDRjYjkyNjBmOWVjZGMyNzRmMTk1
OWQ5MTU2NDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
MTgxNSw5ICsxODE1LDYgQEAgZmFzdC94bWxodHRwcmVxdWVzdC94bWxodHRwcmVxdWVzdC1ub25l
eGlzdGVudC1maWxlLmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3Qtbm8tcG9ydC5odG1sCiBzZWN1
cml0eS9ibG9jay10ZXN0Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbAotCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyB0YWJs
ZXMgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBjYTk4MWE4Mjc3MzEzYmQzNzljOGMyYTFlNTgxMmY5
NGMzMjdkNjA1Li5hNzgxZDM5ZjIxMjhhZDlkZDFhNTNhNjkwYzMzZWU5NWU4ZWNhYjU3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgwOCw5ICsxODA4
LDYgQEAgaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAjIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY4OQogZmFzdC9hbmltYXRpb24v
cmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3VwcG9y
dHMgZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0ZW5z
aW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCAKIGluc3BlY3Rvci9leHRl
bnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjVkZDhhZTAwMTNjODk4MmIzZjM3
YTg5YzZlN2FiMjhmOGI5NjU0Yy4uYmQ2NzJmMDI5MWQ0Y2RmYTQyZjFkMDk0ZTc4M2ZhODQ2ZjVk
OGE0OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMx
Nyw2ICszMTcsNyBAQCBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3VicmVz
b3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktaHR0cHMtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXIt
cG9saWN5LXJlZGlyZWN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXJlZGlyZWN0LWxpbmsuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
aHR0cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0
cHMtZGVmYXVsdC5odG1sCiAKQEAgLTMzOCwxMSArMzM5LDYgQEAgZmFzdC9zZWxlY3RvcnMvc2Vs
ZWN0aW9uLXdpbmRvdy1pbmFjdGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0V2lkdGgoKS4K
IGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0jIFRoZSBuZXR3
b3JrIHN0YWNrIHVuY29uZGl0aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0cmFuc2l0aW9u
cyBmcm9tCi0jIHNlY3VyZSB0byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBjc3MzLWNvbmRpdGlvbmFscyBzdXBwb3J0IGlzIG5v
dCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186032</attachid>
            <date>2013-02-01 06:33:09 -0800</date>
            <delta_ts>2013-02-04 04:32:25 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130201152951.patch</filename>
            <type>text/plain</type>
            <size>38048</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4YTMxNjk5OTQyYzQ0
ZmExYzZkNjg0OGRhODNkZDQ0YTZhOWRlYi4uMTAyMzM3YjU0NDg3NmIxOTU1MmI0Y2Q2YjMwNDhk
OGYxZjIzZjgwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTAxICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRU
UFJlZGlyZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5n
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhh
bmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhh
bmRsZUludGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFs
Ojpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAg
ICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRS
ZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1Jl
cGx5SGFuZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVz
b3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTMtMDEtMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERhdGFiYXNlQ29udGV4dCBuZWVkcyB0byBvdXRsaXZlIHRoZSBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmgKaW5kZXggN2YwODgwMWNiNWMzZTc0NDU5YWM4ZjhmNDk4ZGUzOWUz
YzZhNmRiYS4uY2E0OGM1OGJmZGUyZDIxOGFkZmQ5MzQ0MGZmZjNmNzgyNTNlNDQ1MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yMCw4
ICsyMCwxMCBAQAogI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKICNkZWZpbmUgRnJh
bWVOZXR3b3JraW5nQ29udGV4dF9oCiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkZyYW1lLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZWZl
cnJlclBvbGljeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDYgKzM0LDExIEBA
IHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IDA7CiAgICAgfQogCisgICAgdmlydHVhbCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAor
ICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5
KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0OworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIGV4
cGxpY2l0IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQogICAgICAgICA6IG1f
ZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYzgyYjQ2YzYwODdmZjk2MTI1Nzk5OGE1NGFl
ZjVlZTZlNmFiY2QzNi4uZTgxMzM0Y2I5ZjgzYjk5NTU4YjI0Nzg5Y2FhYzhhNTc2Y2JmY2I5YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291
cmNlSGFuZGxlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIK
ICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJO
ZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRl
ICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpA
QCAtMTQyLDcgKzE0MSw3IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBiCiB9CiAKIEJsb2JSZXNv
dXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRh
PiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50LCBib29sIGFzeW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUocmVxdWVz
dCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCisgICAgOiBSZXNvdXJjZUhhbmRsZSgwLCByZXF1ZXN0
LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKICAgICAsIG1fYmxvYkRhdGEoYmxvYkRhdGEpCiAgICAg
LCBtX2FzeW5jKGFzeW5jKQogICAgICwgbV9lcnJvckNvZGUoMCkKQEAgLTYzNiw0ICs2MzUsMyBA
QCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShCTE9CKQotCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggODQxZjdlY2Zl
M2RkN2FiNzZlMDM4MmJlMDk3MWZlOTk3NzZhYjdlYy4uZjI2NjJhZDExZGQ2NTFkN2ViMWZiYzE3
NTFmYzM1YjAyMzc2MTE1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkgY29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdy
YXAgV2ViQ29va2llSmFyIGludG8gYSBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUg
Y29kZSBjcm9zcy1wbGF0Zm9ybS4KICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBj
b29raWVKYXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDU3ZWVmZWRjNDUxNTkwNDBjYjdhZmQ0ZDMw
ZDU2YTVlMWE5ZmUzYjMuLjhkNTc2M2EzY2I5MGZiNGIzMWY0MGFmM2FlNjgyZDU2ZGQwMzljMzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCkBAIC01Myw4ICs1Myw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVp
bHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVp
bHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVj
dG9yKTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZl
cnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3Qu
dXJsKCkpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZikKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywg
Y29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCiB7CiAgICAgaWYg
KCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52
YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzQsMTIgKzc0LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQs
IGNvCiAgICAgaWYgKHByb3RvY29sTWFwSXRlbSAhPSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25z
dHJ1Y3Rvck1hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1
ZShyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5k
bGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9h
ZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBj
bGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChu
ZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAg
ICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0
KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBu
ZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBA
IFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0
dXJuIGQtPm1fZmlyc3RSZXF1ZXN0OwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VI
YW5kbGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX2NvbnRleHQuZ2V0KCk7
Cit9CisKIGNvbnN0IFN0cmluZyYgUmVzb3VyY2VIYW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29u
c3QKIHsKICAgICByZXR1cm4gZC0+bV9sYXN0SFRUUE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA3YjllMzBlNjMzZGZm
ODkyMjZjNTVkZWM5YjA5OGU5ZDI2OWIzYTk5Li5iN2JjNDhjYjc5ZDVkZGJlZjQxNjM3N2ZhNGRl
OWJkMzNkNTc4YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCkBAIC0xOTYsNiArMTk2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBm
aXJlRmFpbHVyZShUaW1lcjxSZXNvdXJjZUhhbmRsZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisKICAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFu
ZGxlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsK
IApAQCAtMjExLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1
aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29u
c3RydWN0b3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJv
b2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CiAKIHByaXZhdGU6CiAg
ICAgZW51bSBGYWlsdXJlVHlwZSB7CkBAIC0yMjQsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0
d29ya2luZ0NvbnRleHQqKTsKKyAgICBib29sIHN0YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRl
cmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5k
ZXggZTk2ZGM4NTFmMWNkNjRkMDRlODVmNWFlYzc2ZmYxODk3NGZkNWUyNS4uNDhiNjI2ZTA0ZTc2
MjI3YmU0MDEzNDc5YTNmZWNlOTg3MDI0MDc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDgg
KzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXNvdXJjZUhhbmRsZUludGVy
bmFsKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMsIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgICAgICAgICA6IG1fY2xpZW50KGMp
CisgICAgICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoUmVzb3VyY2VIYW5kbGUqIGxvYWRlciwg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisg
ICAgICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgICAgICwgbV9maXJzdFJlcXVl
c3QocmVxdWVzdCkKICAgICAgICAgICAgICwgbV9sYXN0SFRUUE1ldGhvZChyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSkKICAgICAgICAgICAgICwgc3RhdHVzKDApCkBAIC0xMzcsOCArMTM4LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpOwogCiAg
ICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsg
fQorCisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAg
ICBSZXNvdXJjZUhhbmRsZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgICAgIAogICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgbV9maXJzdFJlcXVlc3Q7CiAgICAgICAgIFN0cmluZyBtX2xhc3RIVFRQTWV0
aG9kOwogCkBAIC0yMDIsNyArMjA0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBj
aGFyKiBtX2J1ZmZlcjsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlTaXplOwogICAgICAg
ICB1bnNpZ25lZCBsb25nIG1fYm9keURhdGFTZW50OwotICAgICAgICBSZWZQdHI8TmV0d29ya2lu
Z0NvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCk7
CiAgICAgICAgIGludCBtX3JlZGlyZWN0Q291bnQ7CiAjZW5kaWYKQEAgLTIxNCw3ICsyMTUsNiBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAg
UU5ldHdvcmtSZXBseUhhbmRsZXIqIG1fam9iOwotICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0Nv
bnRleHQ+IG1fY29udGV4dDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAppbmRleCBhY2MyNzkyYWVkODE1OGM5
NGVmYjQ5MWU3MzQ4MzVjNTlhNWE4OTIxLi5hZDJjOGRjZDMxMjZlNTZjYWJhNzk5NzQ4NzBmZjIx
YmI3YmE5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Js
YWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNw
cApAQCAtMTA3LDkgKzEwNyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVm
ZXJzTG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCiAgICAgTmV0d29ya01hbmFnZXI6Omluc3Rh
bmNlKCktPnNldERlZmVyc0xvYWRpbmcodGhpcywgZGVmZXJzTG9hZGluZyk7CiB9CiAKLWJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+
aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0IHx8ICFkLT5tX2NvbnRleHQtPmlzVmFs
aWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRklYTUU6IGNsZWFuIHVwIHVz
ZSBvZiBGcmFtZSBub3cgdGhhdCB3ZSBoYXZlIE5ldHdvcmtpbmdDb250ZXh0IChzZWUgUklNIEJ1
ZyAjMTUxNSkKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAg
IGJvb2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZm
ID0gZmFsc2U7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVm
KG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywg
c2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUg
PSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2Fk
ZXIsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogICAgIE5ldHdvcmtNYW5h
Z2VyOjppbnN0YW5jZSgpLT5zdGFydEpvYihwbGF5ZXJJZCwgaGFuZGxlLCBmcmFtZSwgZGVmZXJz
TG9hZGluZyk7CiAKICAgICBjb25zdCBkb3VibGUgc3luY0xvYWRUaW1lT3V0ID0gNjA7IC8vIHNl
Y29uZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MTY3NWI0MjY3NWMzNGVmNWMxNDM4ZGZl
YWFhNGM3NTY4YWM4OGIuLjhkY2QxMjQzZTUxNmRkMmM2OTg5MjFkMmE0YTFhOGVlYmYxNmUwNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VI
YW5kbGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBDRlVSTFJl
cXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0KENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRlVSTFJl
cXVlc3RSZWYKICAgICAgICAgcmVxdWVzdCA9IGNmUmVxdWVzdDsKIAogICAgIC8vIFNob3VsZCBu
b3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRv
IG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRw
cyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAg
aWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1
ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxk
Q2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1
ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBoYW5kbGUtPndpbGxTZW5kUmVxdWVzdChy
ZXF1ZXN0LCBjZlJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtNDk2LDIxICs0OTYsMjEgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVu
dGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihDRlVSTENvbm5l
Y3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9j
YXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9uUHJvcGVydGll
cy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAo
IWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8g
bG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1w
dGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4K
LSAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9u
ID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5t
X3N0b3JhZ2VTZXNzaW9uID0gZC0+bV9jb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3Jt
U2Vzc2lvbigpOwogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGll
bnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAg
ICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIHNob3Vs
ZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShjb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwo
KSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24o
c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBv
bGljeShkLT5tX2NvbnRleHQuZ2V0KCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwgZC0+bV9zaG91
bGRDb250ZW50U25pZmYpOwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIENGVVJMQ29ubmVjdGlv
blNjaGVkdWxlV2l0aEN1cnJlbnRNZXNzYWdlUXVldWUoZC0+bV9jb25uZWN0aW9uLmdldCgpKTsK
QEAgLTczOSw3ICs3MzksNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlckNsaWVudDo6Y3JlYXRlKHJlc3BvbnNlLCBlcnJvcik7CiAgICAgY2xpZW50LT5zZXRB
bGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJl
ZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVy
c0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4
dCwgcmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAv
KnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Np
b24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC05
MjQsNCArOTI0LDMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0YUFycmF5KENGQXJy
YXlSZWYgZGF0YUFycmF5KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJj
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlSGFuZGxlLmNwcAppbmRleCBmNWU3Y2JlZDM3YWUwYzg5ZTRiMGM4NTE3YzViM2U4YjNj
MGZiY2ZkLi40YmY4ZjkwYzAwMDc2YmJhNDhmMjEwMDZlODg5Mjc0YTYxZTMyMTk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jl
c291cmNlSGFuZGxlLmNwcApAQCAtNTIsOCArNTIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBSZXNvdXJjZUhhbmRsZUludGVybmFsIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZXNvdXJj
ZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcmVx
dWVzdChyZXF1ZXN0KQorUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRl
cm5hbChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jb250ZXh0KGNv
bnRleHQpCisgICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1fb3duZXIoMCkKICAgICAs
IG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc3RhdGUoQ29ubmVjdGlvblN0YXRlTmV3KQpAQCAt
MTczLDExICsxNzQsOCBAQCBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpGcm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbAogCiAvLyBSZXNvdXJjZUhh
bmRsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tCiAKLVJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi
b29sIGRlZmVyc0xvYWRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBz
aG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKHJlcXVlc3QsIGNsaWVudCkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxl
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9v
bCBzaG91bGRDb250ZW50U25pZmYpCisgICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCkpKQogewogICAgIGQtPnNldE93bmVy
KHRoaXMpOwogCkBAIC0xOTEsOSArMTg5LDkgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCi0gICAgICAgIHJlcXVlc3QsIGNsaWVudCwgZGVm
ZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgICAgIGNvbnRleHQsIHJlcXVl
c3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CiAKLSAgICBp
ZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydCgp
KQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpA
QCAtMjA0LDYgKzIwMiwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJlc291cmNlSGFuZGxlOjpmaXJz
dFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5yZXF1ZXN0KCk7CiB9CiAKK05ldHdvcmtpbmdDb250
ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmNv
bnRleHQoKTsKK30KKwogUmVzb3VyY2VIYW5kbGVDbGllbnQqIFJlc291cmNlSGFuZGxlOjpjbGll
bnQoKSBjb25zdAogewogICAgIHJldHVybiBkLT5jbGllbnQoKTsKQEAgLTIxOSw5ICsyMjIsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAg
ZC0+c2V0RGVmZXJzTG9hZGluZyh2YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPmNvbnRleHQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+c3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRs
ZUludGVybmFsLmgKaW5kZXggOWVlZmVlOGIyMDU1MWJlMjk0MTM3ZDE0OTJjOGRkMzA1ZmM2NTFh
My4uODJlOTdkYTc1Y2MxNThlYWExYjFhNGNlOTU4NjE1Y2Q5ZjJkNDcyNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUlu
dGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTM4LDEyICszOCwxMyBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VIYW5k
bGU7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVudDsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCA6IHB1YmxpYyBXZWJLaXQ6OldlYlVSTExvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0g
ICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCopOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0Nv
bnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCopOwog
CiAgICAgdmlydHVhbCB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpIHsgfQogCkBAIC03OCwxMCAr
NzksMTIgQEAgcHVibGljOgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25z
dCB7IHJldHVybiBtX2NsaWVudDsgfQogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxl
Q2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVS
TExvYWRlciogbG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQo
KTsgfQogCiAgICAgc3RhdGljIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhh
bmRsZShSZXNvdXJjZUhhbmRsZSopOwogCiBwcml2YXRlOgorICAgIFJlZlB0cjxOZXR3b3JraW5n
Q29udGV4dD4gbV9jb250ZXh0OwogICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAg
UmVzb3VyY2VIYW5kbGUqIG1fb3duZXI7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIG1fY2xp
ZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jl
c291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRleCAxZDQyYTViMDRjM2E1MTMxZmFiMTQyMjlk
ZDJkMTFjZjYzMTM4YjkxLi45YzM1NzY2N2Y4YjdjMzljODNmMDFlY2UyMDYzMWQ0Y2QzMzAwY2Y2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1
cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAtOTYsMTQgKzk2LDE0IEBAIFJlc291cmNlSGFu
ZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUg
UmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUu
Zy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMg
bm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAog
ICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBp
dC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRo
ZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVk
SW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OmxvYWRzQmxvY2tlZCgpCiB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJv
ciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEp
CiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7Ci0gICAgUmVmUHRy
PFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFn
ZXIqIG1hbmFnZXIgPSBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNl
SGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3Vy
Y2VIYW5kbGVNYWMubW0KaW5kZXggYzBiOGQzYWI3OGRkMTY0MTlhYTA5ZjUzZDJjODhkNjdiYzAz
MTRjMi4uMjU2YmIyY2FiMzI3MDg2NTZmM2UwNGE5ZmZiOTA5YzVmMjY3NDFiYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0KQEAgLTIxOCwxOSArMjE4LDE5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0
ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsCiAK
IH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQor
ICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJ
Tl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBp
cyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAg
Ly8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhh
bmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIEFTU0VSVCgh
ZC0+bV9wcm94eSk7CiAgICAgZC0+bV9wcm94eS5hZG9wdE5TKHdrQ3JlYXRlTlNVUkxDb25uZWN0
aW9uRGVsZWdhdGVQcm94eSgpKTsKQEAgLTIzOCwxNiArMjM4LDE2IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogCiAgICAgYm9vbCBzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzID0gZC0+bV9jb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cygpOwogCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBkLT5tX3Byb3h5Lmdl
dCgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKLSAgICAgICAgc2hvdWxk
UmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZpcnN0UmVxdWVzdCgpLnVybCgp
KSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5
Q29va2llUG9saWN5KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLAor
ICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBib29sIHNjaGVkdWxlZCA9IGZhbHNl
OwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQt
PnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQq
IHNjaGVkdWxlZFBhaXJzID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
ewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQ
YWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3Ig
aXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAg
ICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC0y
NTcsNyArMjU3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTlNPcGVyYXRpb25RdWV1
ZSAqb3BlcmF0aW9uUXVldWUgPSBjb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7
CisgICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gZC0+bV9jb250ZXh0
LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CiAgICAgICAgIEFTU0VSVCghc2NoZWR1bGVk
KTsKICAgICAgICAgW2Nvbm5lY3Rpb24oKSBzZXREZWxlZ2F0ZVF1ZXVlOm9wZXJhdGlvblF1ZXVl
XTsKICAgICAgICAgc2NoZWR1bGVkID0gdHJ1ZTsKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGll
bnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6Y3JlYXRlKCk7CiAg
ICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09
IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgp
LCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7
CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3Vy
Y2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xv
YWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQt
Pm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vz
c2lvbigpOwogCkBAIC02NjgsNyArNjY4LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2
ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW4KICAg
ICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQg
bm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0
byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0
cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAg
IGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVx
dWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9oYW5kbGUtPmNvbnRleHQoKS0+c2hv
dWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICBy
ZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBtX2hhbmRsZS0+d2lsbFNlbmRSZXF1
ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRl
eCAwYjY0Yjc5YmE0NDllYTQ3ODJhYzcwZmU5MzAwZWQxMmIzNGJjYjA4Li5lZjU2NDk1ZDIzYzNh
MGE0MjA2NmUwNmE0MWU0OTQ2OTFkNTIzMTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAt
NjQ3LDcgKzY0Nyw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnJlZGlyZWN0KFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiByZWRpCiAgICAgbmV3UmVxdWVzdC5z
ZXRVUkwobmV3VXJsKTsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSBy
ZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlm
ICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMobmV3
UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAgaWYgKCFuZXdSZXF1ZXN0LnVy
bCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhuZXdSZXF1ZXN0Lmh0dHBSZWZl
cnJlcigpLCAiaHR0cHMiKSAmJiBtX3Jlc291cmNlSGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENs
ZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgbmV3UmVx
dWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgY2xpZW50LT53aWxsU2VuZFJlcXVlc3Qo
bV9yZXNvdXJjZUhhbmRsZSwgbmV3UmVxdWVzdCwgcmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5k
ZXggMTM3NTFlYjY1ZDdmMzNmYzk3YmMyMzRhNjgyNjYxNzhiNDJhYjYxYS4uNjJjMGZjMWUwMWQ3
ZWRlMTJlYmQ2ZmIwZWRlYzdhZjI2YjgyZTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC05MCwxMSAr
OTAsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNl
bCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBJZiBOZXR3
b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0
byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4g
dW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKGNv
bnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFk
LT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xMDYs
NyArMTA2LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVu
dGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7
CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+
bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRs
ZXI6OkFzeW5jaHJvbm91c0xvYWQsIGQtPm1fZGVmZXJzTG9hZGluZyk7CiAgICAgcmV0dXJuIHRy
dWU7CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICB9CiAj
ZW5kaWYKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVz
cG9uc2UsIGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRS
ZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkp
OworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwog
CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsK
ICAgICBpZiAoIWQtPm1fdXNlci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpIHsK
QEAgLTE0NSw3ICsxNDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgICAgICB1cmxX
aXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVx
dWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9jb250ZXh0
ID0gY29udGV4dDsKIAogICAgIC8vIHN0YXJ0aW5nIGluIGRlZmVycmVkIG1vZGUgZ2l2ZXMgZC0+
bV9qb2IgdGhlIGNoYW5jZSBvZiBiZWluZyBzZXQgYmVmb3JlIHNlbmRpbmcgdGhlIHJlcXVlc3Qu
CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBR
TmV0d29ya1JlcGx5SGFuZGxlcjo6U3luY2hyb25vdXNMb2FkLCB0cnVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKaW5kZXggNGI0ZTZkZWM5MDZlMzY4NTVlYjgxMTI3MzZmN2IyZGZmZDAyOWEzNi4u
NmM1MGJjZGVlZjQzMjIyMTY0NTA2NWI4NDZlNjY3Nzk5MWJjZjM4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHAKQEAgLTQ2Niw3ICs0NjYsNyBAQCBzdGF0aWMgdm9pZCBkb1JlZGlyZWN0KFJlc291
cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgfQogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJl
ciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBv
bmUuCi0gICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJl
cXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghbmV3VVJMLnByb3RvY29s
SXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMi
KSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNU
b0hUVFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAK
ICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNlcigpOwpAQCAtMTAyMSw3ICsxMDIxLDcgQEAgc3Rh
dGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9ySGFuZGxlKFJlc291cmNlSGFu
ZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKCFkLT5tX3NvdXBNZXNzYWdlKTsKIApAQCAt
MTAzMCwxMiArMTAzMCw5IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhl
IHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9hZCBmcm9t
IGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgogICAgIC8vIElmIGJv
dGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFs
aWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+
bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQgdGhlIGtlZXAgdHJhY2sgb2YgY3VzdG9tIFNvdXBT
ZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBwb3J0IGl0IChFRkwpLgotICAgIGQtPm1fY29udGV4
dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5IGFsbG93IHRoZSBQT1NUIGFuZCBHRVQgbWV0aG9k
cyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAgYm9vbCBpc0hUVFBGYW1pbHlSZXF1ZXN0ID0gcmVx
dWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBAIC0xMDUxLDcgKzEwNDgsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0U291cFJlcXVlc3RJbml0aWF0
aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGNv
bnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5n
Q29udGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2NvbnRleHQuZ2V0KCkpOwogCiAg
ICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90IGJlZW4gZXhwbGljaXRseSBk
ZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApp
bmRleCA4YTFkMTk5YWUxNGVlYzlhMzhhNjNkODZlMDQwOTU4NDk3ZDI3OTNkLi41OTBlYjMxMjNl
MGE5ZDVlZGM0MTI1MzQ1MTZkMWQxNTc3NjZiYjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC0y
NjUsNyArMjY1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoKQog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAg
ICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkgfHwgZmlyc3RSZXF1ZXN0
KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICByZWYoKTsgLy8gYmFsYW5jZWQg
YnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgpAQCAtMjc3LDcgKzI3Nyw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIH0KIAogICAg
IGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKLSAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9
IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGNvbnRleHQtPnVzZXJBZ2VudCgpKTsKKyAgICAg
ICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGQtPm1f
Y29udGV4dC0+dXNlckFnZW50KCkpOwogCiAgICAgaWYgKCFkLT5tX2ludGVybmV0SGFuZGxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MTksMTAgKzQxOSwxMCBAQCB2b2lkIFJlc291cmNl
SGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250
ZXh0LCBjb25zdAogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7CiAKICAgICBX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEs
IHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpKTsKLSAgICBSZXNvdXJjZUhhbmRsZSBoYW5kbGUocmVx
dWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKTsKKyAgICBSZXNvdXJjZUhhbmRsZSBoYW5k
bGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBjb250ZXh0KTsKIAogICAgIGhh
bmRsZS5zZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKHN5bmNMb2FkZXIuaW50ZXJuZXRIYW5k
bGUoKSk7Ci0gICAgaGFuZGxlLnN0YXJ0KGNvbnRleHQpOworICAgIGhhbmRsZS5zdGFydCgpOwog
fQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKEhJ
TlRFUk5FVCBpbnRlcm5ldEhhbmRsZSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1NGJmMDFjYTgxMWY3MDNjMjViYjhiNDk5
Mjc5MWQzMDRmODg2N2U0Li44ODA2ODA0OWQyZTJmNDFiZmQzMTFiOWU3Y2EzZWZmNGFmZjNiYWRk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDEgIE1hcmphIEjDtmx0dMOkICA8bWFy
amFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJyZXIgcG9saWN5IGludG8gYWNj
b3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisgICAgICAgIFNraXBwaW5nIHRo
ZSB0ZXN0cyBvbiB3azIsIGJlY2F1c2Ugb3RoZXIgcmVmZXJyZXIgcG9saWN5IHRlc3RzIGFyZQor
ICAgICAgICBza2lwcGVkLCB0b28gKCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NzM5MTMgKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RF
eHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisK
IDIwMTMtMDEtMzEgIEplc3NpZSBCZXJsaW4gIDxqYmVybGluQGFwcGxlLmNvbT4KIAogICAgICAg
ICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGFuIGltcGxlbWVudGF0aW9uIG9mIGV2ZW50U2VuZGVy
LmJlZ2luRHJhZ1dpdGhGaWxlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCBlODk1MWRjZDExZWRiNzAyYzc0NmNjM2ZjZTYyY2NlYzk3M2JjMDMwLi45MzEw
M2NjMzkyMmZiNTIzODJmNmYxZWNkNDE0MjhiYjEzMTJlYWQwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTIzOSw5ICsxMjM5LDYgQEAgd2Via2l0Lm9y
Zy9iLzg1Njg5IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVk
Lmh0bWwgWyBTa2lwIF0KICMgU3RhcnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiBy
MTE2NDczCiB3ZWJraXQub3JnL2IvODU5NjkgaHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZy
YW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIAotIyBTdGFydGVkIGZh
aWxpbmcgYWZ0ZXIgaXQgd2FzIGFkZGVkIGluIHIxMTY1NjMKLXdlYmtpdC5vcmcvYi84NjA2MSBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwgWyBG
YWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzg1MzA4IFsgUmVsZWFzZSBdIGlldGVzdGNlbnRlci9j
c3MzL3ZhbHVlc2FuZHVuaXRzL3VuaXRzLTAwMC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAog
IyBJRVRDIG5hbWVzcGFjZSBmYWlsdXJlcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCAyZGU0MmI0YTdjMmE1NzFmZGVkMGU1NGYwZTg5OWEzMmM0NTQ0Mzgz
Li45ZDc3NWM3YjRjOTNjZGFmZGViZTQ0NDhjMzZlYTg5NzhkOTA2ZjA3IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNzY0LDkgKzc2NCw2IEBAIG1lZGlh
L3ZpZGVvLXBsYXllZC1yZXNldC5odG1sCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04NTk2OQogaHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgt
YmFjay1uYXZpZ2F0aW9uLmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3RvciBvbmx5IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4g
Y29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1l
dmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
YXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDdhNDM4MzgxMzljYmNiNGNkNzAxOGU3MDM5ZTQ3OTcxNmVjNDRiYWQu
LjcyNzI1ZDFkYmEwYjNmYzRhMWNiYjBlMjVkZmYzZTBjNWQwNWRjYWQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTg3OSw5ICsxODc5LDYgQEAgZmFzdC9s
YXllcnMvbm8tY2xpcHBpbmctb3ZlcmZsb3ctaGlkZGVuLWhhcmR3YXJlLWFjY2VsZXJhdGlvbi5o
dG1sCiBzZWN1cml0eS9ibG9jay10ZXN0LW5vLXBvcnQuaHRtbAogc2VjdXJpdHkvYmxvY2stdGVz
dC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAw
Ci1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwK
LQogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAjCiAjIGZhaWxpbmcgdGFibGVzIHRlc3RzCiAjID09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ICMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggYjIxYzllOGYyMTQ0YTIwNzg1ZWUzZDRkMWMzY2RlODczYzUxYTdmOS4uNTRj
ODI2NTUxYzU1OTgwZDYwYzA3NTA2ZDEzY2Y1MzA2ODk1ZWNkYyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4MjQsOSArMTgyNCw2IEBAIGluc3BlY3Rv
ci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2ODkKIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJl
ZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3RvciBvbmx5IHN1cHBvcnRzIGV2YWx1YXRpb24g
aW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2OCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9u
cy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwgCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNp
b25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDkyN2U4YTZkYjQ2M2UzNWFjM2U5MjBlYzc1NGFjYzljODdm
ZGEzOWIuLjAxNWVmM2ExMGZjNTllNmMxYTkxMjAzNmZjNzVjMjk4M2JhYmU3OGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zMTMsNiArMzEzLDcgQEAg
aHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5LW9ubHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRzLW1h
eC1hZ2UtaHR0cHMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0
cHMtYWx3YXlzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBz
LW9yaWdpbi5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVj
dC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5r
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0
bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQuaHRt
bAogCkBAIC0zMzQsMTEgKzMzNSw2IEBAIGZhc3Qvc2VsZWN0b3JzL3NlbGVjdGlvbi13aW5kb3ct
aW5hY3RpdmUuaHRtbAogIyBhdXRvWm9vbVBhZ2VUb0ZpdFdpZHRoKCkuCiBpbnNwZWN0b3Ivc3R5
bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKIAotIyBUaGUgbmV0d29yayBzdGFjayB1bmNv
bmRpdGlvbmFsbHkgc3RyaXBzIHRoZSBoZWFkZXIgb24gdHJhbnNpdGlvbnMgZnJvbQotIyBzZWN1
cmUgdG8gaW5zZWN1cmUuIEl0IHNob3VsZCB0YWtlIHRoZSByZWZlcnJlciBwb2xpY3kgaW50byBh
Y2NvdW50IGluc3RlYWQuCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGlu
ay5odG1sCi0KICMgY3NzMy1jb25kaXRpb25hbHMgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQu
CiB3ZWJraXQub3JnL2IvODYxNDYgY3NzMy9zdXBwb3J0cy5odG1sCiB3ZWJraXQub3JnL2IvMTA0
ODIyIGNzczMvc3VwcG9ydHMtY3Nzb20uaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186350</attachid>
            <date>2013-02-04 04:32:30 -0800</date>
            <delta_ts>2013-02-04 04:55:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130204132909.patch</filename>
            <type>text/plain</type>
            <size>55350</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4YTMxNjk5OTQyYzQ0
ZmExYzZkNjg0OGRhODNkZDQ0YTZhOWRlYi4uMmFlYmIxOGY0MzlkZDY1ZWQwMGMyZjRhMmEzNmVi
ODIxNTUxNzQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRU
UFJlZGlyZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkJsb2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5n
Q29udGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhh
bmRsZSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFs
Lmg6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhh
bmRsZUludGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAg
ICAqIHBsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnku
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291
cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9h
ZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJv
bWl1bS9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
c291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJj
ZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250
ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNl
SGFuZGxlSW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFs
Ojpjb250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5k
bGVDdXJsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAg
ICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRS
ZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1Jl
cGx5SGFuZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVz
b3VyY2VIYW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRs
ZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTMtMDEtMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIERhdGFiYXNlQ29udGV4dCBuZWVkcyB0byBvdXRsaXZlIHRoZSBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQ4MjJmZTY1ODA3MzU1MmJiZGZj
NjA1NWNiMGU4N2FjZDY3MTVmY2QuLmY1MjZiNjUwYmQwNDdkZWYxNjczM2E1MTRkNTEwMzNiMjFi
YzYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAxMy0wMi0wNCAgTWFyamEgSMO2
bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJlciBwb2xp
Y3kgaW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVmZXJyZXIgc2hv
dWxkIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRpcmVjdCwK
KyAgICAgICAgaWYgdGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUgcmVmZXJy
ZXIgc2hvdWxkIGJlIGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0
d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNl
TG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2Fk
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVM
b2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmg6Cisg
ICAgICAgIChXZWJLaXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVycmVyUG9s
aWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAg
ICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3
b3JraW5nQ29udGV4dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFNoYXJl
ZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzKToKKyAgICAgICAgKiBTaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5oOgorICAgICAgICAoTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6c2hvdWxkQ2xl
YXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVTdWJyZXNvdXJjZUxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2lu
U3RyZWFtTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
c2NoZWR1bGVMb2FkKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmg6CisgICAgICAgIChXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIpOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VT
eW5jaHJvbm91c2x5KToKKwogMjAxMy0wMS0zMSAgQWxleGV5IFByb3NrdXJ5YWtvdiAgPGFwQGFw
cGxlLmNvbT4KIAogICAgICAgICA8cmRhcjovL3Byb2JsZW0vMTI2OTU4Mjc+IFBQVDogTWFrZSBs
b2FkaW5nIGZpbGUgVVJMcyB3b3JrIHdpdGggYSBzYW5kYm94ZWQgTmV0d29ya1Byb2Nlc3MKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDdm
MDg4MDFjYjVjM2U3NDQ1OWFjOGY4ZjQ5OGRlMzllM2M2YTZkYmEuLmNhNDhjNThiZmRlMmQyMThh
ZGZkOTM0NDBmZmYzZjc4MjUzZTQ0NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Zy
YW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjAsOCArMjAsMTAgQEAKICNpZm5kZWYgRnJhbWVO
ZXR3b3JraW5nQ29udGV4dF9oCiAjZGVmaW5lIEZyYW1lTmV0d29ya2luZ0NvbnRleHRfaAogCisj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIk5ldHdv
cmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkBAIC0zMiw2ICszNCwxMSBAQCBwdWJsaWM6CiAgICAgICAgIG1fZnJhbWUg
PSAwOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyUG9saWN5
T25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBtX2Zy
YW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVyUG9saWN5RGVmYXVs
dDsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBGcmFtZU5ldHdvcmtpbmdDb250
ZXh0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCmlu
ZGV4IGM4MmI0NmM2MDg3ZmY5NjEyNTc5OThhNTRhZWY1ZWU2ZTZhYmNkMzYuLmU4MTMzNGNiOWY4
M2I5OTU1OGIyNDc4OWNhYWM4YTU3NmNiZmNiOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTQwLDcgKzQw
LDYgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIK
ICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5kbGVDbGllbnQuaCIK
ICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTE0Miw3ICsxNDEsNyBAQCB2b2lkIEJs
b2JSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShQYXNzUmVmUHRyPEJs
b2JTdG9yYWdlRGF0YT4gYgogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJsb2JSZXNvdXJjZUhh
bmRsZShQYXNzUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBhc3lu
YykKLSAgICA6IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFsc2UsIGZhbHNlKQor
ICAgIDogUmVzb3VyY2VIYW5kbGUoMCwgcmVxdWVzdCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCiAg
ICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAgICwgbV9hc3luYyhhc3luYykKICAgICAsIG1f
ZXJyb3JDb2RlKDApCkBAIC02MzYsNCArNjM1LDMgQEAgdm9pZCBCbG9iUmVzb3VyY2VIYW5kbGU6
Om5vdGlmeUZpbmlzaCgpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFC
TEUoQkxPQikKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9O
ZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3
b3JraW5nQ29udGV4dC5oCmluZGV4IDg0MWY3ZWNmZTNkZDdhYjc2ZTAzODJiZTA5NzFmZTk5Nzc2
YWI3ZWMuLmYyNjYyYWQxMWRkNjUxZDdlYjFmYmMxNzUxZmMzNWIwMjM3NjExNTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgK
QEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBj
b25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0ID0gMDsKKwogI2lmIFBMQVRG
T1JNKENIUk9NSVVNKQogICAgIC8vIEZJWE1FOiBXcmFwIFdlYkNvb2tpZUphciBpbnRvIGEgTmV0
d29ya1N0b3JhZ2VTZXNzaW9uIHRvIG1ha2UgdGhlIGNvZGUgY3Jvc3MtcGxhdGZvcm0uCiAgICAg
dmlydHVhbCBXZWJLaXQ6OldlYkNvb2tpZUphciogY29va2llSmFyKCkgY29uc3QgPSAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApp
bmRleCA1N2VlZmVkYzQ1MTU5MDQwY2I3YWZkNGQzMGQ1NmE1ZTFhOWZlM2IzLi44ZDU3NjNhM2Ni
OTBmYjRiMzFmNDBhZjNhZTY4MmQ1NmRkMDM5YzM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTMsOCArNTMsOCBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBBdG9t
aWNTdHJpbmcmIHByb3RvY29sLCBSZQogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNvbnN0cnVj
dG9yTWFwKCkuYWRkKHByb3RvY29sLCBjb25zdHJ1Y3Rvcik7CiB9CiAKLVJlc291cmNlSGFuZGxl
OjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250
ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHRo
aXMsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYm
IHNob3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpKQorUmVzb3VyY2VIYW5kbGU6
OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVm
ZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgOiBkKGFkb3B0UHRyKG5l
dyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHRoaXMsIGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwg
ZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRTbmlmZlVS
TChyZXF1ZXN0LnVybCgpKSkpKQogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5pc1ZhbGlkKCkp
IHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKQEAgLTc0LDEy
ICs3NCwxMiBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRsZTo6Y3Jl
YXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjbwogICAgIGlmIChwcm90b2NvbE1hcEl0
ZW0gIT0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5lbmQoKSkKICAgICAg
ICAgcmV0dXJuIHByb3RvY29sTWFwSXRlbS0+dmFsdWUocmVxdWVzdCwgY2xpZW50KTsKIAotICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikp
KTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91
bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVkdWxlZEZh
aWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5yZWxlYXNl
KCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAobmV3SGFu
ZGxlLT5zdGFydCgpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAg
IHJldHVybiAwOwpAQCAtMTI4LDYgKzEyOCwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJlc291cmNl
SGFuZGxlOjpmaXJzdFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5tX2ZpcnN0UmVxdWVzdDsKIH0K
IAorTmV0d29ya2luZ0NvbnRleHQqIFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29uc3QKK3sK
KyAgICByZXR1cm4gZC0+bV9jb250ZXh0LmdldCgpOworfQorCiBjb25zdCBTdHJpbmcmIFJlc291
cmNlSGFuZGxlOjpsYXN0SFRUUE1ldGhvZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPm1fbGFz
dEhUVFBNZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlSGFuZGxlLmgKaW5kZXggN2I5ZTMwZTYzM2RmZjg5MjI2YzU1ZGVjOWIwOThlOWQyNjliM2E5
OS4uYjdiYzQ4Y2I3OWQ1ZGRiZWY0MTYzNzdmYTRkZTliZDMzZDU3OGM0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAtMTk2LDYg
KzE5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmlyZUZhaWx1cmUoVGltZXI8UmVzb3VyY2VI
YW5kbGU+Kik7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0OworCiAg
ICAgdXNpbmcgUmVmQ291bnRlZDxSZXNvdXJjZUhhbmRsZT46OnJlZjsKICAgICB1c2luZyBSZWZD
b3VudGVkPFJlc291cmNlSGFuZGxlPjo6ZGVyZWY7CiAKQEAgLTIxMSw3ICsyMTMsNyBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29uc3QgQXRv
bWljU3RyaW5nJiBwcm90b2NvbCwgQnVpbHRpbkNvbnN0cnVjdG9yKTsKIAogcHJvdGVjdGVkOgot
ICAgIFJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxl
Q2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7Cisg
ICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVl
c3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91
bGRDb250ZW50U25pZmYpOwogCiBwcml2YXRlOgogICAgIGVudW0gRmFpbHVyZVR5cGUgewpAQCAt
MjI0LDcgKzIyNiw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVyZShGYWls
dXJlVHlwZSk7CiAKLSAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7CisgICAgYm9v
bCBzdGFydCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkg
eyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xpZW50KCkg
eyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGU5NmRjODUxZjFjZDY0ZDA0ZTg1ZjVh
ZWM3NmZmMTg5NzRmZDVlMjUuLjQ4YjYyNmUwNGU3NjIyN2JlNDAxMzQ3OWEzZmVjZTk4NzAyNDA3
NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC04Myw4ICs4Myw5IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RGX01BS0Vf
Tk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChSZXNvdXJj
ZUhhbmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNu
aWZmKQotICAgICAgICAgICAgOiBtX2NsaWVudChjKQorICAgICAgICBSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
bGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAg
ICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICAgICAgICAgLCBtX2NsaWVudChjbGll
bnQpCiAgICAgICAgICAgICAsIG1fZmlyc3RSZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAgICAgICAs
IG1fbGFzdEhUVFBNZXRob2QocmVxdWVzdC5odHRwTWV0aG9kKCkpCiAgICAgICAgICAgICAsIHN0
YXR1cygwKQpAQCAtMTM3LDggKzEzOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
flJlc291cmNlSGFuZGxlSW50ZXJuYWwoKTsKIAogICAgICAgICBSZXNvdXJjZUhhbmRsZUNsaWVu
dCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgICAgICBSZWZQdHI8TmV0d29y
a2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIG1f
Y2xpZW50OwotICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZmlyc3RSZXF1ZXN0
OwogICAgICAgICBTdHJpbmcgbV9sYXN0SFRUUE1ldGhvZDsKIApAQCAtMjAyLDcgKzIwNCw2IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAgICAgIHVu
c2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlEYXRh
U2VudDsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAgICAg
ICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRpcmVjdENv
dW50OwogI2VuZGlmCkBAIC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogI2Vu
ZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVyKiBtX2pv
YjsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAjZW5kaWYK
IAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tC
ZXJyeS5jcHAKaW5kZXggYWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVhODkyMS4u
YWQyYzhkY2QzMTI2ZTU2Y2FiYTc5OTc0ODcwZmYyMWJiN2JhOTg5MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxh
Y2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2Jl
cnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZlcnNMb2Fk
aW5nKQogICAgIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2FkaW5nKHRo
aXMsIGRlZmVyc0xvYWRpbmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsK
LSAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1f
Y29udGV4dCB8fCAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIC8vIEZJWE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQgd2UgaGF2
ZSBOZXR3b3JraW5nQ29udGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyArMTU2LDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcgPSBmYWxz
ZTsKICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVz
dCwgJnN5bmNMb2FkZXIsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOworICAg
IFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFu
ZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBzaG91bGRD
b250ZW50U25pZmYpKTsKICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3RhcnRKb2Io
cGxheWVySWQsIGhhbmRsZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29uc3QgZG91
YmxlIHN5bmNMb2FkVGltZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApp
bmRleCA3NjE2NzViNDI2NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi44ZGNkMTI0M2U1
MTZkZDJjNjk4OTIxZDJhNGExYThlZWJmMTZlMDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKQEAg
LTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChD
RlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJlcXVlc3Qg
PSBjZlJlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVk
aXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAo
IXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3Qu
aHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2Nv
bElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBz
IikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBT
VG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwog
CiAgICAgaGFuZGxlLT53aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNl
KTsKQEAgLTQ5NiwyMSArNDk2LDIxIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+
bV9jb25uZWN0aW9uLmFkb3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMo
MCwgcmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQq
PigmY2xpZW50KSwgY29ubmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9j
b250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29u
dGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2Us
CiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhh
bmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwogCi0gICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xp
Y3koY29udGV4dCwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LmdldCgpLCBm
aXJzdFJlcXVlc3QoKS51cmwoKSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZVdpdGhDdXJyZW50TWVzc2Fn
ZVF1ZXVlKGQtPm1fY29ubmVjdGlvbi5nZXQoKSk7CkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QKICAgICBPd25QdHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZShyZXNw
b25zZSwgZXJyb3IpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9y
ZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKIAotICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVl
c3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudC5nZXQoKSwg
ZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwog
CiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Np
b24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtOTI0LDQgKzkyNCwzIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmhhbmRsZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkKICNlbmRpZgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggZjVl
N2NiZWQzN2FlMGM4OWU0YjBjODUxN2M1YjNlOGIzYzBmYmNmZC4uNGJmOGY5MGMwMDA3NmJiYTQ4
ZjIxMDA2ZTg4OTI3NGE2MWUzMjE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUyLDgg
KzUyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ly8gUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKK1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCiAgICAgLCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3N0YXRlKENvbm5lY3Rpb25TdGF0ZU5ldykKQEAgLTE3MywxMSArMTc0LDggQEAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6RnJvbVJlc291cmNlSGFuZGxl
KFJlc291cmNlSGFuZGwKIAogLy8gUmVzb3VyY2VIYW5kbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1SZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDog
ZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChyZXF1ZXN0LCBjbGllbnQpKSkK
K1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQorICAg
IDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb250ZXh0LCByZXF1ZXN0
LCBjbGllbnQpKSkKIHsKICAgICBkLT5zZXRPd25lcih0aGlzKTsKIApAQCAtMTkxLDkgKzE4OSw5
IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KAotICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZikpOworICAgICAgICBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4
dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRs
ZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTIwNCw2ICsyMDIsMTEgQEAgUmVzb3Vy
Y2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+
cmVxdWVzdCgpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5jb250ZXh0KCk7Cit9CisKIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2xpZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4g
ZC0+Y2xpZW50KCk7CkBAIC0yMTksOSArMjIyLDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0
RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUp
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQp
CisgICAgaWYgKCFkLT5jb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGQt
PnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IDllZWZlZThi
MjA1NTFiZTI5NDEzN2QxNDkyYzhkZDMwNWZjNjUxYTMuLjgyZTk3ZGE3NWNjMTU4ZWFhMWIxYTRj
ZTk1ODYxNWNkOWYyZDQ3MjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0zOCwxMiArMzgsMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOZXR3b3Jr
aW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVD
bGllbnQ7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJVUkxMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKKyAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgflJlc291cmNlSGFu
ZGxlSW50ZXJuYWwoKSB7IH0KIApAQCAtNzgsMTAgKzc5LDEyIEBAIHB1YmxpYzoKICAgICBSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAg
ICB2b2lkIHNldENsaWVudChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CiAgICAgV2ViS2l0OjpXZWJVUkxMb2FkZXIqIGxvYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHN0YXRpYyBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBGcm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbGUqKTsKIAog
cHJpdmF0ZToKKyAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFJlc291cmNlSGFuZGxlKiBtX293bmVyOwog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
aW5kZXggMWQ0MmE1YjA0YzNhNTEzMWZhYjE0MjI5ZGQyZDExY2Y2MzEzOGI5MS4uOWMzNTc2Njdm
OGI3YzM5YzgzZjAxZWNlMjA2MzFkNGNkMzMwMGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
QEAgLTk2LDE0ICs5NiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAg
ICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8g
VGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3Nv
Y2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBh
IGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBu
dWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2Fk
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0aGUgZnJh
bWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KLSAgICBp
ZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQg
JiYgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAg
LTE3NSw3ICsxNzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
c3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3
IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxz
ZSkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBtYW5hZ2VyID0gUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGMwYjhk
M2FiNzhkZDE2NDE5YWEwOWY1M2QyYzg4ZDY3YmMwMzE0YzIuLjI1NmJiMmNhYjMyNzA4NjU2ZjNl
MDRhOWZmYjkwOWM1ZjI2NzQxYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yMTgsMTkgKzIxOCwx
OSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdh
dGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPm1fY29udGV4dCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBs
b25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgotICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGQtPm1fc3RvcmFnZVNl
c3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAg
IGQtPm1fc3RvcmFnZVNlc3Npb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxh
dGZvcm1TZXNzaW9uKCk7CiAKICAgICBBU1NFUlQoIWQtPm1fcHJveHkpOwogICAgIGQtPm1fcHJv
eHkuYWRvcHROUyh3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkoKSk7CkBAIC0y
MzgsMTYgKzIzOCwxNiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCkKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAh
Y2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwog
Ci0gICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGQtPm1f
Y29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29u
bmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eShjb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksCi0gICAgICAgIGQtPm1fc2hvdWxkQ29u
dGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7
CisgICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50
U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
OwogCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFz
aFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
eworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGQtPm1fY29u
dGV4dC0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFz
aFNldDo6aXRlcmF0b3IgZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3Ig
KFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9v
cCA9ICgqaXQpLT5uc1J1bkxvb3AoKSkgewpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gY29udGV4
dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSkgeworICAgIGlmIChOU09wZXJhdGlvblF1ZXVl
ICpvcGVyYXRpb25RdWV1ZSA9IGQtPm1fY29udGV4dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUo
KSkgewogICAgICAgICBBU1NFUlQoIXNjaGVkdWxlZCk7CiAgICAgICAgIFtjb25uZWN0aW9uKCkg
c2V0RGVsZWdhdGVRdWV1ZTpvcGVyYXRpb25RdWV1ZV07CiAgICAgICAgIHNjaGVkdWxlZCA9IHRy
dWU7CkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBPd25Q
dHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZSgpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRD
cmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsK
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3Qs
IGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250
ZW50U25pZmYqLykpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4
dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtNjY4LDcgKzY2OCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qg
PSBuZXdSZXF1ZXN0OwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJl
ZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRw
cyIpICYmIG1faGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigp
OwogCiAgICAgbV9oYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3Bv
bnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5l
dHdvcmtSZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZl
OTMwMGVkMTJiMzRiY2IwOC4uZWY1NjQ5NWQyM2MzYTBhNDIwNjZlMDZhNDFlNDk0NjkxZDUyMzE1
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29y
a1JlcGx5SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9x
dC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3
b3JrUmVwbHlIYW5kbGVyOjpyZWRpcmVjdChSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29u
c3QgUVVybCYgcmVkaQogICAgIG5ld1JlcXVlc3Quc2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBT
aG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNv
dXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJo
dHRwcyIpKQorICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYm
IHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNv
dXJjZUhhbmRsZS0+Y29udGV4dCgpLT5zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1Rv
SFRUUFJlZGlyZWN0KCkpCiAgICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsK
IAogICAgIGNsaWVudC0+d2lsbFNlbmRSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVl
c3QsIHJlc3BvbnNlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCmluZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0
YTY4MjY2MTc4YjQyYWI2MWEuLjYyYzBmYzFlMDFkN2VkZTEyZWJkNmZiMGVkZWM3YWYyNmI4MmUx
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9S
ZXNvdXJjZUhhbmRsZVF0LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+
UmVzb3VyY2VIYW5kbGUoKQogICAgICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFu
ZGxlOjpzdGFydCgpCiB7CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0
aGVuIHdlIGFyZSBubyBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVz
dCBiZSBhbiBhdHRlbXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBs
ZXQncyBqdXN0IGJsb2NrIGl0LgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAh
ZC0+bV9wYXNzLmlzRW1wdHkoKSkgewpAQCAtMTA2LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICBkLT5tX2Zp
cnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJ
bnRlcm5hbCgpLT5tX2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwgKmQgPSBnZXRJbnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlI
YW5kbGVyKHRoaXMsIFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5t
X2RlZmVyc0xvYWRpbmcpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgfQogI2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9u
b3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1
ZXN0LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0
LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwqIGQgPSBoYW5kbGUtPmdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0
eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QKICAgICAgICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+
bV9wYXNzKTsKICAgICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50
aWFscyk7CiAgICAgfQotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFy
dGluZyBpbiBkZWZlcnJlZCBtb2RlIGdpdmVzIGQtPm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcg
c2V0IGJlZm9yZSBzZW5kaW5nIHRoZSByZXF1ZXN0LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3
b3JrUmVwbHlIYW5kbGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNo
cm9ub3VzTG9hZCwgdHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDRiNGU2ZGVjOTA2
ZTM2ODU1ZWI4MTEyNzM2ZjdiMmRmZmQwMjlhMzYuLjZjNTBiY2RlZWY0MzIyMjE2NDUwNjViODQ2
ZTY2Nzc5OTFiY2YzODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NjYsNyArNDY2LDcg
QEAgc3RhdGljIHZvaWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0K
IAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEg
c2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3VVJMLnByb3Rv
Y29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0
cHMiKSkKKyAgICBpZiAoIW5ld1VSTC5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMo
cmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNo
b3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAg
cmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgZC0+bV91c2VyID0gbmV3VVJMLnVz
ZXIoKTsKQEAgLTEwMjEsNyArMTAyMSw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0
QW5kTWVzc2FnZUZvckhhbmRsZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIEFT
U0VSVCghZC0+bV9zb3VwTWVzc2FnZSk7CiAKQEAgLTEwMzAsMTIgKzEwMzAsOSBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAvLyBJ
ZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJl
IGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0
J3MganVzdCBibG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2Ug
YXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFj
b250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFVzZWQgdG8gc2V0
IHRoZSBrZWVwIHRyYWNrIG9mIGN1c3RvbSBTb3VwU2Vzc2lvbnMgZm9yIHBvcnRzIHRoYXQgc3Vw
cG9ydCBpdCAoRUZMKS4KLSAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwotCiAgICAgLy8gT25s
eSBhbGxvdyB0aGUgUE9TVCBhbmQgR0VUIG1ldGhvZHMgZm9yIG5vbi1IVFRQIHJlcXVlc3RzLgog
ICAgIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpOwogICAg
IGJvb2wgaXNIVFRQRmFtaWx5UmVxdWVzdCA9IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRU
UEZhbWlseSgpOwpAQCAtMTA1MSw3ICsxMDQ4LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIAotICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5nQ29u
dGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBjb250ZXh0KTsKKyAgICBzZXRTb3VwUmVxdWVz
dEluaXRpYXRpbmdQYWdlSURGcm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5n
ZXQoKSwgZC0+bV9jb250ZXh0LmdldCgpKTsKIAogICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25s
eSBpZiBpdCdzIG5vdCBiZWVuIGV4cGxpY2l0bHkgZGVmZXJyZWQuCiAgICAgaWYgKCFkLT5tX2Rl
ZmVyc0xvYWRpbmcpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKaW5kZXggOGExZDE5OWFlMTRlZWM5YTM4YTYz
ZDg2ZTA0MDk1ODQ5N2QyNzkzZC4uNTkwZWIzMTIzZTBhOWQ1ZWRjNDEyNTM0NTE2ZDFkMTU3NzY2
YmI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVz
b3VyY2VIYW5kbGVXaW4uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6Om9uUmVxdWVzdENvbXBsZXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwo
KS5pc0xvY2FsRmlsZSgpIHx8IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkp
IHsKICAgICAgICAgcmVmKCk7IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGZpbGVMb2FkVGltZXIK
QEAgLTI3Nyw3ICsyNzcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCkKICAgICB9CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUp
Ci0gICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRs
ZShjb250ZXh0LT51c2VyQWdlbnQoKSk7CisgICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBh
c3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShkLT5tX2NvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAog
ICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAt
NDE5LDEwICs0MTksMTAgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBVTlVTRURfUEFS
QU0oc3RvcmVkQ3JlZGVudGlhbHMpOwogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5
bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhLCByZXF1ZXN0Lmh0dHBVc2VyQWdlbnQoKSk7
Ci0gICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSk7CisgICAgUmVzb3VyY2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0
cnVlLCBmYWxzZSwgY29udGV4dCk7CiAKICAgICBoYW5kbGUuc2V0U3luY2hyb25vdXNJbnRlcm5l
dEhhbmRsZShzeW5jTG9hZGVyLmludGVybmV0SGFuZGxlKCkpOwotICAgIGhhbmRsZS5zdGFydChj
b250ZXh0KTsKKyAgICBoYW5kbGUuc3RhcnQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6
c2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShISU5URVJORVQgaW50ZXJuZXRIYW5kbGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcAppbmRleCAyY2JkOTg5MjExNzllNjY3OWJlOTQ4OTdkMjY0Y2RjMjhlNDgzYjEz
Li4xOTQ4ZjA3NzY5MzQwNzM5NmM1NWM2MWZiNTlmMDUzOWQ2YTdiZmU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5j
cHAKQEAgLTc4LDcgKzc4LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkK
ICAgICByZWYoKTsKICAgICAKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUg
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3
b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZh
bHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVC
cm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRp
cmVjdCgpKTsKIAogICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKaW5kZXgg
ZTcwOGIwOWRkNzZmZTYwMjJhMDZmNTI4ODAxNThjZmJiOGY3NmQ4ZC4uODFiODZjYWQzYjZhY2Ni
Y2UxZWI0YzgzMDVkNDIzYjRiNTU5YmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQCBTY2hl
ZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVMb2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMmIHBhcmFtZQogICAgICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3kocGFyYW1l
dGVycy5jb250ZW50U25pZmZpbmdQb2xpY3koKSkKICAgICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50
aWFscyhwYXJhbWV0ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMoKSkKICAgICAsIG1faW5Qcml2
YXRlQnJvd3NpbmdNb2RlKHBhcmFtZXRlcnMuaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkpCisgICAg
LCBtX3Nob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QocGFyYW1l
dGVzLnNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkKICAg
ICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogewogICAgIGZvciAoc2l6ZV90IGkgPSAwLCBj
b3VudCA9IHBhcmFtZXRlcnMucmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9ucygpLnNpemUoKTsg
aSA8IGNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9T
Y2hlZHVsYWJsZUxvYWRlci5oCmluZGV4IGIwOGU4MWIyY2I2NjIxNDhjZGY5NTNiYWM0YzgzYjcx
NDc1N2I5YzMuLjg2YTlmZjc1MDE1YWI5MmZkNjU2ZWVjZTk1YWU2ZmFhMzg4YTU0MDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaApA
QCAtNjUsNiArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb25zdW1lU2FuZGJveEV4dGVu
c2lvbnMoKTsKICAgICB2b2lkIGludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCisgICAg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29u
c3QgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRUUFJlZGly
ZWN0OyB9CisKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CiAgICAgdWludDY0X3QgbV93ZWJQYWdlSUQ7CkBAIC04MSw2ICs4Myw4IEBAIHByaXZhdGU6
CiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb247
CiAgICAgCiAgICAgUmVmUHRyPEhvc3RSZWNvcmQ+IG1faG9zdFJlY29yZDsKKworICAgIGJvb2wg
bV9zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDVjNWYxNjNi
M2U2ZTA4MGRlMzg1MDBlOTNkM2Y3OTY1N2M1OTlmNjYuLjZmZGVlMTcyZGViMTcxYTI1M2MwY2Uz
MGUyNmQ5MTE5M2MzNWM3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0zMiw5ICszMiw5
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCA6
IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIG5lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJv
b2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJv
b2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdF
bmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJl
ZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIHNo
b3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAgICB9CiAg
ICAgdmlydHVhbCB+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKTsKIApAQCAtNDQsOCArNDQsMTAg
QEAgcHVibGljOgogCiAgICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYg
cHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUg
c2Vzc2lvbiBleGlzdHMuCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlclBv
bGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgot
ICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Ms
IGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25z
dCBPVkVSUklERTsKIApAQCAtNTgsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrczsKICAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZDsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKKyAgICBib29sIG1f
c2hvdWxkQ2xlYXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3
b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1v
dGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRleCBkZTdlMGZjNGZkZWRkMzdlODgxMjc4ODY5ZGQ1
ZDBmODkzMWU2Y2QyLi4wNWRkZTllYjZmM2I1YmI5Yjg3MjFjYmJmM2M1MzVmYjVkZjc2ODM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1Jl
bW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBAIC00MiwxMCArNDIsMTYgQEAgc3RhdGljIE93blB0
cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigp
CiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAKLVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1v
dGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZCkKK2Jvb2wgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJQb2xp
Y3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7Cit9CisKK1JlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQ
U1RvSFRUUFJlZGlyZWN0KQogICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcykKICAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQogICAgICwgbV9wcml2YXRlQnJvd3Np
bmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgLCBtX3Nob3VsZENsZWFyUmVm
ZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlclBvbGlj
eU9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCmluZGV4IGQ2ZjQyZTkwNDhiYWE2YTc4MGM3YjVmZTRmNzg5ZTY4ZGZhMjU5MjMuLjAzYjg2
MWIzOGFkZDJkZDc5OGY4NDgxNzRhNjk4ZDRlZDUxMTBkZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAKQEAgLTQ1LDEwICs0NSwxMSBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKQogICAgICwgbV9jb250ZW50U25p
ZmZpbmdQb2xpY3koU25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxz
KERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdN
b2RlKGZhbHNlKQorICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRU
UFJlZGlyZWN0KHRydWUpCiB7CiB9CiAKLU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50
aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgQ29u
dGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgU3RvcmVkQ3JlZGVudGlh
bHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUpCitO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdlSUQs
IHVpbnQ2NF90IHdlYkZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVz
b3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50
U25pZmZpbmdQb2xpY3ksIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMs
IGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xp
Y3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikK
ICAgICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fd2ViRnJhbWVJRCh3ZWJGcmFt
ZUlEKQpAQCAtNTcsNiArNTgsNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZgogICAgICwgbV9j
b250ZW50U25pZmZpbmdQb2xpY3koY29udGVudFNuaWZmaW5nUG9saWN5KQogICAgICwgbV9hbGxv
d1N0b3JlZENyZWRlbnRpYWxzKGFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCiAgICAgLCBtX2luUHJp
dmF0ZUJyb3dzaW5nTW9kZShpblByaXZhdGVCcm93c2luZ01vZGUpCisgICAgLCBtX3Nob3VsZENs
ZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJl
clBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaCBi
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzLmgKaW5kZXggZmMyZGIxOWRlZjIxM2U2MDVjOWIzYjk4ODcyZTQ4ZGNkN2NiZGYwMS4uN2Vj
ZDk2YWY3MzIzYzU5ZDEyYTg5NzdlYzEwOWJiMTFlOTg2YjZlYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5oCkBAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgdWludDY0X3QgUmVzb3VyY2VMb2Fk
SWRlbnRpZmllcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIHsKIHB1Ymxp
YzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygpOwotICAgIE5ldHdvcmtSZXNv
dXJjZUxvYWRQYXJhbWV0ZXJzKFJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBh
Z2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIGJvb2wgaW5Qcml2YXRlQnJvd3Np
bmdNb2RlKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdlSUQsIHVpbnQ2NF90IHdlYkZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5
LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRp
YWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
UG9saWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKIAogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6
OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBD
OjpBcmd1bWVudERlY29kZXIqLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYpOwpAQCAt
NjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5
IGNvbnRlbnRTbmlmZmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGVudFNuaWZmaW5n
UG9saWN5OyB9CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVk
ZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFsczsgfQogICAg
IGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV9pblByaXZhdGVC
cm93c2luZ01vZGU7IH0KKyAgICBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBT
VG9IVFRQUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJQb2xp
Y3lPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKQEAgLTcyLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgbV9jb250ZW50U25pZmZpbmdQb2xpY3k7CiAg
ICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzOwog
ICAgIGJvb2wgbV9pblByaXZhdGVCcm93c2luZ01vZGU7CisgICAgYm9vbCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggY2U1ZThlNTIyYTFhOTk0
MTA2MzAxZDI4YTg5MGM1YzZhN2U4YTM0MS4uYmNkZmEwOGM1OWJkNzI2Nzg4YmI4MTVmYjQ0N2Zl
MzdmYTI5ZGVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM3LDEwICszNywx
MiBAQAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5j
bHVkZSAiV2ViUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
RnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVm
ZXJyZXJQb2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGlu
Z3MuaD4KQEAgLTY3LDcgKzY5LDcgQEAgUGFzc1JlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZCgKIHsKICAgICBS
ZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IFN1YnJlc291cmNlTG9hZGVyOjpjcmVh
dGUoZnJhbWUsIHJlc291cmNlLCByZXF1ZXN0LCBvcHRpb25zKTsKICAgICBpZiAobG9hZGVyKQot
ICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBwcmlvcml0eSk7CisgICAgICAgIHNj
aGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIHByaW9yaXR5LCBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVm
ZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQpOwogICAgIHJldHVybiBsb2Fk
ZXIucmVsZWFzZSgpOwogfQogCkBAIC03NSwxMSArNzcsMTEgQEAgUGFzc1JlZlB0cjxOZXRzY2Fw
ZVBsdWdJblN0cmVhbUxvYWRlcj4gV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBs
dWdpblMKIHsKICAgICBSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+IGxvYWRlciA9
IE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpjcmVhdGUoZnJhbWUsIGNsaWVudCwgcmVxdWVz
dCk7CiAgICAgaWYgKGxvYWRlcikKLSAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSwg
UmVzb3VyY2VMb2FkUHJpb3JpdHlMb3cpOworICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdl
dCgpLCBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdywgZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVy
UG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0KTsKICAgICByZXR1cm4gbG9hZGVyLnJl
bGVhc2UoKTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9h
ZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc291cmNlTG9hZFByaW9yaXR5IHBy
aW9yaXR5KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiB7
CiAgICAgTE9HKE5ldHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9h
ZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyBwcmlvcml0eSAlaSIsIHJlc291cmNl
TG9hZGVyLT51cmwoKS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwcmlvcml0eSk7CiAKQEAgLTEw
Myw3ICsxMDUsNyBAQCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2Fk
KFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRlciwgUmVzbwogICAgIFdlYkZyYW1lKiB3ZWJG
cmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4ocmVzb3VyY2VMb2FkZXIt
PmZyYW1lTG9hZGVyKCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKICAgICBXZWJQYWdlKiB3ZWJQ
YWdlID0gd2ViRnJhbWUtPnBhZ2UoKTsKIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzIGxvYWRQYXJhbWV0ZXJzKGlkZW50aWZpZXIsIHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJGcmFt
ZS0+ZnJhbWVJRCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCBwcmlvcml0eSwgY29udGVu
dFNuaWZmaW5nUG9saWN5LCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBwcml2YXRlQnJvd3NpbmdF
bmFibGVkKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVy
cyhpZGVudGlmaWVyLCB3ZWJQYWdlLT5wYWdlSUQoKSwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgcmVz
b3VyY2VMb2FkZXItPnJlcXVlc3QoKSwgcHJpb3JpdHksIGNvbnRlbnRTbmlmZmluZ1BvbGljeSwg
YWxsb3dTdG9yZWRDcmVkZW50aWFscywgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xl
YXJSZWZlcnJlclBvbGljeU9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAgICAgaWYgKCFXZWJQcm9j
ZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVz
c2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9h
ZChsb2FkUGFyYW1ldGVycyksIDApKSB7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0
byBzY2hlZHVsZSB0aGlzIGxvYWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBo
YWQgY3Jhc2hlZC4KICAgICAgICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3
ZSB3aWxsIHNjaGVkdWxlIGl0IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgKaW5kZXggMWY4NGFiNjRmODhkYWQ0NTM4Y2MxYzlkYTk2YmE5YTBjN2RhZDE0NS4u
Njg0NGE2MzFhZmZmOGYwMDA3ZDQ5MzM5NjNlNTI0YzhhOTFkYzhlNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRT
Y2hlZHVsZXIuaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBuZXR3b3JrUHJv
Y2Vzc0NyYXNoZWQoKTsKIAogcHJpdmF0ZToKLSAgICB2b2lkIHNjaGVkdWxlTG9hZChXZWJDb3Jl
OjpSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICB2
b2lkIHNjaGVkdWxlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291
cmNlTG9hZFByaW9yaXR5LCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJQb2xpY3lPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpOwogICAgIHZvaWQgYWRkVW5zY2hlZHVsYWJsZUxvYWQoV2ViQ29yZTo6UmVz
b3VyY2VMb2FkZXIqKTsKICAgICB2b2lkIHVuc2NoZWR1bGVkTG9hZFRpbWVyRmlyZWQoKTsKICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAppbmRleCAxNTRmMzA1MzBiZWZm
M2RjNzBjZjkxYzNiZmU2YTNkNDdiMTlhOGI2Li5jYTlkMjczZjljOGJmMjAxNjI4Yzk4MzRhNTIx
YzkxNDJlMWJlMGRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0y
MzQsNyArMjM0LDcgQEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQKIAogICAgIENvcmVJUEM6OkRh
dGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5jZTsKIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJlc291cmNlTG9hZElkZW50aWZpZXIsIDAsIDAsIHJlcXVl
c3QsIFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVzdCwgU25pZmZDb250ZW50LCBzdG9yZWRDcmVk
ZW50aWFscywgY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5pc1ByaXZhdGVCcm93c2luZ1Nlc3Np
b24oKSk7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMo
cmVzb3VyY2VMb2FkSWRlbnRpZmllciwgMCwgMCwgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3Jp
dHlIaWdoZXN0LCBTbmlmZkNvbnRlbnQsIHN0b3JlZENyZWRlbnRpYWxzLCBjb250ZXh0LT5zdG9y
YWdlU2Vzc2lvbigpLmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpLCBjb250ZXh0LT5zaG91bGRD
bGVhclJlZmVycmVyUG9saWN5T25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpOwogICAgIGlmICghV2Vi
UHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5k
U3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5j
aHJvbm91c0xvYWQobG9hZFBhcmFtZXRlcnMpLCBNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25z
ZSwgZGF0YVJlZmVyZW5jZSksIDApKSB7CiAgICAgICAgIHJlc3BvbnNlID0gUmVzb3VyY2VSZXNw
b25zZSgpOwogICAgICAgICBlcnJvciA9IGludGVybmFsRXJyb3IocmVxdWVzdC51cmwoKSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggNTRiZjAxY2E4MTFmNzAzYzI1YmI4YjQ5OTI3OTFkMzA0Zjg4NjdlNC4uN2Y1NDc3OGE2
NDg5NGE0M2Y3NDVmMDBhNWU4Yzc3MTBhYWYyMTYxNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisy
MDEzLTAyLTA0ICBNYXJqYSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAg
ICBUYWtlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVm
ZXJyZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04NjAwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFVuc2tpcCBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1s
aW5rLmh0bWwKKworICAgICAgICBTa2lwcGluZyB0aGUgdGVzdHMgb24gd2syLCBiZWNhdXNlIG90
aGVyIHJlZmVycmVyIHBvbGljeSB0ZXN0cyBhcmUKKyAgICAgICAgc2tpcHBlZCwgdG9vICggaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczOTEzICkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25z
OgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBs
YXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEzLTAxLTMxICBKZXNzaWUgQmVybGlu
ICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBh
biBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRlci5iZWdpbkRyYWdXaXRoRmlsZXMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZTg5NTFkY2QxMWVkYjcw
MmM3NDZjYzNmY2U2MmNjZWM5NzNiYzAzMC4uOTMxMDNjYzM5MjJmYjUyMzgyZjZmMWVjZDQxNDI4
YmIxMzEyZWFkMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTEyMzksOSArMTIzOSw2IEBAIHdlYmtpdC5vcmcvYi84NTY4OSBmYXN0L2FuaW1hdGlvbi9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sIFsgU2tpcCBdCiAjIFN0YXJ0ZWQg
ZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjQ3Mwogd2Via2l0Lm9yZy9iLzg1OTY5
IGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlmcmFtZS13aXRoLWJhY2stbmF2aWdhdGlvbi5o
dG1sIFsgRmFpbHVyZSBdCiAKLSMgU3RhcnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBp
biByMTE2NTYzCi13ZWJraXQub3JnL2IvODYwNjEgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84
NTMwOCBbIFJlbGVhc2UgXSBpZXRlc3RjZW50ZXIvY3NzMy92YWx1ZXNhbmR1bml0cy91bml0cy0w
MDAuaHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKICMgSUVUQyBuYW1lc3BhY2UgZmFpbHVyZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMmRlNDJiNGE3
YzJhNTcxZmRlZDBlNTRmMGU4OTlhMzJjNDU0NDM4My4uOWQ3NzVjN2I0YzkzY2RhZmRlYmU0NDQ4
YzM2ZWE4OTc4ZDkwNmYwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTc2NCw5ICs3NjQsNiBAQCBtZWRpYS92aWRlby1wbGF5ZWQtcmVzZXQuaHRtbAog
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NjkKIGh0dHAvdGVz
dHMvbG9hZGluZy9wb3N0LWluLWlmcmFtZS13aXRoLWJhY2stbmF2aWdhdGlvbi5odG1sCiAKLSMg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0
b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGgg
djgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGlu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCiBp
bnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3YTQzODM4MTM5
Y2JjYjRjZDcwMThlNzAzOWU0Nzk3MTZlYzQ0YmFkLi43MjcyNWQxZGJhMGIzZmM0YTFjYmIwZTI1
ZGZmM2UwYzVkMDVkY2FkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTE4NzksOSArMTg3OSw2IEBAIGZhc3QvbGF5ZXJzL25vLWNsaXBwaW5nLW92ZXJmbG93
LWhpZGRlbi1oYXJkd2FyZS1hY2NlbGVyYXRpb24uaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC1u
by1wb3J0Lmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3QuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZl
cnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0g
IwogIyBmYWlsaW5nIHRhYmxlcyB0ZXN0cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGIyMWM5ZThmMjE0NGEy
MDc4NWVlM2Q0ZDFjM2NkZTg3M2M1MWE3ZjkuLjU0YzgyNjU1MWM1NTk4MGQ2MGMwNzUwNmQxM2Nm
NTMwNjg5NWVjZGMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25z
CkBAIC0xODI0LDkgKzE4MjQsNiBAQCBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1z
aXplLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1Njg5
CiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sCiAK
LSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNw
ZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdp
dGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkK
IGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1s
IAogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQu
aHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5Mjdl
OGE2ZGI0NjNlMzVhYzNlOTIwZWM3NTRhY2M5Yzg3ZmRhMzliLi4wMTVlZjNhMTBmYzU5ZTZjMWE5
MTIwMzZmYzc1YzI5ODNiYWJlNzhkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMzEzLDYgKzMxMyw3IEBAIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1v
bmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLWFsd2F5cy5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1vcmlnaW4uaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3Jl
ZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0bWwKIApAQCAtMzM0LDExICszMzUsNiBAQCBm
YXN0L3NlbGVjdG9ycy9zZWxlY3Rpb24td2luZG93LWluYWN0aXZlLmh0bWwKICMgYXV0b1pvb21Q
YWdlVG9GaXRXaWR0aCgpLgogaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5o
dG1sCiAKLSMgVGhlIG5ldHdvcmsgc3RhY2sgdW5jb25kaXRpb25hbGx5IHN0cmlwcyB0aGUgaGVh
ZGVyIG9uIHRyYW5zaXRpb25zIGZyb20KLSMgc2VjdXJlIHRvIGluc2VjdXJlLiBJdCBzaG91bGQg
dGFrZSB0aGUgcmVmZXJyZXIgcG9saWN5IGludG8gYWNjb3VudCBpbnN0ZWFkLgotIyBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIGNzczMtY29uZGl0aW9u
YWxzIHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVkLgogd2Via2l0Lm9yZy9iLzg2MTQ2IGNzczMv
c3VwcG9ydHMuaHRtbAogd2Via2l0Lm9yZy9iLzEwNDgyMiBjc3MzL3N1cHBvcnRzLWNzc29tLmh0
bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186354</attachid>
            <date>2013-02-04 04:55:56 -0800</date>
            <delta_ts>2013-02-04 08:09:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130204135235.patch</filename>
            <type>text/plain</type>
            <size>56004</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNDMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzI4YTMxNjk5OTQyYzQ0
ZmExYzZkNjg0OGRhODNkZDQ0YTZhOWRlYi4uYWI1YzRhY2JjM2E3OGM4NTFhNzVkYjk3Mzc1MzAy
ODhhY2EyNTliNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpjb250
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0
OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisKIDIwMTMtMDEtMzAgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29t
PgogCiAgICAgICAgIERhdGFiYXNlQ29udGV4dCBuZWVkcyB0byBvdXRsaXZlIHRoZSBTY3JpcHRF
eGVjdXRpb25Db250ZXh0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IGQ4MjJmZTY1ODA3MzU1MmJiZGZjNjA1NWNi
MGU4N2FjZDY3MTVmY2QuLmIwMjE5ZTM0YjI4MWY4ZDM4ZjgxZGVjOWYyM2I4Zjk5NjhkZjk3NzYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMy0wMi0wNCAgTWFyamEgSMO2bHR0w6Qg
IDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJlciBwb2xpY3kgaW50
byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVmZXJyZXIgc2hvdWxkIG9u
bHkgYmUgY2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRpcmVjdCwKKyAgICAg
ICAgaWYgdGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUgcmVmZXJyZXIgc2hv
dWxkIGJlIGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVy
OjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVMb2FkZXIp
OgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmg6CisgICAgICAg
IChXZWJLaXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAgICAgIChSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5l
dHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk6CisgICAgICAg
IChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6UmVt
b3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZSk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUpOgorICAg
ICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmg6Cisg
ICAgICAgIChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2FkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQpOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaDoKKyAgICAg
ICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorCiAyMDEz
LTAxLTMxICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgogCiAgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8xMjY5NTgyNz4gUFBUOiBNYWtlIGxvYWRpbmcgZmlsZSBVUkxzIHdvcmsg
d2l0aCBhIHNhbmRib3hlZCBOZXR3b3JrUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggN2YwODgwMWNiNWMzZTc0NDU5YWM4Zjhm
NDk4ZGUzOWUzYzZhNmRiYS4uYzgwNDRhNjAyZjhhM2NiOTFkNmZjODIxYzE3ODMxNTc0NTE0NmQ3
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRl
eHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5o
CkBAIC0yMCw4ICsyMCwxMCBAQAogI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKICNk
ZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgog
I2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNs
dWRlICJSZWZlcnJlclBvbGljeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDYg
KzM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IDA7CiAgICAgfQogCisgICAgdmly
dHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9s
aWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0OworICAgIH0KKwogcHJvdGVjdGVkOgogICAg
IGV4cGxpY2l0IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQogICAgICAgICA6
IG1fZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYzgyYjQ2YzYwODdmZjk2MTI1Nzk5OGE1
NGFlZjVlZTZlNmFiY2QzNi4uZTgxMzM0Y2I5ZjgzYjk5NTU4YjI0Nzg5Y2FhYzhhNTc2Y2JmY2I5
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3Vy
Y2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJl
c291cmNlSGFuZGxlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0u
aCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRl
ICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNs
dWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5o
IgpAQCAtMTQyLDcgKzE0MSw3IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBiCiB9CiAKIEJsb2JS
ZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VE
YXRhPiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LCBib29sIGFzeW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUocmVx
dWVzdCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCisgICAgOiBSZXNvdXJjZUhhbmRsZSgwLCByZXF1
ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKICAgICAsIG1fYmxvYkRhdGEoYmxvYkRhdGEpCiAg
ICAgLCBtX2FzeW5jKGFzeW5jKQogICAgICwgbV9lcnJvckNvZGUoMCkKQEAgLTYzNiw0ICs2MzUs
MyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShCTE9CKQotCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggODQxZjdl
Y2ZlM2RkN2FiNzZlMDM4MmJlMDk3MWZlOTk3NzZhYjdlYy4uY2IzYzgyMGM1NGE3ZjJhMzcyNDU2
YmRjODJhMTE5NDA2MGEyMDgzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAK
ICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkg
Y29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdyYXAg
V2ViQ29va2llSmFyIGludG8gYSBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUgY29k
ZSBjcm9zcy1wbGF0Zm9ybS4KICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBjb29r
aWVKYXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDU3ZWVmZWRjNDUxNTkwNDBjYjdhZmQ0ZDMwZDU2
YTVlMWE5ZmUzYjMuLjhkNTc2M2EzY2I5MGZiNGIzMWY0MGFmM2FlNjgyZDU2ZGQwMzljMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
Y3BwCkBAIC01Myw4ICs1Myw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVpbHRp
bkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVpbHRp
blJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVjdG9y
KTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNM
b2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJl
c291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJs
KCkpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQq
IGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
ZikKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgY29u
dGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYg
JiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCiB7CiAgICAgaWYgKCFy
ZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxp
ZFVSTEZhaWx1cmUpOwpAQCAtNzQsMTIgKzc0LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNv
CiAgICAgaWYgKHByb3RvY29sTWFwSXRlbSAhPSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1
Y3Rvck1hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1ZShy
ZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUo
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmKSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3
SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGll
bnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdI
YW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICBy
ZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNv
bnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBuZXdI
YW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBAIFJl
c291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0dXJu
IGQtPm1fZmlyc3RSZXF1ZXN0OwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5k
bGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX2NvbnRleHQuZ2V0KCk7Cit9
CisKIGNvbnN0IFN0cmluZyYgUmVzb3VyY2VIYW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29uc3QK
IHsKICAgICByZXR1cm4gZC0+bV9sYXN0SFRUUE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCA3YjllMzBlNjMzZGZmODky
MjZjNTVkZWM5YjA5OGU5ZDI2OWIzYTk5Li5iN2JjNDhjYjc5ZDVkZGJlZjQxNjM3N2ZhNGRlOWJk
MzNkNTc4YzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUhhbmRsZS5oCkBAIC0xOTYsNiArMTk2LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaXJl
RmFpbHVyZShUaW1lcjxSZXNvdXJjZUhhbmRsZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KCkgY29uc3Q7CisKICAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxl
Pjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsKIApA
QCAtMjExLDcgKzIxMyw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0
aW5Db25zdHJ1Y3Rvcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29uc3Ry
dWN0b3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wg
c2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBk
ZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CiAKIHByaXZhdGU6CiAgICAg
ZW51bSBGYWlsdXJlVHlwZSB7CkBAIC0yMjQsNyArMjI2LDcgQEAgcHJpdmF0ZToKIAogICAgIHZv
aWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqKTsKKyAgICBib29sIHN0YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVm
QXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVm
QXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXgg
ZTk2ZGM4NTFmMWNkNjRkMDRlODVmNWFlYzc2ZmYxODk3NGZkNWUyNS4uNDhiNjI2ZTA0ZTc2MjI3
YmU0MDEzNDc5YTNmZWNlOTg3MDI0MDc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDggKzgz
LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJu
YWwgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXNvdXJjZUhhbmRsZUludGVybmFs
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMsIGJvb2wgZGVmZXJzTG9hZGlu
ZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgICAgICAgICA6IG1fY2xpZW50KGMpCisg
ICAgICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoUmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAg
ICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgICAgICwgbV9maXJzdFJlcXVlc3Qo
cmVxdWVzdCkKICAgICAgICAgICAgICwgbV9sYXN0SFRUUE1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRo
b2QoKSkKICAgICAgICAgICAgICwgc3RhdHVzKDApCkBAIC0xMzcsOCArMTM4LDkgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgICAgICB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpOwogCiAgICAg
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQor
CisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgICAgIAogICAgICAgICBSZXNvdXJj
ZVJlcXVlc3QgbV9maXJzdFJlcXVlc3Q7CiAgICAgICAgIFN0cmluZyBtX2xhc3RIVFRQTWV0aG9k
OwogCkBAIC0yMDIsNyArMjA0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjaGFy
KiBtX2J1ZmZlcjsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2JvZHlTaXplOwogICAgICAgICB1
bnNpZ25lZCBsb25nIG1fYm9keURhdGFTZW50OwotICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0Nv
bnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCk7CiAg
ICAgICAgIGludCBtX3JlZGlyZWN0Q291bnQ7CiAjZW5kaWYKQEAgLTIxNCw3ICsyMTUsNiBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAjZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU5l
dHdvcmtSZXBseUhhbmRsZXIqIG1fam9iOwotICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRl
eHQ+IG1fY29udGV4dDsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxl
QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVy
cnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAppbmRleCBhY2MyNzkyYWVkODE1OGM5NGVm
YjQ5MWU3MzQ4MzVjNTlhNWE4OTIxLi5hZDJjOGRjZDMxMjZlNTZjYWJhNzk5NzQ4NzBmZjIxYmI3
YmE5ODkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcApA
QCAtMTA3LDkgKzEwNyw5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJz
TG9hZGluZyhib29sIGRlZmVyc0xvYWRpbmcpCiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNl
KCktPnNldERlZmVyc0xvYWRpbmcodGhpcywgZGVmZXJzTG9hZGluZyk7CiB9CiAKLWJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+aXNW
YWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0IHx8ICFkLT5tX2NvbnRleHQtPmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgLy8gRklYTUU6IGNsZWFuIHVwIHVzZSBv
ZiBGcmFtZSBub3cgdGhhdCB3ZSBoYXZlIE5ldHdvcmtpbmdDb250ZXh0IChzZWUgUklNIEJ1ZyAj
MTUxNSkKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIGJv
b2wgZGVmZXJzTG9hZGluZyA9IGZhbHNlOwogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0g
ZmFsc2U7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIs
IGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpOwogICAgIE5ldHdvcmtNYW5hZ2Vy
OjppbnN0YW5jZSgpLT5zdGFydEpvYihwbGF5ZXJJZCwgaGFuZGxlLCBmcmFtZSwgZGVmZXJzTG9h
ZGluZyk7CiAKICAgICBjb25zdCBkb3VibGUgc3luY0xvYWRUaW1lT3V0ID0gNjA7IC8vIHNlY29u
ZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3Vy
Y2VIYW5kbGVDRk5ldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCmluZGV4IDc2MTY3NWI0MjY3NWMzNGVmNWMxNDM4ZGZlYWFh
NGM3NTY4YWM4OGIuLmIwMDk1YWE5MDNjNWExNjJhNTM1MDYyMTNkM2UwN2U3YTI2YzlmNWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5k
bGVDRk5ldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNv
dXJjZUhhbmRsZUNGTmV0LmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBDRlVSTFJlcXVl
c3RSZWYgd2lsbFNlbmRSZXF1ZXN0KENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRlVSTFJlcXVl
c3RSZWYKICAgICAgICAgcmVxdWVzdCA9IGNmUmVxdWVzdDsKIAogICAgIC8vIFNob3VsZCBub3Qg
c2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5v
bi1zZWN1cmUgb25lLgotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFy
SFRUUFJlZmVycmVyKCk7CiAKICAgICBoYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCBj
ZlJlZGlyZWN0UmVzcG9uc2UpOwpAQCAtNDk2LDIxICs0OTYsMjEgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6Y3JlYXRlQ0ZVUkxDb25uZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3Jh
Z2UsIGJvb2wKICAgICBkLT5tX2Nvbm5lY3Rpb24uYWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVh
dGVXaXRoUHJvcGVydGllcygwLCByZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PENGVVJM
Q29ubmVjdGlvbkNsaWVudCo+KCZjbGllbnQpLCBjb25uZWN0aW9uUHJvcGVydGllcy5nZXQoKSkp
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQp
CisgICAgaWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8v
IElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0
dGFjaGVkIHRvIGEgUGFnZSwKICAgICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQg
ZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAo
IWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4
dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5tX3N0b3JhZ2VT
ZXNzaW9uID0gZC0+bV9jb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigp
OwogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBj
bGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBjcmVhdGVD
RlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIHNob3VsZFJlbGF4VGhp
cmRQYXJ0eUNvb2tpZVBvbGljeShjb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksIGQtPm1f
c2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNl
Q3JlZGVudGlhbFN0b3JhZ2UsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5t
X2NvbnRleHQuZ2V0KCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwgZC0+bV9zaG91bGRDb250ZW50
U25pZmYpOwogCiAjaWYgUExBVEZPUk0oV0lOKQogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxl
V2l0aEN1cnJlbnRNZXNzYWdlUXVldWUoZC0+bV9jb25uZWN0aW9uLmdldCgpKTsKQEAgLTczOSw3
ICs3MzksNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNs
aWVudDo6Y3JlYXRlKHJlc3BvbnNlLCBlcnJvcik7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMp
OwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcq
LywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFu
ZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVz
dCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENv
bnRlbnRTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250
ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC05MjQsNCArOTI0
LDMgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6aGFuZGxlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0
YUFycmF5KQogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFu
ZGxlLmNwcAppbmRleCBmNWU3Y2JlZDM3YWUwYzg5ZTRiMGM4NTE3YzViM2U4YjNjMGZiY2ZkLi40
YmY4ZjkwYzAwMDc2YmJhNDhmMjEwMDZlODg5Mjc0YTYxZTMyMTk1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFu
ZGxlLmNwcApAQCAtNTIsOCArNTIsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiAvLyBSZXNvdXJjZUhhbmRsZUludGVybmFsIC0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi1SZXNvdXJjZUhhbmRsZUlu
dGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCkKLSAgICA6IG1fcmVxdWVzdChyZXF1
ZXN0KQorUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBS
ZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisg
ICAgLCBtX3JlcXVlc3QocmVxdWVzdCkKICAgICAsIG1fb3duZXIoMCkKICAgICAsIG1fY2xpZW50
KGNsaWVudCkKICAgICAsIG1fc3RhdGUoQ29ubmVjdGlvblN0YXRlTmV3KQpAQCAtMTczLDExICsx
NzQsOCBAQCBSZXNvdXJjZUhhbmRsZUludGVybmFsKiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpG
cm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbAogCiAvLyBSZXNvdXJjZUhhbmRsZSAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
CiAKLVJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
IHJlcXVlc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVy
c0xvYWRpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRDb250
ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHJl
cXVlc3QsIGNsaWVudCkpKQorUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtp
bmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291
cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRD
b250ZW50U25pZmYpCisgICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFs
KGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCkpKQogewogICAgIGQtPnNldE93bmVyKHRoaXMpOwog
CkBAIC0xOTEsOSArMTg5LDkgQEAgUGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VI
YW5kbGU6OmNyZWF0ZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYpCiB7CiAgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihu
ZXcgUmVzb3VyY2VIYW5kbGUoCi0gICAgICAgIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGlu
Zywgc2hvdWxkQ29udGVudFNuaWZmKSk7CisgICAgICAgIGNvbnRleHQsIHJlcXVlc3QsIGNsaWVu
dCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CiAKLSAgICBpZiAobmV3SGFu
ZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAobmV3SGFuZGxlLT5zdGFydCgpKQogICAgICAg
ICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpAQCAtMjA0LDYg
KzIwMiwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJlc291cmNlSGFuZGxlOjpmaXJzdFJlcXVlc3Qo
KQogICAgIHJldHVybiBkLT5yZXF1ZXN0KCk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBSZXNv
dXJjZUhhbmRsZTo6Y29udGV4dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmNvbnRleHQoKTsK
K30KKwogUmVzb3VyY2VIYW5kbGVDbGllbnQqIFJlc291cmNlSGFuZGxlOjpjbGllbnQoKSBjb25z
dAogewogICAgIHJldHVybiBkLT5jbGllbnQoKTsKQEAgLTIxOSw5ICsyMjIsOSBAQCB2b2lkIFJl
c291cmNlSGFuZGxlOjpzZXREZWZlcnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVm
ZXJzTG9hZGluZyh2YWx1ZSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewot
ICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPmNvbnRleHQoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgZC0+c3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFs
LmgKaW5kZXggOWVlZmVlOGIyMDU1MWJlMjk0MTM3ZDE0OTJjOGRkMzA1ZmM2NTFhMy4uODJlOTdk
YTc1Y2MxNThlYWExYjFhNGNlOTU4NjE1Y2Q5ZjJkNDcyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhh
bmRsZUludGVybmFsLmgKQEAgLTM4LDEyICszOCwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK2NsYXNzIE5ldHdvcmtpbmdDb250ZXh0OwogY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFz
cyBSZXNvdXJjZUhhbmRsZUNsaWVudDsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCA6
IHB1YmxpYyBXZWJLaXQ6OldlYlVSTExvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgUmVzb3Vy
Y2VIYW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNs
aWVudCopOworICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0NvbnRleHQqLCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCopOwogCiAgICAgdmly
dHVhbCB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpIHsgfQogCkBAIC03OCwxMCArNzksMTIgQEAg
cHVibGljOgogICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVy
biBtX2NsaWVudDsgfQogICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50KiBj
bGllbnQpIHsgbV9jbGllbnQgPSBjbGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVSTExvYWRlciog
bG9hZGVyKCkgY29uc3QgeyByZXR1cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCiAg
ICAgc3RhdGljIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhhbmRsZShSZXNv
dXJjZUhhbmRsZSopOwogCiBwcml2YXRlOgorICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4g
bV9jb250ZXh0OwogICAgIFJlc291cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgUmVzb3VyY2VI
YW5kbGUqIG1fb3duZXI7CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIG1fY2xpZW50OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFu
ZGxlQ3VybC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcAppbmRleCAxZDQyYTViMDRjM2E1MTMxZmFiMTQyMjlkZDJkMTFjZjYz
MTM4YjkxLi45YzM1NzY2N2Y4YjdjMzljODNmMDFlY2UyMDYzMWQ0Y2QzMzAwY2Y2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVD
dXJsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcApAQCAtOTYsMTQgKzk2LDE0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVz
b3VyY2VIYW5kbGUoKQogICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpz
dGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KCkKIHsKICAgICAvLyBUaGUgZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VI
YW5kbGUgaXMgbm90IGFzc29jaWF0ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2Ug
YXJlIGRvd25sb2FkaW5nIGEgZmlsZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwg
YnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxv
YWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KICAgICAv
LyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0
IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAg
aWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2Uo
KS0+YWRkKHRoaXMpOwpAQCAtMTc1LDcgKzE3NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Omxv
YWRzQmxvY2tlZCgpCiB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBT
dG9yZWRDcmVkZW50aWFscyBzdG9yZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3Is
IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAg
V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXI7Ci0gICAgUmVmUHRyPFJlc291cmNl
SGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5
bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5k
bGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNM
b2FkZXIsIHRydWUsIGZhbHNlKSk7CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXIqIG1hbmFn
ZXIgPSBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVN
YWMubW0KaW5kZXggYzBiOGQzYWI3OGRkMTY0MTlhYTA5ZjUzZDJjODhkNjdiYzAzMTRjMi4uNjcy
MzUzNGQwMjBkZTM1ZGRkNDllNDc1MDFmZmUyYTI5YTY5ZjA2ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0K
QEAgLTIxOCwxOSArMjE4LDE5IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29u
bmVjdGlvbihpZCBkZWxlZ2F0ZSwgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsCiAKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICgh
ZC0+bV9jb250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19P
QkpDX0VYQ0VQVElPTlM7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlk
IHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBt
dXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNv
IGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAg
aWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0g
ICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZv
cm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3Rv
cmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIEFTU0VSVCghZC0+bV9wcm94
eSk7CiAgICAgZC0+bV9wcm94eS5hZG9wdE5TKHdrQ3JlYXRlTlNVUkxDb25uZWN0aW9uRGVsZWdh
dGVQcm94eSgpKTsKQEAgLTIzOCwxNiArMjM4LDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlh
bFN0b3JhZ2UodGhpcyk7CiAKLSAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29u
dGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNp
ZmljUXVpcmtzID0gZC0+bV9jb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAg
ICAgY3JlYXRlTlNVUkxDb25uZWN0aW9uKAogICAgICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAg
ICAgICBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwKLSAgICAgICAgc2hvdWxkUmVsYXhUaGly
ZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwKLSAgICAg
ICAgZC0+bV9zaG91bGRDb250ZW50U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZCgpKTsKKyAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9s
aWN5KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLAorICAgICAgICBk
LT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQoKSk7CiAKICAgICBib29sIHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlm
IChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxl
ZFJ1bkxvb3BQYWlycygpKSB7CisgICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxl
ZFBhaXJzID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAg
ICBTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5k
KCk7CiAgICAgICAgIGZvciAoU2NoZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hl
ZHVsZWRQYWlycy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAo
TlNSdW5Mb29wICpydW5Mb29wID0gKCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC0yNTcsNyArMjU3
LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0
aW9uUXVldWUgPSBjb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CisgICAgaWYg
KE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gZC0+bV9jb250ZXh0LT5zY2hlZHVs
ZWRPcGVyYXRpb25RdWV1ZSgpKSB7CiAgICAgICAgIEFTU0VSVCghc2NoZWR1bGVkKTsKICAgICAg
ICAgW2Nvbm5lY3Rpb24oKSBzZXREZWxlZ2F0ZVF1ZXVlOm9wZXJhdGlvblF1ZXVlXTsKICAgICAg
ICAgc2NoZWR1bGVkID0gdHJ1ZTsKQEAgLTM4MSw3ICszODEsNyBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVu
dCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6Y3JlYXRlKCk7CiAgICAgY2xpZW50
LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBh
ZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAv
KmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
Y29udGV4dCwgcmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywg
dHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFn
ZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwog
CkBAIC02NjgsNyArNjY4LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxs
YXRpb24oY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW4KICAgICBSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCA9IG5ld1JlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBS
ZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2Vj
dXJlIG9uZS4KLSAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBw
cm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghcmVx
dWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRw
UmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9oYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRU
UFJlZmVycmVyKCk7CiAKICAgICBtX2hhbmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJl
ZGlyZWN0UmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9xdC9RTmV0d29ya1JlcGx5SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAppbmRleCAwYjY0Yjc5YmE0NDll
YTQ3ODJhYzcwZmU5MzAwZWQxMmIzNGJjYjA4Li4xY2E1NDNlNDQyZjRlZWJjMzQ1ZTg3MTA0NTQw
ZGQ0MzdiN2MxYWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcApAQCAtNjQ3LDcgKzY0Nyw3IEBA
IHZvaWQgUU5ldHdvcmtSZXBseUhhbmRsZXI6OnJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBjb25zdCBRVXJsJiByZWRpCiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsK
IAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEg
c2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51
cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVm
ZXJyZXIoKSwgImh0dHBzIikpCisgICAgaWYgKCFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMo
Imh0dHBzIikgJiYgcHJvdG9jb2xJcyhuZXdSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMi
KSAmJiBtX3Jlc291cmNlSGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhU
VFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJl
cigpOwogCiAgICAgY2xpZW50LT53aWxsU2VuZFJlcXVlc3QobV9yZXNvdXJjZUhhbmRsZSwgbmV3
UmVxdWVzdCwgcmVzcG9uc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKaW5kZXggMTM3NTFlYjY1ZDdmMzNmYzk3
YmMyMzRhNjgyNjYxNzhiNDJhYjYxYS4uNjJjMGZjMWUwMWQ3ZWRlMTJlYmQ2ZmIwZWRlYzdhZjI2
YjgyZTEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9S
ZXNvdXJjZUhhbmRsZVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCkBAIC05MCwxMSArOTAsMTEgQEAgUmVzb3VyY2VIYW5k
bGU6On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZh
bGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhp
cyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIs
IHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlz
VmFsaWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQo
KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgp
IHx8ICFkLT5tX3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xMDYsNyArMTA2LDYgQEAgYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGQt
Pm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAg
IGdldEludGVybmFsKCktPm1fY29udGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCAqZCA9IGdldEludGVybmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtS
ZXBseUhhbmRsZXIodGhpcywgUU5ldHdvcmtSZXBseUhhbmRsZXI6OkFzeW5jaHJvbm91c0xvYWQs
IGQtPm1fZGVmZXJzTG9hZGluZyk7CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzQsNyArMTMzLDcg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICB9CiAjZW5kaWYKICAgICBXZWJDb3JlU3lu
Y2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwotICAgIFJl
ZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJj
ZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJl
cXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCogZCA9IGhhbmRsZS0+Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fdXNlci5p
c0VtcHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpIHsKQEAgLTE0NSw3ICsxNDQsNiBAQCB2
b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFz
cyhkLT5tX3Bhc3MpOwogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENy
ZWRlbnRpYWxzKTsKICAgICB9Ci0gICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIC8v
IHN0YXJ0aW5nIGluIGRlZmVycmVkIG1vZGUgZ2l2ZXMgZC0+bV9qb2IgdGhlIGNoYW5jZSBvZiBi
ZWluZyBzZXQgYmVmb3JlIHNlbmRpbmcgdGhlIHJlcXVlc3QuCiAgICAgZC0+bV9qb2IgPSBuZXcg
UU5ldHdvcmtSZXBseUhhbmRsZXIoaGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6
U3luY2hyb25vdXNMb2FkLCB0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNGI0ZTZk
ZWM5MDZlMzY4NTVlYjgxMTI3MzZmN2IyZGZmZDAyOWEzNi4uZmMxNzU4MDAxMDA3NTkwNzBhNTFm
MTNiOGRiOGE1OTQyMTBlZjhmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ2Niw3ICs0
NjYsNyBAQCBzdGF0aWMgdm9pZCBkb1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAg
ICAgfQogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZy
b20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdVUkwu
cHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCks
ICJodHRwcyIpKQorICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9j
b2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQo
KS0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICBy
ZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNl
cigpOwpAQCAtMTAyMSw3ICsxMDIxLDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RB
bmRNZXNzYWdlRm9ySGFuZGxlKFJlc291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNT
RVJUKCFkLT5tX3NvdXBNZXNzYWdlKTsKIApAQCAtMTAzMCwxMiArMTAzMCw5IEBAIGJvb2wgUmVz
b3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIC8vIElm
IHRoZSBmcmFtZSBpcyBub3QgbnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUg
YW4gYXR0ZW1wdGVkCiAgICAgLy8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQn
cyBqdXN0IGJsb2NrIGl0LgogICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBh
cmUgbm90IG51bGwgdGhlIGNvbnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNv
bnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQt
PmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQg
dGhlIGtlZXAgdHJhY2sgb2YgY3VzdG9tIFNvdXBTZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBw
b3J0IGl0IChFRkwpLgotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5
IGFsbG93IHRoZSBQT1NUIGFuZCBHRVQgbWV0aG9kcyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAg
ICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAg
Ym9vbCBpc0hUVFBGYW1pbHlSZXF1ZXN0ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQ
RmFtaWx5KCk7CkBAIC0xMDUxLDcgKzEwNDgsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgc2V0U291cFJlcXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250
ZXh0KGQtPm1fc291cFJlcXVlc3QuZ2V0KCksIGNvbnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0
SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1ZXN0Lmdl
dCgpLCBkLT5tX2NvbnRleHQuZ2V0KCkpOwogCiAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5
IGlmIGl0J3Mgbm90IGJlZW4gZXhwbGljaXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVm
ZXJzTG9hZGluZykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
d2luL1Jlc291cmNlSGFuZGxlV2luLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvd2luL1Jlc291cmNlSGFuZGxlV2luLmNwcAppbmRleCA4YTFkMTk5YWUxNGVlYzlhMzhhNjNk
ODZlMDQwOTU4NDk3ZDI3OTNkLi41OTBlYjMxMjNlMGE5ZDVlZGM0MTI1MzQ1MTZkMWQxNTc3NjZi
YjhjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNv
dXJjZUhhbmRsZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBSZXNvdXJj
ZUhhbmRsZTo6b25SZXF1ZXN0Q29tcGxldGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgp
LmlzTG9jYWxGaWxlKCkgfHwgZmlyc3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkg
ewogICAgICAgICByZWYoKTsgLy8gYmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgpA
QCAtMjc3LDcgKzI3Nyw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdD
b250ZXh0KiBjb250ZXh0KQogICAgIH0KIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkK
LSAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxl
KGNvbnRleHQtPnVzZXJBZ2VudCgpKTsKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFz
eW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGQtPm1fY29udGV4dC0+dXNlckFnZW50KCkpOwogCiAg
ICAgaWYgKCFkLT5tX2ludGVybmV0SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00
MTksMTAgKzQxOSwxMCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJv
bm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIFVOVVNFRF9QQVJB
TShzdG9yZWRDcmVkZW50aWFscyk7CiAKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3lu
Y0xvYWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEsIHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpKTsK
LSAgICBSZXNvdXJjZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZh
bHNlKTsKKyAgICBSZXNvdXJjZUhhbmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRy
dWUsIGZhbHNlLCBjb250ZXh0KTsKIAogICAgIGhhbmRsZS5zZXRTeW5jaHJvbm91c0ludGVybmV0
SGFuZGxlKHN5bmNMb2FkZXIuaW50ZXJuZXRIYW5kbGUoKSk7Ci0gICAgaGFuZGxlLnN0YXJ0KGNv
bnRleHQpOworICAgIGhhbmRsZS5zdGFydCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpz
ZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IDJjYmQ5ODkyMTE3OWU2Njc5YmU5NDg5N2QyNjRjZGMyOGU0ODNiMTMu
LjdmNGJiZGQ4MzQ2N2RjOWU2MDM4ZWNjZDQ2MmQ4ZTUxODgyZGMxOGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cApAQCAtNzgsNyArNzgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQog
ICAgIHJlZigpOwogICAgIAogICAgIC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRoIGFjdHVhbCBzZXR0aW5ncy4KLSAgICBtX25ldHdv
cmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFs
c2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0g
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJy
b3dzaW5nTW9kZSgpLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkp
OwogCiAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcAppbmRleCBlNzA4YjA5
ZGQ3NmZlNjAyMmEwNmY1Mjg4MDE1OGNmYmI4Zjc2ZDhkLi42YzU1MzdkY2FmMDY5YWIyOGRiMjBj
ZGRmMjcyZGZkNDhjYTk5ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCkBAIC0zOSw2ICszOSw3IEBAIFNjaGVkdWxhYmxl
TG9hZGVyOjpTY2hlZHVsYWJsZUxvYWRlcihjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYgcGFyYW1lCiAgICAgLCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeShwYXJhbWV0ZXJzLmNv
bnRlbnRTbmlmZmluZ1BvbGljeSgpKQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKHBh
cmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50aWFscygpKQogICAgICwgbV9pblByaXZhdGVCcm93
c2luZ01vZGUocGFyYW1ldGVycy5pblByaXZhdGVCcm93c2luZ01vZGUoKSkKKyAgICAsIG1fc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChwYXJhbWV0ZXMuc2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICwgbV9jb25uZWN0aW9uKGNv
bm5lY3Rpb24pCiB7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gcGFyYW1ldGVycy5y
ZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zKCkuc2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2Fk
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmgK
aW5kZXggYjA4ZTgxYjJjYjY2MjE0OGNkZjk1M2JhYzRjODNiNzE0NzU3YjljMy4uYTYxYTZmZjU4
OWY1MTYwZmVkMjIwYmZiMjk2MGIwNDVkYzA2YTAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oCkBAIC02NSw2ICs2NSw4IEBAIHBy
b3RlY3RlZDoKICAgICB2b2lkIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogICAgIHZvaWQg
aW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCk7CiAKKyAgICBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KKwogcHJpdmF0ZToKICAgICBSZXNvdXJj
ZUxvYWRJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX3dlYlBhZ2VJRDsK
QEAgLTgxLDYgKzgzLDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25U
b1dlYlByb2Nlc3M+IG1fY29ubmVjdGlvbjsKICAgICAKICAgICBSZWZQdHI8SG9zdFJlY29yZD4g
bV9ob3N0UmVjb3JkOworCisgICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5o
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggNWM1ZjE2M2IzZTZlMDgwZGUzODUwMGU5M2QzZjc5NjU3YzU5OWY2Ni4uMjk2
MGQwNDY4MWM4NGMwYzk2MTM5MWM0YjI5NzBkZGVlOGFkYjNmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysr
IGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0LmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4g
Y3JlYXRlKGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVu
dFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAgIHN0YXRp
YyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoYm9vbCBuZWVkc1Np
dGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBi
b29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxvY2FsRmlsZUNv
bnRlbnRTbmlmZmluZ0VuYWJsZWQsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpKTsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwog
ICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCkBAIC00NCw4
ICs0NCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VT
ZXNzaW9uJiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3
aGVuIHRoZSBzZXNzaW9uIGV4aXN0cy4KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6
Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJr
cywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93
c2luZ0VuYWJsZWQpOworICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9W
RVJSSURFOwogCkBAIC01OCw2ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzU2l0
ZVNwZWNpZmljUXVpcmtzOwogICAgIGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgbV9zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogfTsKIAogfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250
ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCmluZGV4IGRlN2UwZmM0ZmRlZGQzN2U4ODEyNzg4NjlkZDVkMGY4OTMxZTZj
ZDIuLjc4MTk1MzNhNTI5YjU2YWY0MGEwY2I5ZWM2YWUxYzljNzkxY2EyZWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQubW0KQEAgLTQyLDEwICs0MiwxNiBAQCBzdGF0aWMgT3duUHRyPE5ldHdvcmtT
dG9yYWdlU2Vzc2lvbj4mIHByaXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uKCkKICAgICByZXR1
cm4gc2Vzc2lvbjsKIH0KIAotUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorYm9vbCBS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdDsKK30KKworUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5l
dHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxG
aWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgOiBtX25l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKQogICAgICwgbV9s
b2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0Vu
YWJsZWQpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0VuYWJsZWQocHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCkKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggZDZmNDJlOTA0OGJhYTZhNzgwYzdiNWZlNGY3ODll
NjhkZmEyNTkyMy4uMGI3YWQ2NGQ2NTJmZmMwNGNkYzI5Njk0OTNmYTU5YTAxNWFjYjk0MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAtNDUsMTAgKzQ1LDExIEBAIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygpCiAg
ICAgLCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeShTbmlmZkNvbnRlbnQpCiAgICAgLCBtX2FsbG93
U3RvcmVkQ3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICwgbV9p
blByaXZhdGVCcm93c2luZ01vZGUoZmFsc2UpCisgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QodHJ1ZSkKIHsKIH0KIAotTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFJlc291cmNlTG9hZElkZW50
aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlE
LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHBy
aW9yaXR5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBTdG9y
ZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dz
aW5nTW9kZSkKK05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90
IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9s
aWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRD
cmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUsIGJvb2wgc2hvdWxkQ2xlYXJS
ZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlEKQogICAgICwgbV93ZWJGcmFtZUlEKHdl
YkZyYW1lSUQpCkBAIC01Nyw2ICs1OCw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmCiAgICAg
LCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeShjb250ZW50U25pZmZpbmdQb2xpY3kpCiAgICAgLCBt
X2FsbG93U3RvcmVkQ3JlZGVudGlhbHMoYWxsb3dTdG9yZWRDcmVkZW50aWFscykKICAgICAsIG1f
aW5Qcml2YXRlQnJvd3NpbmdNb2RlKGluUHJpdmF0ZUJyb3dzaW5nTW9kZSkKKyAgICAsIG1fc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogfQogCkBAIC0xMDMsNiArMTA1LDcgQEAgdm9pZCBO
ZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5j
b2RlciYgZW5jb2RlcikgY28KICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9jb250ZW50U25pZmZp
bmdQb2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51bShtX2FsbG93U3RvcmVkQ3JlZGVudGlh
bHMpOwogICAgIGVuY29kZXIuZW5jb2RlKG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKTsKKyAgICBl
bmNvZGVyLmVuY29kZShtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
OwogfQogCiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQ
Qzo6QXJndW1lbnREZWNvZGVyKiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyYgcmVzdWx0KQpAQCAtMTQ3LDYgKzE1MCw4IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGRlY29kZXIsIE5lCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRlY29kZXItPmRlY29kZShyZXN1bHQubV9p
blByaXZhdGVCcm93c2luZ01vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFk
ZWNvZGVyLT5kZWNvZGUocmVzdWx0Lm1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKaW5kZXggZmMyZGIxOWRlZjIxM2U2MDVjOWIzYjk4ODcy
ZTQ4ZGNkN2NiZGYwMS4uODhjYzg4N2YwNDEzMjMyN2ZlZDU3YzA3ZGIyNDNkNDdjYmQ0NTJjOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCkBAIC00NSw3ICs0NSw3IEBAIHR5cGVkZWYgdWlu
dDY0X3QgUmVzb3VyY2VMb2FkSWRlbnRpZmllcjsKIGNsYXNzIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzIHsKIHB1YmxpYzoKICAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygp
OwotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFJlc291cmNlTG9hZElkZW50aWZp
ZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3QgV2ViQ29y
ZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHksIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMsIGJv
b2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdlSUQsIHVpbnQ2NF90
IHdlYkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJl
c291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNv
cmU6OlN0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSwgYm9vbCBz
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKIAogICAgIHZvaWQgZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRl
Y29kZShDb3JlSVBDOjpBcmd1bWVudERlY29kZXIqLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVycyYpOwpAQCAtNjAsNiArNjAsNyBAQCBwdWJsaWM6CiAgICAgV2ViQ29yZTo6Q29udGVudFNu
aWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
dGVudFNuaWZmaW5nUG9saWN5OyB9CiAgICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dTdG9yZWRDcmVkZW50aWFscygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dTdG9yZWRDcmVkZW50
aWFsczsgfQogICAgIGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4g
bV9pblByaXZhdGVCcm93c2luZ01vZGU7IH0KKyAgICBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7IH0KIAogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKQEAgLTcyLDYgKzczLDcgQEAgcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgbV9jb250ZW50U25pZmZpbmdQb2xpY3k7CiAg
ICAgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHMgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzOwog
ICAgIGJvb2wgbV9pblByaXZhdGVCcm93c2luZ01vZGU7CisgICAgYm9vbCBtX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNv
dXJjZUxvYWRTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKaW5kZXggY2U1ZThlNTIyYTFhOTk0MTA2MzAx
ZDI4YTg5MGM1YzZhN2U4YTM0MS4uMDFkYzQ2MTdkNjA4YWQyZWUxYjk5ZTEyYzNlZDE5M2Y0MTlk
NGVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJl
c291cmNlTG9hZFNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5jcHAKQEAgLTM3LDEwICszNywxMiBAQAog
I2luY2x1ZGUgIldlYlBhZ2UuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzLmgiCiAjaW5jbHVkZSAi
V2ViUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50Lmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Eb2N1bWVudExvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9O
ZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVmZXJyZXJQ
b2xpY3kuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlQnVmZmVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4K
QEAgLTY3LDcgKzY5LDcgQEAgUGFzc1JlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4gV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZCgKIHsKICAgICBSZWZQdHI8
U3VicmVzb3VyY2VMb2FkZXI+IGxvYWRlciA9IFN1YnJlc291cmNlTG9hZGVyOjpjcmVhdGUoZnJh
bWUsIHJlc291cmNlLCByZXF1ZXN0LCBvcHRpb25zKTsKICAgICBpZiAobG9hZGVyKQotICAgICAg
ICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBwcmlvcml0eSk7CisgICAgICAgIHNjaGVkdWxl
TG9hZChsb2FkZXIuZ2V0KCksIHByaW9yaXR5LCBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQ
b2xpY3koKSA9PSBSZWZlcnJlclBvbGljeURlZmF1bHQpOwogICAgIHJldHVybiBsb2FkZXIucmVs
ZWFzZSgpOwogfQogCkBAIC03NSwxMSArNzcsMTEgQEAgUGFzc1JlZlB0cjxOZXRzY2FwZVBsdWdJ
blN0cmVhbUxvYWRlcj4gV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblMK
IHsKICAgICBSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+IGxvYWRlciA9IE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyOjpjcmVhdGUoZnJhbWUsIGNsaWVudCwgcmVxdWVzdCk7CiAg
ICAgaWYgKGxvYWRlcikKLSAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlMb3cpOworICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBS
ZXNvdXJjZUxvYWRQcmlvcml0eUxvdywgZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5
KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0KTsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVhc2Uo
KTsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNv
dXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5
KQordm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxv
YWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBib29s
IHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiB7CiAgICAgTE9HKE5l
dHdvcmtTY2hlZHVsaW5nLCAiKFdlYlByb2Nlc3MpIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6
c2NoZWR1bGVMb2FkLCB1cmwgJyVzJyBwcmlvcml0eSAlaSIsIHJlc291cmNlTG9hZGVyLT51cmwo
KS5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBwcmlvcml0eSk7CiAKQEAgLTEwMyw3ICsxMDUsNyBA
QCB2b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9h
ZGVyKiByZXNvdXJjZUxvYWRlciwgUmVzbwogICAgIFdlYkZyYW1lKiB3ZWJGcmFtZSA9IHN0YXRp
Y19jYXN0PFdlYkZyYW1lTG9hZGVyQ2xpZW50Kj4ocmVzb3VyY2VMb2FkZXItPmZyYW1lTG9hZGVy
KCktPmNsaWVudCgpKS0+d2ViRnJhbWUoKTsKICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gd2ViRnJh
bWUtPnBhZ2UoKTsKIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzKGlkZW50aWZpZXIsIHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCBwcmlvcml0eSwgY29udGVudFNuaWZmaW5nUG9s
aWN5LCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyAg
ICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyhpZGVudGlmaWVy
LCB3ZWJQYWdlLT5wYWdlSUQoKSwgd2ViRnJhbWUtPmZyYW1lSUQoKSwgcmVzb3VyY2VMb2FkZXIt
PnJlcXVlc3QoKSwgcHJpb3JpdHksIGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgYWxsb3dTdG9yZWRD
cmVkZW50aWFscywgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3
b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtDb25u
ZWN0aW9uVG9XZWJQcm9jZXNzOjpTY2hlZHVsZVJlc291cmNlTG9hZChsb2FkUGFyYW1ldGVycyks
IDApKSB7CiAgICAgICAgIC8vIFdlIHByb2JhYmx5IGZhaWxlZCB0byBzY2hlZHVsZSB0aGlzIGxv
YWQgd2l0aCB0aGUgTmV0d29ya1Byb2Nlc3MgYmVjYXVzZSBpdCBoYWQgY3Jhc2hlZC4KICAgICAg
ICAgLy8gVGhpcyBsb2FkIHdpbGwgbmV2ZXIgc3VjY2VlZCBzbyB3ZSB3aWxsIHNjaGVkdWxlIGl0
IHRvIGZhaWwgYXN5bmNocm9ub3VzbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKaW5kZXggMWY4
NGFiNjRmODhkYWQ0NTM4Y2MxYzlkYTk2YmE5YTBjN2RhZDE0NS4uZDg2NGI4ZjBkNTBkMjI0OWM3
NTJjODhmODdmMTBiYjZmOThmYjMzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaApAQCAtNjMs
NyArNjMsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKTsKIAog
cHJpdmF0ZToKLSAgICB2b2lkIHNjaGVkdWxlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxvYWRlcios
IFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5KTsKKyAgICB2b2lkIHNjaGVkdWxlTG9hZChX
ZWJDb3JlOjpSZXNvdXJjZUxvYWRlciosIFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBi
b29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogICAgIHZvaWQg
YWRkVW5zY2hlZHVsYWJsZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKTsKICAgICB2b2lk
IHVuc2NoZWR1bGVkTG9hZFRpbWVyRmlyZWQoKTsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAppbmRleCAxNTRmMzA1MzBiZWZmM2RjNzBjZjkxYzNiZmU2YTNkNDdiMTlh
OGI2Li4zYWMxYjYzZDI5Njk2NjU0YTBjN2NjNjc1YzkwMzczZDVkYTk2MTEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3Ry
YXRlZ2llcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgdm9pZCBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQKIAogICAgIENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgZGF0YVJlZmVyZW5j
ZTsKIAotICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJl
c291cmNlTG9hZElkZW50aWZpZXIsIDAsIDAsIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5
SGlnaGVzdCwgU25pZmZDb250ZW50LCBzdG9yZWRDcmVkZW50aWFscywgY29udGV4dC0+c3RvcmFn
ZVNlc3Npb24oKS5pc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSk7CisgICAgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMocmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
MCwgMCwgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0LCBTbmlmZkNvbnRlbnQs
IHN0b3JlZENyZWRlbnRpYWxzLCBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLmlzUHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpLCBjb250ZXh0LT5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KCkpOwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0d29ya0Nvbm5l
Y3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91c0xvYWQobG9hZFBhcmFtZXRlcnMpLCBN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91
c0xvYWQ6OlJlcGx5KGVycm9yLCByZXNwb25zZSwgZGF0YVJlZmVyZW5jZSksIDApKSB7CiAgICAg
ICAgIHJlc3BvbnNlID0gUmVzb3VyY2VSZXNwb25zZSgpOwogICAgICAgICBlcnJvciA9IGludGVy
bmFsRXJyb3IocmVxdWVzdC51cmwoKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTRiZjAxY2E4MTFmNzAzYzI1YmI4YjQ5
OTI3OTFkMzA0Zjg4NjdlNC4uN2Y1NDc3OGE2NDg5NGE0M2Y3NDVmMDBhNWU4Yzc3MTBhYWYyMTYx
NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEzLTAyLTA0ICBNYXJqYSBIw7ZsdHTDpCAgPG1h
cmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVyIHBvbGljeSBpbnRvIGFj
Y291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVuc2tpcCBodHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKKworICAgICAgICBTa2lwcGluZyB0
aGUgdGVzdHMgb24gd2syLCBiZWNhdXNlIG90aGVyIHJlZmVycmVyIHBvbGljeSB0ZXN0cyBhcmUK
KyAgICAgICAgc2tpcHBlZCwgdG9vICggaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTczOTEzICkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9u
czoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgor
CiAyMDEzLTAxLTMxICBKZXNzaWUgQmVybGluICA8amJlcmxpbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBhbiBpbXBsZW1lbnRhdGlvbiBvZiBldmVudFNlbmRl
ci5iZWdpbkRyYWdXaXRoRmlsZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3Rh
dGlvbnMKaW5kZXggZTg5NTFkY2QxMWVkYjcwMmM3NDZjYzNmY2U2MmNjZWM5NzNiYzAzMC4uOTMx
MDNjYzM5MjJmYjUyMzgyZjZmMWVjZDQxNDI4YmIxMzEyZWFkMCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyMzksOSArMTIzOSw2IEBAIHdlYmtpdC5v
cmcvYi84NTY4OSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxl
ZC5odG1sIFsgU2tpcCBdCiAjIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4g
cjExNjQ3Mwogd2Via2l0Lm9yZy9iLzg1OTY5IGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlm
cmFtZS13aXRoLWJhY2stbmF2aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgU3RhcnRlZCBm
YWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NTYzCi13ZWJraXQub3JnL2IvODYwNjEg
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sIFsg
RmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84NTMwOCBbIFJlbGVhc2UgXSBpZXRlc3RjZW50ZXIv
Y3NzMy92YWx1ZXNhbmR1bml0cy91bml0cy0wMDAuaHRtIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAK
ICMgSUVUQyBuYW1lc3BhY2UgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggMmRlNDJiNGE3YzJhNTcxZmRlZDBlNTRmMGU4OTlhMzJjNDU0NDM4
My4uOWQ3NzVjN2I0YzkzY2RhZmRlYmU0NDQ4YzM2ZWE4OTc4ZDkwNmYwNyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc2NCw5ICs3NjQsNiBAQCBtZWRp
YS92aWRlby1wbGF5ZWQtcmVzZXQuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9ODU5NjkKIGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlmcmFtZS13aXRo
LWJhY2stbmF2aWdhdGlvbi5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRp
cmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9uIGlu
IGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
ZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25z
LWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA3YTQzODM4MTM5Y2JjYjRjZDcwMThlNzAzOWU0Nzk3MTZlYzQ0YmFk
Li43MjcyNWQxZGJhMGIzZmM0YTFjYmIwZTI1ZGZmM2UwYzVkMDVkY2FkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4NzksOSArMTg3OSw2IEBAIGZhc3Qv
bGF5ZXJzL25vLWNsaXBwaW5nLW92ZXJmbG93LWhpZGRlbi1oYXJkd2FyZS1hY2NlbGVyYXRpb24u
aHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRl
c3QuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAw
MAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1s
Ci0KICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBmYWlsaW5nIHRhYmxlcyB0ZXN0cwogIyA9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IGIyMWM5ZThmMjE0NGEyMDc4NWVlM2Q0ZDFjM2NkZTg3M2M1MWE3ZjkuLjU0
YzgyNjU1MWM1NTk4MGQ2MGMwNzUwNmQxM2NmNTMwNjg5NWVjZGMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODI0LDkgKzE4MjQsNiBAQCBpbnNwZWN0
b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTg1Njg5CiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1h
dGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1y
ZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0aW9u
IGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lv
bnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sIAogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5z
aW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCA5MjdlOGE2ZGI0NjNlMzVhYzNlOTIwZWM3NTRhY2M5Yzg3
ZmRhMzliLi4wMTVlZjNhMTBmYzU5ZTZjMWE5MTIwMzZmYzc1YzI5ODNiYWJlNzhkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzEzLDYgKzMxMyw3IEBA
IGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1sb2Fkcy1t
YXgtYWdlLWh0dHBzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0
dHBzLWFsd2F5cy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRw
cy1vcmlnaW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGlu
ay5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1uZXZlci5o
dG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZhdWx0Lmh0
bWwKIApAQCAtMzM0LDExICszMzUsNiBAQCBmYXN0L3NlbGVjdG9ycy9zZWxlY3Rpb24td2luZG93
LWluYWN0aXZlLmh0bWwKICMgYXV0b1pvb21QYWdlVG9GaXRXaWR0aCgpLgogaW5zcGVjdG9yL3N0
eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAKLSMgVGhlIG5ldHdvcmsgc3RhY2sgdW5j
b25kaXRpb25hbGx5IHN0cmlwcyB0aGUgaGVhZGVyIG9uIHRyYW5zaXRpb25zIGZyb20KLSMgc2Vj
dXJlIHRvIGluc2VjdXJlLiBJdCBzaG91bGQgdGFrZSB0aGUgcmVmZXJyZXIgcG9saWN5IGludG8g
YWNjb3VudCBpbnN0ZWFkLgotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxp
bmsuaHRtbAotCiAjIGNzczMtY29uZGl0aW9uYWxzIHN1cHBvcnQgaXMgbm90IHlldCBlbmFibGVk
Lgogd2Via2l0Lm9yZy9iLzg2MTQ2IGNzczMvc3VwcG9ydHMuaHRtbAogd2Via2l0Lm9yZy9iLzEw
NDgyMiBjc3MzL3N1cHBvcnRzLWNzc29tLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186376</attachid>
            <date>2013-02-04 08:09:22 -0800</date>
            <delta_ts>2013-02-04 10:36:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130204170600.patch</filename>
            <type>text/plain</type>
            <size>55897</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI3NDZjZThmZjk2NDM4
MjllM2ZiYTBhNDkyNTQ3NWNmOWNhNTg3OS4uNTZlM2MyZjllZDUxOGFjMzE0NTNkMTA0MmI5NmYz
ODM1M2U1ZmY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpjb250
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0
OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisKIDIwMTMtMDItMDQgIERtaXRyeSBHb3ptYW4gIDxkZ296bWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyB1c2VyIHRvIGNoYW5nZSBk
b2NrIHNpZGUgYnkgZHJhZ2dpbmcgdG9vbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg2ZmExMWExOWYwMTQ2
ZjdkNTdkZWU4MTc4MmUyN2M1ZWEwYTIxOWYuLmJiOGI0YjMxMGYwOTg2ZWRhMGU2MmU4MjA2NTJm
MGIwMjlkM2ZiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMy0wMi0wNCAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJl
ciBwb2xpY3kgaW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVmZXJy
ZXIgc2hvdWxkIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRp
cmVjdCwKKyAgICAgICAgaWYgdGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUg
cmVmZXJyZXIgc2hvdWxkIGJlIGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1
bGFibGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAg
ICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxv
YWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorCiAyMDEzLTAyLTA0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFr
b3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gV2VpcmQgc3RyaXBlIGF0IHRoZSBl
bmQgb2YgdGhlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IDdmMDg4MDFjYjVjM2U3NDQ1OWFjOGY4ZjQ5OGRlMzllM2M2YTZkYmEu
LmM4MDQ0YTYwMmY4YTNjYjkxZDZmYzgyMWMxNzgzMTU3NDUxNDZkNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjAsOCArMjAsMTAg
QEAKICNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAjZGVmaW5lIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xp
Y3kuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw2ICszNCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZnJhbWUgPSAwOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVy
UG9saWN5RGVmYXVsdDsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwCmluZGV4IGM4MmI0NmM2MDg3ZmY5NjEyNTc5OThhNTRhZWY1ZWU2ZTZhYmNkMzYu
LmU4MTMzNGNiOWY4M2I5OTU1OGIyNDc4OWNhYWM4YTU3NmNiZmNiOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAK
QEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTE0Miw3ICsxNDEs
NyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShQ
YXNzUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYgogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJs
b2JSZXNvdXJjZUhhbmRsZShQYXNzUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVu
dCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFs
c2UsIGZhbHNlKQorICAgIDogUmVzb3VyY2VIYW5kbGUoMCwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCiAgICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAgICwgbV9hc3luYyhhc3lu
YykKICAgICAsIG1fZXJyb3JDb2RlKDApCkBAIC02MzYsNCArNjM1LDMgQEAgdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCgpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoQkxPQikKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDE0Y2Q0MjA2OTVlOGQ1YTNhZDI1YmU4
MWY2MTA0NTljMzE5Mzg3NWIuLjYxYTg0YjQ5NDE4MTQyOWRjZjJjYjBmNmE4MzNkZmFjM2JmZTE2
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0ID0gMDsKKwogI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIEZJWE1FOiBXcmFwIFdlYkNvb2tpZUphciBpbnRv
IGEgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIHRvIG1ha2UgdGhlIGNvZGUgY3Jvc3MtcGxhdGZvcm0u
CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkNvb2tpZUphciogY29va2llSmFyKCkgY29uc3QgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcAppbmRleCA0YmM5NGU3NjQ1OGE0OWNhY2QwN2E2YTc3MTJhMGViYWM2ZTM3ZDNhLi4xM2Uw
ZmMzNjBkMmJkNTMzNjUwMWI2NDdkNGIzMDEzYjRiZmY3MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTMsOCArNTMs
OCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25z
dCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBSZQogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNv
bnN0cnVjdG9yTWFwKCkuYWRkKHByb3RvY29sLCBjb25zdHJ1Y3Rvcik7CiB9CiAKLVJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91
bGRDb250ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKHRoaXMsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNu
aWZmICYmIHNob3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpKQorUmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgOiBkKGFkb3B0
UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHRoaXMsIGNvbnRleHQsIHJlcXVlc3QsIGNs
aWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRT
bmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpKQogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKQEAg
LTc0LDEyICs3NCwxMiBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjbwogICAgIGlmIChwcm90b2Nv
bE1hcEl0ZW0gIT0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5lbmQoKSkK
ICAgICAgICAgcmV0dXJuIHByb3RvY29sTWFwSXRlbS0+dmFsdWUocmVxdWVzdCwgY2xpZW50KTsK
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZikpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihu
ZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVk
dWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5y
ZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAo
bmV3SGFuZGxlLT5zdGFydCgpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsK
IAogICAgIHJldHVybiAwOwpAQCAtMTI4LDYgKzEyOCwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJl
c291cmNlSGFuZGxlOjpmaXJzdFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5tX2ZpcnN0UmVxdWVz
dDsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+bV9jb250ZXh0LmdldCgpOworfQorCiBjb25zdCBTdHJpbmcm
IFJlc291cmNlSGFuZGxlOjpsYXN0SFRUUE1ldGhvZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQt
Pm1fbGFzdEhUVFBNZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKaW5kZXggZmEzMDU4OTY0YTVjMmMyN2I2NjU1MGM2ZTM0YmNkOGQ4
OTNlYzk0Zi4uMjJlNjQ4MWFlODljZTA0MmRiNDdlYWY4NDdkZmY0OTkyYWVlMmVkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAt
MTk5LDYgKzE5OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmlyZUZhaWx1cmUoVGltZXI8UmVz
b3VyY2VIYW5kbGU+Kik7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0
OworCiAgICAgdXNpbmcgUmVmQ291bnRlZDxSZXNvdXJjZUhhbmRsZT46OnJlZjsKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6ZGVyZWY7CiAKQEAgLTIxNCw3ICsyMTYsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29u
c3QgQXRvbWljU3RyaW5nJiBwcm90b2NvbCwgQnVpbHRpbkNvbnN0cnVjdG9yKTsKIAogcHJvdGVj
dGVkOgotICAgIFJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9v
bCBzaG91bGRDb250ZW50U25pZmYpOwogCiBwcml2YXRlOgogICAgIGVudW0gRmFpbHVyZVR5cGUg
ewpAQCAtMjI3LDcgKzIyOSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVy
ZShGYWlsdXJlVHlwZSk7CiAKLSAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7Cisg
ICAgYm9vbCBzdGFydCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xp
ZW50KCkgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xp
ZW50KCkgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGU5NmRjODUxZjFjZDY0ZDA0
ZTg1ZjVhZWM3NmZmMTg5NzRmZDVlMjUuLjQ4YjYyNmUwNGU3NjIyN2JlNDAxMzQ3OWEzZmVjZTk4
NzAyNDA3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC04Myw4ICs4Myw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChS
ZXNvdXJjZUhhbmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKQotICAgICAgICAgICAgOiBtX2NsaWVudChjKQorICAgICAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYp
CisgICAgICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICAgICAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgICAgICAgICAsIG1fZmlyc3RSZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAg
ICAgICAsIG1fbGFzdEhUVFBNZXRob2QocmVxdWVzdC5odHRwTWV0aG9kKCkpCiAgICAgICAgICAg
ICAsIHN0YXR1cygwKQpAQCAtMTM3LDggKzEzOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgflJlc291cmNlSGFuZGxlSW50ZXJuYWwoKTsKIAogICAgICAgICBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgICAgICBSZWZQdHI8
TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIG1fY2xpZW50OwotICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZmlyc3RS
ZXF1ZXN0OwogICAgICAgICBTdHJpbmcgbV9sYXN0SFRUUE1ldGhvZDsKIApAQCAtMjAyLDcgKzIw
NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2Jv
ZHlEYXRhU2VudDsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7
CiAgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRp
cmVjdENvdW50OwogI2VuZGlmCkBAIC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVy
KiBtX2pvYjsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxl
QmxhY2tCZXJyeS5jcHAKaW5kZXggYWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVh
ODkyMS4uYWQyYzhkY2QzMTI2ZTU2Y2FiYTc5OTc0ODcwZmYyMWJiN2JhOTg5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZl
cnNMb2FkaW5nKQogICAgIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2Fk
aW5nKHRoaXMsIGRlZmVyc0xvYWRpbmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKIHsKLSAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
IWQtPm1fY29udGV4dCB8fCAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQg
d2UgaGF2ZSBOZXR3b3JraW5nQ29udGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyAr
MTU2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcg
PSBmYWxzZTsKICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgJnN5bmNMb2FkZXIsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikp
OworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBz
aG91bGRDb250ZW50U25pZmYpKTsKICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3Rh
cnRKb2IocGxheWVySWQsIGhhbmRsZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29u
c3QgZG91YmxlIHN5bmNMb2FkVGltZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAppbmRleCA3NjE2NzViNDI2NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi5iMDA5
NWFhOTAzYzVhMTYyYTUzNTA2MjEzZDNlMDdlN2EyNmM5ZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVx
dWVzdChDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJl
cXVlc3QgPSBjZlJlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVy
IGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAg
ICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJl
cXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5w
cm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwg
Imh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwog
CiAgICAgaGFuZGxlLT53aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNl
KTsKQEAgLTQ5NiwyMSArNDk2LDIxIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+
bV9jb25uZWN0aW9uLmFkb3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMo
MCwgcmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQq
PigmY2xpZW50KSwgY29ubmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9j
b250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29u
dGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2Us
CiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhh
bmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwogCi0gICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xp
Y3koY29udGV4dCwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LmdldCgpLCBm
aXJzdFJlcXVlc3QoKS51cmwoKSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZVdpdGhDdXJyZW50TWVzc2Fn
ZVF1ZXVlKGQtPm1fY29ubmVjdGlvbi5nZXQoKSk7CkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QKICAgICBPd25QdHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZShyZXNw
b25zZSwgZXJyb3IpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9y
ZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKIAotICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVl
c3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudC5nZXQoKSwg
ZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwog
CiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Np
b24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtOTI0LDQgKzkyNCwzIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmhhbmRsZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkKICNlbmRpZgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYWMx
NDkyMWE3YzQ1MDZhNWNlYTBiMTQ4OGQwNTJiNmMyMTIwYjM4Zi4uYjU2ZGM2MzM1ZjI1NTdiNjVi
NDdlYzY4MDU0YTk1ODYzN2E4MmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUyLDgg
KzUyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ly8gUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKK1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCiAgICAgLCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3N0YXRlKENvbm5lY3Rpb25TdGF0ZU5ldykKQEAgLTE3OCwxMSArMTc5LDggQEAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6RnJvbVJlc291cmNlSGFuZGxl
KFJlc291cmNlSGFuZGwKIAogLy8gUmVzb3VyY2VIYW5kbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1SZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDog
ZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChyZXF1ZXN0LCBjbGllbnQpKSkK
K1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQorICAg
IDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb250ZXh0LCByZXF1ZXN0
LCBjbGllbnQpKSkKIHsKICAgICBkLT5zZXRPd25lcih0aGlzKTsKIApAQCAtMTk2LDkgKzE5NCw5
IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KAotICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZikpOworICAgICAgICBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4
dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRs
ZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTIwOSw2ICsyMDcsMTEgQEAgUmVzb3Vy
Y2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+
cmVxdWVzdCgpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5jb250ZXh0KCk7Cit9CisKIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2xpZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4g
ZC0+Y2xpZW50KCk7CkBAIC0yMjQsOSArMjI3LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0
RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUp
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQp
CisgICAgaWYgKCFkLT5jb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGQt
PnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGQzOGQ5M2Vm
OGUyOTcwMmVjNjZjZDgxMGUyNzNjZmJlZjU5NjYyYzMuLjZhOTE1NTE2YjE1ZGZmMTE4ZjJlMGM0
NTNkZDM5Y2RjN2IwYTU0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0zOSwxMiArMzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOZXR3b3Jr
aW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVD
bGllbnQ7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJVUkxMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKKyAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgflJlc291cmNlSGFu
ZGxlSW50ZXJuYWwoKSB7IH0KIApAQCAtODAsMTAgKzgxLDEyIEBAIHB1YmxpYzoKICAgICBSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAg
ICB2b2lkIHNldENsaWVudChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CiAgICAgV2ViS2l0OjpXZWJVUkxMb2FkZXIqIGxvYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHN0YXRpYyBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBGcm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbGUqKTsKIAog
cHJpdmF0ZToKKyAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFJlc291cmNlSGFuZGxlKiBtX293bmVyOwog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
aW5kZXggMWQ0MmE1YjA0YzNhNTEzMWZhYjE0MjI5ZGQyZDExY2Y2MzEzOGI5MS4uOWMzNTc2Njdm
OGI3YzM5YzgzZjAxZWNlMjA2MzFkNGNkMzMwMGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
QEAgLTk2LDE0ICs5NiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAg
ICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8g
VGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3Nv
Y2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBh
IGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBu
dWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2Fk
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0aGUgZnJh
bWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KLSAgICBp
ZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQg
JiYgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAg
LTE3NSw3ICsxNzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
c3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3
IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxz
ZSkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBtYW5hZ2VyID0gUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGMwYjhk
M2FiNzhkZDE2NDE5YWEwOWY1M2QyYzg4ZDY3YmMwMzE0YzIuLjY3MjM1MzRkMDIwZGUzNWRkZDQ5
ZTQ3NTAxZmZlMmEyOWE2OWYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yMTgsMTkgKzIxOCwx
OSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdh
dGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPm1fY29udGV4dCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBs
b25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgotICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGQtPm1fc3RvcmFnZVNl
c3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAg
IGQtPm1fc3RvcmFnZVNlc3Npb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxh
dGZvcm1TZXNzaW9uKCk7CiAKICAgICBBU1NFUlQoIWQtPm1fcHJveHkpOwogICAgIGQtPm1fcHJv
eHkuYWRvcHROUyh3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkoKSk7CkBAIC0y
MzgsMTYgKzIzOCwxNiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCkKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAh
Y2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwog
Ci0gICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGQtPm1f
Y29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29u
bmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eShjb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksCi0gICAgICAgIGQtPm1fc2hvdWxkQ29u
dGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7
CisgICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50
U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
OwogCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFz
aFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
eworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGQtPm1fY29u
dGV4dC0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFz
aFNldDo6aXRlcmF0b3IgZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3Ig
KFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9v
cCA9ICgqaXQpLT5uc1J1bkxvb3AoKSkgewpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gY29udGV4
dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSkgeworICAgIGlmIChOU09wZXJhdGlvblF1ZXVl
ICpvcGVyYXRpb25RdWV1ZSA9IGQtPm1fY29udGV4dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUo
KSkgewogICAgICAgICBBU1NFUlQoIXNjaGVkdWxlZCk7CiAgICAgICAgIFtjb25uZWN0aW9uKCkg
c2V0RGVsZWdhdGVRdWV1ZTpvcGVyYXRpb25RdWV1ZV07CiAgICAgICAgIHNjaGVkdWxlZCA9IHRy
dWU7CkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBPd25Q
dHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZSgpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRD
cmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsK
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3Qs
IGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250
ZW50U25pZmYqLykpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4
dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtNjY4LDcgKzY2OCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qg
PSBuZXdSZXF1ZXN0OwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJl
ZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRw
cyIpICYmIG1faGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAg
ICAgbV9oYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZlOTMwMGVk
MTJiMzRiY2IwOC4uMWNhNTQzZTQ0MmY0ZWViYzM0NWU4NzEwNDU0MGRkNDM3YjdjMWFkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpyZWRpcmVjdChSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVy
bCYgcmVkaQogICAgIG5ld1JlcXVlc3Quc2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBTaG91bGQg
bm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0
byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygi
aHR0cHMiKSAmJiBwcm90b2NvbElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIp
KQorICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3Rv
Y29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNvdXJjZUhh
bmRsZS0+Y29udGV4dCgpLT5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkpCiAgICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGNsaWVu
dC0+d2lsbFNlbmRSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVlc3QsIHJlc3BvbnNl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwCmluZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0YTY4MjY2MTc4YjQy
YWI2MWEuLjYyYzBmYzFlMDFkN2VkZTEyZWJkNmZiMGVkZWM3YWYyNmI4MmUxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5k
bGUoKQogICAgICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBu
byBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRl
bXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYg
KGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlz
RW1wdHkoKSkgewpAQCAtMTA2LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5z
ZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5t
X2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJ
bnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMs
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xvYWRp
bmcpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0CiAgICAgfQogI2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5
bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xv
YWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmc3luY0xvYWRl
ciwgdHJ1ZSwgZmFsc2UpKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5t
X3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwg
Y29uc3QKICAgICAgICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsKICAg
ICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAg
fQotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFydGluZyBpbiBkZWZl
cnJlZCBtb2RlIGdpdmVzIGQtPm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcgc2V0IGJlZm9yZSBz
ZW5kaW5nIHRoZSByZXF1ZXN0LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5k
bGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9hZCwg
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDQ2MDQxMmVlY2E1YWY1MTM5OTE4OTk0
Yjg5ZDU3OWE2MWE1ZTNiZjYuLjNjYzY1N2E1MTZlZmYyMTE0YTQxNTlkMmU4ODc2NzkyMWE0YzMy
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIHZv
aWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0KIAogICAgIC8vIFNo
b3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291
cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBz
IikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBp
ZiAoIW5ld1VSTC5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRw
UmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBS
ZWZlcnJlcigpOwogCiAgICAgZC0+bV91c2VyID0gbmV3VVJMLnVzZXIoKTsKQEAgLTEwMTksNyAr
MTAxOSw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0QW5kTWVzc2FnZUZvckhhbmRs
ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIEFTU0VSVCghZC0+bV9zb3VwTWVz
c2FnZSk7CiAKQEAgLTEwMjgsMTIgKzEwMjgsOSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90
IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAg
IC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4K
ICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBj
b250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkp
CisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBrZWVwIHRyYWNrIG9m
IGN1c3RvbSBTb3VwU2Vzc2lvbnMgZm9yIHBvcnRzIHRoYXQgc3VwcG9ydCBpdCAoRUZMKS4KLSAg
ICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwotCiAgICAgLy8gT25seSBhbGxvdyB0aGUgUE9TVCBh
bmQgR0VUIG1ldGhvZHMgZm9yIG5vbi1IVFRQIHJlcXVlc3RzLgogICAgIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpOwogICAgIGJvb2wgaXNIVFRQRmFtaWx5
UmVxdWVzdCA9IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpOwpAQCAtMTA0
OSw3ICsxMDQ2LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHNldFNvdXBS
ZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpLCBjb250ZXh0KTsKKyAgICBzZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSURG
cm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9jb250ZXh0
LmdldCgpKTsKIAogICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVu
IGV4cGxpY2l0bHkgZGVmZXJyZWQuCiAgICAgaWYgKCFkLT5tX2RlZmVyc0xvYWRpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRs
ZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKaW5kZXggOGExZDE5OWFlMTRlZWM5YTM4YTYzZDg2ZTA0MDk1ODQ5N2QyNzkz
ZC4uNTkwZWIzMTIzZTBhOWQ1ZWRjNDEyNTM0NTE2ZDFkMTU3NzY2YmI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVz
dENvbXBsZXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoKQogewogICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8
IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgcmVmKCk7
IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGZpbGVMb2FkVGltZXIKQEAgLTI3Nyw3ICsyNzcsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
ICAgICB9CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUpCi0gICAgICAgIGQtPm1faW50
ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShjb250ZXh0LT51c2VyQWdl
bnQoKSk7CisgICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5l
dEhhbmRsZShkLT5tX2NvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAogICAgIGlmICghZC0+bV9pbnRl
cm5ldEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDE5LDEwICs0MTksMTAgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlh
bHMpOwogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJl
c3BvbnNlLCBkYXRhLCByZXF1ZXN0Lmh0dHBVc2VyQWdlbnQoKSk7Ci0gICAgUmVzb3VyY2VIYW5k
bGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSk7CisgICAgUmVzb3Vy
Y2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSwgY29udGV4
dCk7CiAKICAgICBoYW5kbGUuc2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShzeW5jTG9hZGVy
LmludGVybmV0SGFuZGxlKCkpOwotICAgIGhhbmRsZS5zdGFydChjb250ZXh0KTsKKyAgICBoYW5k
bGUuc3RhcnQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0U3luY2hyb25vdXNJbnRl
cm5ldEhhbmRsZShISU5URVJORVQgaW50ZXJuZXRIYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAy
Y2JkOTg5MjExNzllNjY3OWJlOTQ4OTdkMjY0Y2RjMjhlNDgzYjEzLi43ZjRiYmRkODM0NjdkYzll
NjAzOGVjY2Q0NjJkOGU1MTg4MmRjMThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc4LDcgKzc4LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICByZWYoKTsKICAgICAK
ICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93
c2luZ01vZGUoKSk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKIAogICAgIGNvbnN1bWVT
YW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKaW5kZXggZTcwOGIwOWRkNzZmZTYwMjJhMDZmNTI4
ODAxNThjZmJiOGY3NmQ4ZC4uNmM1NTM3ZGNhZjA2OWFiMjhkYjIwY2RkZjI3MmRmZDQ4Y2E5OWU3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxl
TG9hZGVyLmNwcApAQCAtMzksNiArMzksNyBAQCBTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFi
bGVMb2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHBhcmFtZQogICAg
ICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3kocGFyYW1ldGVycy5jb250ZW50U25pZmZpbmdQb2xp
Y3koKSkKICAgICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyhwYXJhbWV0ZXJzLmFsbG93U3Rv
cmVkQ3JlZGVudGlhbHMoKSkKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKHBhcmFtZXRl
cnMuaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkpCisgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QocGFyYW1ldGVzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QoKSkKICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQogewogICAg
IGZvciAoc2l6ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFtZXRlcnMucmVxdWVzdEJvZHlTYW5kYm94
RXh0ZW5zaW9ucygpLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oCmluZGV4IGIwOGU4MWIyY2I2
NjIxNDhjZGY5NTNiYWM0YzgzYjcxNDc1N2I5YzMuLmE2MWE2ZmY1ODlmNTE2MGZlZDIyMGJmYjI5
NjBiMDQ1ZGMwNmEwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L1NjaGVkdWxhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
U2NoZWR1bGFibGVMb2FkZXIuaApAQCAtNjUsNiArNjUsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9p
ZCBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKICAgICB2b2lkIGludmFsaWRhdGVTYW5kYm94
RXh0ZW5zaW9ucygpOwogCisgICAgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1Rv
SFRUUFJlZGlyZWN0OyB9CisKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBt
X2lkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV93ZWJQYWdlSUQ7CkBAIC04MSw2ICs4Myw4IEBA
IHByaXZhdGU6CiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzPiBtX2Nv
bm5lY3Rpb247CiAgICAgCiAgICAgUmVmUHRyPEhvc3RSZWNvcmQ+IG1faG9zdFJlY29yZDsKKwor
ICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDVjNWYx
NjNiM2U2ZTA4MGRlMzg1MDBlOTNkM2Y3OTY1N2M1OTlmNjYuLjI5NjBkMDQ2ODFjODRjMGM5NjEz
OTFjNGIyOTcwZGRlZThhZGIzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0zMiw5ICsz
Miw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNyZWF0ZShib29sIG5lZWRz
U2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQs
IGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxSZW1v
dGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Ms
IGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
CiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihu
ZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxvY2Fs
RmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAgICB9CiAgICAgdmlydHVh
bCB+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKTsKIApAQCAtNDQsOCArNDQsMTAgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYgcHJpdmF0ZUJy
b3dzaW5nU2Vzc2lvbigpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hlbiB0aGUgc2Vzc2lvbiBl
eGlzdHMuCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCgpIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgotICAgIFJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxl
Q29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKTsKKyAg
ICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBi
b29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCwgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qp
OwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVSUklERTsKIApAQCAtNTgs
NiArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrczsK
ICAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZDsKICAgICBib29sIG1f
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKKyAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbSBiL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQppbmRl
eCBkZTdlMGZjNGZkZWRkMzdlODgxMjc4ODY5ZGQ1ZDBmODkzMWU2Y2QyLi43ODE5NTMzYTUyOWI1
NmFmNDBhMGNiOWVjNmFlMWM5Yzc5MWNhMmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9O
ZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KKysrIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCkBA
IC00MiwxMCArNDIsMTYgQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3RvcmFnZVNlc3Npb24+JiBw
cml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJuIHNlc3Npb247CiB9CiAK
LVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5l
ZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKK2Jvb2wgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAor
eworICAgIHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7
Cit9CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dChi
b29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmlu
Z0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIDogbV9uZWVkc1NpdGVTcGVjaWZpY1F1
aXJrcyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykKICAgICAsIG1fbG9jYWxGaWxlQ29udGVudFNu
aWZmaW5nRW5hYmxlZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKQogICAgICwgbV9w
cml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJsZWQpCisgICAgLCBtX3No
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMu
Y3BwCmluZGV4IDgwNzM4Y2I1NmZlNDI3N2QzZTIwNmYxMDFmZTUyMDA4NWZkOTVhNTUuLjY1M2Q3
MjM1YmQwNTYwMjdiMjgwMzI0NWU2NGFkOTQyNzZjOTNhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycy5jcHAKQEAgLTQ1LDEwICs0NSwxMSBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1l
dGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKQogICAgICwgbV9jb250ZW50U25p
ZmZpbmdQb2xpY3koU25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxz
KERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdN
b2RlKGZhbHNlKQorICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KHRydWUpCiB7CiB9CiAKLU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIs
IHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNu
aWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxs
b3dTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUpCitOZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVz
b3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdlSUQsIHVpbnQ2
NF90IHdlYkZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VM
b2FkUHJpb3JpdHkgcHJpb3JpdHksIENvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZp
bmdQb2xpY3ksIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIGJvb2wg
aW5Qcml2YXRlQnJvd3NpbmdNb2RlLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fd2Vi
UGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fd2ViRnJhbWVJRCh3ZWJGcmFtZUlEKQpAQCAtNTcs
NiArNTgsNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZgogICAgICwgbV9jb250ZW50U25pZmZp
bmdQb2xpY3koY29udGVudFNuaWZmaW5nUG9saWN5KQogICAgICwgbV9hbGxvd1N0b3JlZENyZWRl
bnRpYWxzKGFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCiAgICAgLCBtX2luUHJpdmF0ZUJyb3dzaW5n
TW9kZShpblByaXZhdGVCcm93c2luZ01vZGUpCisgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCkKIHsKIH0KIApAQCAtMTAzLDYgKzEwNSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImIGVuY29kZXIpIGNv
CiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fY29udGVudFNuaWZmaW5nUG9saWN5KTsKICAgICBl
bmNvZGVyLmVuY29kZUVudW0obV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKICAgICBlbmNvZGVy
LmVuY29kZShtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZSk7CisgICAgZW5jb2Rlci5lbmNvZGUobV9z
aG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKIH0KIAogYm9vbCBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6OkFyZ3VtZW50RGVjb2Rl
ciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHJlc3VsdCkKQEAgLTE0
Nyw2ICsxNTAsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUo
Q29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pblByaXZhdGVCcm93c2luZ01v
ZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1
bHQubV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oIGIv
U291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaAppbmRleCA1NjQ0MmQ2NzJjOTI2MWU3YzJjNWM3MTVhMzIzODcwMjkyYWI2NzdhLi5kNWJi
ZjMzYTM1NzY1MzkxODMzZGE2Y2Q2MTRmMTc4Y2IyYjBkYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiB1aW50NjRfdCBSZXNvdXJjZUxvYWRJ
ZGVudGlmaWVyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgewogcHVibGlj
OgogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCk7Ci0gICAgTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0X3Qgd2ViUGFn
ZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5n
UG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2lu
Z01vZGUpOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFJlc291cmNlTG9hZElk
ZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHks
IFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlh
bHMsIGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdm9pZCBlbmNvZGUoQ29yZUlQQzo6QXJndW1l
bnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKENvcmVJUEM6OkFyZ3Vt
ZW50RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJik7CkBAIC02MCw2ICs2
MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3kgY29udGVu
dFNuaWZmaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50U25pZmZpbmdQb2xpY3k7
IH0KICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRpYWxz
KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzOyB9CiAgICAgYm9vbCBp
blByaXZhdGVCcm93c2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2luUHJpdmF0ZUJyb3dzaW5n
TW9kZTsgfQorICAgIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdDsgfQogCiBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgbV9pZGVudGlm
aWVyOwpAQCAtNzIsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlm
ZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBXZWJDb3JlOjpTdG9yZWRD
cmVkZW50aWFscyBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAgYm9vbCBtX2luUHJpdmF0
ZUJyb3dzaW5nTW9kZTsKKyAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmNwcAppbmRleCBiYjM0MzQxMmFlNDQ1YTI1NWM5ZTBmZWYwM2YyMmYwZWY5MzUwMzI4
Li43ZDZhYmQ4YTViOWE3MzVkNTlhYTBiZWRjYzY2ZGIyZGRiNGFmNGNjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmNwcApAQCAtMzcsMTAgKzM3LDEyIEBACiAjaW5jbHVkZSAiV2ViUGFnZS5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRlci5o
IgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0RvY3Vt
ZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWZlcnJlclBvbGljeS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNlTG9h
ZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAtNjcsNyArNjksNyBAQCBQ
YXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNj
aGVkdWxlU3VicmVzb3VyY2VMb2FkKAogewogICAgIFJlZlB0cjxTdWJyZXNvdXJjZUxvYWRlcj4g
bG9hZGVyID0gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShmcmFtZSwgcmVzb3VyY2UsIHJlcXVl
c3QsIG9wdGlvbnMpOwogICAgIGlmIChsb2FkZXIpCi0gICAgICAgIHNjaGVkdWxlTG9hZChsb2Fk
ZXIuZ2V0KCksIHByaW9yaXR5KTsKKyAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSwg
cHJpb3JpdHksIGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVy
UG9saWN5RGVmYXVsdCk7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKQEAgLTc1
LDExICs3NywxMSBAQCBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBXZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luUwogewogICAgIFJlZlB0cjxOZXRz
Y2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gbG9hZGVyID0gTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2Fk
ZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCByZXF1ZXN0KTsKICAgICBpZiAobG9hZGVyKQotICAg
ICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBSZXNvdXJjZUxvYWRQcmlvcml0eUxvdyk7
CisgICAgICAgIHNjaGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIFJlc291cmNlTG9hZFByaW9yaXR5
TG93LCBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSA9PSBSZWZlcnJlclBvbGlj
eURlZmF1bHQpOwogICAgIHJldHVybiBsb2FkZXIucmVsZWFzZSgpOwogfQogCi12b2lkIFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJj
ZUxvYWRlciwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCit2b2lkIFdlYlJlc291cmNl
TG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVyKiByZXNvdXJjZUxvYWRl
ciwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBBU1NFUlQocmVzb3VyY2VMb2FkZXIpOwog
ICAgIEFTU0VSVChwcmlvcml0eSAhPSBSZXNvdXJjZUxvYWRQcmlvcml0eVVucmVzb2x2ZWQpOwpA
QCAtMTA1LDcgKzEwNyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVs
ZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNvCiAgICAgV2ViRnJhbWUq
IHdlYkZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGllbnQqPihyZXNvdXJjZUxv
YWRlci0+ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgpOwogICAgIFdlYlBhZ2Uq
IHdlYlBhZ2UgPSB3ZWJGcmFtZS0+cGFnZSgpOwogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBh
cmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMoaWRlbnRpZmllciwgd2ViUGFnZS0+cGFnZUlEKCksIHdl
YkZyYW1lLT5mcmFtZUlEKCksIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHByaW9yaXR5LCBj
b250ZW50U25pZmZpbmdQb2xpY3ksIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHByaXZhdGVCcm93
c2luZ0VuYWJsZWQpOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJh
bWV0ZXJzKGlkZW50aWZpZXIsIHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJGcmFtZS0+ZnJhbWVJRCgp
LCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCBwcmlvcml0eSwgY29udGVudFNuaWZmaW5nUG9s
aWN5LCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICAgICBpZiAoIVdlYlByb2Nl
c3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVkdWxlUmVzb3VyY2VMb2Fk
KGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKICAgICAgICAgLy8gV2UgcHJvYmFibHkgZmFpbGVkIHRv
IHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2VzcyBiZWNhdXNlIGl0IGhh
ZCBjcmFzaGVkLgogICAgICAgICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZlciBzdWNjZWVkIHNvIHdl
IHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFpbCBhc3luY2hyb25vdXNseS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuaAppbmRleCAxZjg0YWI2NGY4OGRhZDQ1MzhjYzFjOWRhOTZiYTlhMGM3ZGFkMTQ1Li5k
ODY0YjhmMGQ1MGQyMjQ5Yzc1MmM4OGY4N2YxMGJiNmY5OGZiMzMxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNj
aGVkdWxlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG5ldHdvcmtQcm9j
ZXNzQ3Jhc2hlZCgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc2NoZWR1bGVMb2FkKFdlYkNvcmU6
OlJlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHkpOworICAgIHZv
aWQgc2NoZWR1bGVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkUHJpb3JpdHksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCk7CiAgICAgdm9pZCBhZGRVbnNjaGVkdWxhYmxlTG9hZChXZWJDb3JlOjpSZXNvdXJjZUxv
YWRlciopOwogICAgIHZvaWQgdW5zY2hlZHVsZWRMb2FkVGltZXJGaXJlZCgpOwogICAgIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDE1NGYzMDUzMGJlZmYzZGM3MGNm
OTFjM2JmZTZhM2Q0N2IxOWE4YjYuLjNhYzFiNjNkMjk2OTY2NTRhMGM3Y2M2NzVjOTAzNzNkNWRh
OTYxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTIzNCw3ICsy
MzQsNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25v
dXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogCiAgICAgQ29yZUlQQzo6RGF0YVJlZmVy
ZW5jZSBkYXRhUmVmZXJlbmNlOwogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMg
bG9hZFBhcmFtZXRlcnMocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgMCwgMCwgcmVxdWVzdCwgUmVz
b3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0LCBTbmlmZkNvbnRlbnQsIHN0b3JlZENyZWRlbnRpYWxz
LCBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpKTsK
KyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyhyZXNvdXJj
ZUxvYWRJZGVudGlmaWVyLCAwLCAwLCByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hl
c3QsIFNuaWZmQ29udGVudCwgc3RvcmVkQ3JlZGVudGlhbHMsIGNvbnRleHQtPnN0b3JhZ2VTZXNz
aW9uKCkuaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCksIGNvbnRleHQtPnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSk7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFy
ZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChs
b2FkUGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhUmVmZXJl
bmNlKSwgMCkpIHsKICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAg
ICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkZTBlNDM0
MmRkODdmMDU5YmU3MDhmNjg5YWNiNjhkYmY1MDBkZTM3Li42OGFhZTJmZWI5OGUxZDVhOTI1YmNk
YTdmMWFjMjZkNmYzZTM2ZjExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDQgIE1h
cmphIEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJy
ZXIgcG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVW5za2lwIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAorCisg
ICAgICAgIFNraXBwaW5nIHRoZSB0ZXN0cyBvbiB3azIsIGJlY2F1c2Ugb3RoZXIgcmVmZXJyZXIg
cG9saWN5IHRlc3RzIGFyZQorICAgICAgICBza2lwcGVkLCB0b28gKCBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTMgKS4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMDQgIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRGlzYWJsZSAtd2Via2l0LW92ZXJmbG93LXNjcm9sbGlu
ZyBDU1MgYXR0cmlidXRlIG9uIENocm9taXVtCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDk0NGI3YjY1ZDg0YWRmMjdiNWQ5MjMwZjE2NDgwZjY4NDcxZDMw
NDguLmE5ODM0NDU4NDY5ZGM1NjBjYWVkNTQ0ZWIzM2NlZGRjYTRlN2JhZjQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjM5LDkgKzEyMzksNiBAQCB3
ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUt
ZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcgYWZ0ZXIgaXQgd2FzIGFk
ZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rlc3RzL2xvYWRpbmcvcG9z
dC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZhaWx1cmUgXQogCi0jIFN0
YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjU2Mwotd2Via2l0Lm9yZy9i
Lzg2MDYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsu
aHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODUzMDggWyBSZWxlYXNlIF0gaWV0ZXN0
Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bSBbIEltYWdlT25seUZhaWx1
cmUgXQogCiAjIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIxNDAwNjA0YWE3YjhkNTljZjU1NjA3YjJjZWYxZTAy
YTA1YzI5NDMuLmMyMjU2YmYzNWY3YmYwZTIwZWRkZGFiODczZTE5ZDUzMDQ2YjBkNTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC03NzIsOSArNzcyLDYg
QEAgbWVkaWEvdmlkZW8tcGxheWVkLXJlc2V0Lmh0bWwKICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg1OTY5CiBodHRwL3Rlc3RzL2xvYWRpbmcvcG9zdC1pbi1pZnJh
bWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3VwcG9ydHMgZXZhbHVh
dGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbAogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0
ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWU3YTNhNWNmOTYwZDQ2NTI2ZWZjOTAwMjFhZGU3NDU5
OGQ1ZDMxOS4uZTc1ZDlmYWI2NWNlOTVhOTQ2YjJlODM0OGUwMjQ3NjYzYzgwODRmOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODk0LDkgKzE4OTQsNiBA
QCBmYXN0L2xheWVycy9uby1jbGlwcGluZy1vdmVyZmxvdy1oaWRkZW4taGFyZHdhcmUtYWNjZWxl
cmF0aW9uLmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3Qtbm8tcG9ydC5odG1sCiBzZWN1cml0eS9i
bG9jay10ZXN0Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxp
bmsuaHRtbAotCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFpbGluZyB0YWJsZXMgdGVz
dHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkODQ0NDFhYTliZWMyMDJkMWRlN2Q2NTgyNmU0ZDJkZDkxYjJk
NzNiLi43N2I5ZDZkZWNiYjQ5NmUyZTE3MDU5MzY0NDNlMzVjMjQyYzQyMTE5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgyOSw5ICsxODI5LDYgQEAg
aW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAjIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY4OQogZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1w
b2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkgc3VwcG9ydHMgZXZh
bHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9l
eHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCAKIGluc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGNmMWQxOTk0NGQzMWZiZTFhOWM1YjRlMDEz
OTlhMDE0NzA3YmYzOS4uZGM4ZWJjMjg1YzYwMjUzMWMzOTQzOWMzN2FiYTY4NjJkYjg0N2ZhOSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTMxMyw2ICsz
MTMsNyBAQCBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNoZWQtc3VicmVzb3VyY2Ut
bG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1odHRwcy1hbHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xp
Y3ktaHR0cHMtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXJlZGlyZWN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMt
bmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtZGVm
YXVsdC5odG1sCiAKQEAgLTMzNCwxMSArMzM1LDYgQEAgZmFzdC9zZWxlY3RvcnMvc2VsZWN0aW9u
LXdpbmRvdy1pbmFjdGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0V2lkdGgoKS4KIGluc3Bl
Y3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0jIFRoZSBuZXR3b3JrIHN0
YWNrIHVuY29uZGl0aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0cmFuc2l0aW9ucyBmcm9t
Ci0jIHNlY3VyZSB0byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhlIHJlZmVycmVyIHBvbGlj
eSBpbnRvIGFjY291bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRp
cmVjdC1saW5rLmh0bWwKLQogIyBjc3MzLWNvbmRpdGlvbmFscyBzdXBwb3J0IGlzIG5vdCB5ZXQg
ZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRzLmh0bWwKIHdlYmtpdC5v
cmcvYi8xMDQ4MjIgY3NzMy9zdXBwb3J0cy1jc3NvbS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186417</attachid>
            <date>2013-02-04 10:36:20 -0800</date>
            <delta_ts>2013-02-04 11:25:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130204193259.patch</filename>
            <type>text/plain</type>
            <size>55953</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI3NDZjZThmZjk2NDM4
MjllM2ZiYTBhNDkyNTQ3NWNmOWNhNTg3OS4uNTZlM2MyZjllZDUxOGFjMzE0NTNkMTA0MmI5NmYz
ODM1M2U1ZmY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpjb250
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0
OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisKIDIwMTMtMDItMDQgIERtaXRyeSBHb3ptYW4gIDxkZ296bWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyB1c2VyIHRvIGNoYW5nZSBk
b2NrIHNpZGUgYnkgZHJhZ2dpbmcgdG9vbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg2ZmExMWExOWYwMTQ2
ZjdkNTdkZWU4MTc4MmUyN2M1ZWEwYTIxOWYuLmJiOGI0YjMxMGYwOTg2ZWRhMGU2MmU4MjA2NTJm
MGIwMjlkM2ZiNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MyBAQAorMjAxMy0wMi0wNCAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJl
ciBwb2xpY3kgaW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVmZXJy
ZXIgc2hvdWxkIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRp
cmVjdCwKKyAgICAgICAgaWYgdGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUg
cmVmZXJyZXIgc2hvdWxkIGJlIGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1
bGFibGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaDoK
KyAgICAgICAgKFdlYktpdDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZSk6CisgICAg
ICAgIChSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVj
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dDo6UmVtb3RlTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIFNoYXJlZC9OZXR3
b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVu
Y29kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpk
ZWNvZGUpOgorICAgICAgICAqIFNoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmg6CisgICAgICAgIChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpzaG91bGRDbGVhclJl
ZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVN1YnJlc291cmNlTG9hZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVQbHVnaW5TdHJlYW1Mb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxv
YWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVs
ZXIuaDoKKyAgICAgICAgKFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcik6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorCiAyMDEzLTAyLTA0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFr
b3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gV2VpcmQgc3RyaXBlIGF0IHRoZSBl
bmQgb2YgdGhlIHBhZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5l
dHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5n
Q29udGV4dC5oCmluZGV4IDdmMDg4MDFjYjVjM2U3NDQ1OWFjOGY4ZjQ5OGRlMzllM2M2YTZkYmEu
LmM4MDQ0YTYwMmY4YTNjYjkxZDZmYzgyMWMxNzgzMTU3NDUxNDZkNzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaApAQCAtMjAsOCArMjAsMTAg
QEAKICNpZm5kZWYgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAjZGVmaW5lIEZyYW1lTmV0d29y
a2luZ0NvbnRleHRfaAogCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZS5o
IgogI2luY2x1ZGUgIk5ldHdvcmtpbmdDb250ZXh0LmgiCisjaW5jbHVkZSAiUmVmZXJyZXJQb2xp
Y3kuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0zMiw2ICszNCwxMSBAQCBwdWJsaWM6
CiAgICAgICAgIG1fZnJhbWUgPSAwOwogICAgIH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QKKyAgICB7CisgICAgICAg
IHJldHVybiBtX2ZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVy
UG9saWN5RGVmYXVsdDsKKyAgICB9CisKIHByb3RlY3RlZDoKICAgICBleHBsaWNpdCBGcmFtZU5l
dHdvcmtpbmdDb250ZXh0KEZyYW1lKiBmcmFtZSkKICAgICAgICAgOiBtX2ZyYW1lKGZyYW1lKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VI
YW5kbGUuY3BwCmluZGV4IGM4MmI0NmM2MDg3ZmY5NjEyNTc5OThhNTRhZWY1ZWU2ZTZhYmNkMzYu
LmU4MTMzNGNiOWY4M2I5OTU1OGIyNDc4OWNhYWM4YTU3NmNiZmNiOWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAK
QEAgLTQwLDcgKzQwLDYgQEAKICNpbmNsdWRlICJGaWxlU3lzdGVtLmgiCiAjaW5jbHVkZSAiSFRU
UFBhcnNlcnMuaCIKICNpbmNsdWRlICJLVVJMLmgiCi0jaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRl
eHQuaCIKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VIYW5k
bGVDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKQEAgLTE0Miw3ICsxNDEs
NyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShQ
YXNzUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYgogfQogCiBCbG9iUmVzb3VyY2VIYW5kbGU6OkJs
b2JSZXNvdXJjZUhhbmRsZShQYXNzUmVmUHRyPEJsb2JTdG9yYWdlRGF0YT4gYmxvYkRhdGEsIGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVu
dCwgYm9vbCBhc3luYykKLSAgICA6IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZmFs
c2UsIGZhbHNlKQorICAgIDogUmVzb3VyY2VIYW5kbGUoMCwgcmVxdWVzdCwgY2xpZW50LCBmYWxz
ZSwgZmFsc2UpCiAgICAgLCBtX2Jsb2JEYXRhKGJsb2JEYXRhKQogICAgICwgbV9hc3luYyhhc3lu
YykKICAgICAsIG1fZXJyb3JDb2RlKDApCkBAIC02MzYsNCArNjM1LDMgQEAgdm9pZCBCbG9iUmVz
b3VyY2VIYW5kbGU6Om5vdGlmeUZpbmlzaCgpCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoQkxPQikKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCmluZGV4IDE0Y2Q0MjA2OTVlOGQ1YTNhZDI1YmU4
MWY2MTA0NTljMzE5Mzg3NWIuLjYxYTg0YjQ5NDE4MTQyOWRjZjJjYjBmNmE4MzNkZmFjM2JmZTE2
MjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2lu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtp
bmdDb250ZXh0LmgKQEAgLTY1LDYgKzY1LDggQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29s
IGlzVmFsaWQoKSBjb25zdCB7IHJldHVybiB0cnVlOyB9CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0ID0gMDsKKwogI2lm
IFBMQVRGT1JNKENIUk9NSVVNKQogICAgIC8vIEZJWE1FOiBXcmFwIFdlYkNvb2tpZUphciBpbnRv
IGEgTmV0d29ya1N0b3JhZ2VTZXNzaW9uIHRvIG1ha2UgdGhlIGNvZGUgY3Jvc3MtcGxhdGZvcm0u
CiAgICAgdmlydHVhbCBXZWJLaXQ6OldlYkNvb2tpZUphciogY29va2llSmFyKCkgY29uc3QgPSAw
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhh
bmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcAppbmRleCA0YmM5NGU3NjQ1OGE0OWNhY2QwN2E2YTc3MTJhMGViYWM2ZTM3ZDNhLi4xM2Uw
ZmMzNjBkMmJkNTMzNjUwMWI2NDdkNGIzMDEzYjRiZmY3MzhmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTMsOCArNTMs
OCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25z
dCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBSZQogICAgIGJ1aWx0aW5SZXNvdXJjZUhhbmRsZUNv
bnN0cnVjdG9yTWFwKCkuYWRkKHByb3RvY29sLCBjb25zdHJ1Y3Rvcik7CiB9CiAKLVJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91
bGRDb250ZW50U25pZmYpCi0gICAgOiBkKGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsKHRoaXMsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNu
aWZmICYmIHNob3VsZENvbnRlbnRTbmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpKQorUmVzb3VyY2VI
YW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBS
ZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsIGJv
b2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgOiBkKGFkb3B0
UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHRoaXMsIGNvbnRleHQsIHJlcXVlc3QsIGNs
aWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmICYmIHNob3VsZENvbnRlbnRT
bmlmZlVSTChyZXF1ZXN0LnVybCgpKSkpKQogewogICAgIGlmICghcmVxdWVzdC51cmwoKS5pc1Zh
bGlkKCkpIHsKICAgICAgICAgc2NoZWR1bGVGYWlsdXJlKEludmFsaWRVUkxGYWlsdXJlKTsKQEAg
LTc0LDEyICs3NCwxMiBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjbwogICAgIGlmIChwcm90b2Nv
bE1hcEl0ZW0gIT0gYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5lbmQoKSkK
ICAgICAgICAgcmV0dXJuIHByb3RvY29sTWFwSXRlbS0+dmFsdWUocmVxdWVzdCwgY2xpZW50KTsK
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNv
dXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZikpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZShhZG9wdFJlZihu
ZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYpKSk7CiAKICAgICBpZiAobmV3SGFuZGxlLT5kLT5tX3NjaGVk
dWxlZEZhaWx1cmVUeXBlICE9IE5vRmFpbHVyZSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRsZS5y
ZWxlYXNlKCk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkKKyAgICBpZiAo
bmV3SGFuZGxlLT5zdGFydCgpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsK
IAogICAgIHJldHVybiAwOwpAQCAtMTI4LDYgKzEyOCwxMSBAQCBSZXNvdXJjZVJlcXVlc3QmIFJl
c291cmNlSGFuZGxlOjpmaXJzdFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5tX2ZpcnN0UmVxdWVz
dDsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQqIFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gZC0+bV9jb250ZXh0LmdldCgpOworfQorCiBjb25zdCBTdHJpbmcm
IFJlc291cmNlSGFuZGxlOjpsYXN0SFRUUE1ldGhvZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIGQt
Pm1fbGFzdEhUVFBNZXRob2Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKaW5kZXggZmEzMDU4OTY0YTVjMmMyN2I2NjU1MGM2ZTM0YmNkOGQ4
OTNlYzk0Zi4uMjJlNjQ4MWFlODljZTA0MmRiNDdlYWY4NDdkZmY0OTkyYWVlMmVkNiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaApAQCAt
MTk5LDYgKzE5OSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZmlyZUZhaWx1cmUoVGltZXI8UmVz
b3VyY2VIYW5kbGU+Kik7CiAKKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNvbnN0
OworCiAgICAgdXNpbmcgUmVmQ291bnRlZDxSZXNvdXJjZUhhbmRsZT46OnJlZjsKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6ZGVyZWY7CiAKQEAgLTIxNCw3ICsyMTYsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcmVnaXN0ZXJCdWlsdGluQ29uc3RydWN0b3IoY29u
c3QgQXRvbWljU3RyaW5nJiBwcm90b2NvbCwgQnVpbHRpbkNvbnN0cnVjdG9yKTsKIAogcHJvdGVj
dGVkOgotICAgIFJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNl
SGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgUmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJj
ZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCosIGJvb2wgZGVmZXJzTG9hZGluZywgYm9v
bCBzaG91bGRDb250ZW50U25pZmYpOwogCiBwcml2YXRlOgogICAgIGVudW0gRmFpbHVyZVR5cGUg
ewpAQCAtMjI3LDcgKzIyOSw3IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNjaGVkdWxlRmFpbHVy
ZShGYWlsdXJlVHlwZSk7CiAKLSAgICBib29sIHN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0Kik7Cisg
ICAgYm9vbCBzdGFydCgpOwogCiAgICAgdmlydHVhbCB2b2lkIHJlZkF1dGhlbnRpY2F0aW9uQ2xp
ZW50KCkgeyByZWYoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBkZXJlZkF1dGhlbnRpY2F0aW9uQ2xp
ZW50KCkgeyBkZXJlZigpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGU5NmRjODUxZjFjZDY0ZDA0
ZTg1ZjVhZWM3NmZmMTg5NzRmZDVlMjUuLjQ4YjYyNmUwNGU3NjIyN2JlNDAxMzQ3OWEzZmVjZTk4
NzAyNDA3NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBAIC04Myw4ICs4Myw5IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVybmFsIHsKICAgICAgICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk7IFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChS
ZXNvdXJjZUhhbmRsZSogbG9hZGVyLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJl
c291cmNlSGFuZGxlQ2xpZW50KiBjLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29u
dGVudFNuaWZmKQotICAgICAgICAgICAgOiBtX2NsaWVudChjKQorICAgICAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYp
CisgICAgICAgICAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICAgICAgICAgLCBtX2NsaWVu
dChjbGllbnQpCiAgICAgICAgICAgICAsIG1fZmlyc3RSZXF1ZXN0KHJlcXVlc3QpCiAgICAgICAg
ICAgICAsIG1fbGFzdEhUVFBNZXRob2QocmVxdWVzdC5odHRwTWV0aG9kKCkpCiAgICAgICAgICAg
ICAsIHN0YXR1cygwKQpAQCAtMTM3LDggKzEzOCw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgflJlc291cmNlSGFuZGxlSW50ZXJuYWwoKTsKIAogICAgICAgICBSZXNvdXJjZUhhbmRs
ZUNsaWVudCogY2xpZW50KCkgeyByZXR1cm4gbV9jbGllbnQ7IH0KKworICAgICAgICBSZWZQdHI8
TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIG1fY2xpZW50OwotICAgICAgICAKICAgICAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fZmlyc3RS
ZXF1ZXN0OwogICAgICAgICBTdHJpbmcgbV9sYXN0SFRUUE1ldGhvZDsKIApAQCAtMjAyLDcgKzIw
NCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgY2hhciogbV9idWZmZXI7CiAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5U2l6ZTsKICAgICAgICAgdW5zaWduZWQgbG9uZyBtX2Jv
ZHlEYXRhU2VudDsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7
CiAgICAgICAgIFNvdXBTZXNzaW9uKiBzb3VwU2Vzc2lvbigpOwogICAgICAgICBpbnQgbV9yZWRp
cmVjdENvdW50OwogI2VuZGlmCkBAIC0yMTQsNyArMjE1LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogI2VuZGlmCiAjaWYgUExBVEZPUk0oUVQpCiAgICAgICAgIFFOZXR3b3JrUmVwbHlIYW5kbGVy
KiBtX2pvYjsKLSAgICAgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250ZXh0PiBtX2NvbnRleHQ7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxl
QmxhY2tCZXJyeS5jcHAKaW5kZXggYWNjMjc5MmFlZDgxNThjOTRlZmI0OTFlNzM0ODM1YzU5YTVh
ODkyMS4uYWQyYzhkY2QzMTI2ZTU2Y2FiYTc5OTc0ODcwZmYyMWJiN2JhOTg5MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFu
ZGxlQmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9i
bGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAKQEAgLTEwNyw5ICsxMDcsOSBA
QCB2b2lkIFJlc291cmNlSGFuZGxlOjpwbGF0Zm9ybVNldERlZmVyc0xvYWRpbmcoYm9vbCBkZWZl
cnNMb2FkaW5nKQogICAgIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zZXREZWZlcnNMb2Fk
aW5nKHRoaXMsIGRlZmVyc0xvYWRpbmcpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KCkKIHsKLSAgICBpZiAoIWNvbnRleHQgfHwgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAo
IWQtPm1fY29udGV4dCB8fCAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIC8vIEZJWE1FOiBjbGVhbiB1cCB1c2Ugb2YgRnJhbWUgbm93IHRoYXQg
d2UgaGF2ZSBOZXR3b3JraW5nQ29udGV4dCAoc2VlIFJJTSBCdWcgIzE1MTUpCkBAIC0xNTYsNyAr
MTU2LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShO
ZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBib29sIGRlZmVyc0xvYWRpbmcg
PSBmYWxzZTsKICAgICBib29sIHNob3VsZENvbnRlbnRTbmlmZiA9IGZhbHNlOwogCi0gICAgUmVm
UHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgJnN5bmNMb2FkZXIsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikp
OworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5nLCBz
aG91bGRDb250ZW50U25pZmYpKTsKICAgICBOZXR3b3JrTWFuYWdlcjo6aW5zdGFuY2UoKS0+c3Rh
cnRKb2IocGxheWVySWQsIGhhbmRsZSwgZnJhbWUsIGRlZmVyc0xvYWRpbmcpOwogCiAgICAgY29u
c3QgZG91YmxlIHN5bmNMb2FkVGltZU91dCA9IDYwOyAvLyBzZWNvbmRzCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAppbmRleCA3NjE2NzViNDI2NzVjMzRlZjVjMTQzOGRmZWFhYTRjNzU2OGFjODhiLi5iMDA5
NWFhOTAzYzVhMTYyYTUzNTA2MjEzZDNlMDdlN2EyNmM5ZjVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5j
cHAKQEAgLTE4NCw3ICsxODQsNyBAQCBzdGF0aWMgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVx
dWVzdChDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZVUkxSZXF1ZXN0UmVmCiAgICAgICAgIHJl
cXVlc3QgPSBjZlJlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVy
IGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAg
ICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJl
cXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5w
cm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwg
Imh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwog
CiAgICAgaGFuZGxlLT53aWxsU2VuZFJlcXVlc3QocmVxdWVzdCwgY2ZSZWRpcmVjdFJlc3BvbnNl
KTsKQEAgLTQ5NiwyMSArNDk2LDIxIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZUNGVVJM
Q29ubmVjdGlvbihib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBib29sCiAgICAgZC0+
bV9jb25uZWN0aW9uLmFkb3B0Q0YoQ0ZVUkxDb25uZWN0aW9uQ3JlYXRlV2l0aFByb3BlcnRpZXMo
MCwgcmVxdWVzdC5nZXQoKSwgcmVpbnRlcnByZXRfY2FzdDxDRlVSTENvbm5lY3Rpb25DbGllbnQq
PigmY2xpZW50KSwgY29ubmVjdGlvblByb3BlcnRpZXMuZ2V0KCkpKTsKIH0KIAotYm9vbCBSZXNv
dXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291
cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9j
b250ZXh0KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBJZiBOZXR3b3JraW5nQ29u
dGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdlciBhdHRhY2hlZCB0byBhIFBhZ2Us
CiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBsb2FkIGZyb20gYW4gdW5sb2FkIGhh
bmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCi0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlk
KCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29u
dGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIAogICAgIGJvb2wgc2hv
dWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAhY2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwogCi0gICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNo
b3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xp
Y3koY29udGV4dCwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLCBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
Zik7CisgICAgY3JlYXRlQ0ZVUkxDb25uZWN0aW9uKHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdl
LCBzaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVQb2xpY3koZC0+bV9jb250ZXh0LmdldCgpLCBm
aXJzdFJlcXVlc3QoKS51cmwoKSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsKIAogI2lmIFBM
QVRGT1JNKFdJTikKICAgICBDRlVSTENvbm5lY3Rpb25TY2hlZHVsZVdpdGhDdXJyZW50TWVzc2Fn
ZVF1ZXVlKGQtPm1fY29ubmVjdGlvbi5nZXQoKSk7CkBAIC03MzksNyArNzM5LDcgQEAgdm9pZCBS
ZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCwgY29uc3QKICAgICBPd25QdHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xp
ZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZShyZXNw
b25zZSwgZXJyb3IpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRDcmVkZW50aWFscyhzdG9y
ZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsKIAotICAgIFJlZlB0cjxS
ZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVl
c3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRD
b250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudC5nZXQoKSwg
ZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOwog
CiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Np
b24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtOTI0LDQgKzkyNCwzIEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmhhbmRsZURhdGFBcnJheShDRkFycmF5UmVmIGRhdGFBcnJheSkKICNlbmRpZgog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYWMx
NDkyMWE3YzQ1MDZhNWNlYTBiMTQ4OGQwNTJiNmMyMTIwYjM4Zi4uYjU2ZGM2MzM1ZjI1NTdiNjVi
NDdlYzY4MDU0YTk1ODYzN2E4MmNkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAKQEAgLTUyLDgg
KzUyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Ly8gUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6UmVzb3VyY2VI
YW5kbGVJbnRlcm5hbChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBjbGllbnQpCi0gICAgOiBtX3JlcXVlc3QocmVxdWVzdCkKK1Jlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCkKKyAgICA6IG1fY29udGV4dChjb250ZXh0KQorICAgICwgbV9yZXF1ZXN0KHJl
cXVlc3QpCiAgICAgLCBtX293bmVyKDApCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBt
X3N0YXRlKENvbm5lY3Rpb25TdGF0ZU5ldykKQEAgLTE3OCwxMSArMTc5LDggQEAgUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbCogUmVzb3VyY2VIYW5kbGVJbnRlcm5hbDo6RnJvbVJlc291cmNlSGFuZGxl
KFJlc291cmNlSGFuZGwKIAogLy8gUmVzb3VyY2VIYW5kbGUgLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCi1SZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWZlcnNMb2FkaW5nLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQotICAgIDog
ZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChyZXF1ZXN0LCBjbGllbnQpKSkK
K1Jlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50LCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQorICAg
IDogZChhZG9wdFB0cihuZXcgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb250ZXh0LCByZXF1ZXN0
LCBjbGllbnQpKSkKIHsKICAgICBkLT5zZXRPd25lcih0aGlzKTsKIApAQCAtMTk2LDkgKzE5NCw5
IEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKQogewogICAgIFJlZlB0
cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxl
KAotICAgICAgICByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRT
bmlmZikpOworICAgICAgICBjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcs
IHNob3VsZENvbnRlbnRTbmlmZikpOwogCi0gICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoY29udGV4
dCkpCisgICAgaWYgKG5ld0hhbmRsZS0+c3RhcnQoKSkKICAgICAgICAgcmV0dXJuIG5ld0hhbmRs
ZS5yZWxlYXNlKCk7CiAKICAgICByZXR1cm4gMDsKQEAgLTIwOSw2ICsyMDcsMTEgQEAgUmVzb3Vy
Y2VSZXF1ZXN0JiBSZXNvdXJjZUhhbmRsZTo6Zmlyc3RSZXF1ZXN0KCkKICAgICByZXR1cm4gZC0+
cmVxdWVzdCgpOwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRl
eHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5jb250ZXh0KCk7Cit9CisKIFJlc291cmNlSGFu
ZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2xpZW50KCkgY29uc3QKIHsKICAgICByZXR1cm4g
ZC0+Y2xpZW50KCk7CkBAIC0yMjQsOSArMjI3LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0
RGVmZXJzTG9hZGluZyhib29sIHZhbHVlKQogICAgIGQtPnNldERlZmVyc0xvYWRpbmcodmFsdWUp
OwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29u
dGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQp
CisgICAgaWYgKCFkLT5jb250ZXh0KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGQt
PnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2No
cm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCmluZGV4IGQzOGQ5M2Vm
OGUyOTcwMmVjNjZjZDgxMGUyNzNjZmJlZjU5NjYyYzMuLjZhOTE1NTE2YjE1ZGZmMTE4ZjJlMGM0
NTNkZDM5Y2RjN2IwYTU0MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oCkBA
IC0zOSwxMiArMzksMTMgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBOZXR3b3Jr
aW5nQ29udGV4dDsKIGNsYXNzIFJlc291cmNlSGFuZGxlOwogY2xhc3MgUmVzb3VyY2VIYW5kbGVD
bGllbnQ7CiAKIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJVUkxMb2FkZXJDbGllbnQgewogcHVibGljOgotICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKKyAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKE5ldHdvcmtpbmdDb250ZXh0KiwgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKIAogICAgIHZpcnR1YWwgflJlc291cmNlSGFu
ZGxlSW50ZXJuYWwoKSB7IH0KIApAQCAtODAsMTAgKzgxLDEyIEBAIHB1YmxpYzoKICAgICBSZXNv
dXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KICAg
ICB2b2lkIHNldENsaWVudChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KSB7IG1fY2xpZW50
ID0gY2xpZW50OyB9CiAgICAgV2ViS2l0OjpXZWJVUkxMb2FkZXIqIGxvYWRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fbG9hZGVyLmdldCgpOyB9CisgICAgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX2NvbnRleHQuZ2V0KCk7IH0KIAogICAgIHN0YXRpYyBSZXNvdXJj
ZUhhbmRsZUludGVybmFsKiBGcm9tUmVzb3VyY2VIYW5kbGUoUmVzb3VyY2VIYW5kbGUqKTsKIAog
cHJpdmF0ZToKKyAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAgICBS
ZXNvdXJjZVJlcXVlc3QgbV9yZXF1ZXN0OwogICAgIFJlc291cmNlSGFuZGxlKiBtX293bmVyOwog
ICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBtX2NsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRsZUN1cmwuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
aW5kZXggMWQ0MmE1YjA0YzNhNTEzMWZhYjE0MjI5ZGQyZDExY2Y2MzEzOGI5MS4uOWMzNTc2Njdm
OGI3YzM5YzgzZjAxZWNlMjA2MzFkNGNkMzMwMGNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAK
QEAgLTk2LDE0ICs5NiwxNCBAQCBSZXNvdXJjZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAg
ICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0Nv
bnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgLy8g
VGhlIGZyYW1lIGNvdWxkIGJlIG51bGwgaWYgdGhlIFJlc291cmNlSGFuZGxlIGlzIG5vdCBhc3Nv
Y2lhdGVkIHRvIGFueQogICAgIC8vIEZyYW1lLCBlLmcuIGlmIHdlIGFyZSBkb3dubG9hZGluZyBh
IGZpbGUuCiAgICAgLy8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBu
dWxsIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2Fk
IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0aGUgZnJh
bWUgYW5kIHRoZSBwYWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KLSAgICBp
ZiAoY29udGV4dCAmJiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQg
JiYgIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBSZXNvdXJjZUhhbmRsZU1hbmFnZXI6OnNoYXJlZEluc3RhbmNlKCktPmFkZCh0aGlzKTsKQEAg
LTE3NSw3ICsxNzUsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpsb2Fkc0Jsb2NrZWQoKQogdm9p
ZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgU3RvcmVkQ3JlZGVudGlhbHMg
c3RvcmVkQ3JlZGVudGlhbHMsIFJlc291cmNlRXJyb3ImIGVycm9yLCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSwgVmVjdG9yPGNoYXI+JiBkYXRhKQogewogICAgIFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlciBzeW5jTG9hZGVyOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0g
YWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBm
YWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3
IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxz
ZSkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyKiBtYW5hZ2VyID0gUmVzb3VyY2VIYW5k
bGVNYW5hZ2VyOjpzaGFyZWRJbnN0YW5jZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCmluZGV4IGMwYjhk
M2FiNzhkZDE2NDE5YWEwOWY1M2QyYzg4ZDY3YmMwMzE0YzIuLjY3MjM1MzRkMDIwZGUzNWRkZDQ5
ZTQ3NTAxZmZlMmEyOWE2OWYwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCkBAIC0yMTgsMTkgKzIxOCwx
OSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpjcmVhdGVOU1VSTENvbm5lY3Rpb24oaWQgZGVsZWdh
dGUsIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbAogCiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAgICBpZiAoIWQtPm1fY29udGV4dCkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgQkVHSU5fQkxPQ0tfT0JKQ19FWENFUFRJT05TOwog
CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBs
b25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0
ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2Nr
IGl0LgotICAgIGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0
LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGQtPm1fc3RvcmFnZVNl
c3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAg
IGQtPm1fc3RvcmFnZVNlc3Npb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxh
dGZvcm1TZXNzaW9uKCk7CiAKICAgICBBU1NFUlQoIWQtPm1fcHJveHkpOwogICAgIGQtPm1fcHJv
eHkuYWRvcHROUyh3a0NyZWF0ZU5TVVJMQ29ubmVjdGlvbkRlbGVnYXRlUHJveHkoKSk7CkBAIC0y
MzgsMTYgKzIzOCwxNiBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29u
dGV4dCogY29udGV4dCkKIAogICAgIGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UgPSAh
Y2xpZW50KCkgfHwgY2xpZW50KCktPnNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlKHRoaXMpOwog
Ci0gICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGNvbnRleHQtPm5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKCk7CisgICAgZC0+bV9uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyA9IGQtPm1f
Y29udGV4dC0+bmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoKTsKIAogICAgIGNyZWF0ZU5TVVJMQ29u
bmVjdGlvbigKICAgICAgICAgZC0+bV9wcm94eS5nZXQoKSwKICAgICAgICAgc2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UsCi0gICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGlj
eShjb250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksCi0gICAgICAgIGQtPm1fc2hvdWxkQ29u
dGVudFNuaWZmIHx8IGNvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7
CisgICAgICAgIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5tX2NvbnRleHQu
Z2V0KCksIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwKKyAgICAgICAgZC0+bV9zaG91bGRDb250ZW50
U25pZmYgfHwgZC0+bV9jb250ZXh0LT5sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKCkp
OwogCiAgICAgYm9vbCBzY2hlZHVsZWQgPSBmYWxzZTsKLSAgICBpZiAoU2NoZWR1bGVQYWlySGFz
aFNldCogc2NoZWR1bGVkUGFpcnMgPSBjb250ZXh0LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkg
eworICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0KiBzY2hlZHVsZWRQYWlycyA9IGQtPm1fY29u
dGV4dC0+c2NoZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKICAgICAgICAgU2NoZWR1bGVQYWlySGFz
aFNldDo6aXRlcmF0b3IgZW5kID0gc2NoZWR1bGVkUGFpcnMtPmVuZCgpOwogICAgICAgICBmb3Ig
KFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGl0ID0gc2NoZWR1bGVkUGFpcnMtPmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICAgICAgaWYgKE5TUnVuTG9vcCAqcnVuTG9v
cCA9ICgqaXQpLT5uc1J1bkxvb3AoKSkgewpAQCAtMjU3LDcgKzI1Nyw3IEBAIGJvb2wgUmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9wZXJhdGlvblF1ZXVlID0gY29udGV4
dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUoKSkgeworICAgIGlmIChOU09wZXJhdGlvblF1ZXVl
ICpvcGVyYXRpb25RdWV1ZSA9IGQtPm1fY29udGV4dC0+c2NoZWR1bGVkT3BlcmF0aW9uUXVldWUo
KSkgewogICAgICAgICBBU1NFUlQoIXNjaGVkdWxlZCk7CiAgICAgICAgIFtjb25uZWN0aW9uKCkg
c2V0RGVsZWdhdGVRdWV1ZTpvcGVyYXRpb25RdWV1ZV07CiAgICAgICAgIHNjaGVkdWxlZCA9IHRy
dWU7CkBAIC0zODEsNyArMzgxLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNl
U3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBPd25Q
dHI8V2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50PiBjbGllbnQgPSBXZWJDb3JlU3luY2hy
b25vdXNMb2FkZXJDbGllbnQ6OmNyZWF0ZSgpOwogICAgIGNsaWVudC0+c2V0QWxsb3dTdG9yZWRD
cmVkZW50aWFscyhzdG9yZWRDcmVkZW50aWFscyA9PSBBbGxvd1N0b3JlZENyZWRlbnRpYWxzKTsK
IAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291
cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8s
IHRydWUgLypzaG91bGRDb250ZW50U25pZmYqLykpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRs
ZT4gaGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3Qs
IGNsaWVudC5nZXQoKSwgZmFsc2UgLypkZWZlcnNMb2FkaW5nKi8sIHRydWUgLypzaG91bGRDb250
ZW50U25pZmYqLykpOwogCiAgICAgaGFuZGxlLT5kLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4
dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9ybVNlc3Npb24oKTsKIApAQCAtNjY4LDcgKzY2OCw3
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW9uKGNvbnN0IEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qg
PSBuZXdSZXF1ZXN0OwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJl
ZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRw
cyIpICYmIG1faGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAg
ICAgbV9oYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtS
ZXBseUhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKaW5kZXggMGI2NGI3OWJhNDQ5ZWE0NzgyYWM3MGZlOTMwMGVk
MTJiMzRiY2IwOC4uMWNhNTQzZTQ0MmY0ZWViYzM0NWU4NzEwNDU0MGRkNDM3YjdjMWFkNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHAKQEAgLTY0Nyw3ICs2NDcsNyBAQCB2b2lkIFFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpyZWRpcmVjdChSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSwgY29uc3QgUVVy
bCYgcmVkaQogICAgIG5ld1JlcXVlc3Quc2V0VVJMKG5ld1VybCk7CiAKICAgICAvLyBTaG91bGQg
bm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJlY3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0
byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJcygi
aHR0cHMiKSAmJiBwcm90b2NvbElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIp
KQorICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3Rv
Y29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikgJiYgbV9yZXNvdXJjZUhh
bmRsZS0+Y29udGV4dCgpLT5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkpCiAgICAgICAgIG5ld1JlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGNsaWVu
dC0+d2lsbFNlbmRSZXF1ZXN0KG1fcmVzb3VyY2VIYW5kbGUsIG5ld1JlcXVlc3QsIHJlc3BvbnNl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3Vy
Y2VIYW5kbGVRdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291
cmNlSGFuZGxlUXQuY3BwCmluZGV4IDEzNzUxZWI2NWQ3ZjMzZmM5N2JjMjM0YTY4MjY2MTc4YjQy
YWI2MWEuLjYyYzBmYzFlMDFkN2VkZTEyZWJkNmZiMGVkZWM3YWYyNmI4MmUxMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRs
ZVF0LmNwcApAQCAtOTAsMTEgKzkwLDExIEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5k
bGUoKQogICAgICAgICBjYW5jZWwoKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7CiAgICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBu
byBsb25nZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRl
bXB0ZWQgbG9hZCBmcm9tIGFuIHVubG9hZCBldmVudCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJs
b2NrIGl0LgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYg
KGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKIAogICAgIGlmICghZC0+bV91c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlz
RW1wdHkoKSkgewpAQCAtMTA2LDcgKzEwNiw2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICBkLT5tX2ZpcnN0UmVxdWVzdC5z
ZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9CiAKLSAgICBnZXRJbnRlcm5hbCgpLT5t
X2NvbnRleHQgPSBjb250ZXh0OwogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgKmQgPSBnZXRJ
bnRlcm5hbCgpOwogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5kbGVyKHRoaXMs
IFFOZXR3b3JrUmVwbHlIYW5kbGVyOjpBc3luY2hyb25vdXNMb2FkLCBkLT5tX2RlZmVyc0xvYWRp
bmcpOwogICAgIHJldHVybiB0cnVlOwpAQCAtMTM0LDcgKzEzMyw3IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0CiAgICAgfQogI2VuZGlmCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5
bmNMb2FkZXIoZXJyb3IsIHJlc3BvbnNlLCBkYXRhKTsKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5k
bGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCAmc3luY0xv
YWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9
IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmc3luY0xvYWRl
ciwgdHJ1ZSwgZmFsc2UpKTsKIAogICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIGQgPSBoYW5k
bGUtPmdldEludGVybmFsKCk7CiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5t
X3Bhc3MuaXNFbXB0eSgpKSB7CkBAIC0xNDUsNyArMTQ0LDYgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwg
Y29uc3QKICAgICAgICAgdXJsV2l0aENyZWRlbnRpYWxzLnNldFBhc3MoZC0+bV9wYXNzKTsKICAg
ICAgICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAg
fQotICAgIGQtPm1fY29udGV4dCA9IGNvbnRleHQ7CiAKICAgICAvLyBzdGFydGluZyBpbiBkZWZl
cnJlZCBtb2RlIGdpdmVzIGQtPm1fam9iIHRoZSBjaGFuY2Ugb2YgYmVpbmcgc2V0IGJlZm9yZSBz
ZW5kaW5nIHRoZSByZXF1ZXN0LgogICAgIGQtPm1fam9iID0gbmV3IFFOZXR3b3JrUmVwbHlIYW5k
bGVyKGhhbmRsZS5nZXQoKSwgUU5ldHdvcmtSZXBseUhhbmRsZXI6OlN5bmNocm9ub3VzTG9hZCwg
dHJ1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAv
UmVzb3VyY2VIYW5kbGVTb3VwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCmluZGV4IDQ2MDQxMmVlY2E1YWY1MTM5OTE4OTk0
Yjg5ZDU3OWE2MWE1ZTNiZjYuLjNjYzY1N2E1MTZlZmYyMTE0YTQxNTlkMmU4ODc2NzkyMWE0YzMy
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
c291cC9SZXNvdXJjZUhhbmRsZVNvdXAuY3BwCkBAIC00NjgsNyArNDY4LDcgQEAgc3RhdGljIHZv
aWQgZG9SZWRpcmVjdChSZXNvdXJjZUhhbmRsZSogaGFuZGxlKQogICAgIH0KIAogICAgIC8vIFNo
b3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291
cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3VVJMLnByb3RvY29sSXMoImh0dHBz
IikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBp
ZiAoIW5ld1VSTC5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRw
UmVmZXJyZXIoKSwgImh0dHBzIikgJiYgaGFuZGxlLT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkKICAgICAgICAgcmVxdWVzdC5jbGVhckhUVFBS
ZWZlcnJlcigpOwogCiAgICAgZC0+bV91c2VyID0gbmV3VVJMLnVzZXIoKTsKQEAgLTEwMTksNyAr
MTAxOSw3IEBAIHN0YXRpYyBib29sIGNyZWF0ZVNvdXBSZXF1ZXN0QW5kTWVzc2FnZUZvckhhbmRs
ZShSZXNvdXJjZUhhbmRsZSogaGFuZGxlLCBjb25zdCBSCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQor
Ym9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIEFTU0VSVCghZC0+bV9zb3VwTWVz
c2FnZSk7CiAKQEAgLTEwMjgsMTIgKzEwMjgsOSBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90
IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwgdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAg
IC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4K
ICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBhbmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBj
b250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChjb250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkp
CisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAhZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgIC8vIFVzZWQgdG8gc2V0IHRoZSBrZWVwIHRyYWNrIG9m
IGN1c3RvbSBTb3VwU2Vzc2lvbnMgZm9yIHBvcnRzIHRoYXQgc3VwcG9ydCBpdCAoRUZMKS4KLSAg
ICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwotCiAgICAgLy8gT25seSBhbGxvdyB0aGUgUE9TVCBh
bmQgR0VUIG1ldGhvZHMgZm9yIG5vbi1IVFRQIHJlcXVlc3RzLgogICAgIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCA9IGZpcnN0UmVxdWVzdCgpOwogICAgIGJvb2wgaXNIVFRQRmFtaWx5
UmVxdWVzdCA9IHJlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpOwpAQCAtMTA0
OSw3ICsxMDQ2LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHNldFNvdXBS
ZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21OZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1
ZXN0LmdldCgpLCBjb250ZXh0KTsKKyAgICBzZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSURG
cm9tTmV0d29ya2luZ0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgZC0+bV9jb250ZXh0
LmdldCgpKTsKIAogICAgIC8vIFNlbmQgdGhlIHJlcXVlc3Qgb25seSBpZiBpdCdzIG5vdCBiZWVu
IGV4cGxpY2l0bHkgZGVmZXJyZWQuCiAgICAgaWYgKCFkLT5tX2RlZmVyc0xvYWRpbmcpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRs
ZVdpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhh
bmRsZVdpbi5jcHAKaW5kZXggOGExZDE5OWFlMTRlZWM5YTM4YTYzZDg2ZTA0MDk1ODQ5N2QyNzkz
ZC4uNTkwZWIzMTIzZTBhOWQ1ZWRjNDEyNTM0NTE2ZDFkMTU3NzY2YmI4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcApAQCAtMjY1LDcgKzI2NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6Om9uUmVxdWVz
dENvbXBsZXRlKCkKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6
c3RhcnQoKQogewogICAgIGlmIChmaXJzdFJlcXVlc3QoKS51cmwoKS5pc0xvY2FsRmlsZSgpIHx8
IGZpcnN0UmVxdWVzdCgpLnVybCgpLnByb3RvY29sSXNEYXRhKCkpIHsKICAgICAgICAgcmVmKCk7
IC8vIGJhbGFuY2VkIGJ5IGRlcmVmIGluIGZpbGVMb2FkVGltZXIKQEAgLTI3Nyw3ICsyNzcsNyBA
QCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
ICAgICB9CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUpCi0gICAgICAgIGQtPm1faW50
ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShjb250ZXh0LT51c2VyQWdl
bnQoKSk7CisgICAgICAgIGQtPm1faW50ZXJuZXRIYW5kbGUgPSBhc3luY2hyb25vdXNJbnRlcm5l
dEhhbmRsZShkLT5tX2NvbnRleHQtPnVzZXJBZ2VudCgpKTsKIAogICAgIGlmICghZC0+bV9pbnRl
cm5ldEhhbmRsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtNDE5LDEwICs0MTksMTAgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5n
Q29udGV4dCogY29udGV4dCwgY29uc3QKICAgICBVTlVTRURfUEFSQU0oc3RvcmVkQ3JlZGVudGlh
bHMpOwogCiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyIHN5bmNMb2FkZXIoZXJyb3IsIHJl
c3BvbnNlLCBkYXRhLCByZXF1ZXN0Lmh0dHBVc2VyQWdlbnQoKSk7Ci0gICAgUmVzb3VyY2VIYW5k
bGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSk7CisgICAgUmVzb3Vy
Y2VIYW5kbGUgaGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0cnVlLCBmYWxzZSwgY29udGV4
dCk7CiAKICAgICBoYW5kbGUuc2V0U3luY2hyb25vdXNJbnRlcm5ldEhhbmRsZShzeW5jTG9hZGVy
LmludGVybmV0SGFuZGxlKCkpOwotICAgIGhhbmRsZS5zdGFydChjb250ZXh0KTsKKyAgICBoYW5k
bGUuc3RhcnQoKTsKIH0KIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2V0U3luY2hyb25vdXNJbnRl
cm5ldEhhbmRsZShISU5URVJORVQgaW50ZXJuZXRIYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGIvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCAy
Y2JkOTg5MjExNzllNjY3OWJlOTQ4OTdkMjY0Y2RjMjhlNDgzYjEzLi43ZjRiYmRkODM0NjdkYzll
NjAzOGVjY2Q0NjJkOGU1MTg4MmRjMThmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKQEAgLTc4LDcgKzc4LDcg
QEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICByZWYoKTsKICAgICAK
ICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93
c2luZ01vZGUoKSk7CisgICAgbV9uZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSwgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKIAogICAgIGNvbnN1bWVT
YW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKaW5kZXggZTcwOGIwOWRkNzZmZTYwMjJhMDZmNTI4
ODAxNThjZmJiOGY3NmQ4ZC4uYjZjZTM1NjJhODczOGUyY2ZjNDBhMWY5ZjNhNDI5NmY1Yjk0YWVi
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVM
b2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxl
TG9hZGVyLmNwcApAQCAtNDAsNiArNDAsNyBAQCBTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFi
bGVMb2FkZXIoY29uc3QgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIHBhcmFtZQogICAg
ICwgbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxzKHBhcmFtZXRlcnMuYWxsb3dTdG9yZWRDcmVkZW50
aWFscygpKQogICAgICwgbV9pblByaXZhdGVCcm93c2luZ01vZGUocGFyYW1ldGVycy5pblByaXZh
dGVCcm93c2luZ01vZGUoKSkKICAgICAsIG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQorICAgICwg
bV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KHBhcmFtZXRlcnMuc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogewogICAgIGZvciAoc2l6
ZV90IGkgPSAwLCBjb3VudCA9IHBhcmFtZXRlcnMucmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9u
cygpLnNpemUoKTsgaSA8IGNvdW50OyArK2kpIHsKICAgICAgICAgaWYgKFJlZlB0cjxTYW5kYm94
RXh0ZW5zaW9uPiBleHRlbnNpb24gPSBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGUocGFyYW1ldGVy
cy5yZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zKClbaV0pKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaCBiL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmgKaW5kZXggYjA4ZTgxYjJjYjY2
MjE0OGNkZjk1M2JhYzRjODNiNzE0NzU3YjljMy4uYTYxYTZmZjU4OWY1MTYwZmVkMjIwYmZiMjk2
MGIwNDVkYzA2YTAzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
U2NoZWR1bGFibGVMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9T
Y2hlZHVsYWJsZUxvYWRlci5oCkBAIC02NSw2ICs2NSw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lk
IGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogICAgIHZvaWQgaW52YWxpZGF0ZVNhbmRib3hF
eHRlbnNpb25zKCk7CiAKKyAgICBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3Q7IH0KKwogcHJpdmF0ZToKICAgICBSZXNvdXJjZUxvYWRJZGVudGlmaWVyIG1f
aWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX3dlYlBhZ2VJRDsKQEAgLTgxLDYgKzgzLDggQEAg
cHJpdmF0ZToKICAgICBSZWZQdHI8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IG1fY29u
bmVjdGlvbjsKICAgICAKICAgICBSZWZQdHI8SG9zdFJlY29yZD4gbV9ob3N0UmVjb3JkOworCisg
ICAgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Q7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggNWM1ZjE2
M2IzZTZlMDgwZGUzODUwMGU5M2QzZjc5NjU3YzU5OWY2Ni4uMjk2MGQwNDY4MWM4NGMwYzk2MTM5
MWM0YjI5NzBkZGVlOGFkYjNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTMyLDkgKzMy
LDkgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0
IDogcHVibGljIFdlYkNvcmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNT
aXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwg
Ym9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0PiBjcmVhdGUoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywg
Ym9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWQsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkK
ICAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQobmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJs
ZWQsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbG9jYWxG
aWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFs
IH5SZW1vdGVOZXR3b3JraW5nQ29udGV4dCgpOwogCkBAIC00NCw4ICs0NCwxMCBAQCBwdWJsaWM6
CiAKICAgICBzdGF0aWMgV2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBwcml2YXRlQnJv
d3NpbmdTZXNzaW9uKCk7IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBzZXNzaW9uIGV4
aXN0cy4KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0KCkgY29uc3QgT1ZFUlJJREU7CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29y
a2luZ0NvbnRleHQoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOworICAg
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJv
b2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdF
bmFibGVkLCBib29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFOwogCkBAIC01OCw2
ICs2MCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOwog
ICAgIGJvb2wgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOwogICAgIGJvb2wgbV9w
cml2YXRlQnJvd3NpbmdFbmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4
IGRlN2UwZmM0ZmRlZGQzN2U4ODEyNzg4NjlkZDVkMGY4OTMxZTZjZDIuLjc4MTk1MzNhNTI5YjU2
YWY0MGEwY2I5ZWM2YWUxYzljNzkxY2EyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05l
dHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAg
LTQyLDEwICs0MiwxNiBAQCBzdGF0aWMgT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4mIHBy
aXZhdGVCcm93c2luZ1N0b3JhZ2VTZXNzaW9uKCkKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAot
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVl
ZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKQorYm9vbCBSZW1vdGVOZXR3b3JraW5nQ29u
dGV4dDo6c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsK
K30KKworUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJv
b2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5n
RW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgOiBtX25lZWRzU2l0ZVNwZWNpZmljUXVp
cmtzKG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKQogICAgICwgbV9sb2NhbEZpbGVDb250ZW50U25p
ZmZpbmdFbmFibGVkKGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpCiAgICAgLCBtX3By
aXZhdGVCcm93c2luZ0VuYWJsZWQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAsIG1fc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5j
cHAKaW5kZXggODA3MzhjYjU2ZmU0Mjc3ZDNlMjA2ZjEwMWZlNTIwMDg1ZmQ5NWE1NS4uNjUzZDcy
MzViZDA1NjAyN2IyODAzMjQ1ZTY0YWQ5NDI3NmM5M2FlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzLmNwcApAQCAtNDUsMTAgKzQ1LDExIEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0
ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycygpCiAgICAgLCBtX2NvbnRlbnRTbmlm
ZmluZ1BvbGljeShTbmlmZkNvbnRlbnQpCiAgICAgLCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHMo
RG9Ob3RBbGxvd1N0b3JlZENyZWRlbnRpYWxzKQogICAgICwgbV9pblByaXZhdGVCcm93c2luZ01v
ZGUoZmFsc2UpCisgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QodHJ1ZSkKIHsKIH0KIAotTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwg
dWludDY0X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBSZXNvdXJjZVJl
cXVlc3QmIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBDb250ZW50U25p
ZmZpbmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5LCBTdG9yZWRDcmVkZW50aWFscyBhbGxv
d1N0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSkKK05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNv
dXJjZUxvYWRJZGVudGlmaWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0
X3Qgd2ViRnJhbWVJRCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxv
YWRQcmlvcml0eSBwcmlvcml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmlu
Z1BvbGljeSwgU3RvcmVkQ3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgYm9vbCBp
blByaXZhdGVCcm93c2luZ01vZGUsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCkKICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJQ
YWdlSUQod2ViUGFnZUlEKQogICAgICwgbV93ZWJGcmFtZUlEKHdlYkZyYW1lSUQpCkBAIC01Nyw2
ICs1OCw3IEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VM
b2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmCiAgICAgLCBtX2NvbnRlbnRTbmlmZmlu
Z1BvbGljeShjb250ZW50U25pZmZpbmdQb2xpY3kpCiAgICAgLCBtX2FsbG93U3RvcmVkQ3JlZGVu
dGlhbHMoYWxsb3dTdG9yZWRDcmVkZW50aWFscykKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdN
b2RlKGluUHJpdmF0ZUJyb3dzaW5nTW9kZSkKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KQogewogfQogCkBAIC0xMDMsNiArMTA1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVyczo6ZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY28K
ICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9jb250ZW50U25pZmZpbmdQb2xpY3kpOwogICAgIGVu
Y29kZXIuZW5jb2RlRW51bShtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogICAgIGVuY29kZXIu
ZW5jb2RlKG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3No
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogfQogCiBib29sIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVy
JiBkZWNvZGVyLCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcmVzdWx0KQpAQCAtMTQ3
LDYgKzE1MCw4IEBAIGJvb2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShD
b3JlSVBDOjpBcmd1bWVudERlY29kZXImIGRlY29kZXIsIE5lCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX2luUHJpdmF0ZUJyb3dzaW5nTW9k
ZSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3Vs
dC5tX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cy5oCmluZGV4IDU2NDQyZDY3MmM5MjYxZTdjMmM1YzcxNWEzMjM4NzAyOTJhYjY3N2EuLmQ1YmJm
MzNhMzU3NjUzOTE4MzNkYTZjZDYxNGYxNzhjYjJiMGRhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysr
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuaApAQCAtNDUsNyArNDUsNyBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElk
ZW50aWZpZXI7CiBjbGFzcyBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6
CiAgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKTsKLSAgICBOZXR3b3JrUmVzb3Vy
Y2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdl
SUQsIHVpbnQ2NF90IHdlYkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYs
IFdlYkNvcmU6OlJlc291cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQ
b2xpY3ksIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5n
TW9kZSk7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRl
bnRpZmllciwgdWludDY0X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwg
V2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFs
cywgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVu
dEVuY29kZXImKSBjb25zdDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1l
bnREZWNvZGVyJiwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmKTsKQEAgLTYwLDYgKzYw
LDcgQEAgcHVibGljOgogICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50
U25pZmZpbmdQb2xpY3koKSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsg
fQogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMo
KSBjb25zdCB7IHJldHVybiBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7IH0KICAgICBib29sIGlu
UHJpdmF0ZUJyb3dzaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcml2YXRlQnJvd3NpbmdN
b2RlOyB9CisgICAgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0OyB9CiAKIHByaXZhdGU6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX2lkZW50aWZp
ZXI7CkBAIC03Miw2ICs3Myw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZm
aW5nUG9saWN5IG1fY29udGVudFNuaWZmaW5nUG9saWN5OwogICAgIFdlYkNvcmU6OlN0b3JlZENy
ZWRlbnRpYWxzIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFsczsKICAgICBib29sIG1faW5Qcml2YXRl
QnJvd3NpbmdNb2RlOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRU
UFJlZGlyZWN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwCmluZGV4IGJiMzQzNDEyYWU0NDVhMjU1YzllMGZlZjAzZjIyZjBlZjkzNTAzMjgu
LjdkNmFiZDhhNWI5YTczNWQ1OWFhMGJlZGNjNjZkYjJkZGI0YWY0Y2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXIuY3BwCkBAIC0zNywxMCArMzcsMTIgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZGVyLmgi
CisjaW5jbHVkZSA8V2ViQ29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1l
bnRMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9GcmFtZUxvYWRlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1M
b2FkZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlZmVycmVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2Fk
ZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC02Nyw3ICs2OSw3IEBAIFBh
c3NSZWZQdHI8U3VicmVzb3VyY2VMb2FkZXI+IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2No
ZWR1bGVTdWJyZXNvdXJjZUxvYWQoCiB7CiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBs
b2FkZXIgPSBTdWJyZXNvdXJjZUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCByZXNvdXJjZSwgcmVxdWVz
dCwgb3B0aW9ucyk7CiAgICAgaWYgKGxvYWRlcikKLSAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRl
ci5nZXQoKSwgcHJpb3JpdHkpOworICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBw
cmlvcml0eSwgZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQ
b2xpY3lEZWZhdWx0KTsKICAgICByZXR1cm4gbG9hZGVyLnJlbGVhc2UoKTsKIH0KIApAQCAtNzUs
MTEgKzc3LDExIEBAIFBhc3NSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+IFdlYlJl
c291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVQbHVnaW5TCiB7CiAgICAgUmVmUHRyPE5ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyPiBsb2FkZXIgPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRl
cjo6Y3JlYXRlKGZyYW1lLCBjbGllbnQsIHJlcXVlc3QpOwogICAgIGlmIChsb2FkZXIpCi0gICAg
ICAgIHNjaGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsK
KyAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlM
b3csIGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVyUG9saWN5
RGVmYXVsdCk7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNl
TG9hZGVyLCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK3ZvaWQgV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVy
LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlvcml0eSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVy
T25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogICAgIEFTU0VSVChyZXNvdXJjZUxvYWRlcik7CiAg
ICAgQVNTRVJUKHByaW9yaXR5ICE9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CkBA
IC0xMDUsNyArMTA3LDcgQEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxl
TG9hZChSZXNvdXJjZUxvYWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc28KICAgICBXZWJGcmFtZSog
d2ViRnJhbWUgPSBzdGF0aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHJlc291cmNlTG9h
ZGVyLT5mcmFtZUxvYWRlcigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CiAgICAgV2ViUGFnZSog
d2ViUGFnZSA9IHdlYkZyYW1lLT5wYWdlKCk7CiAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVycyBsb2FkUGFyYW1ldGVycyhpZGVudGlmaWVyLCB3ZWJQYWdlLT5wYWdlSUQoKSwgd2Vi
RnJhbWUtPmZyYW1lSUQoKSwgcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKSwgcHJpb3JpdHksIGNv
bnRlbnRTbmlmZmluZ1BvbGljeSwgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgcHJpdmF0ZUJyb3dz
aW5nRW5hYmxlZCk7CisgICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFt
ZXRlcnMoaWRlbnRpZmllciwgd2ViUGFnZS0+cGFnZUlEKCksIHdlYkZyYW1lLT5mcmFtZUlEKCks
IHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0KCksIHByaW9yaXR5LCBjb250ZW50U25pZmZpbmdQb2xp
Y3ksIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogICAgIGlmICghV2ViUHJvY2Vz
czo6c2hhcmVkKCkubmV0d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3Nh
Z2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxvYWQo
bG9hZFBhcmFtZXRlcnMpLCAwKSkgewogICAgICAgICAvLyBXZSBwcm9iYWJseSBmYWlsZWQgdG8g
c2NoZWR1bGUgdGhpcyBsb2FkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIGJlY2F1c2UgaXQgaGFk
IGNyYXNoZWQuCiAgICAgICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5ldmVyIHN1Y2NlZWQgc28gd2Ug
d2lsbCBzY2hlZHVsZSBpdCB0byBmYWlsIGFzeW5jaHJvbm91c2x5LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVk
dWxlci5oCmluZGV4IDFmODRhYjY0Zjg4ZGFkNDUzOGNjMWM5ZGE5NmJhOWEwYzdkYWQxNDUuLmQ4
NjRiOGYwZDUwZDIyNDljNzUyYzg4Zjg3ZjEwYmI2Zjk4ZmIzMzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyLmgKQEAgLTYzLDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbmV0d29ya1Byb2Nl
c3NDcmFzaGVkKCk7CiAKIHByaXZhdGU6Ci0gICAgdm9pZCBzY2hlZHVsZUxvYWQoV2ViQ29yZTo6
UmVzb3VyY2VMb2FkZXIqLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisgICAgdm9p
ZCBzY2hlZHVsZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRQcmlvcml0eSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KTsKICAgICB2b2lkIGFkZFVuc2NoZWR1bGFibGVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9h
ZGVyKik7CiAgICAgdm9pZCB1bnNjaGVkdWxlZExvYWRUaW1lckZpcmVkKCk7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKaW5kZXggMTU0ZjMwNTMwYmVmZjNkYzcwY2Y5
MWMzYmZlNmEzZDQ3YjE5YThiNi4uM2FjMWI2M2QyOTY5NjY1NGEwYzdjYzY3NWM5MDM3M2Q1ZGE5
NjExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcApAQCAtMjM0LDcgKzIz
NCw3IEBAIHZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91
c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0CiAKICAgICBDb3JlSVBDOjpEYXRhUmVmZXJl
bmNlIGRhdGFSZWZlcmVuY2U7CiAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBs
b2FkUGFyYW1ldGVycyhyZXNvdXJjZUxvYWRJZGVudGlmaWVyLCAwLCAwLCByZXF1ZXN0LCBSZXNv
dXJjZUxvYWRQcmlvcml0eUhpZ2hlc3QsIFNuaWZmQ29udGVudCwgc3RvcmVkQ3JlZGVudGlhbHMs
IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkuaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCkpOwor
ICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKHJlc291cmNl
TG9hZElkZW50aWZpZXIsIDAsIDAsIHJlcXVlc3QsIFJlc291cmNlTG9hZFByaW9yaXR5SGlnaGVz
dCwgU25pZmZDb250ZW50LCBzdG9yZWRDcmVkZW50aWFscywgY29udGV4dC0+c3RvcmFnZVNlc3Np
b24oKS5pc1ByaXZhdGVCcm93c2luZ1Nlc3Npb24oKSwgY29udGV4dC0+c2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKTsKICAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6
Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQZXJmb3JtU3luY2hyb25vdXNMb2FkKGxv
YWRQYXJhbWV0ZXJzKSwgTWVzc2FnZXM6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpQ
ZXJmb3JtU3luY2hyb25vdXNMb2FkOjpSZXBseShlcnJvciwgcmVzcG9uc2UsIGRhdGFSZWZlcmVu
Y2UpLCAwKSkgewogICAgICAgICByZXNwb25zZSA9IFJlc291cmNlUmVzcG9uc2UoKTsKICAgICAg
ICAgZXJyb3IgPSBpbnRlcm5hbEVycm9yKHJlcXVlc3QudXJsKCkpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRlMGU0MzQy
ZGQ4N2YwNTliZTcwOGY2ODlhY2I2OGRiZjUwMGRlMzcuLjY4YWFlMmZlYjk4ZTFkNWE5MjViY2Rh
N2YxYWMyNmQ2ZjNlMzZmMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMy0wMi0wNCAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJl
ciBwb2xpY3kgaW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVbnNraXAgaHR0
cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCisKKyAg
ICAgICAgU2tpcHBpbmcgdGhlIHRlc3RzIG9uIHdrMiwgYmVjYXVzZSBvdGhlciByZWZlcnJlciBw
b2xpY3kgdGVzdHMgYXJlCisgICAgICAgIHNraXBwZWQsIHRvbyAoIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxMyApLgorCisgICAgICAgICogcGxhdGZvcm0vZ3Rr
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMi0wNCAgU2FtaSBLeW9zdGlsYSAgPHNreW9zdGlsQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBEaXNhYmxlIC13ZWJraXQtb3ZlcmZsb3ctc2Nyb2xsaW5n
IENTUyBhdHRyaWJ1dGUgb24gQ2hyb21pdW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RF
eHBlY3RhdGlvbnMKaW5kZXggOTQ0YjdiNjVkODRhZGYyN2I1ZDkyMzBmMTY0ODBmNjg0NzFkMzA0
OC4uYTk4MzQ0NTg0NjlkYzU2MGNhZWQ1NDRlYjMzY2VkZGNhNGU3YmFmNCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEyMzksOSArMTIzOSw2IEBAIHdl
YmtpdC5vcmcvYi84NTY4OSBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1k
aXNhYmxlZC5odG1sIFsgU2tpcCBdCiAjIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRk
ZWQgaW4gcjExNjQ3Mwogd2Via2l0Lm9yZy9iLzg1OTY5IGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0
LWluLWlmcmFtZS13aXRoLWJhY2stbmF2aWdhdGlvbi5odG1sIFsgRmFpbHVyZSBdCiAKLSMgU3Rh
cnRlZCBmYWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NTYzCi13ZWJraXQub3JnL2Iv
ODYwNjEgaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5o
dG1sIFsgRmFpbHVyZSBdCi0KIHdlYmtpdC5vcmcvYi84NTMwOCBbIFJlbGVhc2UgXSBpZXRlc3Rj
ZW50ZXIvY3NzMy92YWx1ZXNhbmR1bml0cy91bml0cy0wMDAuaHRtIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCiAKICMgSUVUQyBuYW1lc3BhY2UgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjE0MDA2MDRhYTdiOGQ1OWNmNTU2MDdiMmNlZjFlMDJh
MDVjMjk0My4uYzIyNTZiZjM1ZjdiZjBlMjBlZGRkYWI4NzNlMTlkNTMwNDZiMGQ1MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTc3Miw5ICs3NzIsNiBA
QCBtZWRpYS92aWRlby1wbGF5ZWQtcmVzZXQuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODU5NjkKIGh0dHAvdGVzdHMvbG9hZGluZy9wb3N0LWluLWlmcmFt
ZS13aXRoLWJhY2stbmF2aWdhdGlvbi5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFsdWF0
aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4dGVu
c2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sCiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRl
bnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQv
VGVzdEV4cGVjdGF0aW9ucwppbmRleCAxZTdhM2E1Y2Y5NjBkNDY1MjZlZmM5MDAyMWFkZTc0NTk4
ZDVkMzE5Li5lNzVkOWZhYjY1Y2U5NWE5NDZiMmU4MzQ4ZTAyNDc2NjNjODA4NGY4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTE4OTQsOSArMTg5NCw2IEBA
IGZhc3QvbGF5ZXJzL25vLWNsaXBwaW5nLW92ZXJmbG93LWhpZGRlbi1oYXJkd2FyZS1hY2NlbGVy
YXRpb24uaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC1uby1wb3J0Lmh0bWwKIHNlY3VyaXR5L2Js
b2NrLXRlc3QuaHRtbAogCi0jIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGlu
ay5odG1sCi0KICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwogIyBmYWlsaW5nIHRhYmxlcyB0ZXN0
cwogIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PSAjCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IGQ4NDQ0MWFhOWJlYzIwMmQxZGU3ZDY1ODI2ZTRkMmRkOTFiMmQ3
M2IuLjc3YjlkNmRlY2JiNDk2ZTJlMTcwNTkzNjQ0M2UzNWMyNDJjNDIxMTkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBAIC0xODI5LDkgKzE4MjksNiBAQCBp
bnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0bWwKICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1Njg5CiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0
LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBv
bGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBJbnNwZWN0b3Igb25seSBzdXBwb3J0cyBldmFs
dWF0aW9uIGluIGNvbnRlbnQgc2NyaXB0IHdvcmxkIHdpdGggdjgsIHNlZSBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU3MDkKIGluc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtZXZhbC1jb250ZW50LXNjcmlwdC5odG1sIAogaW5zcGVjdG9yL2V4dGVuc2lvbnMv
ZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAwY2YxZDE5OTQ0ZDMxZmJlMWE5YzViNGUwMTM5
OWEwMTQ3MDdiZjM5Li5kYzhlYmMyODVjNjAyNTMxYzM5NDM5YzM3YWJhNjg2MmRiODQ3ZmE5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzEzLDYgKzMx
Myw3IEBAIGh0dHAvdGVzdHMvY2FjaGUvaGlzdG9yeS1vbmx5LWNhY2hlZC1zdWJyZXNvdXJjZS1s
b2Fkcy1tYXgtYWdlLWh0dHBzLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LWh0dHBzLWFsd2F5cy5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGlj
eS1odHRwcy1vcmlnaW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3kt
cmVkaXJlY3QuaHRtbAoraHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJl
Y3QtbGluay5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1u
ZXZlci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1kZWZh
dWx0Lmh0bWwKIApAQCAtMzM0LDExICszMzUsNiBAQCBmYXN0L3NlbGVjdG9ycy9zZWxlY3Rpb24t
d2luZG93LWluYWN0aXZlLmh0bWwKICMgYXV0b1pvb21QYWdlVG9GaXRXaWR0aCgpLgogaW5zcGVj
dG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1sCiAKLSMgVGhlIG5ldHdvcmsgc3Rh
Y2sgdW5jb25kaXRpb25hbGx5IHN0cmlwcyB0aGUgaGVhZGVyIG9uIHRyYW5zaXRpb25zIGZyb20K
LSMgc2VjdXJlIHRvIGluc2VjdXJlLiBJdCBzaG91bGQgdGFrZSB0aGUgcmVmZXJyZXIgcG9saWN5
IGludG8gYWNjb3VudCBpbnN0ZWFkLgotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGly
ZWN0LWxpbmsuaHRtbAotCiAjIGNzczMtY29uZGl0aW9uYWxzIHN1cHBvcnQgaXMgbm90IHlldCBl
bmFibGVkLgogd2Via2l0Lm9yZy9iLzg2MTQ2IGNzczMvc3VwcG9ydHMuaHRtbAogd2Via2l0Lm9y
Zy9iLzEwNDgyMiBjc3MzL3N1cHBvcnRzLWNzc29tLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186421</attachid>
            <date>2013-02-04 11:25:34 -0800</date>
            <delta_ts>2013-02-06 01:56:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130204202213.patch</filename>
            <type>text/plain</type>
            <size>56938</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxNzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI3NDZjZThmZjk2NDM4
MjllM2ZiYTBhNDkyNTQ3NWNmOWNhNTg3OS4uNTZlM2MyZjllZDUxOGFjMzE0NTNkMTA0MmI5NmYz
ODM1M2U1ZmY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA0ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSByZWZlcnJl
ciBzaG91bGQgb25seSBiZSBjbGVhcmVkIHdoZW4gZG9pbmcgYSBodHRwcyAtPiBodHRwIHJlZGly
ZWN0LAorICAgICAgICBpZiB0aGUgcG9saWN5IGlzICJkZWZhdWx0Ii4gT3RoZXJ3aXNlIHRoZSBy
ZWZlcnJlciBzaG91bGQgYmUgbGVmdCBpbnRhY3QuCisKKyAgICAgICAgSW4gb3JkZXIgdG8gZG8g
dGhhdCwgYWRkZWQgYSBmdW5jdGlvbiBmb3IgY2hlY2tpbmcgdGhlIHBvbGljeSBpbgorICAgICAg
ICBOZXR3b3JraW5nQ29udGV4dCwgYW5kIHN0b3JlZCB0aGUgTmV0d29ya2luZ0NvbnRleHQgaW4g
UmVzb3VyY2VIYW5kbGUKKyAgICAgICAgKGxpa2Ugc29tZSBwb3J0cyBhbHJlYWR5IGRpZCkuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzICh1bnNraXBwZWQgb2xkIHRlc3RzKS4KKworICAgICAgICAq
IGxvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFt
ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KToKKyAgICAgICAgKEZyYW1lTmV0d29ya2luZ0NvbnRleHQpOgorICAgICAgICAqIHBsYXRm
b3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJs
b2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0Lmg6CisgICAgICAgIChOZXR3b3JraW5nQ29udGV4
dCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6Y29udGV4dCk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmg6CisgICAgICAgIChSZXNvdXJjZUhhbmRsZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUlu
dGVybmFsKToKKyAgICAgICAgKFJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6d2lsbFNlbmRSZXF1ZXN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFu
ZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291
cmNlU3luY2hyb25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9S
ZXNvdXJjZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVy
bmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToK
KyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0
YXJ0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxl
SW50ZXJuYWwuaDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZUludGVybmFsOjpjb250
ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAg
IChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAgICAgICAoLVtX
ZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0
OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0
d29ya1JlcGx5SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpRTmV0d29ya1JlcGx5SGFu
ZGxlcjo6cmVkaXJlY3QpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3Vz
bHkpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9SZXNvdXJjZUhhbmRsZVNvdXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZG9SZWRpcmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvd2luL1Jl
c291cmNlSGFuZGxlV2luLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpz
dGFydCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3lu
Y2hyb25vdXNseSk6CisKIDIwMTMtMDItMDQgIERtaXRyeSBHb3ptYW4gIDxkZ296bWFuQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBbGxvdyB1c2VyIHRvIGNoYW5nZSBk
b2NrIHNpZGUgYnkgZHJhZ2dpbmcgdG9vbGJhcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDg2ZmExMWExOWYwMTQ2
ZjdkNTdkZWU4MTc4MmUyN2M1ZWEwYTIxOWYuLjVhNDY4ZGM2MTYxMDFmOTAzODRiNmU2OTAyZmEx
MzgwNGY2MDY5NDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMy0wMi0wNCAgTWFy
amEgSMO2bHR0w6QgIDxtYXJqYUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgVGFrZSByZWZlcnJl
ciBwb2xpY3kgaW50byBhY2NvdW50IHdoZW4gY2xlYXJpbmcgdGhlIHJlZmVycmVyIGhlYWRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmVmZXJy
ZXIgc2hvdWxkIG9ubHkgYmUgY2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRp
cmVjdCwKKyAgICAgICAgaWYgdGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUg
cmVmZXJyZXIgc2hvdWxkIGJlIGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nl
c3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZGVyOjpzdGFydCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFi
bGVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1
bGFibGVMb2FkZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVy
Lmg6CisgICAgICAgIChXZWJLaXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6U3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAg
KFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMv
UmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdv
cmtpbmdDb250ZXh0OjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToK
KyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0OjpSZW1vdGVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsv
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2Rl
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29k
ZSk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRl
cnMuaDoKKyAgICAgICAgKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OnNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5o
OgorICAgICAgICAoV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6
CisKIDIwMTMtMDItMDQgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBp
bnRlbC5jb20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBXZWlyZCBzdHJpcGUgYXQgdGhlIGVuZCBv
ZiB0aGUgcGFnZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29y
a2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZU5ldHdvcmtpbmdDb250
ZXh0LmgKaW5kZXggN2YwODgwMWNiNWMzZTc0NDU5YWM4ZjhmNDk4ZGUzOWUzYzZhNmRiYS4uYzgw
NDRhNjAyZjhhM2NiOTFkNmZjODIxYzE3ODMxNTc0NTE0NmQ3NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4dC5oCkBAIC0yMCw4ICsyMCwxMCBAQAog
I2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gKICNkZWZpbmUgRnJhbWVOZXR3b3JraW5n
Q29udGV4dF9oCiAKKyNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKyNpbmNsdWRlICJSZWZlcnJlclBvbGljeS5o
IgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMyLDYgKzM0LDExIEBAIHB1YmxpYzoKICAg
ICAgICAgbV9mcmFtZSA9IDA7CiAgICAgfQogCisgICAgdmlydHVhbCBib29sIHNob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0
dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQb2xp
Y3lEZWZhdWx0OworICAgIH0KKwogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IEZyYW1lTmV0d29y
a2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQogICAgICAgICA6IG1fZnJhbWUoZnJhbWUpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRs
ZS5jcHAKaW5kZXggYzgyYjQ2YzYwODdmZjk2MTI1Nzk5OGE1NGFlZjVlZTZlNmFiY2QzNi4uZTgx
MzM0Y2I5ZjgzYjk5NTU4YjI0Nzg5Y2FhYzhhNTc2Y2JmY2I5YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxvYlJlc291cmNlSGFuZGxlLmNwcApAQCAt
NDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW0uaCIKICNpbmNsdWRlICJIVFRQUGFy
c2Vycy5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNsdWRlICJOZXR3b3JraW5nQ29udGV4dC5o
IgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhhbmRsZUNs
aWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVzdC5oIgpAQCAtMTQyLDcgKzE0MSw3IEBA
IHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KFBhc3NS
ZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBiCiB9CiAKIEJsb2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJl
c291cmNlSGFuZGxlKFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBibG9iRGF0YSwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50LCBi
b29sIGFzeW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgY2xpZW50LCBmYWxzZSwg
ZmFsc2UpCisgICAgOiBSZXNvdXJjZUhhbmRsZSgwLCByZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBm
YWxzZSkKICAgICAsIG1fYmxvYkRhdGEoYmxvYkRhdGEpCiAgICAgLCBtX2FzeW5jKGFzeW5jKQog
ICAgICwgbV9lcnJvckNvZGUoMCkKQEAgLTYzNiw0ICs2MzUsMyBAQCB2b2lkIEJsb2JSZXNvdXJj
ZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShCTE9CKQotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMTRjZDQyMDY5NWU4ZDVhM2FkMjViZTgxZjYx
MDQ1OWMzMTkzODc1Yi4uNjFhODRiNDk0MTgxNDI5ZGNmMmNiMGY2YTgzM2RmYWMzYmZlMTYyNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9OZXR3b3JraW5nQ29u
dGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0Nv
bnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNW
YWxpZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QgPSAwOworCiAjaWYgUExB
VEZPUk0oQ0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdyYXAgV2ViQ29va2llSmFyIGludG8gYSBO
ZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUgY29kZSBjcm9zcy1wbGF0Zm9ybS4KICAg
ICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBjb29raWVKYXIoKSBjb25zdCA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3Bw
CmluZGV4IDRiYzk0ZTc2NDU4YTQ5Y2FjZDA3YTZhNzcxMmEwZWJhYzZlMzdkM2EuLjEzZTBmYzM2
MGQyYmQ1MzM2NTAxYjY0N2Q0YjMwMTNiNGJmZjczOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCkBAIC01Myw4ICs1Myw4IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVpbHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0
b21pY1N0cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVpbHRpblJlc291cmNlSGFuZGxlQ29uc3Ry
dWN0b3JNYXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVjdG9yKTsKIH0KIAotUmVzb3VyY2VIYW5k
bGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENv
bnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwo
dGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYg
JiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCitSZXNvdXJjZUhhbmRs
ZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBk
ZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAgICA6IGQoYWRvcHRQdHIo
bmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgY29udGV4dCwgcmVxdWVzdCwgY2xpZW50
LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZm
VVJMKHJlcXVlc3QudXJsKCkpKSkpCiB7CiAgICAgaWYgKCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQo
KSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzQs
MTIgKzc0LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IFJlc291cmNlSGFuZGxlOjpj
cmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvCiAgICAgaWYgKHByb3RvY29sTWFw
SXRlbSAhPSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25zdHJ1Y3Rvck1hcCgpLmVuZCgpKQogICAg
ICAgICByZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1ZShyZXF1ZXN0LCBjbGllbnQpOwogCi0g
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5kbGUoYWRvcHRSZWYobmV3IFJlc291cmNl
SGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
KSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gbmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBS
ZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQsIGRlZmVyc0xvYWRpbmcsIHNo
b3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChuZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVk
RmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJlbGVh
c2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdI
YW5kbGUtPnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAg
ICAgcmV0dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3Vy
Y2VIYW5kbGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0dXJuIGQtPm1fZmlyc3RSZXF1ZXN0Owog
fQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VIYW5kbGU6OmNvbnRleHQoKSBjb25zdAor
eworICAgIHJldHVybiBkLT5tX2NvbnRleHQuZ2V0KCk7Cit9CisKIGNvbnN0IFN0cmluZyYgUmVz
b3VyY2VIYW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29uc3QKIHsKICAgICByZXR1cm4gZC0+bV9s
YXN0SFRUUE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VIYW5kbGUuaAppbmRleCBmYTMwNTg5NjRhNWMyYzI3YjY2NTUwYzZlMzRiY2Q4ZDg5M2Vj
OTRmLi4yMmU2NDgxYWU4OWNlMDQyZGI0N2VhZjg0N2RmZjQ5OTJhZWUyZWQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oCkBAIC0xOTks
NiArMTk5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBmaXJlRmFpbHVyZShUaW1lcjxSZXNvdXJj
ZUhhbmRsZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisK
ICAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFuZGxlPjo6cmVmOwogICAgIHVzaW5nIFJl
ZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsKIApAQCAtMjE0LDcgKzIxNiw3IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBB
dG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29uc3RydWN0b3IpOwogCiBwcm90ZWN0ZWQ6
Ci0gICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmKTsK
KyAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29udGV4dCosIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZik7CiAKIHByaXZhdGU6CiAgICAgZW51bSBGYWlsdXJlVHlwZSB7CkBA
IC0yMjcsNyArMjI5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZh
aWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0d29ya2luZ0NvbnRleHQqKTsKKyAgICBi
b29sIHN0YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRlcmVmQXV0aGVudGljYXRpb25DbGllbnQo
KSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggZTk2ZGM4NTFmMWNkNjRkMDRlODVm
NWFlYzc2ZmYxODk3NGZkNWUyNS4uNDhiNjI2ZTA0ZTc2MjI3YmU0MDEzNDc5YTNmZWNlOTg3MDI0
MDc1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJj
ZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDggKzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIGNsYXNzIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgewogICAgICAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShSZXNvdXJjZUhhbmRsZUludGVybmFsKTsgV1RGX01BS0VfRkFTVF9BTExP
Q0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNvdXJjZUhhbmRsZUludGVybmFsKFJlc291
cmNlSGFuZGxlKiBsb2FkZXIsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3Vy
Y2VIYW5kbGVDbGllbnQqIGMsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50
U25pZmYpCi0gICAgICAgICAgICA6IG1fY2xpZW50KGMpCisgICAgICAgIFJlc291cmNlSGFuZGxl
SW50ZXJuYWwoUmVzb3VyY2VIYW5kbGUqIGxvYWRlciwgTmV0d29ya2luZ0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQq
IGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKKyAg
ICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgICAgICAgICAsIG1fY2xpZW50KGNs
aWVudCkKICAgICAgICAgICAgICwgbV9maXJzdFJlcXVlc3QocmVxdWVzdCkKICAgICAgICAgICAg
ICwgbV9sYXN0SFRUUE1ldGhvZChyZXF1ZXN0Lmh0dHBNZXRob2QoKSkKICAgICAgICAgICAgICwg
c3RhdHVzKDApCkBAIC0xMzcsOCArMTM4LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpOwogCiAgICAgICAgIFJlc291cmNlSGFuZGxlQ2xp
ZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsgfQorCisgICAgICAgIFJlZlB0cjxOZXR3
b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCog
bV9jbGllbnQ7Ci0gICAgICAgIAogICAgICAgICBSZXNvdXJjZVJlcXVlc3QgbV9maXJzdFJlcXVl
c3Q7CiAgICAgICAgIFN0cmluZyBtX2xhc3RIVFRQTWV0aG9kOwogCkBAIC0yMDIsNyArMjA0LDYg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBjaGFyKiBtX2J1ZmZlcjsKICAgICAgICAg
dW5zaWduZWQgbG9uZyBtX2JvZHlTaXplOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keURh
dGFTZW50OwotICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICAg
ICAgICAgU291cFNlc3Npb24qIHNvdXBTZXNzaW9uKCk7CiAgICAgICAgIGludCBtX3JlZGlyZWN0
Q291bnQ7CiAjZW5kaWYKQEAgLTIxNCw3ICsyMTUsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAj
ZW5kaWYKICNpZiBQTEFURk9STShRVCkKICAgICAgICAgUU5ldHdvcmtSZXBseUhhbmRsZXIqIG1f
am9iOwotICAgICAgICBSZWZQdHI8TmV0d29ya2luZ0NvbnRleHQ+IG1fY29udGV4dDsKICNlbmRp
ZgogCiAjaWYgUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVCbGFj
a0JlcnJ5LmNwcAppbmRleCBhY2MyNzkyYWVkODE1OGM5NGVmYjQ5MWU3MzQ4MzVjNTlhNWE4OTIx
Li5hZDJjOGRjZDMxMjZlNTZjYWJhNzk5NzQ4NzBmZjIxYmI3YmE5ODkxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VIYW5kbGVC
bGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNr
YmVycnkvUmVzb3VyY2VIYW5kbGVCbGFja0JlcnJ5LmNwcApAQCAtMTA3LDkgKzEwNyw5IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnBsYXRmb3JtU2V0RGVmZXJzTG9hZGluZyhib29sIGRlZmVyc0xv
YWRpbmcpCiAgICAgTmV0d29ya01hbmFnZXI6Omluc3RhbmNlKCktPnNldERlZmVyc0xvYWRpbmco
dGhpcywgZGVmZXJzTG9hZGluZyk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQog
ewotICAgIGlmICghY29udGV4dCB8fCAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+
bV9jb250ZXh0IHx8ICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgLy8gRklYTUU6IGNsZWFuIHVwIHVzZSBvZiBGcmFtZSBub3cgdGhhdCB3ZSBo
YXZlIE5ldHdvcmtpbmdDb250ZXh0IChzZWUgUklNIEJ1ZyAjMTUxNSkKQEAgLTE1Niw3ICsxNTYs
NyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIGJvb2wgZGVmZXJzTG9hZGluZyA9IGZh
bHNlOwogICAgIGJvb2wgc2hvdWxkQ29udGVudFNuaWZmID0gZmFsc2U7CiAKLSAgICBSZWZQdHI8
UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1
ZXN0LCAmc3luY0xvYWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7Cisg
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VI
YW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIsIGRlZmVyc0xvYWRpbmcsIHNob3Vs
ZENvbnRlbnRTbmlmZikpOwogICAgIE5ldHdvcmtNYW5hZ2VyOjppbnN0YW5jZSgpLT5zdGFydEpv
YihwbGF5ZXJJZCwgaGFuZGxlLCBmcmFtZSwgZGVmZXJzTG9hZGluZyk7CiAKICAgICBjb25zdCBk
b3VibGUgc3luY0xvYWRUaW1lT3V0ID0gNjA7IC8vIHNlY29uZHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3Bw
CmluZGV4IDc2MTY3NWI0MjY3NWMzNGVmNWMxNDM4ZGZlYWFhNGM3NTY4YWM4OGIuLmIwMDk1YWE5
MDNjNWExNjJhNTM1MDYyMTNkM2UwN2U3YTI2YzlmNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcApA
QCAtMTg0LDcgKzE4NCw3IEBAIHN0YXRpYyBDRlVSTFJlcXVlc3RSZWYgd2lsbFNlbmRSZXF1ZXN0
KENGVVJMQ29ubmVjdGlvblJlZiBjb25uLCBDRlVSTFJlcXVlc3RSZWYKICAgICAgICAgcmVxdWVz
dCA9IGNmUmVxdWVzdDsKIAogICAgIC8vIFNob3VsZCBub3Qgc2V0IFJlZmVyZXIgYWZ0ZXIgYSBy
ZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5vbi1zZWN1cmUgb25lLgotICAgIGlm
ICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVz
dC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3Rv
Y29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0
cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hU
VFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAg
ICBoYW5kbGUtPndpbGxTZW5kUmVxdWVzdChyZXF1ZXN0LCBjZlJlZGlyZWN0UmVzcG9uc2UpOwpA
QCAtNDk2LDIxICs0OTYsMjEgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlQ0ZVUkxDb25u
ZWN0aW9uKGJvb2wgc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIGJvb2wKICAgICBkLT5tX2Nv
bm5lY3Rpb24uYWRvcHRDRihDRlVSTENvbm5lY3Rpb25DcmVhdGVXaXRoUHJvcGVydGllcygwLCBy
ZXF1ZXN0LmdldCgpLCByZWludGVycHJldF9jYXN0PENGVVJMQ29ubmVjdGlvbkNsaWVudCo+KCZj
bGllbnQpLCBjb25uZWN0aW9uUHJvcGVydGllcy5nZXQoKSkpOwogfQogCi1ib29sIFJlc291cmNl
SGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VI
YW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQpCisgICAgaWYgKCFkLT5tX2NvbnRl
eHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0
IGlzIGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAg
ICAvLyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFuZGxl
ciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkK
KyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5w
bGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gZC0+bV9jb250ZXh0
LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCiAgICAgYm9vbCBzaG91bGRV
c2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGllbnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3Jl
ZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxk
VXNlQ3JlZGVudGlhbFN0b3JhZ2UsIHNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShj
b250ZXh0LCBmaXJzdFJlcXVlc3QoKS51cmwoKSksIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmKTsK
KyAgICBjcmVhdGVDRlVSTENvbm5lY3Rpb24oc2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UsIHNo
b3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZVBvbGljeShkLT5tX2NvbnRleHQuZ2V0KCksIGZpcnN0
UmVxdWVzdCgpLnVybCgpKSwgZC0+bV9zaG91bGRDb250ZW50U25pZmYpOwogCiAjaWYgUExBVEZP
Uk0oV0lOKQogICAgIENGVVJMQ29ubmVjdGlvblNjaGVkdWxlV2l0aEN1cnJlbnRNZXNzYWdlUXVl
dWUoZC0+bV9jb25uZWN0aW9uLmdldCgpKTsKQEAgLTczOSw3ICs3MzksNyBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBj
b250ZXh0LCBjb25zdAogICAgIE93blB0cjxXZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ+
IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudDo6Y3JlYXRlKHJlc3BvbnNl
LCBlcnJvcik7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRlbnRpYWxzKHN0b3JlZENy
ZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0gICAgUmVmUHRyPFJlc291
cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwg
Y2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRl
bnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJl
ZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxz
ZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CiAKICAg
ICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigp
LnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC05MjQsNCArOTI0LDMgQEAgdm9pZCBSZXNvdXJjZUhh
bmRsZTo6aGFuZGxlRGF0YUFycmF5KENGQXJyYXlSZWYgZGF0YUFycmF5KQogI2VuZGlmCiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAppbmRleCBhYzE0OTIx
YTdjNDUwNmE1Y2VhMGIxNDg4ZDA1MmI2YzIxMjBiMzhmLi5iNTZkYzYzMzVmMjU1N2I2NWI0N2Vj
NjgwNTRhOTU4NjM3YTgyY2RmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlLmNwcApAQCAtNTIsOCArNTIs
OSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiAvLyBS
ZXNvdXJjZUhhbmRsZUludGVybmFsIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tCi1SZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRs
ZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVD
bGllbnQqIGNsaWVudCkKLSAgICA6IG1fcmVxdWVzdChyZXF1ZXN0KQorUmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbDo6UmVzb3VyY2VIYW5kbGVJbnRlcm5hbChOZXR3b3JraW5nQ29udGV4dCogY29udGV4
dCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCog
Y2xpZW50KQorICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisgICAgLCBtX3JlcXVlc3QocmVxdWVz
dCkKICAgICAsIG1fb3duZXIoMCkKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fc3Rh
dGUoQ29ubmVjdGlvblN0YXRlTmV3KQpAQCAtMTc4LDExICsxNzksOCBAQCBSZXNvdXJjZUhhbmRs
ZUludGVybmFsKiBSZXNvdXJjZUhhbmRsZUludGVybmFsOjpGcm9tUmVzb3VyY2VIYW5kbGUoUmVz
b3VyY2VIYW5kbAogCiAvLyBSZXNvdXJjZUhhbmRsZSAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAKLVJlc291cmNlSGFuZGxlOjpS
ZXNvdXJjZUhhbmRsZShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGRlZmVyc0xvYWRpbmcsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgOiBkKGFk
b3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKHJlcXVlc3QsIGNsaWVudCkpKQorUmVz
b3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBj
b25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGll
bnQsIGJvb2wgZGVmZXJzTG9hZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCisgICAgOiBk
KGFkb3B0UHRyKG5ldyBSZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnRleHQsIHJlcXVlc3QsIGNs
aWVudCkpKQogewogICAgIGQtPnNldE93bmVyKHRoaXMpOwogCkBAIC0xOTYsOSArMTk0LDkgQEAg
UGFzc1JlZlB0cjxSZXNvdXJjZUhhbmRsZT4gUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZShOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCiB7CiAgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBuZXdIYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoCi0g
ICAgICAgIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZm
KSk7CisgICAgICAgIGNvbnRleHQsIHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9hZGluZywgc2hv
dWxkQ29udGVudFNuaWZmKSk7CiAKLSAgICBpZiAobmV3SGFuZGxlLT5zdGFydChjb250ZXh0KSkK
KyAgICBpZiAobmV3SGFuZGxlLT5zdGFydCgpKQogICAgICAgICByZXR1cm4gbmV3SGFuZGxlLnJl
bGVhc2UoKTsKIAogICAgIHJldHVybiAwOwpAQCAtMjA5LDYgKzIwNywxMSBAQCBSZXNvdXJjZVJl
cXVlc3QmIFJlc291cmNlSGFuZGxlOjpmaXJzdFJlcXVlc3QoKQogICAgIHJldHVybiBkLT5yZXF1
ZXN0KCk7CiB9CiAKK05ldHdvcmtpbmdDb250ZXh0KiBSZXNvdXJjZUhhbmRsZTo6Y29udGV4dCgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIGQtPmNvbnRleHQoKTsKK30KKwogUmVzb3VyY2VIYW5kbGVD
bGllbnQqIFJlc291cmNlSGFuZGxlOjpjbGllbnQoKSBjb25zdAogewogICAgIHJldHVybiBkLT5j
bGllbnQoKTsKQEAgLTIyNCw5ICsyMjcsOSBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXREZWZl
cnNMb2FkaW5nKGJvb2wgdmFsdWUpCiAgICAgZC0+c2V0RGVmZXJzTG9hZGluZyh2YWx1ZSk7CiB9
CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0
KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewotICAgIGlmICghY29udGV4dCkKKyAg
ICBpZiAoIWQtPmNvbnRleHQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZC0+c3Rh
cnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21p
dW0vUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5kZXggZDM4ZDkzZWY4ZTI5
NzAyZWM2NmNkODEwZTI3M2NmYmVmNTk2NjJjMy4uNmE5MTU1MTZiMTVkZmYxMThmMmUwYzQ1M2Rk
MzljZGM3YjBhNTQyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTM5
LDEyICszOSwxMyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIE5ldHdvcmtpbmdD
b250ZXh0OwogY2xhc3MgUmVzb3VyY2VIYW5kbGU7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZUNsaWVu
dDsKIAogY2xhc3MgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCA6IHB1YmxpYyBXZWJLaXQ6OldlYlVS
TExvYWRlckNsaWVudCB7CiBwdWJsaWM6Ci0gICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChjb25z
dCBSZXNvdXJjZVJlcXVlc3QmLCBSZXNvdXJjZUhhbmRsZUNsaWVudCopOworICAgIFJlc291cmNl
SGFuZGxlSW50ZXJuYWwoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3Qm
LCBSZXNvdXJjZUhhbmRsZUNsaWVudCopOwogCiAgICAgdmlydHVhbCB+UmVzb3VyY2VIYW5kbGVJ
bnRlcm5hbCgpIHsgfQogCkBAIC04MCwxMCArODEsMTIgQEAgcHVibGljOgogICAgIFJlc291cmNl
SGFuZGxlQ2xpZW50KiBjbGllbnQoKSBjb25zdCB7IHJldHVybiBtX2NsaWVudDsgfQogICAgIHZv
aWQgc2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBj
bGllbnQ7IH0KICAgICBXZWJLaXQ6OldlYlVSTExvYWRlciogbG9hZGVyKCkgY29uc3QgeyByZXR1
cm4gbV9sb2FkZXIuZ2V0KCk7IH0KKyAgICBOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCgpIGNv
bnN0IHsgcmV0dXJuIG1fY29udGV4dC5nZXQoKTsgfQogCiAgICAgc3RhdGljIFJlc291cmNlSGFu
ZGxlSW50ZXJuYWwqIEZyb21SZXNvdXJjZUhhbmRsZShSZXNvdXJjZUhhbmRsZSopOwogCiBwcml2
YXRlOgorICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgIFJlc291
cmNlUmVxdWVzdCBtX3JlcXVlc3Q7CiAgICAgUmVzb3VyY2VIYW5kbGUqIG1fb3duZXI7CiAgICAg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIG1fY2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL1Jlc291cmNlSGFuZGxlQ3VybC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAppbmRl
eCAxZDQyYTViMDRjM2E1MTMxZmFiMTQyMjlkZDJkMTFjZjYzMTM4YjkxLi45YzM1NzY2N2Y4Yjdj
MzljODNmMDFlY2UyMDYzMWQ0Y2QzMzAwY2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3VyY2VIYW5kbGVDdXJsLmNwcApAQCAt
OTYsMTQgKzk2LDE0IEBAIFJlc291cmNlSGFuZGxlOjp+UmVzb3VyY2VIYW5kbGUoKQogICAgIGNh
bmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4
dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICAvLyBUaGUg
ZnJhbWUgY291bGQgYmUgbnVsbCBpZiB0aGUgUmVzb3VyY2VIYW5kbGUgaXMgbm90IGFzc29jaWF0
ZWQgdG8gYW55CiAgICAgLy8gRnJhbWUsIGUuZy4gaWYgd2UgYXJlIGRvd25sb2FkaW5nIGEgZmls
ZS4KICAgICAvLyBJZiB0aGUgZnJhbWUgaXMgbm90IG51bGwgYnV0IHRoZSBwYWdlIGlzIG51bGwg
dGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZAogICAgIC8vIGxvYWQgZnJvbSBhbiB1bmxvYWQgaGFu
ZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KICAgICAvLyBJZiBib3RoIHRoZSBmcmFtZSBh
bmQgdGhlIHBhZ2UgYXJlIG5vdCBudWxsIHRoZSBjb250ZXh0IGlzIHZhbGlkLgotICAgIGlmIChj
b250ZXh0ICYmICFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKGQtPm1fY29udGV4dCAmJiAh
ZC0+bV9jb250ZXh0LT5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJl
c291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKS0+YWRkKHRoaXMpOwpAQCAtMTc1
LDcgKzE3NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OmxvYWRzQmxvY2tlZCgpCiB2b2lkIFJl
c291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0
KiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBTdG9yZWRDcmVkZW50aWFscyBzdG9y
ZWRDcmVkZW50aWFscywgUmVzb3VyY2VFcnJvciYgZXJyb3IsIFJlc291cmNlUmVzcG9uc2UmIHJl
c3BvbnNlLCBWZWN0b3I8Y2hhcj4mIGRhdGEpCiB7CiAgICAgV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyIHN5bmNMb2FkZXI7Ci0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9w
dFJlZihuZXcgUmVzb3VyY2VIYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNl
KSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVz
b3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7
CiAKICAgICBSZXNvdXJjZUhhbmRsZU1hbmFnZXIqIG1hbmFnZXIgPSBSZXNvdXJjZUhhbmRsZU1h
bmFnZXI6OnNoYXJlZEluc3RhbmNlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KaW5kZXggYzBiOGQzYWI3
OGRkMTY0MTlhYTA5ZjUzZDJjODhkNjdiYzAzMTRjMi4uNjcyMzUzNGQwMjBkZTM1ZGRkNDllNDc1
MDFmZmUyYTI5YTY5ZjA2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0KQEAgLTIxOCwxOSArMjE4LDE5IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmNyZWF0ZU5TVVJMQ29ubmVjdGlvbihpZCBkZWxlZ2F0ZSwg
Ym9vbCBzaG91bGRVc2VDcmVkZW50aWFsCiAKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+bV9jb250ZXh0KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBCRUdJTl9CTE9DS19PQkpDX0VYQ0VQVElPTlM7CiAKICAg
ICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxvbmdl
ciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRlZCBs
b2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sgaXQu
Ci0gICAgaWYgKCFjb250ZXh0LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQtPmlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZC0+bV9zdG9yYWdlU2Vzc2lv
biA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CisgICAgZC0+
bV9zdG9yYWdlU2Vzc2lvbiA9IGQtPm1fY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5wbGF0Zm9y
bVNlc3Npb24oKTsKIAogICAgIEFTU0VSVCghZC0+bV9wcm94eSk7CiAgICAgZC0+bV9wcm94eS5h
ZG9wdE5TKHdrQ3JlYXRlTlNVUkxDb25uZWN0aW9uRGVsZWdhdGVQcm94eSgpKTsKQEAgLTIzOCwx
NiArMjM4LDE2IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQogCiAgICAgYm9vbCBzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSA9ICFjbGll
bnQoKSB8fCBjbGllbnQoKS0+c2hvdWxkVXNlQ3JlZGVudGlhbFN0b3JhZ2UodGhpcyk7CiAKLSAg
ICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gY29udGV4dC0+bmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MoKTsKKyAgICBkLT5tX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzID0gZC0+bV9jb250
ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOwogCiAgICAgY3JlYXRlTlNVUkxDb25uZWN0
aW9uKAogICAgICAgICBkLT5tX3Byb3h5LmdldCgpLAogICAgICAgICBzaG91bGRVc2VDcmVkZW50
aWFsU3RvcmFnZSwKLSAgICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNv
bnRleHQsIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwKLSAgICAgICAgZC0+bV9zaG91bGRDb250ZW50
U25pZmYgfHwgY29udGV4dC0+bG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKKyAg
ICAgICAgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGQtPm1fY29udGV4dC5nZXQo
KSwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLAorICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlm
ZiB8fCBkLT5tX2NvbnRleHQtPmxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQoKSk7CiAK
ICAgICBib29sIHNjaGVkdWxlZCA9IGZhbHNlOwotICAgIGlmIChTY2hlZHVsZVBhaXJIYXNoU2V0
KiBzY2hlZHVsZWRQYWlycyA9IGNvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7Cisg
ICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gZC0+bV9jb250ZXh0
LT5zY2hlZHVsZWRSdW5Mb29wUGFpcnMoKSkgewogICAgICAgICBTY2hlZHVsZVBhaXJIYXNoU2V0
OjppdGVyYXRvciBlbmQgPSBzY2hlZHVsZWRQYWlycy0+ZW5kKCk7CiAgICAgICAgIGZvciAoU2No
ZWR1bGVQYWlySGFzaFNldDo6aXRlcmF0b3IgaXQgPSBzY2hlZHVsZWRQYWlycy0+YmVnaW4oKTsg
aXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgICAgICBpZiAoTlNSdW5Mb29wICpydW5Mb29wID0g
KCppdCktPm5zUnVuTG9vcCgpKSB7CkBAIC0yNTcsNyArMjU3LDcgQEAgYm9vbCBSZXNvdXJjZUhh
bmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBpZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBjb250ZXh0LT5z
Y2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7CisgICAgaWYgKE5TT3BlcmF0aW9uUXVldWUgKm9w
ZXJhdGlvblF1ZXVlID0gZC0+bV9jb250ZXh0LT5zY2hlZHVsZWRPcGVyYXRpb25RdWV1ZSgpKSB7
CiAgICAgICAgIEFTU0VSVCghc2NoZWR1bGVkKTsKICAgICAgICAgW2Nvbm5lY3Rpb24oKSBzZXRE
ZWxlZ2F0ZVF1ZXVlOm9wZXJhdGlvblF1ZXVlXTsKICAgICAgICAgc2NoZWR1bGVkID0gdHJ1ZTsK
QEAgLTM4MSw3ICszODEsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5j
aHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIE93blB0cjxX
ZWJDb3JlU3luY2hyb25vdXNMb2FkZXJDbGllbnQ+IGNsaWVudCA9IFdlYkNvcmVTeW5jaHJvbm91
c0xvYWRlckNsaWVudDo6Y3JlYXRlKCk7CiAgICAgY2xpZW50LT5zZXRBbGxvd1N0b3JlZENyZWRl
bnRpYWxzKHN0b3JlZENyZWRlbnRpYWxzID09IEFsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogCi0g
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VI
YW5kbGUocmVxdWVzdCwgY2xpZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1
ZSAvKnNob3VsZENvbnRlbnRTbmlmZiovKSk7CisgICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBo
YW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4dCwgcmVxdWVzdCwgY2xp
ZW50LmdldCgpLCBmYWxzZSAvKmRlZmVyc0xvYWRpbmcqLywgdHJ1ZSAvKnNob3VsZENvbnRlbnRT
bmlmZiovKSk7CiAKICAgICBoYW5kbGUtPmQtPm1fc3RvcmFnZVNlc3Npb24gPSBjb250ZXh0LT5z
dG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCkBAIC02NjgsNyArNjY4LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsYXRpb24oY29uc3QgQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2UmIGNoYWxsZW4KICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCA9IG5l
d1JlcXVlc3Q7CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJl
Y3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIXJl
cXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJlcXVlc3QuaHR0
cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElz
KCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikg
JiYgbV9oYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVycmVyKCk7CiAKICAgICBt
X2hhbmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9RTmV0d29ya1JlcGx5
SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcAppbmRleCAwYjY0Yjc5YmE0NDllYTQ3ODJhYzcwZmU5MzAwZWQxMmIz
NGJjYjA4Li4xY2E1NDNlNDQyZjRlZWJjMzQ1ZTg3MTA0NTQwZGQ0MzdiN2MxYWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1FOZXR3b3Jr
UmVwbHlIYW5kbGVyLmNwcApAQCAtNjQ3LDcgKzY0Nyw3IEBAIHZvaWQgUU5ldHdvcmtSZXBseUhh
bmRsZXI6OnJlZGlyZWN0KFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlLCBjb25zdCBRVXJsJiBy
ZWRpCiAgICAgbmV3UmVxdWVzdC5zZXRVUkwobmV3VXJsKTsKIAogICAgIC8vIFNob3VsZCBub3Qg
c2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5v
bi1zZWN1cmUgb25lLgotICAgIGlmICghbmV3UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRw
cyIpICYmIHByb3RvY29sSXMobmV3UmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisg
ICAgaWYgKCFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJ
cyhuZXdSZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBtX3Jlc291cmNlSGFuZGxl
LT5jb250ZXh0KCktPnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSkK
ICAgICAgICAgbmV3UmVxdWVzdC5jbGVhckhUVFBSZWZlcnJlcigpOwogCiAgICAgY2xpZW50LT53
aWxsU2VuZFJlcXVlc3QobV9yZXNvdXJjZUhhbmRsZSwgbmV3UmVxdWVzdCwgcmVzcG9uc2UpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhh
bmRsZVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvcXQvUmVzb3VyY2VI
YW5kbGVRdC5jcHAKaW5kZXggMTM3NTFlYjY1ZDdmMzNmYzk3YmMyMzRhNjgyNjYxNzhiNDJhYjYx
YS4uNjJjMGZjMWUwMWQ3ZWRlMTJlYmQ2ZmIwZWRlYzdhZjI2YjgyZTEwYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQu
Y3BwCkBAIC05MCwxMSArOTAsMTEgQEAgUmVzb3VyY2VIYW5kbGU6On5SZXNvdXJjZUhhbmRsZSgp
CiAgICAgICAgIGNhbmNlbCgpOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3
b3JraW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsK
ICAgICAvLyBJZiBOZXR3b3JraW5nQ29udGV4dCBpcyBpbnZhbGlkIHRoZW4gd2UgYXJlIG5vIGxv
bmdlciBhdHRhY2hlZCB0byBhIFBhZ2UsCiAgICAgLy8gdGhpcyBtdXN0IGJlIGFuIGF0dGVtcHRl
ZCBsb2FkIGZyb20gYW4gdW5sb2FkIGV2ZW50IGhhbmRsZXIsIHNvIGxldCdzIGp1c3QgYmxvY2sg
aXQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAgICBpZiAoZC0+
bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCiAgICAgaWYgKCFkLT5tX3VzZXIuaXNFbXB0eSgpIHx8ICFkLT5tX3Bhc3MuaXNFbXB0
eSgpKSB7CkBAIC0xMDYsNyArMTA2LDYgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVS
TCh1cmxXaXRoQ3JlZGVudGlhbHMpOwogICAgIH0KIAotICAgIGdldEludGVybmFsKCktPm1fY29u
dGV4dCA9IGNvbnRleHQ7CiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCAqZCA9IGdldEludGVy
bmFsKCk7CiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIodGhpcywgUU5l
dHdvcmtSZXBseUhhbmRsZXI6OkFzeW5jaHJvbm91c0xvYWQsIGQtPm1fZGVmZXJzTG9hZGluZyk7
CiAgICAgcmV0dXJuIHRydWU7CkBAIC0xMzQsNyArMTMzLDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCwg
Y29uc3QKICAgICB9CiAjZW5kaWYKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xv
YWRlcihlcnJvciwgcmVzcG9uc2UsIGRhdGEpOwotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
aGFuZGxlID0gYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVy
LCB0cnVlLCBmYWxzZSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRv
cHRSZWYobmV3IFJlc291cmNlSGFuZGxlKGNvbnRleHQsIHJlcXVlc3QsICZzeW5jTG9hZGVyLCB0
cnVlLCBmYWxzZSkpOwogCiAgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogZCA9IGhhbmRsZS0+
Z2V0SW50ZXJuYWwoKTsKICAgICBpZiAoIWQtPm1fdXNlci5pc0VtcHR5KCkgfHwgIWQtPm1fcGFz
cy5pc0VtcHR5KCkpIHsKQEAgLTE0NSw3ICsxNDQsNiBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjps
b2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25z
dAogICAgICAgICB1cmxXaXRoQ3JlZGVudGlhbHMuc2V0UGFzcyhkLT5tX3Bhc3MpOwogICAgICAg
ICBkLT5tX2ZpcnN0UmVxdWVzdC5zZXRVUkwodXJsV2l0aENyZWRlbnRpYWxzKTsKICAgICB9Ci0g
ICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKIAogICAgIC8vIHN0YXJ0aW5nIGluIGRlZmVycmVk
IG1vZGUgZ2l2ZXMgZC0+bV9qb2IgdGhlIGNoYW5jZSBvZiBiZWluZyBzZXQgYmVmb3JlIHNlbmRp
bmcgdGhlIHJlcXVlc3QuCiAgICAgZC0+bV9qb2IgPSBuZXcgUU5ldHdvcmtSZXBseUhhbmRsZXIo
aGFuZGxlLmdldCgpLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6U3luY2hyb25vdXNMb2FkLCB0cnVl
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9SZXNv
dXJjZUhhbmRsZVNvdXAuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKaW5kZXggNDYwNDEyZWVjYTVhZjUxMzk5MTg5OTRiODlk
NTc5YTYxYTVlM2JmNi4uM2NjNjU3YTUxNmVmZjIxMTRhNDE1OWQyZTg4NzY3OTIxYTRjMzJkNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNl
SGFuZGxlU291cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3Vw
L1Jlc291cmNlSGFuZGxlU291cC5jcHAKQEAgLTQ2OCw3ICs0NjgsNyBAQCBzdGF0aWMgdm9pZCBk
b1JlZGlyZWN0KFJlc291cmNlSGFuZGxlKiBoYW5kbGUpCiAgICAgfQogCiAgICAgLy8gU2hvdWxk
IG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2Ug
dG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMiKSAm
JiBwcm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpKQorICAgIGlmICgh
bmV3VVJMLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZl
cnJlcigpLCAiaHR0cHMiKSAmJiBoYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICByZXF1ZXN0LmNsZWFySFRUUFJlZmVy
cmVyKCk7CiAKICAgICBkLT5tX3VzZXIgPSBuZXdVUkwudXNlcigpOwpAQCAtMTAxOSw3ICsxMDE5
LDcgQEAgc3RhdGljIGJvb2wgY3JlYXRlU291cFJlcXVlc3RBbmRNZXNzYWdlRm9ySGFuZGxlKFJl
c291cmNlSGFuZGxlKiBoYW5kbGUsIGNvbnN0IFIKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7CiAgICAgQVNTRVJUKCFkLT5tX3NvdXBNZXNzYWdl
KTsKIApAQCAtMTAyOCwxMiArMTAyOCw5IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3QgbnVs
bCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAgLy8g
bG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgogICAg
IC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNvbnRl
eHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkKKyAg
ICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgLy8gVXNlZCB0byBzZXQgdGhlIGtlZXAgdHJhY2sgb2YgY3Vz
dG9tIFNvdXBTZXNzaW9ucyBmb3IgcG9ydHMgdGhhdCBzdXBwb3J0IGl0IChFRkwpLgotICAgIGQt
Pm1fY29udGV4dCA9IGNvbnRleHQ7Ci0KICAgICAvLyBPbmx5IGFsbG93IHRoZSBQT1NUIGFuZCBH
RVQgbWV0aG9kcyBmb3Igbm9uLUhUVFAgcmVxdWVzdHMuCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1
ZXN0JiByZXF1ZXN0ID0gZmlyc3RSZXF1ZXN0KCk7CiAgICAgYm9vbCBpc0hUVFBGYW1pbHlSZXF1
ZXN0ID0gcmVxdWVzdC51cmwoKS5wcm90b2NvbElzSW5IVFRQRmFtaWx5KCk7CkBAIC0xMDQ5LDcg
KzEwNDYsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgc2V0U291cFJlcXVl
c3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291cFJlcXVlc3Qu
Z2V0KCksIGNvbnRleHQpOworICAgIHNldFNvdXBSZXF1ZXN0SW5pdGlhdGluZ1BhZ2VJREZyb21O
ZXR3b3JraW5nQ29udGV4dChkLT5tX3NvdXBSZXF1ZXN0LmdldCgpLCBkLT5tX2NvbnRleHQuZ2V0
KCkpOwogCiAgICAgLy8gU2VuZCB0aGUgcmVxdWVzdCBvbmx5IGlmIGl0J3Mgbm90IGJlZW4gZXhw
bGljaXRseSBkZWZlcnJlZC4KICAgICBpZiAoIWQtPm1fZGVmZXJzTG9hZGluZykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxlV2lu
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2luL1Jlc291cmNlSGFuZGxl
V2luLmNwcAppbmRleCA4YTFkMTk5YWUxNGVlYzlhMzhhNjNkODZlMDQwOTU4NDk3ZDI3OTNkLi41
OTBlYjMxMjNlMGE5ZDVlZGM0MTI1MzQ1MTZkMWQxNTc3NjZiYjhjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4u
Y3BwCkBAIC0yNjUsNyArMjY1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6b25SZXF1ZXN0Q29t
cGxldGUoKQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3Rh
cnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFy
dCgpCiB7CiAgICAgaWYgKGZpcnN0UmVxdWVzdCgpLnVybCgpLmlzTG9jYWxGaWxlKCkgfHwgZmly
c3RSZXF1ZXN0KCkudXJsKCkucHJvdG9jb2xJc0RhdGEoKSkgewogICAgICAgICByZWYoKTsgLy8g
YmFsYW5jZWQgYnkgZGVyZWYgaW4gZmlsZUxvYWRUaW1lcgpAQCAtMjc3LDcgKzI3Nyw3IEBAIGJv
b2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAg
IH0KIAogICAgIGlmICghZC0+bV9pbnRlcm5ldEhhbmRsZSkKLSAgICAgICAgZC0+bV9pbnRlcm5l
dEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKGNvbnRleHQtPnVzZXJBZ2VudCgp
KTsKKyAgICAgICAgZC0+bV9pbnRlcm5ldEhhbmRsZSA9IGFzeW5jaHJvbm91c0ludGVybmV0SGFu
ZGxlKGQtPm1fY29udGV4dC0+dXNlckFnZW50KCkpOwogCiAgICAgaWYgKCFkLT5tX2ludGVybmV0
SGFuZGxlKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC00MTksMTAgKzQxOSwxMCBAQCB2b2lk
IFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIFVOVVNFRF9QQVJBTShzdG9yZWRDcmVkZW50aWFscyk7
CiAKICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcihlcnJvciwgcmVzcG9u
c2UsIGRhdGEsIHJlcXVlc3QuaHR0cFVzZXJBZ2VudCgpKTsKLSAgICBSZXNvdXJjZUhhbmRsZSBo
YW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKTsKKyAgICBSZXNvdXJjZUhh
bmRsZSBoYW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlLCBjb250ZXh0KTsK
IAogICAgIGhhbmRsZS5zZXRTeW5jaHJvbm91c0ludGVybmV0SGFuZGxlKHN5bmNMb2FkZXIuaW50
ZXJuZXRIYW5kbGUoKSk7Ci0gICAgaGFuZGxlLnN0YXJ0KGNvbnRleHQpOworICAgIGhhbmRsZS5z
dGFydCgpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpzZXRTeW5jaHJvbm91c0ludGVybmV0
SGFuZGxlKEhJTlRFUk5FVCBpbnRlcm5ldEhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCmluZGV4IDJjYmQ5
ODkyMTE3OWU2Njc5YmU5NDg5N2QyNjRjZGMyOGU0ODNiMTMuLjdmNGJiZGQ4MzQ2N2RjOWU2MDM4
ZWNjZDQ2MmQ4ZTUxODgyZGMxOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNzgsNyArNzgsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogICAgIHJlZigpOwogICAgIAogICAg
IC8vIEZJWE1FIChOZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4
dCB3aXRoIGFjdHVhbCBzZXR0aW5ncy4KLSAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3Rl
TmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5n
TW9kZSgpKTsKKyAgICBtX25ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRl
eHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpOwogCiAgICAgY29uc3VtZVNhbmRi
b3hFeHRlbnNpb25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9j
ZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L1NjaGVkdWxhYmxlTG9hZGVyLmNwcAppbmRleCBlNzA4YjA5ZGQ3NmZlNjAyMmEwNmY1Mjg4MDE1
OGNmYmI4Zjc2ZDhkLi5iNmNlMzU2MmE4NzM4ZTJjZmM0MGExZjlmM2E0Mjk2ZjViOTRhZWJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2Fk
ZXIuY3BwCkBAIC00MCw2ICs0MCw3IEBAIFNjaGVkdWxhYmxlTG9hZGVyOjpTY2hlZHVsYWJsZUxv
YWRlcihjb25zdCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcGFyYW1lCiAgICAgLCBt
X2FsbG93U3RvcmVkQ3JlZGVudGlhbHMocGFyYW1ldGVycy5hbGxvd1N0b3JlZENyZWRlbnRpYWxz
KCkpCiAgICAgLCBtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZShwYXJhbWV0ZXJzLmluUHJpdmF0ZUJy
b3dzaW5nTW9kZSgpKQogICAgICwgbV9jb25uZWN0aW9uKGNvbm5lY3Rpb24pCisgICAgLCBtX3No
b3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QocGFyYW1ldGVycy5zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpCiB7CiAgICAgZm9yIChzaXplX3Qg
aSA9IDAsIGNvdW50ID0gcGFyYW1ldGVycy5yZXF1ZXN0Qm9keVNhbmRib3hFeHRlbnNpb25zKCku
c2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBpZiAoUmVmUHRyPFNhbmRib3hFeHRl
bnNpb24+IGV4dGVuc2lvbiA9IFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZShwYXJhbWV0ZXJzLnJl
cXVlc3RCb2R5U2FuZGJveEV4dGVuc2lvbnMoKVtpXSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5oIGIvU291cmNlL1dlYktpdDIv
TmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaAppbmRleCBiMDhlODFiMmNiNjYyMTQ4
Y2RmOTUzYmFjNGM4M2I3MTQ3NTdiOWMzLi5hNjFhNmZmNTg5ZjUxNjBmZWQyMjBiZmIyOTYwYjA0
NWRjMDZhMDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hl
ZHVsYWJsZUxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVk
dWxhYmxlTG9hZGVyLmgKQEAgLTY1LDYgKzY1LDggQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgY29u
c3VtZVNhbmRib3hFeHRlbnNpb25zKCk7CiAgICAgdm9pZCBpbnZhbGlkYXRlU2FuZGJveEV4dGVu
c2lvbnMoKTsKIAorICAgIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdDsgfQorCiBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZElkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOwogICAgIHVpbnQ2NF90IG1fd2ViUGFnZUlEOwpAQCAtODEsNiArODMsOCBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzcz4gbV9jb25uZWN0
aW9uOwogICAgIAogICAgIFJlZlB0cjxIb3N0UmVjb3JkPiBtX2hvc3RSZWNvcmQ7CisKKyAgICBi
b29sIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvU3luY05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAppbmRleCBjMTgxMjk1MWFm
NDkwZDgzZGU1ZTYyMzU0NWU4ZTQ2MjVkYTNhOGIwLi4xZjgyZDE0OWMyZWJkMDBmMDA1ZGUzYTk2
YTNlNGY5ZTEwMWE1YWZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcApAQCAtNTksNyArNTksNyBA
QCB2b2lkIFN5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0KCkKICAgICBWZWN0b3I8Y2hh
cj4gZGF0YTsKICAgICAKICAgICAvLyBGSVhNRSAoTmV0d29ya1Byb2Nlc3MpOiBDcmVhdGUgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQgd2l0aCBhY3R1YWwgc2V0dGluZ3MuCi0gICAgUmVmUHRyPFJl
bW90ZU5ldHdvcmtpbmdDb250ZXh0PiBuZXR3b3JraW5nQ29udGV4dCA9IFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVCcm93c2luZ01vZGUoKSk7
CisgICAgUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0PiBuZXR3b3JraW5nQ29udGV4dCA9
IFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpjcmVhdGUoZmFsc2UsIGZhbHNlLCBpblByaXZhdGVC
cm93c2luZ01vZGUoKSwgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgp
KTsKIAogICAgIGNvbnN1bWVTYW5kYm94RXh0ZW5zaW9ucygpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQuaCBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oCmluZGV4IDVjNWYxNjNiM2U2ZTA4MGRlMzg1MDBlOTNkM2Y3OTY1N2M1OTlmNjYuLjI5NjBk
MDQ2ODFjODRjMGM5NjEzOTFjNGIyOTcwZGRlZThhZGIzZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5oCkBAIC0zMiw5ICszMiw5IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVO
ZXR3b3JraW5nQ29udGV4dCA6IHB1YmxpYyBXZWJDb3JlOjpOZXR3b3JraW5nQ29udGV4dCB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IGNy
ZWF0ZShib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRT
bmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICBzdGF0aWMg
UGFzc1JlZlB0cjxSZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9v
bCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QpCiAgICAgewotICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFJlbW90
ZU5ldHdvcmtpbmdDb250ZXh0KG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBsb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkLCBwcml2YXRlQnJvd3NpbmdFbmFibGVkKSk7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQobmVlZHNTaXRlU3BlY2lm
aWNRdWlya3MsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIHByaXZhdGVCcm93c2lu
Z0VuYWJsZWQsIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKTsKICAg
ICB9CiAgICAgdmlydHVhbCB+UmVtb3RlTmV0d29ya2luZ0NvbnRleHQoKTsKIApAQCAtNDQsOCAr
NDQsMTAgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFdlYkNvcmU6Ok5ldHdvcmtTdG9yYWdlU2Vz
c2lvbiYgcHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpOyAvLyBDYW4gb25seSBiZSBjYWxsZWQgd2hl
biB0aGUgc2Vzc2lvbiBleGlzdHMuCiAKKyAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IE9WRVJSSURFOworCiBwcml2YXRlOgot
ICAgIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Ms
IGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkKTsKKyAgICBSZW1vdGVOZXR3b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wg
cHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9vbCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdmlydHVhbCBib29sIGlzVmFsaWQoKSBjb25zdCBPVkVS
UklERTsKIApAQCAtNTgsNiArNjAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc1NpdGVT
cGVjaWZpY1F1aXJrczsKICAgICBib29sIG1fbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxl
ZDsKICAgICBib29sIG1fcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZDsKKyAgICBib29sIG1fc2hvdWxk
Q2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4
dC5tbSBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9SZW1vdGVOZXR3b3JraW5n
Q29udGV4dC5tbQppbmRleCBkZTdlMGZjNGZkZWRkMzdlODgxMjc4ODY5ZGQ1ZDBmODkzMWU2Y2Qy
Li43ODE5NTMzYTUyOWI1NmFmNDBhMGNiOWVjNmFlMWM5Yzc5MWNhMmViIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtp
bmdDb250ZXh0Lm1tCkBAIC00MiwxMCArNDIsMTYgQEAgc3RhdGljIE93blB0cjxOZXR3b3JrU3Rv
cmFnZVNlc3Npb24+JiBwcml2YXRlQnJvd3NpbmdTdG9yYWdlU2Vzc2lvbigpCiAgICAgcmV0dXJu
IHNlc3Npb247CiB9CiAKLVJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3JraW5n
Q29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmlsZUNvbnRl
bnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKK2Jvb2wgUmVt
b3RlTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QoKSBjb25zdAoreworICAgIHJldHVybiBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBT
VG9IVFRQUmVkaXJlY3Q7Cit9CisKK1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3
b3JraW5nQ29udGV4dChib29sIG5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzLCBib29sIGxvY2FsRmls
ZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIGJvb2wgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogICAgIDogbV9uZWVk
c1NpdGVTcGVjaWZpY1F1aXJrcyhuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcykKICAgICAsIG1fbG9j
YWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZChsb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFi
bGVkKQogICAgICwgbV9wcml2YXRlQnJvd3NpbmdFbmFibGVkKHByaXZhdGVCcm93c2luZ0VuYWJs
ZWQpCisgICAgLCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMuY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMuY3BwCmluZGV4IDgwNzM4Y2I1NmZlNDI3N2QzZTIwNmYxMDFmZTUyMDA4
NWZkOTVhNTUuLjY1M2Q3MjM1YmQwNTYwMjdiMjgwMzI0NWU2NGFkOTQyNzZjOTNhZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3Jr
UmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKQEAgLTQ1LDEwICs0NSwxMSBAQCBOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoKQogICAg
ICwgbV9jb250ZW50U25pZmZpbmdQb2xpY3koU25pZmZDb250ZW50KQogICAgICwgbV9hbGxvd1N0
b3JlZENyZWRlbnRpYWxzKERvTm90QWxsb3dTdG9yZWRDcmVkZW50aWFscykKICAgICAsIG1faW5Q
cml2YXRlQnJvd3NpbmdNb2RlKGZhbHNlKQorICAgICwgbV9zaG91bGRDbGVhclJlZmVycmVyT25I
VFRQU1RvSFRUUFJlZGlyZWN0KHRydWUpCiB7CiB9CiAKLU5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgU3RvcmVk
Q3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2lu
Z01vZGUpCitOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciBpZGVudGlmaWVyLCB1aW50NjRfdCB3
ZWJQYWdlSUQsIHVpbnQ2NF90IHdlYkZyYW1lSUQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVx
dWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIENvbnRlbnRTbmlmZmluZ1BvbGlj
eSBjb250ZW50U25pZmZpbmdQb2xpY3ksIFN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3Jl
ZGVudGlhbHMsIGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlLCBib29sIHNob3VsZENsZWFyUmVm
ZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpCiAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmll
cikKICAgICAsIG1fd2ViUGFnZUlEKHdlYlBhZ2VJRCkKICAgICAsIG1fd2ViRnJhbWVJRCh3ZWJG
cmFtZUlEKQpAQCAtNTcsNiArNTgsNyBAQCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6
TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZgogICAgICwg
bV9jb250ZW50U25pZmZpbmdQb2xpY3koY29udGVudFNuaWZmaW5nUG9saWN5KQogICAgICwgbV9h
bGxvd1N0b3JlZENyZWRlbnRpYWxzKGFsbG93U3RvcmVkQ3JlZGVudGlhbHMpCiAgICAgLCBtX2lu
UHJpdmF0ZUJyb3dzaW5nTW9kZShpblByaXZhdGVCcm93c2luZ01vZGUpCisgICAgLCBtX3Nob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3Qoc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKIH0KIApAQCAtMTAzLDYgKzEwNSw3IEBAIHZvaWQgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29k
ZXImIGVuY29kZXIpIGNvCiAgICAgZW5jb2Rlci5lbmNvZGVFbnVtKG1fY29udGVudFNuaWZmaW5n
UG9saWN5KTsKICAgICBlbmNvZGVyLmVuY29kZUVudW0obV9hbGxvd1N0b3JlZENyZWRlbnRpYWxz
KTsKICAgICBlbmNvZGVyLmVuY29kZShtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZSk7CisgICAgZW5j
b2Rlci5lbmNvZGUobV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsK
IH0KIAogYm9vbCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZGVjb2RlKENvcmVJUEM6
OkFyZ3VtZW50RGVjb2RlciYgZGVjb2RlciwgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMm
IHJlc3VsdCkKQEAgLTE0Nyw2ICsxNTAsOCBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKCFkZWNvZGVyLmRlY29kZShyZXN1bHQubV9pblBy
aXZhdGVCcm93c2luZ01vZGUpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZShyZXN1bHQubV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRydWU7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuaAppbmRleCA1NjQ0MmQ2NzJjOTI2MWU3YzJjNWM3MTVhMzIzODcw
MjkyYWI2NzdhLi5kNWJiZjMzYTM1NzY1MzkxODMzZGE2Y2Q2MTRmMTc4Y2IyYjBkYTE5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2Fk
UGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgdHlwZWRlZiB1aW50NjRf
dCBSZXNvdXJjZUxvYWRJZGVudGlmaWVyOwogY2xhc3MgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFt
ZXRlcnMgewogcHVibGljOgogICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKCk7Ci0g
ICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwg
dWludDY0X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6
Q29udGVudFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBp
blByaXZhdGVCcm93c2luZ01vZGUpOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
KFJlc291cmNlTG9hZElkZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2Vi
RnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgV2ViQ29yZTo6UmVzb3Vy
Y2VMb2FkUHJpb3JpdHksIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSwgV2ViQ29yZTo6
U3RvcmVkQ3JlZGVudGlhbHMsIGJvb2wgaW5Qcml2YXRlQnJvd3NpbmdNb2RlLCBib29sIHNob3Vs
ZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogCiAgICAgdm9pZCBlbmNvZGUo
Q29yZUlQQzo6QXJndW1lbnRFbmNvZGVyJikgY29uc3Q7CiAgICAgc3RhdGljIGJvb2wgZGVjb2Rl
KENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciYsIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
Jik7CkBAIC02MCw2ICs2MCw3IEBAIHB1YmxpYzoKICAgICBXZWJDb3JlOjpDb250ZW50U25pZmZp
bmdQb2xpY3kgY29udGVudFNuaWZmaW5nUG9saWN5KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZW50
U25pZmZpbmdQb2xpY3k7IH0KICAgICBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0
b3JlZENyZWRlbnRpYWxzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd1N0b3JlZENyZWRlbnRpYWxz
OyB9CiAgICAgYm9vbCBpblByaXZhdGVCcm93c2luZ01vZGUoKSBjb25zdCB7IHJldHVybiBtX2lu
UHJpdmF0ZUJyb3dzaW5nTW9kZTsgfQorICAgIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRU
UFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdDsgfQogCiBwcml2YXRlOgogICAgIFJlc291cmNlTG9hZElkZW50
aWZpZXIgbV9pZGVudGlmaWVyOwpAQCAtNzIsNiArNzMsNyBAQCBwcml2YXRlOgogICAgIFdlYkNv
cmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsKICAgICBX
ZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscyBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7CiAgICAg
Ym9vbCBtX2luUHJpdmF0ZUJyb3dzaW5nTW9kZTsKKyAgICBib29sIG1fc2hvdWxkQ2xlYXJSZWZl
cnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNl
TG9hZFNjaGVkdWxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2Vi
UmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcAppbmRleCBiYjM0MzQxMmFlNDQ1YTI1NWM5ZTBmZWYw
M2YyMmYwZWY5MzUwMzI4Li43ZDZhYmQ4YTViOWE3MzVkNTlhYTBiZWRjYzY2ZGIyZGRiNGFmNGNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3Vy
Y2VMb2FkU2NoZWR1bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdv
cmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcApAQCAtMzcsMTAgKzM3LDEyIEBACiAjaW5j
bHVkZSAiV2ViUGFnZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKICNpbmNsdWRlICJXZWJS
ZXNvdXJjZUxvYWRlci5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL0RvY3VtZW50TG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHNj
YXBlUGx1Z0luU3RyZWFtTG9hZGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWZlcnJlclBvbGlj
eS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VCdWZmZXIuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlTG9hZGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgpAQCAt
NjcsNyArNjksNyBAQCBQYXNzUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBXZWJSZXNvdXJjZUxv
YWRTY2hlZHVsZXI6OnNjaGVkdWxlU3VicmVzb3VyY2VMb2FkKAogewogICAgIFJlZlB0cjxTdWJy
ZXNvdXJjZUxvYWRlcj4gbG9hZGVyID0gU3VicmVzb3VyY2VMb2FkZXI6OmNyZWF0ZShmcmFtZSwg
cmVzb3VyY2UsIHJlcXVlc3QsIG9wdGlvbnMpOwogICAgIGlmIChsb2FkZXIpCi0gICAgICAgIHNj
aGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIHByaW9yaXR5KTsKKyAgICAgICAgc2NoZWR1bGVMb2Fk
KGxvYWRlci5nZXQoKSwgcHJpb3JpdHksIGZyYW1lLT5kb2N1bWVudCgpLT5yZWZlcnJlclBvbGlj
eSgpID09IFJlZmVycmVyUG9saWN5RGVmYXVsdCk7CiAgICAgcmV0dXJuIGxvYWRlci5yZWxlYXNl
KCk7CiB9CiAKQEAgLTc1LDExICs3NywxMSBAQCBQYXNzUmVmUHRyPE5ldHNjYXBlUGx1Z0luU3Ry
ZWFtTG9hZGVyPiBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlUGx1Z2luUwogewog
ICAgIFJlZlB0cjxOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcj4gbG9hZGVyID0gTmV0c2NhcGVQ
bHVnSW5TdHJlYW1Mb2FkZXI6OmNyZWF0ZShmcmFtZSwgY2xpZW50LCByZXF1ZXN0KTsKICAgICBp
ZiAobG9hZGVyKQotICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBSZXNvdXJjZUxv
YWRQcmlvcml0eUxvdyk7CisgICAgICAgIHNjaGVkdWxlTG9hZChsb2FkZXIuZ2V0KCksIFJlc291
cmNlTG9hZFByaW9yaXR5TG93LCBmcmFtZS0+ZG9jdW1lbnQoKS0+cmVmZXJyZXJQb2xpY3koKSA9
PSBSZWZlcnJlclBvbGljeURlZmF1bHQpOwogICAgIHJldHVybiBsb2FkZXIucmVsZWFzZSgpOwog
fQogCi12b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNl
TG9hZGVyKiByZXNvdXJjZUxvYWRlciwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHkpCit2
b2lkIFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVMb2FkKFJlc291cmNlTG9hZGVy
KiByZXNvdXJjZUxvYWRlciwgUmVzb3VyY2VMb2FkUHJpb3JpdHkgcHJpb3JpdHksIGJvb2wgc2hv
dWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKIHsKICAgICBBU1NFUlQocmVz
b3VyY2VMb2FkZXIpOwogICAgIEFTU0VSVChwcmlvcml0eSAhPSBSZXNvdXJjZUxvYWRQcmlvcml0
eVVucmVzb2x2ZWQpOwpAQCAtMTA1LDcgKzEwNyw3IEBAIHZvaWQgV2ViUmVzb3VyY2VMb2FkU2No
ZWR1bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNv
CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVMb2FkZXJDbGll
bnQqPihyZXNvdXJjZUxvYWRlci0+ZnJhbWVMb2FkZXIoKS0+Y2xpZW50KCkpLT53ZWJGcmFtZSgp
OwogICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSB3ZWJGcmFtZS0+cGFnZSgpOwogCi0gICAgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMoaWRlbnRpZmllciwgd2ViUGFn
ZS0+cGFnZUlEKCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHJlc291cmNlTG9hZGVyLT5yZXF1ZXN0
KCksIHByaW9yaXR5LCBjb250ZW50U25pZmZpbmdQb2xpY3ksIGFsbG93U3RvcmVkQ3JlZGVudGlh
bHMsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOworICAgIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzIGxvYWRQYXJhbWV0ZXJzKGlkZW50aWZpZXIsIHdlYlBhZ2UtPnBhZ2VJRCgpLCB3ZWJG
cmFtZS0+ZnJhbWVJRCgpLCByZXNvdXJjZUxvYWRlci0+cmVxdWVzdCgpLCBwcmlvcml0eSwgY29u
dGVudFNuaWZmaW5nUG9saWN5LCBhbGxvd1N0b3JlZENyZWRlbnRpYWxzLCBwcml2YXRlQnJvd3Np
bmdFbmFibGVkLCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLm5ldHdvcmtDb25uZWN0aW9uKCktPmNvbm5lY3Rp
b24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlNjaGVk
dWxlUmVzb3VyY2VMb2FkKGxvYWRQYXJhbWV0ZXJzKSwgMCkpIHsKICAgICAgICAgLy8gV2UgcHJv
YmFibHkgZmFpbGVkIHRvIHNjaGVkdWxlIHRoaXMgbG9hZCB3aXRoIHRoZSBOZXR3b3JrUHJvY2Vz
cyBiZWNhdXNlIGl0IGhhZCBjcmFzaGVkLgogICAgICAgICAvLyBUaGlzIGxvYWQgd2lsbCBuZXZl
ciBzdWNjZWVkIHNvIHdlIHdpbGwgc2NoZWR1bGUgaXQgdG8gZmFpbCBhc3luY2hyb25vdXNseS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJj
ZUxvYWRTY2hlZHVsZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJS
ZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAppbmRleCAxZjg0YWI2NGY4OGRhZDQ1MzhjYzFjOWRhOTZi
YTlhMGM3ZGFkMTQ1Li5kODY0YjhmMGQ1MGQyMjQ5Yzc1MmM4OGY4N2YxMGJiNmY5OGZiMzMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VM
b2FkU2NoZWR1bGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlJlc291cmNlTG9hZFNjaGVkdWxlci5oCkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpOwogCiBwcml2YXRlOgotICAgIHZvaWQgc2NoZWR1
bGVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwgV2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJp
b3JpdHkpOworICAgIHZvaWQgc2NoZWR1bGVMb2FkKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyKiwg
V2ViQ29yZTo6UmVzb3VyY2VMb2FkUHJpb3JpdHksIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAgICAgdm9pZCBhZGRVbnNjaGVkdWxhYmxlTG9hZChXZWJD
b3JlOjpSZXNvdXJjZUxvYWRlciopOwogICAgIHZvaWQgdW5zY2hlZHVsZWRMb2FkVGltZXJGaXJl
ZCgpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDE1NGYz
MDUzMGJlZmYzZGM3MGNmOTFjM2JmZTZhM2Q0N2IxOWE4YjYuLjNhYzFiNjNkMjk2OTY2NTRhMGM3
Y2M2NzVjOTAzNzNkNWRhOTYxMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5j
cHAKQEAgLTIzNCw3ICsyMzQsNyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJl
c291cmNlU3luY2hyb25vdXNseShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogCiAgICAgQ29y
ZUlQQzo6RGF0YVJlZmVyZW5jZSBkYXRhUmVmZXJlbmNlOwogCi0gICAgTmV0d29ya1Jlc291cmNl
TG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgMCwg
MCwgcmVxdWVzdCwgUmVzb3VyY2VMb2FkUHJpb3JpdHlIaWdoZXN0LCBTbmlmZkNvbnRlbnQsIHN0
b3JlZENyZWRlbnRpYWxzLCBjb250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLmlzUHJpdmF0ZUJyb3dz
aW5nU2Vzc2lvbigpKTsKKyAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFy
YW1ldGVycyhyZXNvdXJjZUxvYWRJZGVudGlmaWVyLCAwLCAwLCByZXF1ZXN0LCBSZXNvdXJjZUxv
YWRQcmlvcml0eUhpZ2hlc3QsIFNuaWZmQ29udGVudCwgc3RvcmVkQ3JlZGVudGlhbHMsIGNvbnRl
eHQtPnN0b3JhZ2VTZXNzaW9uKCkuaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCksIGNvbnRleHQt
PnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSk7CiAgICAgaWYgKCFX
ZWJQcm9jZXNzOjpzaGFyZWQoKS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5
bmNocm9ub3VzTG9hZChsb2FkUGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3Bv
bnNlLCBkYXRhUmVmZXJlbmNlKSwgMCkpIHsKICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJl
c3BvbnNlKCk7CiAgICAgICAgIGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZTBlNDM0MmRkODdmMDU5YmU3MDhmNjg5YWNiNjhkYmY1MDBkZTM3Li42OGFhZTJm
ZWI5OGUxZDVhOTI1YmNkYTdmMWFjMjZkNmYzZTM2ZjExIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTMtMDItMDQgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFRha2UgcmVmZXJyZXIgcG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSBy
ZWZlcnJlciBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTg2MDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVW5za2lwIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0
LWxpbmsuaHRtbAorCisgICAgICAgIFNraXBwaW5nIHRoZSB0ZXN0cyBvbiB3azIsIGJlY2F1c2Ug
b3RoZXIgcmVmZXJyZXIgcG9saWN5IHRlc3RzIGFyZQorICAgICAgICBza2lwcGVkLCB0b28gKCBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzM5MTMgKS4KKworICAgICAg
ICAqIHBsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL21h
Yy9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTMtMDItMDQgIFNhbWkgS3lvc3Rp
bGEgIDxza3lvc3RpbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRGlzYWJsZSAtd2Via2l0LW92
ZXJmbG93LXNjcm9sbGluZyBDU1MgYXR0cmlidXRlIG9uIENocm9taXVtCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDk0NGI3YjY1ZDg0YWRmMjdiNWQ5MjMw
ZjE2NDgwZjY4NDcxZDMwNDguLmE5ODM0NDU4NDY5ZGM1NjBjYWVkNTQ0ZWIzM2NlZGRjYTRlN2Jh
ZjQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjM5
LDkgKzEyMzksNiBAQCB3ZWJraXQub3JnL2IvODU2ODkgZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbCBbIFNraXAgXQogIyBTdGFydGVkIGZhaWxpbmcg
YWZ0ZXIgaXQgd2FzIGFkZGVkIGluIHIxMTY0NzMKIHdlYmtpdC5vcmcvYi84NTk2OSBodHRwL3Rl
c3RzL2xvYWRpbmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbCBbIEZh
aWx1cmUgXQogCi0jIFN0YXJ0ZWQgZmFpbGluZyBhZnRlciBpdCB3YXMgYWRkZWQgaW4gcjExNjU2
Mwotd2Via2l0Lm9yZy9iLzg2MDYxIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5
LXJlZGlyZWN0LWxpbmsuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvODUzMDggWyBS
ZWxlYXNlIF0gaWV0ZXN0Y2VudGVyL2NzczMvdmFsdWVzYW5kdW5pdHMvdW5pdHMtMDAwLmh0bSBb
IEltYWdlT25seUZhaWx1cmUgXQogCiAjIElFVEMgbmFtZXNwYWNlIGZhaWx1cmVzCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDIxNDAwNjA0YWE3YjhkNTlj
ZjU1NjA3YjJjZWYxZTAyYTA1YzI5NDMuLmMyMjU2YmYzNWY3YmYwZTIwZWRkZGFiODczZTE5ZDUz
MDQ2YjBkNTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBA
IC03NzIsOSArNzcyLDYgQEAgbWVkaWEvdmlkZW8tcGxheWVkLXJlc2V0Lmh0bWwKICMgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1OTY5CiBodHRwL3Rlc3RzL2xvYWRp
bmcvcG9zdC1pbi1pZnJhbWUtd2l0aC1iYWNrLW5hdmlnYXRpb24uaHRtbAogCi0jIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9ubHkg
c3VwcG9ydHMgZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBzZWUg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbAogaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1hdWRpdHMtY29udGVudC1zY3JpcHQuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMWU3YTNhNWNmOTYwZDQ2NTI2
ZWZjOTAwMjFhZGU3NDU5OGQ1ZDMxOS4uZTc1ZDlmYWI2NWNlOTVhOTQ2YjJlODM0OGUwMjQ3NjYz
YzgwODRmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0
aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
ODk0LDkgKzE4OTQsNiBAQCBmYXN0L2xheWVycy9uby1jbGlwcGluZy1vdmVyZmxvdy1oaWRkZW4t
aGFyZHdhcmUtYWNjZWxlcmF0aW9uLmh0bWwKIHNlY3VyaXR5L2Jsb2NrLXRlc3Qtbm8tcG9ydC5o
dG1sCiBzZWN1cml0eS9ibG9jay10ZXN0Lmh0bWwKIAotIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJyZXItcG9s
aWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKICMgZmFp
bGluZyB0YWJsZXMgdGVzdHMKICMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0gIwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkODQ0NDFhYTliZWMyMDJkMWRlN2Q2
NTgyNmU0ZDJkZDkxYjJkNzNiLi43N2I5ZDZkZWNiYjQ5NmUyZTE3MDU5MzY0NDNlMzVjMjQyYzQy
MTE5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTgy
OSw5ICsxODI5LDYgQEAgaW5zcGVjdG9yL3N0eWxlcy9vdmVycmlkZS1zY3JlZW4tc2l6ZS5odG1s
CiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTY4OQogZmFzdC9h
bmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAogCi0jIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1
cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgSW5zcGVjdG9yIG9u
bHkgc3VwcG9ydHMgZXZhbHVhdGlvbiBpbiBjb250ZW50IHNjcmlwdCB3b3JsZCB3aXRoIHY4LCBz
ZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg1NzA5CiBpbnNwZWN0
b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWV2YWwtY29udGVudC1zY3JpcHQuaHRtbCAKIGluc3Bl
Y3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMGNmMWQxOTk0NGQz
MWZiZTFhOWM1YjRlMDEzOTlhMDE0NzA3YmYzOS4uZGM4ZWJjMjg1YzYwMjUzMWMzOTQzOWMzN2Fi
YTY4NjJkYjg0N2ZhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMKQEAgLTMxMyw2ICszMTMsNyBAQCBodHRwL3Rlc3RzL2NhY2hlL2hpc3Rvcnktb25seS1jYWNo
ZWQtc3VicmVzb3VyY2UtbG9hZHMtbWF4LWFnZS1odHRwcy5odG1sCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3JlZmVycmVyLXBvbGljeS1odHRwcy1hbHdheXMuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LXJlZGlyZWN0Lmh0bWwKK2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVmZXJy
ZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJl
ci1wb2xpY3ktaHR0cHMtbmV2ZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1w
b2xpY3ktaHR0cHMtZGVmYXVsdC5odG1sCiAKQEAgLTMzNCwxMSArMzM1LDYgQEAgZmFzdC9zZWxl
Y3RvcnMvc2VsZWN0aW9uLXdpbmRvdy1pbmFjdGl2ZS5odG1sCiAjIGF1dG9ab29tUGFnZVRvRml0
V2lkdGgoKS4KIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNpemUuaHRtbAogCi0j
IFRoZSBuZXR3b3JrIHN0YWNrIHVuY29uZGl0aW9uYWxseSBzdHJpcHMgdGhlIGhlYWRlciBvbiB0
cmFuc2l0aW9ucyBmcm9tCi0jIHNlY3VyZSB0byBpbnNlY3VyZS4gSXQgc2hvdWxkIHRha2UgdGhl
IHJlZmVycmVyIHBvbGljeSBpbnRvIGFjY291bnQgaW5zdGVhZC4KLSMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyBjc3MzLWNvbmRpdGlvbmFscyBzdXBw
b3J0IGlzIG5vdCB5ZXQgZW5hYmxlZC4KIHdlYmtpdC5vcmcvYi84NjE0NiBjc3MzL3N1cHBvcnRz
Lmh0bWwKIHdlYmtpdC5vcmcvYi8xMDQ4MjIgY3NzMy9zdXBwb3J0cy1jc3NvbS5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186793</attachid>
            <date>2013-02-06 01:56:10 -0800</date>
            <delta_ts>2013-02-06 03:25:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-86000-20130206105246.patch</filename>
            <type>text/plain</type>
            <size>56945</size>
            <attacher name="Marja Hölttä">marja</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxOTc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmQwZmIwZTRmMWViN2I0
OTZiNjcyY2VkMjIyNzM1MTExYzYwMDY5Zi4uNDU5ZmFkMTgwYTg5OWY5Nzc0NGM5NjEzZjEzODRk
MTIzMDRlMTYzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDczIEBACisyMDEzLTAyLTA2ICBNYXJq
YSBIw7ZsdHTDpCAgPG1hcmphQGNocm9taXVtLm9yZz4KKworICAgICAgICBUYWtlIHJlZmVycmVy
IHBvbGljeSBpbnRvIGFjY291bnQgd2hlbiBjbGVhcmluZyB0aGUgcmVmZXJyZXIgaGVhZGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAorCisg
ICAgICAgIFJldmlld2VkIGJ5IEFsZXhleSBQcm9za3VyeWFrb3YuCisKKyAgICAgICAgVGhlIHJl
ZmVycmVyIHNob3VsZCBvbmx5IGJlIGNsZWFyZWQgd2hlbiBkb2luZyBhIGh0dHBzIC0+IGh0dHAg
cmVkaXJlY3QsCisgICAgICAgIGlmIHRoZSBwb2xpY3kgaXMgImRlZmF1bHQiLiBPdGhlcndpc2Ug
dGhlIHJlZmVycmVyIHNob3VsZCBiZSBsZWZ0IGludGFjdC4KKworICAgICAgICBJbiBvcmRlciB0
byBkbyB0aGF0LCBhZGRlZCBhIGZ1bmN0aW9uIGZvciBjaGVja2luZyB0aGUgcG9saWN5IGluCisg
ICAgICAgIE5ldHdvcmtpbmdDb250ZXh0LCBhbmQgc3RvcmVkIHRoZSBOZXR3b3JraW5nQ29udGV4
dCBpbiBSZXNvdXJjZUhhbmRsZQorICAgICAgICAobGlrZSBzb21lIHBvcnRzIGFscmVhZHkgZGlk
KS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKHVuc2tpcHBlZCBvbGQgdGVzdHMpLgorCisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTmV0d29ya2luZ0NvbnRleHQ6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQ
UmVkaXJlY3QpOgorICAgICAgICAoRnJhbWVOZXR3b3JraW5nQ29udGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9CbG9iUmVzb3VyY2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QmxvYlJlc291cmNlSGFuZGxlOjpCbG9iUmVzb3VyY2VIYW5kbGUpOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaDoKKyAgICAgICAgKE5ldHdvcmtpbmdD
b250ZXh0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpSZXNvdXJjZUhhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlc291cmNlSGFuZGxlOjpjb250ZXh0KToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaDoKKyAgICAgICAgKFJlc291cmNlSGFu
ZGxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlSW50ZXJuYWwu
aDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6OlJlc291cmNlSGFu
ZGxlSW50ZXJuYWwpOgorICAgICAgICAoUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCk6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9ibGFja2JlcnJ5L1Jlc291cmNlSGFuZGxlQmxhY2tCZXJyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6c3RhcnQpOgorICAgICAgICAo
V2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkpOgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3Vy
Y2VIYW5kbGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2Fk
UmVzb3VyY2VTeW5jaHJvbm91c2x5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2Nocm9t
aXVtL1Jlc291cmNlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxl
SW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6UmVz
b3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNl
SGFuZGxlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OmNvbnRl
eHQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VI
YW5kbGVJbnRlcm5hbC5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChSZXNvdXJjZUhh
bmRsZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlSW50ZXJuYWw6
OmNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhhbmRs
ZUN1cmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgIChXZWJD
b3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisgICAgICAg
ICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsU2VuZFJl
cXVlc3Q6cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3F0
L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlFOZXR3b3JrUmVw
bHlIYW5kbGVyOjpyZWRpcmVjdCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9xdC9SZXNv
dXJjZUhhbmRsZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpzdGFy
dCk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6bG9hZFJlc291cmNlU3luY2hy
b25vdXNseSk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxl
U291cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpkb1JlZGlyZWN0KToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpzdGFydCk6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay93
aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3Vy
Y2VTeW5jaHJvbm91c2x5KToKKwogMjAxMy0wMi0wNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2
aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0
MTk2MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwppbmRleCA5N2MzZDMwOGZjNTdkNmEzYzNiYTI3OGI0YWE4MDNiYjc3YmM3
NzZmLi42MTE5MzVkMTgzMDJmMzMyMzc2ZGVhYzEwNDlkYjY4M2Q1NWFmZjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsNDUgQEAKKzIwMTMtMDItMDYgIE1hcmphIEjDtmx0dMOkICA8bWFyamFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJyZXIgcG9saWN5IGludG8gYWNjb3VudCB3
aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQWxl
eGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBUaGUgcmVmZXJyZXIgc2hvdWxkIG9ubHkgYmUg
Y2xlYXJlZCB3aGVuIGRvaW5nIGEgaHR0cHMgLT4gaHR0cCByZWRpcmVjdCwKKyAgICAgICAgaWYg
dGhlIHBvbGljeSBpcyAiZGVmYXVsdCIuIE90aGVyd2lzZSB0aGUgcmVmZXJyZXIgc2hvdWxkIGJl
IGxlZnQgaW50YWN0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNl
TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpTY2hlZHVsYWJsZUxvYWRlcjo6U2NoZWR1bGFibGVMb2FkZXIpOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmg6CisgICAgICAgIChXZWJL
aXQ6OlNjaGVkdWxhYmxlTG9hZGVyOjpzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0KToKKyAgICAgICAgKFNjaGVkdWxhYmxlTG9hZGVyKToKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
U3luY05ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL21hYy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKToKKyAgICAgICAgKFJlbW90ZU5ldHdvcmtpbmdD
b250ZXh0KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQubW06CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpzaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KToKKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0OjpSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dCk6CisgICAgICAgICogU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9h
ZFBhcmFtZXRlcnMuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFy
YW1ldGVyczo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5jb2RlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZSk6CisgICAgICAgICogU2hh
cmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaDoKKyAgICAgICAgKE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnM6OnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVk
aXJlY3QpOgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hl
ZHVsZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNj
aGVkdWxlU3VicmVzb3VyY2VMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2Fk
U2NoZWR1bGVyOjpzY2hlZHVsZVBsdWdpblN0cmVhbUxvYWQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZCk6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oOgorICAgICAgICAoV2ViUmVz
b3VyY2VMb2FkU2NoZWR1bGVyKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsYXRmb3Jt
U3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNseSk6CisKIDIwMTMtMDItMDUgIFRp
bSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAKICAgICAgICAgW3drMl0gVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWEgaGFzIG9uZSBtb3JlIGxheWVyIGluIGl0cyBDQUNv
bnRleHQgd2hlbiB3ZSdyZSBpbiB0aGUgYmFja2dyb3VuZApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggN2YwODgwMWNiNWMzZTc0NDU5YWM4
ZjhmNDk4ZGUzOWUzYzZhNmRiYS4uYzgwNDRhNjAyZjhhM2NiOTFkNmZjODIxYzE3ODMxNTc0NTE0
NmQ3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTmV0d29ya2luZ0Nv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVOZXR3b3JraW5nQ29udGV4
dC5oCkBAIC0yMCw4ICsyMCwxMCBAQAogI2lmbmRlZiBGcmFtZU5ldHdvcmtpbmdDb250ZXh0X2gK
ICNkZWZpbmUgRnJhbWVOZXR3b3JraW5nQ29udGV4dF9oCiAKKyNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiTmV0d29ya2luZ0NvbnRleHQuaCIKKyNp
bmNsdWRlICJSZWZlcnJlclBvbGljeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKQEAgLTMy
LDYgKzM0LDExIEBAIHB1YmxpYzoKICAgICAgICAgbV9mcmFtZSA9IDA7CiAgICAgfQogCisgICAg
dmlydHVhbCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fZnJhbWUtPmRvY3VtZW50KCktPnJlZmVycmVy
UG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0OworICAgIH0KKwogcHJvdGVjdGVkOgog
ICAgIGV4cGxpY2l0IEZyYW1lTmV0d29ya2luZ0NvbnRleHQoRnJhbWUqIGZyYW1lKQogICAgICAg
ICA6IG1fZnJhbWUoZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAKaW5kZXggYzgyYjQ2YzYwODdmZjk2MTI1Nzk5
OGE1NGFlZjVlZTZlNmFiY2QzNi4uZTgxMzM0Y2I5ZjgzYjk5NTU4YjI0Nzg5Y2FhYzhhNTc2Y2Jm
Y2I5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9CbG9iUmVz
b3VyY2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQmxv
YlJlc291cmNlSGFuZGxlLmNwcApAQCAtNDAsNyArNDAsNiBAQAogI2luY2x1ZGUgIkZpbGVTeXN0
ZW0uaCIKICNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIktVUkwuaCIKLSNpbmNs
dWRlICJOZXR3b3JraW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNp
bmNsdWRlICJSZXNvdXJjZUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUgIlJlc291cmNlUmVxdWVz
dC5oIgpAQCAtMTQyLDcgKzE0MSw3IEBAIHZvaWQgQmxvYlJlc291cmNlSGFuZGxlOjpsb2FkUmVz
b3VyY2VTeW5jaHJvbm91c2x5KFBhc3NSZWZQdHI8QmxvYlN0b3JhZ2VEYXRhPiBiCiB9CiAKIEJs
b2JSZXNvdXJjZUhhbmRsZTo6QmxvYlJlc291cmNlSGFuZGxlKFBhc3NSZWZQdHI8QmxvYlN0b3Jh
Z2VEYXRhPiBibG9iRGF0YSwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50LCBib29sIGFzeW5jKQotICAgIDogUmVzb3VyY2VIYW5kbGUo
cmVxdWVzdCwgY2xpZW50LCBmYWxzZSwgZmFsc2UpCisgICAgOiBSZXNvdXJjZUhhbmRsZSgwLCBy
ZXF1ZXN0LCBjbGllbnQsIGZhbHNlLCBmYWxzZSkKICAgICAsIG1fYmxvYkRhdGEoYmxvYkRhdGEp
CiAgICAgLCBtX2FzeW5jKGFzeW5jKQogICAgICwgbV9lcnJvckNvZGUoMCkKQEAgLTYzNiw0ICs2
MzUsMyBAQCB2b2lkIEJsb2JSZXNvdXJjZUhhbmRsZTo6bm90aWZ5RmluaXNoKCkKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShCTE9CKQotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL05ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggMTRj
ZDQyMDY5NWU4ZDVhM2FkMjViZTgxZjYxMDQ1OWMzMTkzODc1Yi4uNjFhODRiNDk0MTgxNDI5ZGNm
MmNiMGY2YTgzM2RmYWMzYmZlMTYyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9OZXR3b3JraW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvTmV0d29ya2luZ0NvbnRleHQuaApAQCAtNjUsNiArNjUsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KIAor
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0
KCkgY29uc3QgPSAwOworCiAjaWYgUExBVEZPUk0oQ0hST01JVU0pCiAgICAgLy8gRklYTUU6IFdy
YXAgV2ViQ29va2llSmFyIGludG8gYSBOZXR3b3JrU3RvcmFnZVNlc3Npb24gdG8gbWFrZSB0aGUg
Y29kZSBjcm9zcy1wbGF0Zm9ybS4KICAgICB2aXJ0dWFsIFdlYktpdDo6V2ViQ29va2llSmFyKiBj
b29raWVKYXIoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCmluZGV4IDRiYzk0ZTc2NDU4YTQ5Y2FjZDA3YTZhNzcx
MmEwZWJhYzZlMzdkM2EuLjEzZTBmYzM2MGQyYmQ1MzM2NTAxYjY0N2Q0YjMwMTNiNGJmZjczOGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCkBAIC01Myw4ICs1Myw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlZ2lzdGVyQnVp
bHRpbkNvbnN0cnVjdG9yKGNvbnN0IEF0b21pY1N0cmluZyYgcHJvdG9jb2wsIFJlCiAgICAgYnVp
bHRpblJlc291cmNlSGFuZGxlQ29uc3RydWN0b3JNYXAoKS5hZGQocHJvdG9jb2wsIGNvbnN0cnVj
dG9yKTsKIH0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZl
cnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3
IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2Fk
aW5nLCBzaG91bGRDb250ZW50U25pZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3Qu
dXJsKCkpKSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0d29ya2luZ0NvbnRl
eHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRT
bmlmZikKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJuYWwodGhpcywg
Y29udGV4dCwgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25p
ZmYgJiYgc2hvdWxkQ29udGVudFNuaWZmVVJMKHJlcXVlc3QudXJsKCkpKSkpCiB7CiAgICAgaWYg
KCFyZXF1ZXN0LnVybCgpLmlzVmFsaWQoKSkgewogICAgICAgICBzY2hlZHVsZUZhaWx1cmUoSW52
YWxpZFVSTEZhaWx1cmUpOwpAQCAtNzQsMTIgKzc0LDEyIEBAIFBhc3NSZWZQdHI8UmVzb3VyY2VI
YW5kbGU+IFJlc291cmNlSGFuZGxlOjpjcmVhdGUoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQs
IGNvCiAgICAgaWYgKHByb3RvY29sTWFwSXRlbSAhPSBidWlsdGluUmVzb3VyY2VIYW5kbGVDb25z
dHJ1Y3Rvck1hcCgpLmVuZCgpKQogICAgICAgICByZXR1cm4gcHJvdG9jb2xNYXBJdGVtLT52YWx1
ZShyZXF1ZXN0LCBjbGllbnQpOwogCi0gICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBuZXdIYW5k
bGUoYWRvcHRSZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsIGNsaWVudCwgZGVmZXJzTG9h
ZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSkpOworICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4g
bmV3SGFuZGxlKGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCBj
bGllbnQsIGRlZmVyc0xvYWRpbmcsIHNob3VsZENvbnRlbnRTbmlmZikpKTsKIAogICAgIGlmIChu
ZXdIYW5kbGUtPmQtPm1fc2NoZWR1bGVkRmFpbHVyZVR5cGUgIT0gTm9GYWlsdXJlKQogICAgICAg
ICByZXR1cm4gbmV3SGFuZGxlLnJlbGVhc2UoKTsKIAotICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0
KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAgICAgICAgIHJldHVybiBu
ZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0xMjgsNiArMTI4LDExIEBA
IFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVxdWVzdCgpCiAgICAgcmV0
dXJuIGQtPm1fZmlyc3RSZXF1ZXN0OwogfQogCitOZXR3b3JraW5nQ29udGV4dCogUmVzb3VyY2VI
YW5kbGU6OmNvbnRleHQoKSBjb25zdAoreworICAgIHJldHVybiBkLT5tX2NvbnRleHQuZ2V0KCk7
Cit9CisKIGNvbnN0IFN0cmluZyYgUmVzb3VyY2VIYW5kbGU6Omxhc3RIVFRQTWV0aG9kKCkgY29u
c3QKIHsKICAgICByZXR1cm4gZC0+bV9sYXN0SFRUUE1ldGhvZDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAppbmRleCBmYTMwNTg5NjRhNWMy
YzI3YjY2NTUwYzZlMzRiY2Q4ZDg5M2VjOTRmLi4yMmU2NDgxYWU4OWNlMDQyZGI0N2VhZjg0N2Rm
ZjQ5OTJhZWUyZWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9S
ZXNvdXJjZUhhbmRsZS5oCkBAIC0xOTksNiArMTk5LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBm
aXJlRmFpbHVyZShUaW1lcjxSZXNvdXJjZUhhbmRsZT4qKTsKIAorICAgIE5ldHdvcmtpbmdDb250
ZXh0KiBjb250ZXh0KCkgY29uc3Q7CisKICAgICB1c2luZyBSZWZDb3VudGVkPFJlc291cmNlSGFu
ZGxlPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8UmVzb3VyY2VIYW5kbGU+OjpkZXJlZjsK
IApAQCAtMjE0LDcgKzIxNiw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCByZWdpc3RlckJ1
aWx0aW5Db25zdHJ1Y3Rvcihjb25zdCBBdG9taWNTdHJpbmcmIHByb3RvY29sLCBCdWlsdGluQ29u
c3RydWN0b3IpOwogCiBwcm90ZWN0ZWQ6Ci0gICAgUmVzb3VyY2VIYW5kbGUoY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiwgUmVzb3VyY2VIYW5kbGVDbGllbnQqLCBib29sIGRlZmVyc0xvYWRpbmcsIGJv
b2wgc2hvdWxkQ29udGVudFNuaWZmKTsKKyAgICBSZXNvdXJjZUhhbmRsZShOZXR3b3JraW5nQ29u
dGV4dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50KiwgYm9v
bCBkZWZlcnNMb2FkaW5nLCBib29sIHNob3VsZENvbnRlbnRTbmlmZik7CiAKIHByaXZhdGU6CiAg
ICAgZW51bSBGYWlsdXJlVHlwZSB7CkBAIC0yMjcsNyArMjI5LDcgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgc2NoZWR1bGVGYWlsdXJlKEZhaWx1cmVUeXBlKTsKIAotICAgIGJvb2wgc3RhcnQoTmV0
d29ya2luZ0NvbnRleHQqKTsKKyAgICBib29sIHN0YXJ0KCk7CiAKICAgICB2aXJ0dWFsIHZvaWQg
cmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IHJlZigpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRl
cmVmQXV0aGVudGljYXRpb25DbGllbnQoKSB7IGRlcmVmKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGVJbnRlcm5hbC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKaW5k
ZXggNWY1NmVjMzIxODkwZmI5YTgyZjYwOGQ0NjA0ZDU2ZTFmMDQ1ZmZlNC4uMTEyZWNiMTgyNDEx
MDA1ODZmZjM5MDU3YzFlMDgzYzU4NTI0ZTY1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZUludGVybmFsLmgKQEAgLTgzLDgg
KzgzLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNsYXNzIFJlc291cmNlSGFuZGxlSW50
ZXJuYWwgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShSZXNvdXJjZUhhbmRsZUludGVy
bmFsKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBSZXNv
dXJjZUhhbmRsZUludGVybmFsKFJlc291cmNlSGFuZGxlKiBsb2FkZXIsIGNvbnN0IFJlc291cmNl
UmVxdWVzdCYgcmVxdWVzdCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGMsIGJvb2wgZGVmZXJzTG9h
ZGluZywgYm9vbCBzaG91bGRDb250ZW50U25pZmYpCi0gICAgICAgICAgICA6IG1fY2xpZW50KGMp
CisgICAgICAgIFJlc291cmNlSGFuZGxlSW50ZXJuYWwoUmVzb3VyY2VIYW5kbGUqIGxvYWRlciwg
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29s
IHNob3VsZENvbnRlbnRTbmlmZikKKyAgICAgICAgICAgIDogbV9jb250ZXh0KGNvbnRleHQpCisg
ICAgICAgICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAgICAgICAgICwgbV9maXJzdFJlcXVl
c3QocmVxdWVzdCkKICAgICAgICAgICAgICwgbV9sYXN0SFRUUE1ldGhvZChyZXF1ZXN0Lmh0dHBN
ZXRob2QoKSkKICAgICAgICAgICAgICwgc3RhdHVzKDApCkBAIC0xMzgsOCArMTM5LDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB+UmVzb3VyY2VIYW5kbGVJbnRlcm5hbCgpOwogCiAg
ICAgICAgIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQoKSB7IHJldHVybiBtX2NsaWVudDsg
fQorCisgICAgICAgIFJlZlB0cjxOZXR3b3JraW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAg
ICBSZXNvdXJjZUhhbmRsZUNsaWVudCogbV9jbGllbnQ7Ci0gICAgICAgIAogICAgICAgICBSZXNv
dXJjZVJlcXVlc3QgbV9maXJzdFJlcXVlc3Q7CiAgICAgICAgIFN0cmluZyBtX2xhc3RIVFRQTWV0
aG9kOwogCkBAIC0yMDQsNyArMjA2LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBp
bnQgbV9idWZmZXJTaXplOwogICAgICAgICB1bnNpZ25lZCBsb25nIG1fYm9keVNpemU7CiAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgbV9ib2R5RGF0YVNlbnQ7Ci0gICAgICAgIFJlZlB0cjxOZXR3b3Jr
aW5nQ29udGV4dD4gbV9jb250ZXh0OwogICAgICAgICBTb3VwU2Vzc2lvbiogc291cFNlc3Npb24o
KTsKICAgICAgICAgaW50IG1fcmVkaXJlY3RDb3VudDsKICNlbmRpZgpAQCAtMjE2LDcgKzIxNyw2
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNlbmRpZgogI2lmIFBMQVRGT1JNKFFUKQogICAgICAg
ICBRTmV0d29ya1JlcGx5SGFuZGxlciogbV9qb2I7Ci0gICAgICAgIFJlZlB0cjxOZXR3b3JraW5n
Q29udGV4dD4gbV9jb250ZXh0OwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2JsYWNrYmVycnkvUmVzb3VyY2VI
YW5kbGVCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvYmxh
Y2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCmluZGV4IGFjYzI3OTJhZWQ4MTU4
Yzk0ZWZiNDkxZTczNDgzNWM1OWE1YTg5MjEuLmFkMmM4ZGNkMzEyNmU1NmNhYmE3OTk3NDg3MGZm
MjFiYjdiYTk4OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
YmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvYmxhY2tiZXJyeS9SZXNvdXJjZUhhbmRsZUJsYWNrQmVycnku
Y3BwCkBAIC0xMDcsOSArMTA3LDkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cGxhdGZvcm1TZXRE
ZWZlcnNMb2FkaW5nKGJvb2wgZGVmZXJzTG9hZGluZykKICAgICBOZXR3b3JrTWFuYWdlcjo6aW5z
dGFuY2UoKS0+c2V0RGVmZXJzTG9hZGluZyh0aGlzLCBkZWZlcnNMb2FkaW5nKTsKIH0KIAotYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydCgpCiB7Ci0gICAgaWYgKCFjb250ZXh0IHx8ICFjb250ZXh0
LT5pc1ZhbGlkKCkpCisgICAgaWYgKCFkLT5tX2NvbnRleHQgfHwgIWQtPm1fY29udGV4dC0+aXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBGSVhNRTogY2xlYW4gdXAg
dXNlIG9mIEZyYW1lIG5vdyB0aGF0IHdlIGhhdmUgTmV0d29ya2luZ0NvbnRleHQgKHNlZSBSSU0g
QnVnICMxNTE1KQpAQCAtMTU2LDcgKzE1Niw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRS
ZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAg
ICAgYm9vbCBkZWZlcnNMb2FkaW5nID0gZmFsc2U7CiAgICAgYm9vbCBzaG91bGRDb250ZW50U25p
ZmYgPSBmYWxzZTsKIAotICAgIFJlZlB0cjxSZXNvdXJjZUhhbmRsZT4gaGFuZGxlID0gYWRvcHRS
ZWYobmV3IFJlc291cmNlSGFuZGxlKHJlcXVlc3QsICZzeW5jTG9hZGVyLCBkZWZlcnNMb2FkaW5n
LCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAmc3luY0xv
YWRlciwgZGVmZXJzTG9hZGluZywgc2hvdWxkQ29udGVudFNuaWZmKSk7CiAgICAgTmV0d29ya01h
bmFnZXI6Omluc3RhbmNlKCktPnN0YXJ0Sm9iKHBsYXllcklkLCBoYW5kbGUsIGZyYW1lLCBkZWZl
cnNMb2FkaW5nKTsKIAogICAgIGNvbnN0IGRvdWJsZSBzeW5jTG9hZFRpbWVPdXQgPSA2MDsgLy8g
c2Vjb25kcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9S
ZXNvdXJjZUhhbmRsZUNGTmV0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Y2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAKaW5kZXggNzYxNjc1YjQyNjc1YzM0ZWY1YzE0Mzhk
ZmVhYWE0Yzc1NjhhYzg4Yi4uYjAwOTVhYTkwM2M1YTE2MmE1MzUwNjIxM2QzZTA3ZTdhMjZjOWY1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJj
ZUhhbmRsZUNGTmV0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nm
L1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCkBAIC0xODQsNyArMTg0LDcgQEAgc3RhdGljIENGVVJM
UmVxdWVzdFJlZiB3aWxsU2VuZFJlcXVlc3QoQ0ZVUkxDb25uZWN0aW9uUmVmIGNvbm4sIENGVVJM
UmVxdWVzdFJlZgogICAgICAgICByZXF1ZXN0ID0gY2ZSZXF1ZXN0OwogCiAgICAgLy8gU2hvdWxk
IG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZyb20gYSBzZWN1cmUgcmVzb3VyY2Ug
dG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0
dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAg
ICBpZiAoIXJlcXVlc3QudXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKHJl
cXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIGhhbmRsZS0+Y29udGV4dCgpLT5zaG91
bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpCiAgICAgICAgIHJlcXVlc3Qu
Y2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGhhbmRsZS0+d2lsbFNlbmRSZXF1ZXN0KHJlcXVl
c3QsIGNmUmVkaXJlY3RSZXNwb25zZSk7CkBAIC00OTYsMjEgKzQ5NiwyMSBAQCB2b2lkIFJlc291
cmNlSGFuZGxlOjpjcmVhdGVDRlVSTENvbm5lY3Rpb24oYm9vbCBzaG91bGRVc2VDcmVkZW50aWFs
U3RvcmFnZSwgYm9vbAogICAgIGQtPm1fY29ubmVjdGlvbi5hZG9wdENGKENGVVJMQ29ubmVjdGlv
bkNyZWF0ZVdpdGhQcm9wZXJ0aWVzKDAsIHJlcXVlc3QuZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8
Q0ZVUkxDb25uZWN0aW9uQ2xpZW50Kj4oJmNsaWVudCksIGNvbm5lY3Rpb25Qcm9wZXJ0aWVzLmdl
dCgpKSk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0
KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewotICAgIGlmICghY29u
dGV4dCkKKyAgICBpZiAoIWQtPm1fY29udGV4dCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgLy8gSWYgTmV0d29ya2luZ0NvbnRleHQgaXMgaW52YWxpZCB0aGVuIHdlIGFyZSBubyBsb25n
ZXIgYXR0YWNoZWQgdG8gYSBQYWdlLAogICAgIC8vIHRoaXMgbXVzdCBiZSBhbiBhdHRlbXB0ZWQg
bG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0LgotICAg
IGlmICghY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmICghZC0+bV9jb250ZXh0LT5pc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGQtPm1fc3RvcmFnZVNlc3Npb24gPSBj
b250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOworICAgIGQtPm1fc3Rv
cmFnZVNlc3Npb24gPSBkLT5tX2NvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNz
aW9uKCk7CiAKICAgICBib29sIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgp
IHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSh0aGlzKTsKIAotICAgIGNy
ZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgc2hvdWxkUmVs
YXhUaGlyZFBhcnR5Q29va2llUG9saWN5KGNvbnRleHQsIGZpcnN0UmVxdWVzdCgpLnVybCgpKSwg
ZC0+bV9zaG91bGRDb250ZW50U25pZmYpOworICAgIGNyZWF0ZUNGVVJMQ29ubmVjdGlvbihzaG91
bGRVc2VDcmVkZW50aWFsU3RvcmFnZSwgc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llUG9saWN5
KGQtPm1fY29udGV4dC5nZXQoKSwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLCBkLT5tX3Nob3VsZENv
bnRlbnRTbmlmZik7CiAKICNpZiBQTEFURk9STShXSU4pCiAgICAgQ0ZVUkxDb25uZWN0aW9uU2No
ZWR1bGVXaXRoQ3VycmVudE1lc3NhZ2VRdWV1ZShkLT5tX2Nvbm5lY3Rpb24uZ2V0KCkpOwpAQCAt
NzM5LDcgKzczOSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9u
b3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgT3duUHRyPFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlckNsaWVudD4gY2xpZW50ID0gV2ViQ29yZVN5bmNocm9ub3VzTG9h
ZGVyQ2xpZW50OjpjcmVhdGUocmVzcG9uc2UsIGVycm9yKTsKICAgICBjbGllbnQtPnNldEFsbG93
U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxsb3dTdG9yZWRDcmVkZW50
aWFscyk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5l
dyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9h
ZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKKyAgICBSZWZQdHI8UmVzb3Vy
Y2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCBy
ZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hv
dWxkQ29udGVudFNuaWZmKi8pKTsKIAogICAgIGhhbmRsZS0+ZC0+bV9zdG9yYWdlU2Vzc2lvbiA9
IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9uKCk7CiAKQEAgLTkyNCw0
ICs5MjQsMyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpoYW5kbGVEYXRhQXJyYXkoQ0ZBcnJheVJl
ZiBkYXRhQXJyYXkpCiAjZW5kaWYKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFu
ZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VIYW5kbGUuY3BwCmluZGV4IGFjMTQ5MjFhN2M0NTA2YTVjZWEwYjE0ODhkMDUyYjZjMjEyMGIz
OGYuLmI1NmRjNjMzNWYyNTU3YjY1YjQ3ZWM2ODA1NGE5NTg2MzdhODJjZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3VyY2VIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2hyb21pdW0vUmVzb3Vy
Y2VIYW5kbGUuY3BwCkBAIC01Miw4ICs1Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIC8vIFJlc291cmNlSGFuZGxlSW50ZXJuYWwgLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLVJlc291cmNlSGFu
ZGxlSW50ZXJuYWw6OlJlc291cmNlSGFuZGxlSW50ZXJuYWwoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JiByZXF1ZXN0LCBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KQotICAgIDogbV9yZXF1ZXN0
KHJlcXVlc3QpCitSZXNvdXJjZUhhbmRsZUludGVybmFsOjpSZXNvdXJjZUhhbmRsZUludGVybmFs
KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpCisgICAgOiBtX2NvbnRleHQoY29udGV4
dCkKKyAgICAsIG1fcmVxdWVzdChyZXF1ZXN0KQogICAgICwgbV9vd25lcigwKQogICAgICwgbV9j
bGllbnQoY2xpZW50KQogICAgICwgbV9zdGF0ZShDb25uZWN0aW9uU3RhdGVOZXcpCkBAIC0xNzgs
MTEgKzE3OSw4IEBAIFJlc291cmNlSGFuZGxlSW50ZXJuYWwqIFJlc291cmNlSGFuZGxlSW50ZXJu
YWw6OkZyb21SZXNvdXJjZUhhbmRsZShSZXNvdXJjZUhhbmRsCiAKIC8vIFJlc291cmNlSGFuZGxl
IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0KIAotUmVzb3VyY2VIYW5kbGU6OlJlc291cmNlSGFuZGxlKGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBSZXNvdXJjZUhh
bmRsZUNsaWVudCogY2xpZW50LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wg
ZGVmZXJzTG9hZGluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3Vs
ZENvbnRlbnRTbmlmZikKLSAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50ZXJu
YWwocmVxdWVzdCwgY2xpZW50KSkpCitSZXNvdXJjZUhhbmRsZTo6UmVzb3VyY2VIYW5kbGUoTmV0
d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwg
UmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCwgYm9vbCBkZWZlcnNMb2FkaW5nLCBib29sIHNo
b3VsZENvbnRlbnRTbmlmZikKKyAgICA6IGQoYWRvcHRQdHIobmV3IFJlc291cmNlSGFuZGxlSW50
ZXJuYWwoY29udGV4dCwgcmVxdWVzdCwgY2xpZW50KSkpCiB7CiAgICAgZC0+c2V0T3duZXIodGhp
cyk7CiAKQEAgLTE5Niw5ICsxOTQsOSBAQCBQYXNzUmVmUHRyPFJlc291cmNlSGFuZGxlPiBSZXNv
dXJjZUhhbmRsZTo6Y3JlYXRlKE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIHNob3VsZENvbnRl
bnRTbmlmZikKIHsKICAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IG5ld0hhbmRsZSA9IGFkb3B0
UmVmKG5ldyBSZXNvdXJjZUhhbmRsZSgKLSAgICAgICAgcmVxdWVzdCwgY2xpZW50LCBkZWZlcnNM
b2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKKyAgICAgICAgY29udGV4dCwgcmVxdWVzdCwg
Y2xpZW50LCBkZWZlcnNMb2FkaW5nLCBzaG91bGRDb250ZW50U25pZmYpKTsKIAotICAgIGlmIChu
ZXdIYW5kbGUtPnN0YXJ0KGNvbnRleHQpKQorICAgIGlmIChuZXdIYW5kbGUtPnN0YXJ0KCkpCiAg
ICAgICAgIHJldHVybiBuZXdIYW5kbGUucmVsZWFzZSgpOwogCiAgICAgcmV0dXJuIDA7CkBAIC0y
MDksNiArMjA3LDExIEBAIFJlc291cmNlUmVxdWVzdCYgUmVzb3VyY2VIYW5kbGU6OmZpcnN0UmVx
dWVzdCgpCiAgICAgcmV0dXJuIGQtPnJlcXVlc3QoKTsKIH0KIAorTmV0d29ya2luZ0NvbnRleHQq
IFJlc291cmNlSGFuZGxlOjpjb250ZXh0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gZC0+Y29udGV4
dCgpOworfQorCiBSZXNvdXJjZUhhbmRsZUNsaWVudCogUmVzb3VyY2VIYW5kbGU6OmNsaWVudCgp
IGNvbnN0CiB7CiAgICAgcmV0dXJuIGQtPmNsaWVudCgpOwpAQCAtMjI0LDkgKzIyNyw5IEBAIHZv
aWQgUmVzb3VyY2VIYW5kbGU6OnNldERlZmVyc0xvYWRpbmcoYm9vbCB2YWx1ZSkKICAgICBkLT5z
ZXREZWZlcnNMb2FkaW5nKHZhbHVlKTsKIH0KIAotYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQo
TmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCitib29sIFJlc291cmNlSGFuZGxlOjpzdGFydCgp
CiB7Ci0gICAgaWYgKCFjb250ZXh0KQorICAgIGlmICghZC0+Y29udGV4dCgpKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAKICAgICBkLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9jaHJvbWl1bS9SZXNvdXJjZUhhbmRsZUludGVybmFsLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50
ZXJuYWwuaAppbmRleCBkMzhkOTNlZjhlMjk3MDJlYzY2Y2Q4MTBlMjczY2ZiZWY1OTY2MmMzLi42
YTkxNTUxNmIxNWRmZjExOGYyZTBjNDUzZGQzOWNkYzdiMGE1NDJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291cmNlSGFuZGxlSW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2Nocm9taXVtL1Jlc291
cmNlSGFuZGxlSW50ZXJuYWwuaApAQCAtMzksMTIgKzM5LDEzIEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgTmV0d29ya2luZ0NvbnRleHQ7CiBjbGFzcyBSZXNvdXJjZUhhbmRsZTsK
IGNsYXNzIFJlc291cmNlSGFuZGxlQ2xpZW50OwogCiBjbGFzcyBSZXNvdXJjZUhhbmRsZUludGVy
bmFsIDogcHVibGljIFdlYktpdDo6V2ViVVJMTG9hZGVyQ2xpZW50IHsKIHB1YmxpYzoKLSAgICBS
ZXNvdXJjZUhhbmRsZUludGVybmFsKGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFu
ZGxlQ2xpZW50Kik7CisgICAgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbChOZXR3b3JraW5nQ29udGV4
dCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYsIFJlc291cmNlSGFuZGxlQ2xpZW50Kik7CiAKICAg
ICB2aXJ0dWFsIH5SZXNvdXJjZUhhbmRsZUludGVybmFsKCkgeyB9CiAKQEAgLTgwLDEwICs4MSwx
MiBAQCBwdWJsaWM6CiAgICAgUmVzb3VyY2VIYW5kbGVDbGllbnQqIGNsaWVudCgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xpZW50OyB9CiAgICAgdm9pZCBzZXRDbGllbnQoUmVzb3VyY2VIYW5kbGVDbGll
bnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIFdlYktpdDo6V2ViVVJMTG9h
ZGVyKiBsb2FkZXIoKSBjb25zdCB7IHJldHVybiBtX2xvYWRlci5nZXQoKTsgfQorICAgIE5ldHdv
cmtpbmdDb250ZXh0KiBjb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9jb250ZXh0LmdldCgpOyB9
CiAKICAgICBzdGF0aWMgUmVzb3VyY2VIYW5kbGVJbnRlcm5hbCogRnJvbVJlc291cmNlSGFuZGxl
KFJlc291cmNlSGFuZGxlKik7CiAKIHByaXZhdGU6CisgICAgUmVmUHRyPE5ldHdvcmtpbmdDb250
ZXh0PiBtX2NvbnRleHQ7CiAgICAgUmVzb3VyY2VSZXF1ZXN0IG1fcmVxdWVzdDsKICAgICBSZXNv
dXJjZUhhbmRsZSogbV9vd25lcjsKICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogbV9jbGllbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvUmVzb3Vy
Y2VIYW5kbGVDdXJsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCmluZGV4IDFkNDJhNWIwNGMzYTUxMzFmYWIxNDIyOWRkMmQx
MWNmNjMxMzhiOTEuLjljMzU3NjY3ZjhiN2MzOWM4M2YwMWVjZTIwNjMxZDRjZDMzMDBjZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9SZXNvdXJjZUhh
bmRsZUN1cmwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9S
ZXNvdXJjZUhhbmRsZUN1cmwuY3BwCkBAIC05NiwxNCArOTYsMTQgQEAgUmVzb3VyY2VIYW5kbGU6
On5SZXNvdXJjZUhhbmRsZSgpCiAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wgUmVzb3VyY2VIYW5k
bGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoKQogewogICAgIC8vIFRoZSBmcmFtZSBjb3VsZCBiZSBudWxsIGlmIHRoZSBSZXNv
dXJjZUhhbmRsZSBpcyBub3QgYXNzb2NpYXRlZCB0byBhbnkKICAgICAvLyBGcmFtZSwgZS5nLiBp
ZiB3ZSBhcmUgZG93bmxvYWRpbmcgYSBmaWxlLgogICAgIC8vIElmIHRoZSBmcmFtZSBpcyBub3Qg
bnVsbCBidXQgdGhlIHBhZ2UgaXMgbnVsbCB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkCiAgICAg
Ly8gbG9hZCBmcm9tIGFuIHVubG9hZCBoYW5kbGVyLCBzbyBsZXQncyBqdXN0IGJsb2NrIGl0Lgog
ICAgIC8vIElmIGJvdGggdGhlIGZyYW1lIGFuZCB0aGUgcGFnZSBhcmUgbm90IG51bGwgdGhlIGNv
bnRleHQgaXMgdmFsaWQuCi0gICAgaWYgKGNvbnRleHQgJiYgIWNvbnRleHQtPmlzVmFsaWQoKSkK
KyAgICBpZiAoZC0+bV9jb250ZXh0ICYmICFkLT5tX2NvbnRleHQtPmlzVmFsaWQoKSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VIYW5kbGVNYW5hZ2VyOjpzaGFyZWRJbnN0
YW5jZSgpLT5hZGQodGhpcyk7CkBAIC0xNzUsNyArMTc1LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6bG9hZHNCbG9ja2VkKCkKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNo
cm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVl
c3QsIFN0b3JlZENyZWRlbnRpYWxzIHN0b3JlZENyZWRlbnRpYWxzLCBSZXNvdXJjZUVycm9yJiBl
cnJvciwgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UsIFZlY3RvcjxjaGFyPiYgZGF0YSkKIHsK
ICAgICBXZWJDb3JlU3luY2hyb25vdXNMb2FkZXIgc3luY0xvYWRlcjsKLSAgICBSZWZQdHI8UmVz
b3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0
LCAmc3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKKyAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+
IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShjb250ZXh0LCByZXF1ZXN0LCAm
c3luY0xvYWRlciwgdHJ1ZSwgZmFsc2UpKTsKIAogICAgIFJlc291cmNlSGFuZGxlTWFuYWdlciog
bWFuYWdlciA9IFJlc291cmNlSGFuZGxlTWFuYWdlcjo6c2hhcmVkSW5zdGFuY2UoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5k
bGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhh
bmRsZU1hYy5tbQppbmRleCBjMGI4ZDNhYjc4ZGQxNjQxOWFhMDlmNTNkMmM4OGQ2N2JjMDMxNGMy
Li42NzIzNTM0ZDAyMGRlMzVkZGQ0OWU0NzUwMWZmZTJhMjlhNjlmMDZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRsZU1h
Yy5tbQpAQCAtMjE4LDE5ICsyMTgsMTkgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6Y3JlYXRlTlNV
UkxDb25uZWN0aW9uKGlkIGRlbGVnYXRlLCBib29sIHNob3VsZFVzZUNyZWRlbnRpYWwKIAogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKLSAgICBpZiAoIWNvbnRleHQpCisgICAg
aWYgKCFkLT5tX2NvbnRleHQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEJFR0lOX0JM
T0NLX09CSkNfRVhDRVBUSU9OUzsKIAogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlzIGlu
dmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAgICAvLyB0
aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgZXZlbnQgaGFuZGxl
ciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoIWNvbnRleHQtPmlzVmFsaWQoKSkK
KyAgICBpZiAoIWQtPm1fY29udGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKLSAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gY29udGV4dC0+c3RvcmFnZVNlc3Npb24oKS5w
bGF0Zm9ybVNlc3Npb24oKTsKKyAgICBkLT5tX3N0b3JhZ2VTZXNzaW9uID0gZC0+bV9jb250ZXh0
LT5zdG9yYWdlU2Vzc2lvbigpLnBsYXRmb3JtU2Vzc2lvbigpOwogCiAgICAgQVNTRVJUKCFkLT5t
X3Byb3h5KTsKICAgICBkLT5tX3Byb3h5LmFkb3B0TlMod2tDcmVhdGVOU1VSTENvbm5lY3Rpb25E
ZWxlZ2F0ZVByb3h5KCkpOwpAQCAtMjM4LDE2ICsyMzgsMTYgQEAgYm9vbCBSZXNvdXJjZUhhbmRs
ZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAKICAgICBib29sIHNob3VsZFVz
ZUNyZWRlbnRpYWxTdG9yYWdlID0gIWNsaWVudCgpIHx8IGNsaWVudCgpLT5zaG91bGRVc2VDcmVk
ZW50aWFsU3RvcmFnZSh0aGlzKTsKIAotICAgIGQtPm1fbmVlZHNTaXRlU3BlY2lmaWNRdWlya3Mg
PSBjb250ZXh0LT5uZWVkc1NpdGVTcGVjaWZpY1F1aXJrcygpOworICAgIGQtPm1fbmVlZHNTaXRl
U3BlY2lmaWNRdWlya3MgPSBkLT5tX2NvbnRleHQtPm5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKCk7
CiAKICAgICBjcmVhdGVOU1VSTENvbm5lY3Rpb24oCiAgICAgICAgIGQtPm1fcHJveHkuZ2V0KCks
CiAgICAgICAgIHNob3VsZFVzZUNyZWRlbnRpYWxTdG9yYWdlLAotICAgICAgICBzaG91bGRSZWxh
eFRoaXJkUGFydHlDb29raWVQb2xpY3koY29udGV4dCwgZmlyc3RSZXF1ZXN0KCkudXJsKCkpLAot
ICAgICAgICBkLT5tX3Nob3VsZENvbnRlbnRTbmlmZiB8fCBjb250ZXh0LT5sb2NhbEZpbGVDb250
ZW50U25pZmZpbmdFbmFibGVkKCkpOworICAgICAgICBzaG91bGRSZWxheFRoaXJkUGFydHlDb29r
aWVQb2xpY3koZC0+bV9jb250ZXh0LmdldCgpLCBmaXJzdFJlcXVlc3QoKS51cmwoKSksCisgICAg
ICAgIGQtPm1fc2hvdWxkQ29udGVudFNuaWZmIHx8IGQtPm1fY29udGV4dC0+bG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCgpKTsKIAogICAgIGJvb2wgc2NoZWR1bGVkID0gZmFsc2U7Ci0g
ICAgaWYgKFNjaGVkdWxlUGFpckhhc2hTZXQqIHNjaGVkdWxlZFBhaXJzID0gY29udGV4dC0+c2No
ZWR1bGVkUnVuTG9vcFBhaXJzKCkpIHsKKyAgICBpZiAoU2NoZWR1bGVQYWlySGFzaFNldCogc2No
ZWR1bGVkUGFpcnMgPSBkLT5tX2NvbnRleHQtPnNjaGVkdWxlZFJ1bkxvb3BQYWlycygpKSB7CiAg
ICAgICAgIFNjaGVkdWxlUGFpckhhc2hTZXQ6Oml0ZXJhdG9yIGVuZCA9IHNjaGVkdWxlZFBhaXJz
LT5lbmQoKTsKICAgICAgICAgZm9yIChTY2hlZHVsZVBhaXJIYXNoU2V0OjppdGVyYXRvciBpdCA9
IHNjaGVkdWxlZFBhaXJzLT5iZWdpbigpOyBpdCAhPSBlbmQ7ICsraXQpIHsKICAgICAgICAgICAg
IGlmIChOU1J1bkxvb3AgKnJ1bkxvb3AgPSAoKml0KS0+bnNSdW5Mb29wKCkpIHsKQEAgLTI1Nyw3
ICsyNTcsNyBAQCBib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCog
Y29udGV4dCkKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChOU09wZXJhdGlvblF1ZXVlICpv
cGVyYXRpb25RdWV1ZSA9IGNvbnRleHQtPnNjaGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkpIHsKKyAg
ICBpZiAoTlNPcGVyYXRpb25RdWV1ZSAqb3BlcmF0aW9uUXVldWUgPSBkLT5tX2NvbnRleHQtPnNj
aGVkdWxlZE9wZXJhdGlvblF1ZXVlKCkpIHsKICAgICAgICAgQVNTRVJUKCFzY2hlZHVsZWQpOwog
ICAgICAgICBbY29ubmVjdGlvbigpIHNldERlbGVnYXRlUXVldWU6b3BlcmF0aW9uUXVldWVdOwog
ICAgICAgICBzY2hlZHVsZWQgPSB0cnVlOwpAQCAtMzgxLDcgKzM4MSw3IEBAIHZvaWQgUmVzb3Vy
Y2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0CiAgICAgT3duUHRyPFdlYkNvcmVTeW5jaHJvbm91c0xvYWRlckNsaWVudD4g
Y2xpZW50ID0gV2ViQ29yZVN5bmNocm9ub3VzTG9hZGVyQ2xpZW50OjpjcmVhdGUoKTsKICAgICBj
bGllbnQtPnNldEFsbG93U3RvcmVkQ3JlZGVudGlhbHMoc3RvcmVkQ3JlZGVudGlhbHMgPT0gQWxs
b3dTdG9yZWRDcmVkZW50aWFscyk7CiAKLSAgICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRs
ZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhhbmRsZShyZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZh
bHNlIC8qZGVmZXJzTG9hZGluZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKKyAg
ICBSZWZQdHI8UmVzb3VyY2VIYW5kbGU+IGhhbmRsZSA9IGFkb3B0UmVmKG5ldyBSZXNvdXJjZUhh
bmRsZShjb250ZXh0LCByZXF1ZXN0LCBjbGllbnQuZ2V0KCksIGZhbHNlIC8qZGVmZXJzTG9hZGlu
ZyovLCB0cnVlIC8qc2hvdWxkQ29udGVudFNuaWZmKi8pKTsKIAogICAgIGhhbmRsZS0+ZC0+bV9z
dG9yYWdlU2Vzc2lvbiA9IGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9uKCkucGxhdGZvcm1TZXNzaW9u
KCk7CiAKQEAgLTY2OCw3ICs2NjgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENh
bmNlbGxhdGlvbihjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgY2hhbGxlbgogICAgIFJl
c291cmNlUmVxdWVzdCByZXF1ZXN0ID0gbmV3UmVxdWVzdDsKIAogICAgIC8vIFNob3VsZCBub3Qg
c2V0IFJlZmVyZXIgYWZ0ZXIgYSByZWRpcmVjdCBmcm9tIGEgc2VjdXJlIHJlc291cmNlIHRvIG5v
bi1zZWN1cmUgb25lLgotICAgIGlmICghcmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIp
ICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJyZXIoKSwgImh0dHBzIikpCisgICAgaWYg
KCFyZXF1ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhyZXF1ZXN0
Lmh0dHBSZWZlcnJlcigpLCAiaHR0cHMiKSAmJiBtX2hhbmRsZS0+Y29udGV4dCgpLT5zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpCiAgICAgICAgIHJlcXVlc3QuY2xl
YXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIG1faGFuZGxlLT53aWxsU2VuZFJlcXVlc3QocmVxdWVz
dCwgcmVkaXJlY3RSZXNwb25zZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL3F0L1FOZXR3b3JrUmVwbHlIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCmluZGV4IDBiNjRiNzli
YTQ0OWVhNDc4MmFjNzBmZTkzMDBlZDEyYjM0YmNiMDguLjFjYTU0M2U0NDJmNGVlYmMzNDVlODcx
MDQ1NDBkZDQzN2I3YzFhZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvcXQvUU5ldHdvcmtSZXBseUhhbmRsZXIuY3BwCkBAIC02NDcsNyArNjQ3
LDcgQEAgdm9pZCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6cmVkaXJlY3QoUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UsIGNvbnN0IFFVcmwmIHJlZGkKICAgICBuZXdSZXF1ZXN0LnNldFVSTChuZXdV
cmwpOwogCiAgICAgLy8gU2hvdWxkIG5vdCBzZXQgUmVmZXJlciBhZnRlciBhIHJlZGlyZWN0IGZy
b20gYSBzZWN1cmUgcmVzb3VyY2UgdG8gbm9uLXNlY3VyZSBvbmUuCi0gICAgaWYgKCFuZXdSZXF1
ZXN0LnVybCgpLnByb3RvY29sSXMoImh0dHBzIikgJiYgcHJvdG9jb2xJcyhuZXdSZXF1ZXN0Lmh0
dHBSZWZlcnJlcigpLCAiaHR0cHMiKSkKKyAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9j
b2xJcygiaHR0cHMiKSAmJiBwcm90b2NvbElzKG5ld1JlcXVlc3QuaHR0cFJlZmVycmVyKCksICJo
dHRwcyIpICYmIG1fcmVzb3VyY2VIYW5kbGUtPmNvbnRleHQoKS0+c2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpKQogICAgICAgICBuZXdSZXF1ZXN0LmNsZWFySFRUUFJl
ZmVycmVyKCk7CiAKICAgICBjbGllbnQtPndpbGxTZW5kUmVxdWVzdChtX3Jlc291cmNlSGFuZGxl
LCBuZXdSZXF1ZXN0LCByZXNwb25zZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9xdC9SZXNvdXJjZUhhbmRsZVF0LmNwcAppbmRleCAxMzc1MWViNjVkN2Yz
M2ZjOTdiYzIzNGE2ODI2NjE3OGI0MmFiNjFhLi42MmMwZmMxZTAxZDdlZGUxMmViZDZmYjBlZGVj
N2FmMjZiODJlMTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L3F0L1Jlc291cmNlSGFuZGxlUXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvcXQvUmVzb3VyY2VIYW5kbGVRdC5jcHAKQEAgLTkwLDExICs5MCwxMSBAQCBSZXNvdXJj
ZUhhbmRsZTo6flJlc291cmNlSGFuZGxlKCkKICAgICAgICAgY2FuY2VsKCk7CiB9CiAKLWJvb2wg
UmVzb3VyY2VIYW5kbGU6OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQorYm9vbCBS
ZXNvdXJjZUhhbmRsZTo6c3RhcnQoKQogewogICAgIC8vIElmIE5ldHdvcmtpbmdDb250ZXh0IGlz
IGludmFsaWQgdGhlbiB3ZSBhcmUgbm8gbG9uZ2VyIGF0dGFjaGVkIHRvIGEgUGFnZSwKICAgICAv
LyB0aGlzIG11c3QgYmUgYW4gYXR0ZW1wdGVkIGxvYWQgZnJvbSBhbiB1bmxvYWQgZXZlbnQgaGFu
ZGxlciwgc28gbGV0J3MganVzdCBibG9jayBpdC4KLSAgICBpZiAoY29udGV4dCAmJiAhY29udGV4
dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQgJiYgIWQtPm1fY29udGV4dC0+aXNW
YWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAoIWQtPm1fdXNlci5pc0Vt
cHR5KCkgfHwgIWQtPm1fcGFzcy5pc0VtcHR5KCkpIHsKQEAgLTEwNiw3ICsxMDYsNiBAQCBib29s
IFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkKICAgICAg
ICAgZC0+bV9maXJzdFJlcXVlc3Quc2V0VVJMKHVybFdpdGhDcmVkZW50aWFscyk7CiAgICAgfQog
Ci0gICAgZ2V0SW50ZXJuYWwoKS0+bV9jb250ZXh0ID0gY29udGV4dDsKICAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsICpkID0gZ2V0SW50ZXJuYWwoKTsKICAgICBkLT5tX2pvYiA9IG5ldyBRTmV0
d29ya1JlcGx5SGFuZGxlcih0aGlzLCBRTmV0d29ya1JlcGx5SGFuZGxlcjo6QXN5bmNocm9ub3Vz
TG9hZCwgZC0+bV9kZWZlcnNMb2FkaW5nKTsKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTEzNCw3ICsx
MzMsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpsb2FkUmVzb3VyY2VTeW5jaHJvbm91c2x5KE5l
dHdvcmtpbmdDb250ZXh0KiBjb250ZXh0LCBjb25zdAogICAgIH0KICNlbmRpZgogICAgIFdlYkNv
cmVTeW5jaHJvbm91c0xvYWRlciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25zZSwgZGF0YSk7Ci0g
ICAgUmVmUHRyPFJlc291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VI
YW5kbGUocmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CisgICAgUmVmUHRyPFJl
c291cmNlSGFuZGxlPiBoYW5kbGUgPSBhZG9wdFJlZihuZXcgUmVzb3VyY2VIYW5kbGUoY29udGV4
dCwgcmVxdWVzdCwgJnN5bmNMb2FkZXIsIHRydWUsIGZhbHNlKSk7CiAKICAgICBSZXNvdXJjZUhh
bmRsZUludGVybmFsKiBkID0gaGFuZGxlLT5nZXRJbnRlcm5hbCgpOwogICAgIGlmICghZC0+bV91
c2VyLmlzRW1wdHkoKSB8fCAhZC0+bV9wYXNzLmlzRW1wdHkoKSkgewpAQCAtMTQ1LDcgKzE0NCw2
IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5bmNocm9ub3VzbHkoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgICAgIHVybFdpdGhDcmVkZW50aWFscy5z
ZXRQYXNzKGQtPm1fcGFzcyk7CiAgICAgICAgIGQtPm1fZmlyc3RSZXF1ZXN0LnNldFVSTCh1cmxX
aXRoQ3JlZGVudGlhbHMpOwogICAgIH0KLSAgICBkLT5tX2NvbnRleHQgPSBjb250ZXh0OwogCiAg
ICAgLy8gc3RhcnRpbmcgaW4gZGVmZXJyZWQgbW9kZSBnaXZlcyBkLT5tX2pvYiB0aGUgY2hhbmNl
IG9mIGJlaW5nIHNldCBiZWZvcmUgc2VuZGluZyB0aGUgcmVxdWVzdC4KICAgICBkLT5tX2pvYiA9
IG5ldyBRTmV0d29ya1JlcGx5SGFuZGxlcihoYW5kbGUuZ2V0KCksIFFOZXR3b3JrUmVwbHlIYW5k
bGVyOjpTeW5jaHJvbm91c0xvYWQsIHRydWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9zb3VwL1Jlc291cmNlSGFuZGxlU291cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAppbmRleCAx
ZjZhZjNjYzE0M2JkYzJmMjk2NWJiMzYxNjQ2YjE2YzM5MDliOWRiLi5mMzg3YWY1MTI5MTc0ZTRh
NDQ0N2YwYjgxZDkwZmMxZjljZGZlOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvUmVzb3VyY2VIYW5kbGVTb3VwLmNwcApAQCAtNDY4
LDcgKzQ2OCw3IEBAIHN0YXRpYyB2b2lkIGRvUmVkaXJlY3QoUmVzb3VyY2VIYW5kbGUqIGhhbmRs
ZSkKICAgICB9CiAKICAgICAvLyBTaG91bGQgbm90IHNldCBSZWZlcmVyIGFmdGVyIGEgcmVkaXJl
Y3QgZnJvbSBhIHNlY3VyZSByZXNvdXJjZSB0byBub24tc2VjdXJlIG9uZS4KLSAgICBpZiAoIW5l
d1VSTC5wcm90b2NvbElzKCJodHRwcyIpICYmIHByb3RvY29sSXMocmVxdWVzdC5odHRwUmVmZXJy
ZXIoKSwgImh0dHBzIikpCisgICAgaWYgKCFuZXdVUkwucHJvdG9jb2xJcygiaHR0cHMiKSAmJiBw
cm90b2NvbElzKHJlcXVlc3QuaHR0cFJlZmVycmVyKCksICJodHRwcyIpICYmIGhhbmRsZS0+Y29u
dGV4dCgpLT5zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpCiAgICAg
ICAgIHJlcXVlc3QuY2xlYXJIVFRQUmVmZXJyZXIoKTsKIAogICAgIGQtPm1fdXNlciA9IG5ld1VS
TC51c2VyKCk7CkBAIC0xMDE4LDcgKzEwMTgsNyBAQCBzdGF0aWMgYm9vbCBjcmVhdGVTb3VwUmVx
dWVzdEFuZE1lc3NhZ2VGb3JIYW5kbGUoUmVzb3VyY2VIYW5kbGUqIGhhbmRsZSwgY29uc3QgUgog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3Jr
aW5nQ29udGV4dCogY29udGV4dCkKK2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAg
ICBBU1NFUlQoIWQtPm1fc291cE1lc3NhZ2UpOwogCkBAIC0xMDI3LDEyICsxMDI3LDkgQEAgYm9v
bCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAg
Ly8gSWYgdGhlIGZyYW1lIGlzIG5vdCBudWxsIGJ1dCB0aGUgcGFnZSBpcyBudWxsIHRoaXMgbXVz
dCBiZSBhbiBhdHRlbXB0ZWQKICAgICAvLyBsb2FkIGZyb20gYW4gdW5sb2FkIGhhbmRsZXIsIHNv
IGxldCdzIGp1c3QgYmxvY2sgaXQuCiAgICAgLy8gSWYgYm90aCB0aGUgZnJhbWUgYW5kIHRoZSBw
YWdlIGFyZSBub3QgbnVsbCB0aGUgY29udGV4dCBpcyB2YWxpZC4KLSAgICBpZiAoY29udGV4dCAm
JiAhY29udGV4dC0+aXNWYWxpZCgpKQorICAgIGlmIChkLT5tX2NvbnRleHQgJiYgIWQtPm1fY29u
dGV4dC0+aXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAvLyBVc2VkIHRv
IHNldCB0aGUga2VlcCB0cmFjayBvZiBjdXN0b20gU291cFNlc3Npb25zIGZvciBwb3J0cyB0aGF0
IHN1cHBvcnQgaXQgKEVGTCkuCi0gICAgZC0+bV9jb250ZXh0ID0gY29udGV4dDsKLQogICAgIC8v
IE9ubHkgYWxsb3cgdGhlIFBPU1QgYW5kIEdFVCBtZXRob2RzIGZvciBub24tSFRUUCByZXF1ZXN0
cy4KICAgICBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QgPSBmaXJzdFJlcXVlc3QoKTsK
ICAgICBib29sIGlzSFRUUEZhbWlseVJlcXVlc3QgPSByZXF1ZXN0LnVybCgpLnByb3RvY29sSXNJ
bkhUVFBGYW1pbHkoKTsKQEAgLTEwNDgsNyArMTA0NSw3IEBAIGJvb2wgUmVzb3VyY2VIYW5kbGU6
OnN0YXJ0KE5ldHdvcmtpbmdDb250ZXh0KiBjb250ZXh0KQogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKLSAgICBzZXRTb3VwUmVxdWVzdEluaXRpYXRpbmdQYWdlSURGcm9tTmV0d29ya2lu
Z0NvbnRleHQoZC0+bV9zb3VwUmVxdWVzdC5nZXQoKSwgY29udGV4dCk7CisgICAgc2V0U291cFJl
cXVlc3RJbml0aWF0aW5nUGFnZUlERnJvbU5ldHdvcmtpbmdDb250ZXh0KGQtPm1fc291cFJlcXVl
c3QuZ2V0KCksIGQtPm1fY29udGV4dC5nZXQoKSk7CiAKICAgICAvLyBTZW5kIHRoZSByZXF1ZXN0
IG9ubHkgaWYgaXQncyBub3QgYmVlbiBleHBsaWNpdGx5IGRlZmVycmVkLgogICAgIGlmICghZC0+
bV9kZWZlcnNMb2FkaW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay93aW4vUmVzb3VyY2VIYW5kbGVXaW4uY3BwCmluZGV4IDhhMWQxOTlhZTE0ZWVjOWEz
OGE2M2Q4NmUwNDA5NTg0OTdkMjc5M2QuLjU5MGViMzEyM2UwYTlkNWVkYzQxMjUzNDUxNmQxZDE1
Nzc2NmJiOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvd2lu
L1Jlc291cmNlSGFuZGxlV2luLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL3dpbi9SZXNvdXJjZUhhbmRsZVdpbi5jcHAKQEAgLTI2NSw3ICsyNjUsNyBAQCBib29sIFJl
c291cmNlSGFuZGxlOjpvblJlcXVlc3RDb21wbGV0ZSgpCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci1ib29sIFJlc291cmNlSGFuZGxlOjpzdGFydChOZXR3b3JraW5nQ29udGV4dCogY29udGV4dCkK
K2Jvb2wgUmVzb3VyY2VIYW5kbGU6OnN0YXJ0KCkKIHsKICAgICBpZiAoZmlyc3RSZXF1ZXN0KCku
dXJsKCkuaXNMb2NhbEZpbGUoKSB8fCBmaXJzdFJlcXVlc3QoKS51cmwoKS5wcm90b2NvbElzRGF0
YSgpKSB7CiAgICAgICAgIHJlZigpOyAvLyBiYWxhbmNlZCBieSBkZXJlZiBpbiBmaWxlTG9hZFRp
bWVyCkBAIC0yNzcsNyArMjc3LDcgQEAgYm9vbCBSZXNvdXJjZUhhbmRsZTo6c3RhcnQoTmV0d29y
a2luZ0NvbnRleHQqIGNvbnRleHQpCiAgICAgfQogCiAgICAgaWYgKCFkLT5tX2ludGVybmV0SGFu
ZGxlKQotICAgICAgICBkLT5tX2ludGVybmV0SGFuZGxlID0gYXN5bmNocm9ub3VzSW50ZXJuZXRI
YW5kbGUoY29udGV4dC0+dXNlckFnZW50KCkpOworICAgICAgICBkLT5tX2ludGVybmV0SGFuZGxl
ID0gYXN5bmNocm9ub3VzSW50ZXJuZXRIYW5kbGUoZC0+bV9jb250ZXh0LT51c2VyQWdlbnQoKSk7
CiAKICAgICBpZiAoIWQtPm1faW50ZXJuZXRIYW5kbGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
QEAgLTQxOSwxMCArNDE5LDEwIEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmxvYWRSZXNvdXJjZVN5
bmNocm9ub3VzbHkoTmV0d29ya2luZ0NvbnRleHQqIGNvbnRleHQsIGNvbnN0CiAgICAgVU5VU0VE
X1BBUkFNKHN0b3JlZENyZWRlbnRpYWxzKTsKIAogICAgIFdlYkNvcmVTeW5jaHJvbm91c0xvYWRl
ciBzeW5jTG9hZGVyKGVycm9yLCByZXNwb25zZSwgZGF0YSwgcmVxdWVzdC5odHRwVXNlckFnZW50
KCkpOwotICAgIFJlc291cmNlSGFuZGxlIGhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRlciwgdHJ1
ZSwgZmFsc2UpOworICAgIFJlc291cmNlSGFuZGxlIGhhbmRsZShyZXF1ZXN0LCAmc3luY0xvYWRl
ciwgdHJ1ZSwgZmFsc2UsIGNvbnRleHQpOwogCiAgICAgaGFuZGxlLnNldFN5bmNocm9ub3VzSW50
ZXJuZXRIYW5kbGUoc3luY0xvYWRlci5pbnRlcm5ldEhhbmRsZSgpKTsKLSAgICBoYW5kbGUuc3Rh
cnQoY29udGV4dCk7CisgICAgaGFuZGxlLnN0YXJ0KCk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnNldFN5bmNocm9ub3VzSW50ZXJuZXRIYW5kbGUoSElOVEVSTkVUIGludGVybmV0SGFuZGxl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291
cmNlTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5jcHAKaW5kZXggMmNiZDk4OTIxMTc5ZTY2NzliZTk0ODk3ZDI2NGNkYzI4ZTQ4
M2IxMy4uN2Y0YmJkZDgzNDY3ZGM5ZTYwMzhlY2NkNDYyZDhlNTE4ODJkYzE4ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuY3BwCkBAIC03OCw3ICs3OCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFy
dCgpCiAgICAgcmVmKCk7CiAgICAgCiAgICAgLy8gRklYTUUgKE5ldHdvcmtQcm9jZXNzKTogQ3Jl
YXRlIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IHdpdGggYWN0dWFsIHNldHRpbmdzLgotICAgIG1f
bmV0d29ya2luZ0NvbnRleHQgPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNl
LCBmYWxzZSwgaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkpOworICAgIG1fbmV0d29ya2luZ0NvbnRl
eHQgPSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6Y3JlYXRlKGZhbHNlLCBmYWxzZSwgaW5Qcml2
YXRlQnJvd3NpbmdNb2RlKCksIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QoKSk7CiAKICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwIGIvU291
cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuY3BwCmluZGV4IGU3
MDhiMDlkZDc2ZmU2MDIyYTA2ZjUyODgwMTU4Y2ZiYjhmNzZkOGQuLmI2Y2UzNTYyYTg3MzhlMmNm
YzQwYTFmOWYzYTQyOTZmNWI5NGFlYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdv
cmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3
b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRlci5jcHAKQEAgLTQwLDYgKzQwLDcgQEAgU2NoZWR1
bGFibGVMb2FkZXI6OlNjaGVkdWxhYmxlTG9hZGVyKGNvbnN0IE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiBwYXJhbWUKICAgICAsIG1fYWxsb3dTdG9yZWRDcmVkZW50aWFscyhwYXJhbWV0
ZXJzLmFsbG93U3RvcmVkQ3JlZGVudGlhbHMoKSkKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdN
b2RlKHBhcmFtZXRlcnMuaW5Qcml2YXRlQnJvd3NpbmdNb2RlKCkpCiAgICAgLCBtX2Nvbm5lY3Rp
b24oY29ubmVjdGlvbikKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBS
ZWRpcmVjdChwYXJhbWV0ZXJzLnNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJl
Y3QoKSkKIHsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBwYXJhbWV0ZXJzLnJlcXVl
c3RCb2R5U2FuZGJveEV4dGVuc2lvbnMoKS5zaXplKCk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAg
ICAgIGlmIChSZWZQdHI8U2FuZGJveEV4dGVuc2lvbj4gZXh0ZW5zaW9uID0gU2FuZGJveEV4dGVu
c2lvbjo6Y3JlYXRlKHBhcmFtZXRlcnMucmVxdWVzdEJvZHlTYW5kYm94RXh0ZW5zaW9ucygpW2ld
KSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxl
TG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TY2hlZHVsYWJsZUxvYWRl
ci5oCmluZGV4IGIwOGU4MWIyY2I2NjIxNDhjZGY5NTNiYWM0YzgzYjcxNDc1N2I5YzMuLmE2MWE2
ZmY1ODlmNTE2MGZlZDIyMGJmYjI5NjBiMDQ1ZGMwNmEwM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL05ldHdvcmtQcm9jZXNzL1NjaGVkdWxhYmxlTG9hZGVyLmgKKysrIGIvU291cmNlL1dl
YktpdDIvTmV0d29ya1Byb2Nlc3MvU2NoZWR1bGFibGVMb2FkZXIuaApAQCAtNjUsNiArNjUsOCBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKICAgICB2
b2lkIGludmFsaWRhdGVTYW5kYm94RXh0ZW5zaW9ucygpOwogCisgICAgYm9vbCBzaG91bGRDbGVh
clJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRD
bGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CisKIHByaXZhdGU6CiAgICAgUmVz
b3VyY2VMb2FkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV93ZWJQYWdl
SUQ7CkBAIC04MSw2ICs4Myw4IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzPiBtX2Nvbm5lY3Rpb247CiAgICAgCiAgICAgUmVmUHRyPEhvc3RSZWNv
cmQ+IG1faG9zdFJlY29yZDsKKworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQ
U1RvSFRUUFJlZGlyZWN0OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9TeW5jTmV0d29ya1Jlc291cmNlTG9hZGVy
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1N5bmNOZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCmluZGV4IGMxODEyOTUxYWY0OTBkODNkZTVlNjIzNTQ1ZThlNDYyNWRhM2E4YjAu
LjFmODJkMTQ5YzJlYmQwMGYwMDVkZTNhOTZhM2U0ZjllMTAxYTVhZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1N5bmNOZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL1N5bmNOZXR3b3JrUmVzb3VyY2VM
b2FkZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIHZvaWQgU3luY05ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6c3RhcnQoKQogICAgIFZlY3RvcjxjaGFyPiBkYXRhOwogICAgIAogICAgIC8vIEZJWE1FIChO
ZXR3b3JrUHJvY2Vzcyk6IENyZWF0ZSBSZW1vdGVOZXR3b3JraW5nQ29udGV4dCB3aXRoIGFjdHVh
bCBzZXR0aW5ncy4KLSAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0NvbnRleHQ+IG5ldHdvcmtp
bmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0ZShmYWxzZSwgZmFsc2Us
IGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpKTsKKyAgICBSZWZQdHI8UmVtb3RlTmV0d29ya2luZ0Nv
bnRleHQ+IG5ldHdvcmtpbmdDb250ZXh0ID0gUmVtb3RlTmV0d29ya2luZ0NvbnRleHQ6OmNyZWF0
ZShmYWxzZSwgZmFsc2UsIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSgpLCBzaG91bGRDbGVhclJlZmVy
cmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkpOwogCiAgICAgY29uc3VtZVNhbmRib3hFeHRlbnNp
b25zKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21hYy9S
ZW1vdGVOZXR3b3JraW5nQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKaW5kZXggNWM1ZjE2M2IzZTZlMDgwZGUzODUw
MGU5M2QzZjc5NjU3YzU5OWY2Ni4uMjk2MGQwNDY4MWM4NGMwYzk2MTM5MWM0YjI5NzBkZGVlOGFk
YjNmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvbWFjL1JlbW90
ZU5ldHdvcmtpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0LmgKQEAgLTMyLDkgKzMyLDkgQEAgbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIFJlbW90ZU5ldHdvcmtpbmdDb250ZXh0IDogcHVibGljIFdlYkNv
cmU6Ok5ldHdvcmtpbmdDb250ZXh0IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxS
ZW1vdGVOZXR3b3JraW5nQ29udGV4dD4gY3JlYXRlKGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWly
a3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJv
d3NpbmdFbmFibGVkKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFJlbW90ZU5ldHdvcmtpbmdDb250
ZXh0PiBjcmVhdGUoYm9vbCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVD
b250ZW50U25pZmZpbmdFbmFibGVkLCBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIGJvb2wg
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQobmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MsIGxvY2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQsIHByaXZhdGVCcm93
c2luZ0VuYWJsZWQpKTsKKyAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBSZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dChuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgbG9jYWxGaWxlQ29udGVudFNuaWZm
aW5nRW5hYmxlZCwgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCwgc2hvdWxkQ2xlYXJSZWZlcnJlck9u
SFRUUFNUb0hUVFBSZWRpcmVjdCkpOwogICAgIH0KICAgICB2aXJ0dWFsIH5SZW1vdGVOZXR3b3Jr
aW5nQ29udGV4dCgpOwogCkBAIC00NCw4ICs0NCwxMCBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMg
V2ViQ29yZTo6TmV0d29ya1N0b3JhZ2VTZXNzaW9uJiBwcml2YXRlQnJvd3NpbmdTZXNzaW9uKCk7
IC8vIENhbiBvbmx5IGJlIGNhbGxlZCB3aGVuIHRoZSBzZXNzaW9uIGV4aXN0cy4KIAorICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29u
c3QgT1ZFUlJJREU7CisKIHByaXZhdGU6Ci0gICAgUmVtb3RlTmV0d29ya2luZ0NvbnRleHQoYm9v
bCBuZWVkc1NpdGVTcGVjaWZpY1F1aXJrcywgYm9vbCBsb2NhbEZpbGVDb250ZW50U25pZmZpbmdF
bmFibGVkLCBib29sIHByaXZhdGVCcm93c2luZ0VuYWJsZWQpOworICAgIFJlbW90ZU5ldHdvcmtp
bmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29u
dGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIG1f
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCk7CiAKICAgICB2aXJ0dWFs
IGJvb2wgaXNWYWxpZCgpIGNvbnN0IE9WRVJSSURFOwogCkBAIC01OCw2ICs2MCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzOwogICAgIGJvb2wgbV9sb2Nh
bEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkOwogICAgIGJvb2wgbV9wcml2YXRlQnJvd3NpbmdF
bmFibGVkOworICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGly
ZWN0OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3Mv
bWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvbWFjL1JlbW90ZU5ldHdvcmtpbmdDb250ZXh0Lm1tCmluZGV4IGRlN2UwZmM0ZmRlZGQz
N2U4ODEyNzg4NjlkZDVkMGY4OTMxZTZjZDIuLjc4MTk1MzNhNTI5YjU2YWY0MGEwY2I5ZWM2YWUx
YzljNzkxY2EyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL21h
Yy9SZW1vdGVOZXR3b3JraW5nQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9tYWMvUmVtb3RlTmV0d29ya2luZ0NvbnRleHQubW0KQEAgLTQyLDEwICs0MiwxNiBA
QCBzdGF0aWMgT3duUHRyPE5ldHdvcmtTdG9yYWdlU2Vzc2lvbj4mIHByaXZhdGVCcm93c2luZ1N0
b3JhZ2VTZXNzaW9uKCkKICAgICByZXR1cm4gc2Vzc2lvbjsKIH0KIAotUmVtb3RlTmV0d29ya2lu
Z0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3BlY2lmaWNR
dWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBwcml2YXRl
QnJvd3NpbmdFbmFibGVkKQorYm9vbCBSZW1vdGVOZXR3b3JraW5nQ29udGV4dDo6c2hvdWxkQ2xl
YXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1f
c2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdDsKK30KKworUmVtb3RlTmV0
d29ya2luZ0NvbnRleHQ6OlJlbW90ZU5ldHdvcmtpbmdDb250ZXh0KGJvb2wgbmVlZHNTaXRlU3Bl
Y2lmaWNRdWlya3MsIGJvb2wgbG9jYWxGaWxlQ29udGVudFNuaWZmaW5nRW5hYmxlZCwgYm9vbCBw
cml2YXRlQnJvd3NpbmdFbmFibGVkLCBib29sIHNob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9I
VFRQUmVkaXJlY3QpCiAgICAgOiBtX25lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKG5lZWRzU2l0ZVNw
ZWNpZmljUXVpcmtzKQogICAgICwgbV9sb2NhbEZpbGVDb250ZW50U25pZmZpbmdFbmFibGVkKGxv
Y2FsRmlsZUNvbnRlbnRTbmlmZmluZ0VuYWJsZWQpCiAgICAgLCBtX3ByaXZhdGVCcm93c2luZ0Vu
YWJsZWQocHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCkKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJl
ck9uSFRUUFNUb0hUVFBSZWRpcmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0KQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvTmV0d29y
ay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFy
ZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAKaW5kZXggODA3Mzhj
YjU2ZmU0Mjc3ZDNlMjA2ZjEwMWZlNTIwMDg1ZmQ5NWE1NS4uNjUzZDcyMzViZDA1NjAyN2IyODAz
MjQ1ZTY0YWQ5NDI3NmM5M2FlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL05l
dHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9OZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcApAQCAt
NDUsMTAgKzQ1LDExIEBAIE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVz
b3VyY2VMb2FkUGFyYW1ldGVycygpCiAgICAgLCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeShTbmlm
ZkNvbnRlbnQpCiAgICAgLCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHMoRG9Ob3RBbGxvd1N0b3Jl
ZENyZWRlbnRpYWxzKQogICAgICwgbV9pblByaXZhdGVCcm93c2luZ01vZGUoZmFsc2UpCisgICAg
LCBtX3Nob3VsZENsZWFyUmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QodHJ1ZSkKIHsKIH0K
IAotTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6Ok5ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzKFJlc291cmNlTG9hZElkZW50aWZpZXIgaWRlbnRpZmllciwgdWludDY0X3Qgd2ViUGFn
ZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3Qs
IFJlc291cmNlTG9hZFByaW9yaXR5IHByaW9yaXR5LCBDb250ZW50U25pZmZpbmdQb2xpY3kgY29u
dGVudFNuaWZmaW5nUG9saWN5LCBTdG9yZWRDcmVkZW50aWFscyBhbGxvd1N0b3JlZENyZWRlbnRp
YWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSkKK05ldHdvcmtSZXNvdXJjZUxvYWRQYXJh
bWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhSZXNvdXJjZUxvYWRJZGVudGlm
aWVyIGlkZW50aWZpZXIsIHVpbnQ2NF90IHdlYlBhZ2VJRCwgdWludDY0X3Qgd2ViRnJhbWVJRCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eSBwcmlv
cml0eSwgQ29udGVudFNuaWZmaW5nUG9saWN5IGNvbnRlbnRTbmlmZmluZ1BvbGljeSwgU3RvcmVk
Q3JlZGVudGlhbHMgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZhdGVCcm93c2lu
Z01vZGUsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRpcmVjdCkKICAg
ICA6IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV93ZWJQYWdlSUQod2ViUGFnZUlE
KQogICAgICwgbV93ZWJGcmFtZUlEKHdlYkZyYW1lSUQpCkBAIC01Nyw2ICs1OCw3IEBAIE5ldHdv
cmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzOjpOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyhS
ZXNvdXJjZUxvYWRJZGVudGlmCiAgICAgLCBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeShjb250ZW50
U25pZmZpbmdQb2xpY3kpCiAgICAgLCBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHMoYWxsb3dTdG9y
ZWRDcmVkZW50aWFscykKICAgICAsIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlKGluUHJpdmF0ZUJy
b3dzaW5nTW9kZSkKKyAgICAsIG1fc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdChzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KQogewogfQogCkBA
IC0xMDMsNiArMTA1LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVyczo6ZW5j
b2RlKENvcmVJUEM6OkFyZ3VtZW50RW5jb2RlciYgZW5jb2RlcikgY28KICAgICBlbmNvZGVyLmVu
Y29kZUVudW0obV9jb250ZW50U25pZmZpbmdQb2xpY3kpOwogICAgIGVuY29kZXIuZW5jb2RlRW51
bShtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHMpOwogICAgIGVuY29kZXIuZW5jb2RlKG1faW5Qcml2
YXRlQnJvd3NpbmdNb2RlKTsKKyAgICBlbmNvZGVyLmVuY29kZShtX3Nob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogfQogCiBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzOjpkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiBkZWNvZGVyLCBOZXR3
b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYgcmVzdWx0KQpAQCAtMTQ3LDYgKzE1MCw4IEBAIGJv
b2wgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnM6OmRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImIGRlY29kZXIsIE5lCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlKHJlc3VsdC5tX2luUHJpdmF0ZUJyb3dzaW5nTW9kZSkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHJlc3VsdC5tX3Nob3VsZENsZWFy
UmVmZXJyZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QpKQorICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvTmV0d29yay9OZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5oCmluZGV4IDU2NDQy
ZDY3MmM5MjYxZTdjMmM1YzcxNWEzMjM4NzAyOTJhYjY3N2EuLmQ1YmJmMzNhMzU3NjUzOTE4MzNk
YTZjZDYxNGYxNzhjYjJiMGRhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9O
ZXR3b3JrL05ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL05ldHdvcmsvTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMuaApAQCAtNDUs
NyArNDUsNyBAQCB0eXBlZGVmIHVpbnQ2NF90IFJlc291cmNlTG9hZElkZW50aWZpZXI7CiBjbGFz
cyBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyB7CiBwdWJsaWM6CiAgICAgTmV0d29ya1Jl
c291cmNlTG9hZFBhcmFtZXRlcnMoKTsKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVy
cyhSZXNvdXJjZUxvYWRJZGVudGlmaWVyLCB1aW50NjRfdCB3ZWJQYWdlSUQsIHVpbnQ2NF90IHdl
YkZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYsIFdlYkNvcmU6OlJlc291
cmNlTG9hZFByaW9yaXR5LCBXZWJDb3JlOjpDb250ZW50U25pZmZpbmdQb2xpY3ksIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzLCBib29sIGluUHJpdmF0ZUJyb3dzaW5nTW9kZSk7CisgICAgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMoUmVzb3VyY2VMb2FkSWRlbnRpZmllciwgdWludDY0
X3Qgd2ViUGFnZUlELCB1aW50NjRfdCB3ZWJGcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QmLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwgV2ViQ29yZTo6Q29udGVu
dFNuaWZmaW5nUG9saWN5LCBXZWJDb3JlOjpTdG9yZWRDcmVkZW50aWFscywgYm9vbCBpblByaXZh
dGVCcm93c2luZ01vZGUsIGJvb2wgc2hvdWxkQ2xlYXJSZWZlcnJlck9uSFRUUFNUb0hUVFBSZWRp
cmVjdCk7CiAKICAgICB2b2lkIGVuY29kZShDb3JlSVBDOjpBcmd1bWVudEVuY29kZXImKSBjb25z
dDsKICAgICBzdGF0aWMgYm9vbCBkZWNvZGUoQ29yZUlQQzo6QXJndW1lbnREZWNvZGVyJiwgTmV0
d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmKTsKQEAgLTYwLDYgKzYwLDcgQEAgcHVibGljOgog
ICAgIFdlYkNvcmU6OkNvbnRlbnRTbmlmZmluZ1BvbGljeSBjb250ZW50U25pZmZpbmdQb2xpY3ko
KSBjb25zdCB7IHJldHVybiBtX2NvbnRlbnRTbmlmZmluZ1BvbGljeTsgfQogICAgIFdlYkNvcmU6
OlN0b3JlZENyZWRlbnRpYWxzIGFsbG93U3RvcmVkQ3JlZGVudGlhbHMoKSBjb25zdCB7IHJldHVy
biBtX2FsbG93U3RvcmVkQ3JlZGVudGlhbHM7IH0KICAgICBib29sIGluUHJpdmF0ZUJyb3dzaW5n
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlOyB9CisgICAgYm9v
bCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KCkgY29uc3QgeyByZXR1
cm4gbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OyB9CiAKIHByaXZh
dGU6CiAgICAgUmVzb3VyY2VMb2FkSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CkBAIC03Miw2ICs3
Myw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6Q29udGVudFNuaWZmaW5nUG9saWN5IG1fY29u
dGVudFNuaWZmaW5nUG9saWN5OwogICAgIFdlYkNvcmU6OlN0b3JlZENyZWRlbnRpYWxzIG1fYWxs
b3dTdG9yZWRDcmVkZW50aWFsczsKICAgICBib29sIG1faW5Qcml2YXRlQnJvd3NpbmdNb2RlOwor
ICAgIGJvb2wgbV9zaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCmluZGV4
IDViYzVlYTFjMDk3ZGZmMjJjYjVhODQ2MDhjNDhmYTU0MmMxMTMyYzIuLmI1MWUyNWNmM2QxNWQ2
ZDY1M2QyYjRmOTkwYjI3Y2VjZjIzYTY3ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuY3Bw
CkBAIC0zNywxMCArMzcsMTIgQEAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAjaW5jbHVkZSAiV2Vi
UHJvY2Vzcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZGVyLmgiCisjaW5jbHVkZSA8V2Vi
Q29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZUxvYWRlci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXIuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1JlZmVycmVyUG9saWN5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUJ1ZmZlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VMb2FkZXIuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1NldHRpbmdzLmg+CkBAIC02Nyw3ICs2OSw3IEBAIFBhc3NSZWZQdHI8U3VicmVz
b3VyY2VMb2FkZXI+IFdlYlJlc291cmNlTG9hZFNjaGVkdWxlcjo6c2NoZWR1bGVTdWJyZXNvdXJj
ZUxvYWQoCiB7CiAgICAgUmVmUHRyPFN1YnJlc291cmNlTG9hZGVyPiBsb2FkZXIgPSBTdWJyZXNv
dXJjZUxvYWRlcjo6Y3JlYXRlKGZyYW1lLCByZXNvdXJjZSwgcmVxdWVzdCwgb3B0aW9ucyk7CiAg
ICAgaWYgKGxvYWRlcikKLSAgICAgICAgc2NoZWR1bGVMb2FkKGxvYWRlci5nZXQoKSwgcHJpb3Jp
dHkpOworICAgICAgICBzY2hlZHVsZUxvYWQobG9hZGVyLmdldCgpLCBwcmlvcml0eSwgZnJhbWUt
PmRvY3VtZW50KCktPnJlZmVycmVyUG9saWN5KCkgPT0gUmVmZXJyZXJQb2xpY3lEZWZhdWx0KTsK
ICAgICByZXR1cm4gbG9hZGVyLnJlbGVhc2UoKTsKIH0KIApAQCAtNzUsMTEgKzc3LDExIEBAIFBh
c3NSZWZQdHI8TmV0c2NhcGVQbHVnSW5TdHJlYW1Mb2FkZXI+IFdlYlJlc291cmNlTG9hZFNjaGVk
dWxlcjo6c2NoZWR1bGVQbHVnaW5TCiB7CiAgICAgUmVmUHRyPE5ldHNjYXBlUGx1Z0luU3RyZWFt
TG9hZGVyPiBsb2FkZXIgPSBOZXRzY2FwZVBsdWdJblN0cmVhbUxvYWRlcjo6Y3JlYXRlKGZyYW1l
LCBjbGllbnQsIHJlcXVlc3QpOwogICAgIGlmIChsb2FkZXIpCi0gICAgICAgIHNjaGVkdWxlTG9h
ZChsb2FkZXIuZ2V0KCksIFJlc291cmNlTG9hZFByaW9yaXR5TG93KTsKKyAgICAgICAgc2NoZWR1
bGVMb2FkKGxvYWRlci5nZXQoKSwgUmVzb3VyY2VMb2FkUHJpb3JpdHlMb3csIGZyYW1lLT5kb2N1
bWVudCgpLT5yZWZlcnJlclBvbGljeSgpID09IFJlZmVycmVyUG9saWN5RGVmYXVsdCk7CiAgICAg
cmV0dXJuIGxvYWRlci5yZWxlYXNlKCk7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1
bGVyOjpzY2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNvdXJj
ZUxvYWRQcmlvcml0eSBwcmlvcml0eSkKK3ZvaWQgV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyOjpz
Y2hlZHVsZUxvYWQoUmVzb3VyY2VMb2FkZXIqIHJlc291cmNlTG9hZGVyLCBSZXNvdXJjZUxvYWRQ
cmlvcml0eSBwcmlvcml0eSwgYm9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJl
ZGlyZWN0KQogewogICAgIEFTU0VSVChyZXNvdXJjZUxvYWRlcik7CiAgICAgQVNTRVJUKHByaW9y
aXR5ICE9IFJlc291cmNlTG9hZFByaW9yaXR5VW5yZXNvbHZlZCk7CkBAIC0xMDUsNyArMTA3LDcg
QEAgdm9pZCBXZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXI6OnNjaGVkdWxlTG9hZChSZXNvdXJjZUxv
YWRlciogcmVzb3VyY2VMb2FkZXIsIFJlc28KICAgICBXZWJGcmFtZSogd2ViRnJhbWUgPSBzdGF0
aWNfY2FzdDxXZWJGcmFtZUxvYWRlckNsaWVudCo+KHJlc291cmNlTG9hZGVyLT5mcmFtZUxvYWRl
cigpLT5jbGllbnQoKSktPndlYkZyYW1lKCk7CiAgICAgV2ViUGFnZSogd2ViUGFnZSA9IHdlYkZy
YW1lLT5wYWdlKCk7CiAKLSAgICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFy
YW1ldGVycyhpZGVudGlmaWVyLCB3ZWJQYWdlLT5wYWdlSUQoKSwgd2ViRnJhbWUtPmZyYW1lSUQo
KSwgcmVzb3VyY2VMb2FkZXItPnJlcXVlc3QoKSwgcHJpb3JpdHksIGNvbnRlbnRTbmlmZmluZ1Bv
bGljeSwgYWxsb3dTdG9yZWRDcmVkZW50aWFscywgcHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCk7Cisg
ICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9hZFBhcmFtZXRlcnMoaWRlbnRpZmll
ciwgd2ViUGFnZS0+cGFnZUlEKCksIHdlYkZyYW1lLT5mcmFtZUlEKCksIHJlc291cmNlTG9hZGVy
LT5yZXF1ZXN0KCksIHByaW9yaXR5LCBjb250ZW50U25pZmZpbmdQb2xpY3ksIGFsbG93U3RvcmVk
Q3JlZGVudGlhbHMsIHByaXZhdGVCcm93c2luZ0VuYWJsZWQsIHNob3VsZENsZWFyUmVmZXJyZXJP
bkhUVFBTVG9IVFRQUmVkaXJlY3QpOwogICAgIGlmICghV2ViUHJvY2Vzczo6c2hhcmVkKCkubmV0
d29ya0Nvbm5lY3Rpb24oKS0+Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6U2NoZWR1bGVSZXNvdXJjZUxvYWQobG9hZFBhcmFtZXRlcnMp
LCAwKSkgewogICAgICAgICAvLyBXZSBwcm9iYWJseSBmYWlsZWQgdG8gc2NoZWR1bGUgdGhpcyBs
b2FkIHdpdGggdGhlIE5ldHdvcmtQcm9jZXNzIGJlY2F1c2UgaXQgaGFkIGNyYXNoZWQuCiAgICAg
ICAgIC8vIFRoaXMgbG9hZCB3aWxsIG5ldmVyIHN1Y2NlZWQgc28gd2Ugd2lsbCBzY2hlZHVsZSBp
dCB0byBmYWlsIGFzeW5jaHJvbm91c2x5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlJlc291cmNlTG9hZFNjaGVkdWxlci5oCmluZGV4IGY3
MzIwNmEyNjU2Njc0MDk4MjRlODIxNGY2MTlhMjJiNGM2ODQwMGMuLmM1MzQ1NjIyOTZiYWY2NmNk
NDcxYWEwODRlZDY5ZDk4YzE5OTY0OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJSZXNvdXJjZUxvYWRTY2hlZHVsZXIuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL05ldHdvcmsvV2ViUmVzb3VyY2VMb2FkU2NoZWR1bGVyLmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogICAgIHZvaWQgbmV0d29ya1Byb2Nlc3NDcmFzaGVkKCk7CiAK
IHByaXZhdGU6Ci0gICAgdm9pZCBzY2hlZHVsZUxvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIq
LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSk7CisgICAgdm9pZCBzY2hlZHVsZUxvYWQo
V2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqLCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRQcmlvcml0eSwg
Ym9vbCBzaG91bGRDbGVhclJlZmVycmVyT25IVFRQU1RvSFRUUFJlZGlyZWN0KTsKICAgICB2b2lk
IHNjaGVkdWxlSW50ZXJuYWxseUZhaWxlZExvYWQoV2ViQ29yZTo6UmVzb3VyY2VMb2FkZXIqKTsK
ICAgICB2b2lkIGludGVybmFsbHlGYWlsZWRMb2FkVGltZXJGaXJlZCgpOwogICAgIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDE1NGYzMDUzMGJlZmYzZGM3MGNmOTFj
M2JmZTZhM2Q0N2IxOWE4YjYuLjNhYzFiNjNkMjk2OTY2NTRhMGM3Y2M2NzVjOTAzNzNkNWRhOTYx
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTIzNCw3ICsyMzQs
NyBAQCB2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6bG9hZFJlc291cmNlU3luY2hyb25vdXNs
eShOZXR3b3JraW5nQ29udGV4dCogY29udGV4dAogCiAgICAgQ29yZUlQQzo6RGF0YVJlZmVyZW5j
ZSBkYXRhUmVmZXJlbmNlOwogCi0gICAgTmV0d29ya1Jlc291cmNlTG9hZFBhcmFtZXRlcnMgbG9h
ZFBhcmFtZXRlcnMocmVzb3VyY2VMb2FkSWRlbnRpZmllciwgMCwgMCwgcmVxdWVzdCwgUmVzb3Vy
Y2VMb2FkUHJpb3JpdHlIaWdoZXN0LCBTbmlmZkNvbnRlbnQsIHN0b3JlZENyZWRlbnRpYWxzLCBj
b250ZXh0LT5zdG9yYWdlU2Vzc2lvbigpLmlzUHJpdmF0ZUJyb3dzaW5nU2Vzc2lvbigpKTsKKyAg
ICBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVycyhyZXNvdXJjZUxv
YWRJZGVudGlmaWVyLCAwLCAwLCByZXF1ZXN0LCBSZXNvdXJjZUxvYWRQcmlvcml0eUhpZ2hlc3Qs
IFNuaWZmQ29udGVudCwgc3RvcmVkQ3JlZGVudGlhbHMsIGNvbnRleHQtPnN0b3JhZ2VTZXNzaW9u
KCkuaXNQcml2YXRlQnJvd3NpbmdTZXNzaW9uKCksIGNvbnRleHQtPnNob3VsZENsZWFyUmVmZXJy
ZXJPbkhUVFBTVG9IVFRQUmVkaXJlY3QoKSk7CiAgICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQo
KS5uZXR3b3JrQ29ubmVjdGlvbigpLT5jb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2VzOjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVyZm9ybVN5bmNocm9ub3VzTG9hZChsb2Fk
UGFyYW1ldGVycyksIE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6UGVy
Zm9ybVN5bmNocm9ub3VzTG9hZDo6UmVwbHkoZXJyb3IsIHJlc3BvbnNlLCBkYXRhUmVmZXJlbmNl
KSwgMCkpIHsKICAgICAgICAgcmVzcG9uc2UgPSBSZXNvdXJjZVJlc3BvbnNlKCk7CiAgICAgICAg
IGVycm9yID0gaW50ZXJuYWxFcnJvcihyZXF1ZXN0LnVybCgpKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4NWUzZDVmZjQ1
ODVlZDQ0ZDFhZGQ2OWMxYmMxNTNjMDlhNjE1MmFmLi5kNDRmYTIyMzllYzNjODI3NmQyYjU1ZGM0
YjA2ZWY4NjA5MWE1MjI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTMtMDItMDYgIE1hcmph
IEjDtmx0dMOkICA8bWFyamFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFRha2UgcmVmZXJyZXIg
cG9saWN5IGludG8gYWNjb3VudCB3aGVuIGNsZWFyaW5nIHRoZSByZWZlcnJlciBoZWFkZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQWxleGV5IFByb3NrdXJ5YWtvdi4KKworICAgICAgICBVbnNraXAg
aHR0cC90ZXN0cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCisK
KyAgICAgICAgU2tpcHBpbmcgdGhlIHRlc3RzIG9uIHdrMiwgYmVjYXVzZSBvdGhlciByZWZlcnJl
ciBwb2xpY3kgdGVzdHMgYXJlCisgICAgICAgIHNraXBwZWQsIHRvbyAoIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzkxMyApLgorCisgICAgICAgICogcGxhdGZvcm0v
Z3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAg
KiBwbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMy0wMi0wNiAgWmFuIERvYmVyc2VrICA8emRvYmVyc2Vr
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmNWY1ZmNiNGRiNzE0YWY1
MGRhNDRjNzdiMmUyNjM2YjUxMTAwNjQxLi4xZTUwYjI2ZTBhYzM5MjJlNjZiMDA4NGE1ODNlOTM1
MjZhMGMyZmJlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMTI0NSw5ICsxMjQ1LDYgQEAgd2Via2l0Lm9yZy9iLzg1Njg5IGZhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwgWyBTa2lwIF0KICMgU3RhcnRlZCBm
YWlsaW5nIGFmdGVyIGl0IHdhcyBhZGRlZCBpbiByMTE2NDczCiB3ZWJraXQub3JnL2IvODU5Njkg
aHR0cC90ZXN0cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0
bWwgWyBGYWlsdXJlIF0KIAotIyBTdGFydGVkIGZhaWxpbmcgYWZ0ZXIgaXQgd2FzIGFkZGVkIGlu
IHIxMTY1NjMKLXdlYmtpdC5vcmcvYi84NjA2MSBodHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVycmVy
LXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwgWyBGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzg1
MzA4IFsgUmVsZWFzZSBdIGlldGVzdGNlbnRlci9jc3MzL3ZhbHVlc2FuZHVuaXRzL3VuaXRzLTAw
MC5odG0gWyBJbWFnZU9ubHlGYWlsdXJlIF0KIAogIyBJRVRDIG5hbWVzcGFjZSBmYWlsdXJlcwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAxNmUwNzBkZTIw
OTY4MWY4YzExNzczOWIyMzk1ZGZkMWUxMjZkOTM5Li5mY2ZiNWY1MDM2YzQzNTQ0MDI2ODFjMGEz
MmFkNzgxMmU2YzdjZTNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVz
dEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0
aW9ucwpAQCAtNzcyLDkgKzc3Miw2IEBAIG1lZGlhL3ZpZGVvLXBsYXllZC1yZXNldC5odG1sCiAj
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTk2OQogaHR0cC90ZXN0
cy9sb2FkaW5nL3Bvc3QtaW4taWZyYW1lLXdpdGgtYmFjay1uYXZpZ2F0aW9uLmh0bWwKIAotIyBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3BlY3Rv
ciBvbmx5IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0aCB2
OCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQogaW5z
cGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwKIGlu
c3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtYXVkaXRzLWNvbnRlbnQtc2NyaXB0Lmh0bWwK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDY3YTVlNzBiMzk3
NDM1MTU1NmYxMGJmMjY4MTAxNzdiOTgzNDQ5NjQuLjc2YzIwMjFhOTI3MjlhYjgxYzVjZTEyZDM4
ZmViOGZiYWNhZTNiNGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Rlc3RF
eHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvVGVzdEV4cGVjdGF0aW9u
cwpAQCAtMTg5Nyw5ICsxODk3LDYgQEAgZmFzdC9sYXllcnMvbm8tY2xpcHBpbmctb3ZlcmZsb3ct
aGlkZGVuLWhhcmR3YXJlLWFjY2VsZXJhdGlvbi5odG1sCiBzZWN1cml0eS9ibG9jay10ZXN0LW5v
LXBvcnQuaHRtbAogc2VjdXJpdHkvYmxvY2stdGVzdC5odG1sCiAKLSMgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg2MDAwCi1odHRwL3Rlc3RzL3NlY3VyaXR5L3JlZmVy
cmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKLQogIyA9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAj
CiAjIGZhaWxpbmcgdGFibGVzIHRlc3RzCiAjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ICMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOGNjMTA2NjM2ZWJjNjVk
ZmMzZGZiZGJkZmUyNDJiMjJlZDE1YTI1NC4uMThkNTRkYWQ1NzA3ZmJhNDhmYTE5NmRmMzk1YWEz
NTZlODI5ZjkxZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBl
Y3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMK
QEAgLTE4NTMsOSArMTg1Myw2IEBAIGluc3BlY3Rvci9zdHlsZXMvb3ZlcnJpZGUtc2NyZWVuLXNp
emUuaHRtbAogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODU2ODkK
IGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmh0bWwKIAot
IyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODYwMDAKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LXJlZGlyZWN0LWxpbmsuaHRtbAotCiAjIEluc3Bl
Y3RvciBvbmx5IHN1cHBvcnRzIGV2YWx1YXRpb24gaW4gY29udGVudCBzY3JpcHQgd29ybGQgd2l0
aCB2OCwgc2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NTcwOQog
aW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1ldmFsLWNvbnRlbnQtc2NyaXB0Lmh0bWwg
CiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLWF1ZGl0cy1jb250ZW50LXNjcmlwdC5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDRjZjcy
NjIwYjk4YTFiMmFhMjZjOWJiYmQwZTljNGM0YzViNjViOWQuLmUzMjBhMjkwY2Y1NzQyZDc5ZDY0
Y2M5NGI5MjA1MjFlNTM3NjM1YjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zMTMsNiArMzEzLDcgQEAgaHR0cC90ZXN0cy9jYWNoZS9oaXN0b3J5LW9u
bHktY2FjaGVkLXN1YnJlc291cmNlLWxvYWRzLW1heC1hZ2UtaHR0cHMuaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS9yZWZlcnJlci1wb2xpY3ktaHR0cHMtYWx3YXlzLmh0bWwKIGh0dHAvdGVzdHMv
c2VjdXJpdHkvcmVmZXJyZXItcG9saWN5LWh0dHBzLW9yaWdpbi5odG1sCiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5
L3JlZmVycmVyLXBvbGljeS1yZWRpcmVjdC1saW5rLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cmVmZXJyZXItcG9saWN5LWh0dHBzLW5ldmVyLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVm
ZXJyZXItcG9saWN5LWh0dHBzLWRlZmF1bHQuaHRtbAogCkBAIC0zMzQsMTEgKzMzNSw2IEBAIGZh
c3Qvc2VsZWN0b3JzL3NlbGVjdGlvbi13aW5kb3ctaW5hY3RpdmUuaHRtbAogIyBhdXRvWm9vbVBh
Z2VUb0ZpdFdpZHRoKCkuCiBpbnNwZWN0b3Ivc3R5bGVzL292ZXJyaWRlLXNjcmVlbi1zaXplLmh0
bWwKIAotIyBUaGUgbmV0d29yayBzdGFjayB1bmNvbmRpdGlvbmFsbHkgc3RyaXBzIHRoZSBoZWFk
ZXIgb24gdHJhbnNpdGlvbnMgZnJvbQotIyBzZWN1cmUgdG8gaW5zZWN1cmUuIEl0IHNob3VsZCB0
YWtlIHRoZSByZWZlcnJlciBwb2xpY3kgaW50byBhY2NvdW50IGluc3RlYWQuCi0jIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04NjAwMAotaHR0cC90ZXN0cy9zZWN1cml0
eS9yZWZlcnJlci1wb2xpY3ktcmVkaXJlY3QtbGluay5odG1sCi0KICMgY3NzMy1jb25kaXRpb25h
bHMgc3VwcG9ydCBpcyBub3QgeWV0IGVuYWJsZWQuCiB3ZWJraXQub3JnL2IvODYxNDYgY3NzMy9z
dXBwb3J0cy5odG1sCiB3ZWJraXQub3JnL2IvMTA0ODIyIGNzczMvc3VwcG9ydHMtY3Nzb20uaHRt
bAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>