<?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>109404</bug_id>
          
          <creation_ts>2013-02-11 00:06:51 -0800</creation_ts>
          <short_desc>Add selectTrailingWhitespaceEnabled setting to WebCore::Page</short_desc>
          <delta_ts>2013-03-18 11:58:43 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>107840</dependson>
          <blocked>108528</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>berto</cc>
    
    <cc>bfulgham</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>g.czajkowski</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>jkjiang</cc>
    
    <cc>jochen</cc>
    
    <cc>kevino</cc>
    
    <cc>mifenton</cc>
    
    <cc>mrobinson</cc>
    
    <cc>ossy</cc>
    
    <cc>paroga</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rakuco</cc>
    
    <cc>rniwa</cc>
    
    <cc>roger_fong</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>829460</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-11 00:06:51 -0800</bug_when>
    <thetext>Some tests are skipped in WK2 due to missing layoutTestController.setSelectTrailingWhitespaceEnabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>829470</commentid>
    <comment_count>1</comment_count>
      <attachid>187520</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-11 00:27:32 -0800</bug_when>
    <thetext>Created attachment 187520
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>836165</commentid>
    <comment_count>2</comment_count>
      <attachid>187520</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-19 02:33:05 -0800</bug_when>
    <thetext>Comment on attachment 187520
Patch

It depends on bug #107840 but it can be already reviewed. Anyway, it needs to wait for #107840 before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843450</commentid>
    <comment_count>3</comment_count>
      <attachid>190594</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-27 13:38:43 -0800</bug_when>
    <thetext>Created attachment 190594
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843509</commentid>
    <comment_count>4</comment_count>
      <attachid>190594</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-27 14:31:03 -0800</bug_when>
    <thetext>Comment on attachment 190594
Patch

Attachment 190594 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/16795141

New failing tests:
editing/spelling/spelling-double-clicked-word-with-underscores.html
editing/selection/doubleclick-beside-cr-span.html
editing/spelling/spelling-double-clicked-word.html
editing/selection/doubleclick-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843934</commentid>
    <comment_count>5</comment_count>
      <attachid>190594</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 03:02:07 -0800</bug_when>
    <thetext>Comment on attachment 190594
Patch

Attachment 190594 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16822343

New failing tests:
compositing/checkerboard.html
accessibility/anchor-linked-anonymous-block-crash.html
compositing/absolute-inside-out-of-view-fixed.html
animations/3d/matrix-transform-type-animation.html
http/tests/cache/cancel-multiple-post-xhrs.html
animations/3d/state-at-end-event-transform.html
animations/animation-add-events-in-handler.html
animations/additive-transform-animations.html
animations/3d/replace-filling-transform.html
http/tests/cache/history-only-cached-subresource-loads.html
compositing/bounds-in-flipped-writing-mode.html
accessibility/accessibility-node-reparent.html
animations/animation-border-overflow.html
accessibility/accessibility-object-detached.html
accessibility/anonymous-render-block-in-continuation-causes-crash.html
animations/animation-controller-drt-api.html
compositing/absolute-position-changed-with-composited-parent-layer.html
compositing/absolute-position-changed-in-composited-layer.html
http/tests/cache/iframe-304-crash.html
animations/3d/transform-perspective.html
http/tests/cache/cancel-during-failure-crash.html
canvas/philip/tests/2d.canvas.reference.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html
canvas/philip/tests/2d.clearRect.basic.html
animations/3d/transform-origin-vs-functions.html
accessibility/accessibility-node-memory-management.html
animations/animation-css-rule-types.html
http/tests/cache/cached-main-resource.html
canvas/philip/tests/2d.clearRect+fillRect.basic.html
canvas/philip/tests/2d.clearRect+fillRect.alpha0.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843940</commentid>
    <comment_count>6</comment_count>
      <attachid>190594</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-28 03:18:45 -0800</bug_when>
    <thetext>Comment on attachment 190594
Patch

Attachment 190594 did not pass mac-ews (mac):
Output: http://webkit-commit-queue.appspot.com/results/16772546

New failing tests:
editing/selection/doubleclick-beside-cr-span.html
editing/selection/doubleclick-whitespace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843941</commentid>
    <comment_count>7</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-28 03:21:19 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 190594 [details])
&gt; Attachment 190594 [details] did not pass mac-ews (mac):
&gt; Output: http://webkit-commit-queue.appspot.com/results/16772546
&gt; 
&gt; New failing tests:
&gt; editing/selection/doubleclick-beside-cr-span.html
&gt; editing/selection/doubleclick-whitespace.html

Did you forget to update these tests or DumpRenderTree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>843942</commentid>
    <comment_count>8</comment_count>
      <attachid>190594</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-28 03:21:43 -0800</bug_when>
    <thetext>Comment on attachment 190594
Patch

I&apos;m gonna say r- due to failing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844009</commentid>
    <comment_count>9</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-28 05:33:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 190594 [details] [details])
&gt; &gt; Attachment 190594 [details] [details] did not pass mac-ews (mac):
&gt; &gt; Output: http://webkit-commit-queue.appspot.com/results/16772546
&gt; &gt; 
&gt; &gt; New failing tests:
&gt; &gt; editing/selection/doubleclick-beside-cr-span.html
&gt; &gt; editing/selection/doubleclick-whitespace.html
&gt; 
&gt; Did you forget to update these tests or DumpRenderTree?

Yes I forgot to change DumpRenderTree. I was just testing it in WK2.

Anway if I&apos;m not wrong we have another prolbem as now tests are using internals.settings.setSelectTrailingWhitespaceEnabled.

This means that DRT code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled is not used at all. As we&apos;re directly establishing the Page setting with internals.

So, in WK2 everything works due to my patches, however in WK1 the implementations of selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled are not using the new setting in Page yet, so that&apos;s the reason it&apos;s faling.

I guess that the solution should be:
1) Update WK1 code to use Page settings for selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled. I guess it should be done in a generic way and remove the specific  ports code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled.
2) Remove code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled from DRT.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844300</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-02-28 11:44:31 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; I guess that the solution should be:
&gt; 1) Update WK1 code to use Page settings for selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled. I guess it should be done in a generic way and remove the specific  ports code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled.
&gt; 2) Remove code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled from DRT.

We should probably do both of these in one patch. It might make sense to do this prior to introducing WK2 bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>844470</commentid>
    <comment_count>11</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-02-28 14:17:49 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; I guess that the solution should be:
&gt; &gt; 1) Update WK1 code to use Page settings for selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled. I guess it should be done in a generic way and remove the specific  ports code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled.
&gt; &gt; 2) Remove code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled from DRT.
&gt; 
&gt; We should probably do both of these in one patch. It might make sense to do this prior to introducing WK2 bits.

Yes I agree, so first I&apos;d try to provide a patch doing:
* Include the new setting &quot;selectTrailingWhitespaceEnabled&quot; in WebCore::Page.
* Change WK1 code to use the new settings selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled for all the ports that have this already implemented.
* Remove code related to these settings in DRT (reviewing the implementation of the different ports too).
* Change tests to use internals.

Then in a separated patch, I&apos;d add the WK2 bits that were already included in the attached patch.

Thanks for the feedback, I hope to come with something in this line the sooner the better :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>845177</commentid>
    <comment_count>12</comment_count>
    <who name="Grzegorz Czajkowski">g.czajkowski</who>
    <bug_when>2013-03-01 07:51:38 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (In reply to comment #9)
&gt; &gt; I guess that the solution should be:
&gt; &gt; 1) Update WK1 code to use Page settings for selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled. I guess it should be done in a generic way and remove the specific  ports code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled.
&gt; &gt; 2) Remove code related to selectTrailingWhitespaceEnabled and smartInsertDeleteEnabled from DRT.
&gt; 
&gt; We should probably do both of these in one patch. It might make sense to do this prior to introducing WK2 bits.

This change&apos;s likely to enable spell checking tests added in r141354 for wk2 platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847426</commentid>
    <comment_count>13</comment_count>
      <attachid>191435</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 01:32:13 -0800</bug_when>
    <thetext>Created attachment 191435
Patch

In this patch I&apos;m trying to do all that was described in comment #11 but the WK2 part. As I cannot test all the platforms, I&apos;ll use the EWSs to check if I&apos;m doing it right or not. Not marking for review yet, till I&apos;m not sure it doesn&apos;t break any platform.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847430</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-05 01:33:54 -0800</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847449</commentid>
    <comment_count>15</comment_count>
      <attachid>191435</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-05 01:46:34 -0800</bug_when>
    <thetext>Comment on attachment 191435
Patch

Attachment 191435 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17050030</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847453</commentid>
    <comment_count>16</comment_count>
      <attachid>191439</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 01:58:09 -0800</bug_when>
    <thetext>Created attachment 191439
Patch

I forgot some parenthesis in qt and mac ports in previous patch. I guess that&apos;s the reason why qt EWS failed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847527</commentid>
    <comment_count>17</comment_count>
      <attachid>191439</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 03:38:57 -0800</bug_when>
    <thetext>Comment on attachment 191439
Patch

Attachment 191439 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17050074</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847540</commentid>
    <comment_count>18</comment_count>
      <attachid>191460</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 04:09:06 -0800</bug_when>
    <thetext>Created attachment 191460
Patch

Try to fix compilation issues for mac port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847577</commentid>
    <comment_count>19</comment_count>
      <attachid>191460</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 05:18:02 -0800</bug_when>
    <thetext>Comment on attachment 191460
Patch

Attachment 191460 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17050111</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847597</commentid>
    <comment_count>20</comment_count>
      <attachid>191478</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 05:55:32 -0800</bug_when>
    <thetext>Created attachment 191478
Patch

Init setting in mac from NSUserDefaults in _commonInitializationWithFrameName method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847661</commentid>
    <comment_count>21</comment_count>
      <attachid>191478</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 07:18:58 -0800</bug_when>
    <thetext>Comment on attachment 191478
Patch

Attachment 191478 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/17048137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847687</commentid>
    <comment_count>22</comment_count>
      <attachid>191497</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 08:02:28 -0800</bug_when>
    <thetext>Created attachment 191497
Patch

Let&apos;s see if mac compilation is fixed now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847780</commentid>
    <comment_count>23</comment_count>
      <attachid>191497</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-05 10:08:00 -0800</bug_when>
    <thetext>Comment on attachment 191497
Patch

Attachment 191497 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-commit-queue.appspot.com/results/16985131</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847820</commentid>
    <comment_count>24</comment_count>
      <attachid>191512</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-05 10:55:48 -0800</bug_when>
    <thetext>Created attachment 191512
Patch

So this time I forgot an &apos;s&apos; in mac code, let&apos;s see if now it works properly and sorry for the noise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847980</commentid>
    <comment_count>25</comment_count>
      <attachid>191512</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-05 13:11:13 -0800</bug_when>
    <thetext>Comment on attachment 191512
Patch

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

&gt; Source/WebKit/chromium/public/WebViewClient.h:-190
&gt; -    virtual bool isSmartInsertDeleteEnabled() { return true; }
&gt; -    virtual bool isSelectTrailingWhitespaceEnabled() { return true; }

Is it ok to remove these public APIs from the Chromium port?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>847982</commentid>
    <comment_count>26</comment_count>
      <attachid>191512</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-03-05 13:12:15 -0800</bug_when>
    <thetext>Comment on attachment 191512
Patch

r- pending explanation about the change to Chromium&apos;s public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848638</commentid>
    <comment_count>27</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-06 01:46:50 -0800</bug_when>
    <thetext>(In reply to comment #25)
&gt; (From update of attachment 191512 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191512&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:-190
&gt; &gt; -    virtual bool isSmartInsertDeleteEnabled() { return true; }
&gt; &gt; -    virtual bool isSelectTrailingWhitespaceEnabled() { return true; }
&gt; 
&gt; Is it ok to remove these public APIs from the Chromium port?

I agree that remove the API here and not add it in WebSettings.h doesn&apos;t seem right. I&apos;ll try to explain the issue deeply in the next paragraphs.

Now smartInsertDeleteEnabled and selectTrailingWhitespacesEnabled are going to be settings of WebCore::Page, this implies that in chromium there&apos;ll be 2 ways to control them since there will be yet WebViewClient::isSmartInsertDeleteEnabled and WebViewClient::isSelectTrailingWhitespaceEnabled.

So I guess that we have 2 options for chromium port:
a) Use smartInsertDeleteEnabled and selectTrailingWhitespacesEnabled from page settings:
  * This will imply changing the public API:
    * Removing WebViewClient::isSmartInsertDeleteEnabled and WebViewClient::isSelectTrailingWhitespaceEnabled.
    * Adding WebSettings::setSmartInsertDeleteEnabled and WebSettings::setSelectTrailingWhitespaceEnabled.
  * Anyway, I&apos;m not sure if this should be here or in a separate patch. Maybe, chromium port prefers to plan the migration and keep working with WebViewClient API for a while. But I guess that eventually this change should be done.
b) Keep using WebViewClient API and try to fix DRT to use the page settings:
  * So, no changes in Source/WebKit/chromium/ would be needed.
  * DRT should still keep some code related to smartInsertDeleteEnabled and selectTrailingWhitespacesEnabled trying to use directly the page settings. If this is not possible, the related tests would fail in chromium port, as now they&apos;ll use internals.settings.setSmartInsertDeleteEnabled (which change directly the page setting) instead of testRunner.setSmartInsertDeleteEnabled and the page setting won&apos;t be used at all under Source/WebKit/chromium/.
  * Plan the migration for the future. I could provide a patch doing the changes described in option a) in a different bug and I guess it would be eventually integrated.

I&apos;ll upload a patch with the first solution (option a)), however I&apos;m open to change whatever is needed following what chromium port people decide regarding to this issue. Moreover, I can be completely wrong in my assumptions so please let me know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>848648</commentid>
    <comment_count>28</comment_count>
      <attachid>191692</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-06 02:03:59 -0800</bug_when>
    <thetext>Created attachment 191692
Patch

New patch trying to implement option a) described in comment #27.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849117</commentid>
    <comment_count>29</comment_count>
      <attachid>191692</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-06 11:26:21 -0800</bug_when>
    <thetext>Comment on attachment 191692
Patch

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

&gt; Source/WebCore/page/Settings.in:199
&gt; +# smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are mutually
&gt; +# exclusive, meaning that enabling one will disable the other.

This seems like a new behavior and I&apos;m not sure how you would enforce this for all ports.  For example, in Chromium, the current behavior is:

bool RenderViewImpl::isSmartInsertDeleteEnabled() {
#if defined(OS_MACOSX)
  return true;
#else
  return false;
#endif
}

bool RenderViewImpl::isSelectTrailingWhitespaceEnabled() {
#if defined(OS_WIN)
  return true;
#else
  return false;
#endif
}

Which means on Chromium Linux, both are false.

&gt; Source/WebKit/chromium/public/WebSettings.h:150
&gt; +    virtual void setSelectTrailingWhitespaceEnabled(bool) = 0;

I don&apos;t think we need to add an API for this since I don&apos;t think we plan on changing these during runtime.  The exception is for DRT, but that can use the WebCore Internals API.

&gt; Source/WebKit/chromium/public/WebViewClient.h:-190
&gt; -    virtual bool isSmartInsertDeleteEnabled() { return true; }
&gt; -    virtual bool isSelectTrailingWhitespaceEnabled() { return true; }

The problem with removing this is that we&apos;ll no longer get the correct behavior in Chromium, which overrides these virtual methods-- see the RenderViewImpl snippet above.  As long as we retain the correct behavior, it&apos;s OK to remove this.

There are a couple ways you could do this, (1) Find a good time to set this (maybe WebViewImpl&apos;s constructor?) or (2) set the right default value in Settings.cpp (e.g., see defaultUnifiedTextCheckerEnabled in Settings.cpp and Settings.in).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849850</commentid>
    <comment_count>30</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 01:11:24 -0800</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 191692 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191692&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/Settings.in:199
&gt; &gt; +# smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are mutually
&gt; &gt; +# exclusive, meaning that enabling one will disable the other.
&gt; 
&gt; This seems like a new behavior and I&apos;m not sure how you would enforce this for all ports.  For example, in Chromium, the current behavior is:
&gt; 
&gt; bool RenderViewImpl::isSmartInsertDeleteEnabled() {
&gt; #if defined(OS_MACOSX)
&gt;   return true;
&gt; #else
&gt;   return false;
&gt; #endif
&gt; }
&gt; 
&gt; bool RenderViewImpl::isSelectTrailingWhitespaceEnabled() {
&gt; #if defined(OS_WIN)
&gt;   return true;
&gt; #else
&gt;   return false;
&gt; #endif
&gt; }
&gt; 
&gt; Which means on Chromium Linux, both are false.

Maybe in Chromium is different, but I included the comment because of it&apos;s what is explained in WebCore::Editor:
    // smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are 
    // mutually exclusive, meaning that enabling one will disable the other.
    bool smartInsertDeleteEnabled();
    bool isSelectTrailingWhitespaceEnabled();

Besides, the ports allowing to change these settings (like mac or win) where changing the other setting to the opposite value when a setting was established. Anyway I can remove the comment here if this is not true for all the ports.
 
&gt; &gt; Source/WebKit/chromium/public/WebSettings.h:150
&gt; &gt; +    virtual void setSelectTrailingWhitespaceEnabled(bool) = 0;
&gt; 
&gt; I don&apos;t think we need to add an API for this since I don&apos;t think we plan on changing these during runtime.  The exception is for DRT, but that can use the WebCore Internals API.

Yes for DRT I&apos;m already using the internals.

&gt; &gt; Source/WebKit/chromium/public/WebViewClient.h:-190
&gt; &gt; -    virtual bool isSmartInsertDeleteEnabled() { return true; }
&gt; &gt; -    virtual bool isSelectTrailingWhitespaceEnabled() { return true; }
&gt; 
&gt; The problem with removing this is that we&apos;ll no longer get the correct behavior in Chromium, which overrides these virtual methods-- see the RenderViewImpl snippet above.  As long as we retain the correct behavior, it&apos;s OK to remove this.
&gt; 
&gt; There are a couple ways you could do this, (1) Find a good time to set this (maybe WebViewImpl&apos;s constructor?) or (2) set the right default value in Settings.cpp (e.g., see defaultUnifiedTextCheckerEnabled in Settings.cpp and Settings.in).

I&apos;ll provide a patch following the 2nd approach. Thanks for the feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>849856</commentid>
    <comment_count>31</comment_count>
      <attachid>191944</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 01:19:10 -0800</bug_when>
    <thetext>Created attachment 191944
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850281</commentid>
    <comment_count>32</comment_count>
      <attachid>191944</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-07 10:54:10 -0800</bug_when>
    <thetext>Comment on attachment 191944
Patch

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

This looks OK for the Chromium port.  I&apos;m not sure if it&apos;s OK for all the other ports, although it doesn&apos;t look like you&apos;re removing any APIs.  Hmm, you might want someone to verify the changes to the mac port to verify that the NSUserDefaults behavior is being retained.

&gt; Source/WebCore/page/Settings.in:199
&gt; +# smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled are mutually
&gt; +# exclusive, meaning that enabling one will disable the other.

I would remove this comment since it doesn&apos;t seem to be accurate anymore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850329</commentid>
    <comment_count>33</comment_count>
      <attachid>191944</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-07 11:36:24 -0800</bug_when>
    <thetext>Comment on attachment 191944
Patch

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

&gt; Source/WebKit/chromium/src/EditorClientImpl.cpp:110
&gt;  #if OS(WINDOWS)
&gt;      return true;
&gt;  #else

I would remove this if-def and return false if I were you since it shouldn&apos;t matter what we return in that case.

&gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:248
&gt; +        return true;

This should return false.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850365</commentid>
    <comment_count>34</comment_count>
      <attachid>192064</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 12:15:47 -0800</bug_when>
    <thetext>Created attachment 192064
Patch

Fixed issues explained in comment #32 and comment #33. Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850367</commentid>
    <comment_count>35</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 12:16:47 -0800</bug_when>
    <thetext>Adding people from other ports to CC to verify that they&apos;re ok with the patch. Please, let me know if you find any issue or have any comment. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850797</commentid>
    <comment_count>36</comment_count>
      <attachid>192064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-07 19:55:48 -0800</bug_when>
    <thetext>Comment on attachment 192064
Patch

Attachment 192064 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17068240

New failing tests:
editing/pasteboard/smart-paste-001.html
editing/pasteboard/subframe-dragndrop-1.html
editing/pasteboard/4944770-2.html
editing/pasteboard/smart-paste-005.html
editing/pasteboard/smart-paste-007.html
editing/pasteboard/smart-drag-drop.html
editing/pasteboard/smart-paste-008.html
fast/lists/drag-into-marker.html
editing/pasteboard/smart-paste-002.html
editing/pasteboard/smart-paste-003.html
editing/pasteboard/smart-paste-004.html
fast/events/ondragenter.html
editing/pasteboard/drag-drop-list.html
editing/pasteboard/drag-drop-modifies-page.html
editing/deleting/smart-delete-004.html
editing/deleting/smart-delete-003.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>850932</commentid>
    <comment_count>37</comment_count>
      <attachid>192163</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-07 23:47:33 -0800</bug_when>
    <thetext>Created attachment 192163
Patch

Trying to fix patches in Chromium port, it seems that with the new default values for Chromium they&apos;re not passing anymore. I&apos;ve set smartInsertDeleteEnabled and selectTrailingWhitespaceEnabled manually in the failing tests to check if this fix the problem.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851327</commentid>
    <comment_count>38</comment_count>
      <attachid>192163</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-08 10:50:38 -0800</bug_when>
    <thetext>Comment on attachment 192163
Patch

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

&gt; Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:-417
&gt; -    m_smartInsertDeleteEnabled = true;
&gt; -#ifdef WIN32
&gt; -    m_selectTrailingWhitespaceEnabled = true;
&gt; -#else
&gt; -    m_selectTrailingWhitespaceEnabled = false;
&gt; -#endif

The Chromium test failures are because Chromium DRT has these default values, which are different from the Chromium browser defaults.  Calling the setter methods in the tests that failed will cause Chromium Win to probably fail some tests.  E.g., editing/pasteboard/smart-paste-00[78].html have different platform results (these tests are from before the testrunner methods setSmartInsertDeleteEnabled and setSelectTrailingWhitespaceEnabled when we had different baselines per platform).

I am sorry this is so complicated.

I think the right thing to do for chromium is in Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp, add these defaults in applyTo().

In the long term, we probably want to convert these tests to test both behavior and to have a shared expected result, but that&apos;s probably better as a separate patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851470</commentid>
    <comment_count>39</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-08 13:26:23 -0800</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 192163 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192163&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/chromium/TestRunner/src/TestRunner.cpp:-417
&gt; &gt; -    m_smartInsertDeleteEnabled = true;
&gt; &gt; -#ifdef WIN32
&gt; &gt; -    m_selectTrailingWhitespaceEnabled = true;
&gt; &gt; -#else
&gt; &gt; -    m_selectTrailingWhitespaceEnabled = false;
&gt; &gt; -#endif
&gt; 
&gt; The Chromium test failures are because Chromium DRT has these default values, which are different from the Chromium browser defaults.  Calling the setter methods in the tests that failed will cause Chromium Win to probably fail some tests.  E.g., editing/pasteboard/smart-paste-00[78].html have different platform results (these tests are from before the testrunner methods setSmartInsertDeleteEnabled and setSelectTrailingWhitespaceEnabled when we had different baselines per platform).

Yes, I understand it. I didn&apos;t realized that the defaults for DRT and browser are different.

&gt; I am sorry this is so complicated.

Don&apos;t worry and thank you very much for taking care of reviewing it. I understand that as Chromium port doesn&apos;t use the default values, things gets more complicated.

&gt; I think the right thing to do for chromium is in Tools/DumpRenderTree/chromium/TestRunner/src/WebPreferences.cpp, add these defaults in applyTo().

Ok, I&apos;ll provide a patch reverting the changes in the tests my last patch and setting the defaults in WebPreferences.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851471</commentid>
    <comment_count>40</comment_count>
      <attachid>192278</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-08 13:28:05 -0800</bug_when>
    <thetext>Created attachment 192278
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851488</commentid>
    <comment_count>41</comment_count>
      <attachid>192278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 13:55:03 -0800</bug_when>
    <thetext>Comment on attachment 192278
Patch

Attachment 192278 did not pass cr-linux-debug-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17014321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851489</commentid>
    <comment_count>42</comment_count>
      <attachid>192278</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-08 13:55:23 -0800</bug_when>
    <thetext>Comment on attachment 192278
Patch

Attachment 192278 did not pass chromium-ews (chromium-xvfb):
Output: http://webkit-commit-queue.appspot.com/results/17016318</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851506</commentid>
    <comment_count>43</comment_count>
      <attachid>192278</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2013-03-08 14:26:16 -0800</bug_when>
    <thetext>Comment on attachment 192278
Patch

Attachment 192278 did not pass cr-android-ews (chromium-android):
Output: http://webkit-commit-queue.appspot.com/results/17109219</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>851507</commentid>
    <comment_count>44</comment_count>
      <attachid>192283</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-08 14:29:06 -0800</bug_when>
    <thetext>Created attachment 192283
Patch

Adding WebSettings API required to set the DRT default values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852112</commentid>
    <comment_count>45</comment_count>
      <attachid>192283</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-03-11 01:27:00 -0700</bug_when>
    <thetext>Comment on attachment 192283
Patch

Attachment 192283 did not pass win-ews (win):
Output: http://webkit-commit-queue.appspot.com/results/17004222</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852135</commentid>
    <comment_count>46</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-11 02:40:10 -0700</bug_when>
    <thetext>(In reply to comment #45)
&gt; (From update of attachment 192283 [details])
&gt; Attachment 192283 [details] did not pass win-ews (win):
&gt; Output: http://webkit-commit-queue.appspot.com/results/17004222

The crashes don&apos;t seem related to this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852473</commentid>
    <comment_count>47</comment_count>
      <attachid>192283</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2013-03-11 11:00:30 -0700</bug_when>
    <thetext>Comment on attachment 192283
Patch

Chromium LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>852638</commentid>
    <comment_count>48</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-11 13:09:46 -0700</bug_when>
    <thetext>(In reply to comment #47)
&gt; (From update of attachment 192283 [details])
&gt; Chromium LGTM.

Great. Thanks for the review. Let&apos;s see what Mac people thought and maybe it could land soon :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>853187</commentid>
    <comment_count>49</comment_count>
      <attachid>192283</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-12 01:33:14 -0700</bug_when>
    <thetext>Comment on attachment 192283
Patch

Reset commit‑queue flag as the patch is unrelated with the crashes in win EWS.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854669</commentid>
    <comment_count>50</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 14:49:47 -0700</bug_when>
    <thetext>(In reply to comment #33)
&gt; (From update of attachment 191944 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=191944&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/src/EditorClientImpl.cpp:110
&gt; &gt;  #if OS(WINDOWS)
&gt; &gt;      return true;
&gt; &gt;  #else
&gt; 
&gt; I would remove this if-def and return false if I were you since it shouldn&apos;t matter what we return in that case.
&gt; 
&gt; &gt; Source/WebKit/mac/WebCoreSupport/WebEditorClient.mm:248
&gt; &gt; +        return true;
&gt; 
&gt; This should return false.

Ok, this 2 explicit issues were already fixed in the current patches.

However, as we talked by IRC you were also asking about the &quot;return true;&quot; in all the smartInsertDeleteEnabled() methods in the EditorClients of every port.

I&apos;m going to change it in a new patch for &quot;return false;&quot; as I agree with you that it doesn&apos;t matter and returning true has not too much sense. I just did it initially because of they were the default values, but that&apos;s already defined in Settings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854678</commentid>
    <comment_count>51</comment_count>
      <attachid>192999</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 14:53:31 -0700</bug_when>
    <thetext>Created attachment 192999
Patch

New patch only changing &quot;return true;&quot; by &quot;return false;&quot; in smartInsertDeleteEnabled() method of each EditorClient.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854694</commentid>
    <comment_count>52</comment_count>
      <attachid>192999</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2013-03-13 15:04:29 -0700</bug_when>
    <thetext>Comment on attachment 192999
Patch

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

r=me provided the following comments are addressed.

&gt; Source/WebKit/mac/WebView/WebView.mm:789
&gt; +        _private-&gt;page-&gt;settings()-&gt;setSmartInsertDeleteEnabled(smartInsertDeleteEnabled);
&gt; +        _private-&gt;page-&gt;settings()-&gt;setSelectTrailingWhitespaceEnabled(!smartInsertDeleteEnabled);

Why don&apos;t we call [self setSelectTrailingWhitespaceEnabled] here.

&gt; Source/WebKit/mac/WebView/WebView.mm:2481
&gt; +        // Set smartInsertDeleteEnabled as they are mutually exclusive.

I don&apos;t think this and similar comments are useful as the code clearly indicates they&apos;re mutually exclusive already. Please remove them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854712</commentid>
    <comment_count>53</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 15:26:28 -0700</bug_when>
    <thetext>(In reply to comment #52)
&gt; (From update of attachment 192999 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=192999&amp;action=review
&gt; 
&gt; r=me provided the following comments are addressed.
&gt; 
&gt; &gt; Source/WebKit/mac/WebView/WebView.mm:789
&gt; &gt; +        _private-&gt;page-&gt;settings()-&gt;setSmartInsertDeleteEnabled(smartInsertDeleteEnabled);
&gt; &gt; +        _private-&gt;page-&gt;settings()-&gt;setSelectTrailingWhitespaceEnabled(!smartInsertDeleteEnabled);
&gt; 
&gt; Why don&apos;t we call [self setSelectTrailingWhitespaceEnabled] here.

I guess that as the key is called &quot;WebSmartInsertDeleteEnabled&quot; it&apos;s clearer if we use setSmartInsertDeleteEnabled:
    if ([[NSUserDefaults standardUserDefaults] objectForKey:WebSmartInsertDeleteEnabled])                
        [self setSmartInsertDeleteEnabled:[[NSUserDefaults standardUserDefaults] boolForKey:WebSmartInsertDeleteEnabled]];

&gt; &gt; Source/WebKit/mac/WebView/WebView.mm:2481
&gt; &gt; +        // Set smartInsertDeleteEnabled as they are mutually exclusive.
&gt; 
&gt; I don&apos;t think this and similar comments are useful as the code clearly indicates they&apos;re mutually exclusive already. Please remove them.

Yep. I&apos;ll provide a new patch with this 2 changes. Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854713</commentid>
    <comment_count>54</comment_count>
      <attachid>193009</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 15:27:53 -0700</bug_when>
    <thetext>Created attachment 193009
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854741</commentid>
    <comment_count>55</comment_count>
      <attachid>193013</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 15:49:33 -0700</bug_when>
    <thetext>Created attachment 193013
Patch

Rebased patch against trunk as previous patch didn&apos;t apply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854766</commentid>
    <comment_count>56</comment_count>
      <attachid>193013</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-13 16:09:06 -0700</bug_when>
    <thetext>Comment on attachment 193013
Patch

Attachment 193013 did not pass qt-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17149563</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854775</commentid>
    <comment_count>57</comment_count>
      <attachid>193013</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-03-13 16:19:19 -0700</bug_when>
    <thetext>Comment on attachment 193013
Patch

Attachment 193013 did not pass qt-wk2-ews (qt):
Output: http://webkit-commit-queue.appspot.com/results/17147225</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>854996</commentid>
    <comment_count>58</comment_count>
      <attachid>193076</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2013-03-13 23:44:00 -0700</bug_when>
    <thetext>Created attachment 193076
Patch

Fixed compilation issues in Qt port after rebasing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855510</commentid>
    <comment_count>59</comment_count>
      <attachid>193076</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 14:56:34 -0700</bug_when>
    <thetext>Comment on attachment 193076
Patch

Clearing flags on attachment: 193076

Committed r145849: &lt;http://trac.webkit.org/changeset/145849&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>855511</commentid>
    <comment_count>60</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-03-14 14:56:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856917</commentid>
    <comment_count>61</comment_count>
      <attachid>193507</attachid>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-03-18 02:17:51 -0700</bug_when>
    <thetext>Created attachment 193507
Fix BlackBerry build.

This patch breaks the BlackBerry build. Here&apos;s the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>856973</commentid>
    <comment_count>62</comment_count>
    <who name="Alberto Garcia">berto</who>
    <bug_when>2013-03-18 04:09:41 -0700</bug_when>
    <thetext>&gt; This patch breaks the BlackBerry build. Here&apos;s the fix.

I&apos;ll file a new bug for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>857384</commentid>
    <comment_count>63</comment_count>
    <who name="Roger Fong">roger_fong</who>
    <bug_when>2013-03-18 11:58:43 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/146097
Fix for Windows DRT.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>187520</attachid>
            <date>2013-02-11 00:27:32 -0800</date>
            <delta_ts>2013-02-27 13:33:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130211092402.patch</filename>
            <type>text/plain</type>
            <size>19594</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyMjczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgyNjlhZTk1ZmEzZjNk
NzhhMjQwODZlN2YzY2I1OGQzMTQwOGEzYi4uYjM0YWEyNjJhOTZlNDkyZTk0OWEwYjZjMzEyN2Yw
NDk2YjBhY2IwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTExICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDItMDYgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCA4YjU3OTYyZWQxNWJjYjQ4Y2NhZjQ2YWJlYWVjMmU0M2FmYWQwOGZjLi42YTc5YTA1NWU4
OGQwNjc4MjMzMjQzMGQxMjhlNDdjNGNlNTRlMjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQg
QEAKKzIwMTMtMDItMTEgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0
byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmg6CisgICAgICAgIChXZWJLaXQp
OiBBZGQgbWFjcm8gZm9yIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV0tQcmVmZXJl
bmNlc1NldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc0dldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOiBJbXBsZW1lbnQgbWV0
aG9kcworICAgICAgICB1c2luZyB0aGUgbmV3IHNldHRpbmcuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZCBuZXcgbWV0aG9kcyBoZWFkZXJzLgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQpOiBJbXBsZW1lbnQKKyAgICAgICAgbWV0aG9kIGRlbGF0aW5nIGluIFdlYlBh
Z2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAo
V2ViS2l0OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6IFNldAorICAgICAgICBzZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcuCisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6IFNldAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAg
ICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCk6IEltcGxlbWVudCBtZXRob2QKKyAgICAgICAgdXNpbmcgc2V0
dGluZ3MuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQpOiBJbXBsZW1lbnQgbWV0aG9kCisgICAgICAgIHVzaW5nIHNldHRpbmdzIGFu
ZCBzZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5CisgICAg
ICAgIGV4Y2x1c2l2ZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgor
ICAgICAgICAoV2ViUGFnZSk6IEFkZCBuZXcgbWV0aG9kcyBoZWFkZXJzLgorCiAyMDEzLTAyLTA2
ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCiAgICAgICAgIEFk
ZCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5pbgppbmRleCAyOTVlOWM2ZDg2N2I1ZTY3ZDBmM2NmYzExNzdmYzQ3NGNl
MzNmYWJiLi40MTVjYzlhNWE3N2IwNDYxYjdlM2ZhNDMyYjdmMWQ1NzlhODI5N2E1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE3OSw0ICsxNzksNyBAQCB1bmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkIGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCisjIHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cmUgbXV0dWFsbHkKKyMgZXhjbHVzaXZlLCBtZWFuaW5nIHRoYXQgZW5hYmxpbmcgb25lIHdpbGwg
ZGlzYWJsZSB0aGUgb3RoZXIuCiBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgaW5pdGlhbD10cnVl
CitzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCmluZGV4IDdjZWE5MGUyZWIyZWQz
YjYyODFjYmVhNzZjZDllZmEzNjBjMTBlYjUuLmI5OGZmNjQ3YTM1YmE4YTQxZDdmMWM1YmRmN2Y1
YTI1MjZkZTg2ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJl
bmNlc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaApAQCAtMTQxLDYgKzE0MSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIG1hY3JvKExv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkLCBsb2dzUGFnZU1lc3NhZ2VzVG9T
eXN0ZW1Db25zb2xlRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhQYWdl
VmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCwgcGFnZVZpc2liaWxpdHlC
YXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAg
bWFjcm8oU21hcnRJbnNlcnREZWxldGVFbmFibGVkLCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQs
IEJvb2wsIGJvb2wsIHRydWUpIFwKKyAgICBtYWNybyhTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLCBCb29sLCBib29sLCBmYWxz
ZSkgXAogICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRfRE9VQkxFX1BSRUZFUkVOQ0Uo
bWFjcm8pIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1By
ZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzLmNwcAppbmRleCA0YmRjM2RmYWYwNjgwZGZkMzU1ZjQ1ZmE3NzIzY2JiODJlODM5Y2UyLi42
MzdmY2Y2MDg2ZDY4NWVkNzI0YmEwNWMzNjU0NzY0MzcyOTA0NjI3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwCkBAIC0xMDQzLDMgKzEw
NDMsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQorCit2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFdLUHJlZmVyZW5jZXNS
ZWYgcHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5j
ZXNSZWYpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOworfQor
Citib29sIFdLUHJlZmVyZW5jZXNHZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFdL
UHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCit7CisgICAgcmV0dXJuIHRvSW1wbChwcmVm
ZXJlbmNlc1JlZiktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKK30KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRl
LmgKaW5kZXggMTE2NjFkOWJkMjg3ZmFlOGRiNjFlNTU2MDFiYjJlZWE0YWU0MWJmZi4uYjQzNzdl
NDAyZDE4NTY4YTJmYzgyNTZiOGM4NmRlNmM0NjRiMzkxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI1Myw2
ICsyNTMsMTAgQEAgV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVzdFJ1bm5lck92
ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2UKIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNTZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVm
ZXJlbmNlcywgYm9vbCBlbmFibGVkKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CiAK
Ky8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGVuYWJsZWQpOworV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcyk7CisK
ICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5k
ZXggY2NiZDVhYzM3M2U4OTY0NWI3OWI1YTMzZDRlOTVjZjkyMDhlNzk2OC4uZTA3MDNkNzEwMTE2
NzQ4MzM4NjVhYjdjMDZjM2ViYjE2MWY1ODhiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApA
QCAtODQsOCArODQsNyBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkKICAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBtX3BhZ2UtPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
OwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IDk1OTU4MjE0YWU3NjBlYzczZjYzMTU1ZDlhYWM1YjU2NjdiM2EyNjEuLjM1OTg5YmEw
ZmNiNTE0MTZiODZjNjY4NjBjYzY0N2RlYzg4ODZkOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTI0MTAsNiArMjQxMCw3IEBAIHZvaWQg
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3Rv
cmUpCiAgICAgc2V0dGluZ3MtPnNldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFi
bGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6bG9nc1BhZ2VN
ZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWRLZXkoKSkpOwogCiAgICAgc2V0dGluZ3MtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJl
ZmVyZW5jZXNLZXk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZEtleSgpKSk7CisgICAgc2V0dGlu
Z3MtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoc3RvcmUuZ2V0Qm9vbFZhbHVl
Rm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
S2V5KCkpKTsKIAogICAgIHBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2Uoc3RvcmUpOwogCkBA
IC0zODAzLDYgKzM4MDQsMjAgQEAgYm9vbCBXZWJQYWdlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpCiB2b2lkIFdlYlBhZ2U6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVu
YWJsZWQpCiB7CiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZW5hYmxlZCk7CisgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIWVuYWJsZWQpOworfQorCitib29sIFdlYlBhZ2U6OmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGlu
Z3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworfQorCit2b2lkIFdlYlBh
Z2U6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQorewor
ICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChlbmFibGVkKTsKKyAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkg
YXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
IWVuYWJsZWQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDQ1N2E2YTc2YjlmMzQxMGM2YzRkNmRj
NzAzN2I5YWFjMjg3N2YyYTguLmY2MWQ0NWZkZTJmZGU4YmNlZGRkOTU3MjQzNWVmNTNmNTEwNWFh
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaApAQCAt
NDg1LDYgKzQ4NSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCk7CiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAKKyAg
ICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKKwogICAgIHZvaWQgcmVwbGFj
ZVNlbGVjdGlvbldpdGhUZXh0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBjbGVhclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjc0MGIwMGY3MWY2ODM4ZDY1YjAyZTE0
NWUwOGZhOWU2ODBmMjU0Ny4uODkwNThmM2UzOTFkOTAwNWMyMGM2YWJmMzhjMWUxZDEyYTRkYzM4
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTExICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWlt
Zy1jcmFzaC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMv
ZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOgorICAgICAg
ICAqIGVkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChpbml0U3Bl
bGxUZXN0KToKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlj
a2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sOgorICAgICAgICAqIHBsYXRmb3Jt
L2d0ay13azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnIHNldmVyYWwgdGVzdHMgcGFzc2luZyBu
b3cKKyAgICAgICAgYW5kIG1hcmsgb25lIHRlc3QgYXMgdGltZW91dC4KKyAgICAgICAgKiBwbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCisg
ICAgICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDItMDYgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CiAKICAgICAgICAgQWRkIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1s
CmluZGV4IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhkNWNiNzZi
N2FkYjE4Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4u
aHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBv
c2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4IDQwZTI0
MTM4MjFlOGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1YTViMDdm
ZjM5MzM0NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKQEAg
LTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5NWE3OWRk
YTZkNDQ2NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2EzNzk5Yzdm
Y2VmNjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAgLTQsNyAr
NCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYzOWQ1ZjZm
MWVhYWY5OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVjMWQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay13aGl0ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBm
dW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFz
dC1jb250ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3Jp
cHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpz
CmluZGV4IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLjRjMWM1NDU3
NTZjMzRkMDkwMWI5YTVlZjI3Y2FjYWViYTU1NThjZmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3Qt
bGFzdC1jb250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0
YWJsZS5qcwpAQCAtNzgsNyArNzgsNyBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5kTW9kaWZ5
KHRhcmdldElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5kb3cuc2Vs
ZWN0ZWRCeU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVzdFJ1bm5l
ci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVybmFscy5z
ZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKIAogdmFy
IHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUgPSAiPHNwYW4gaWQ9J3RhcmdldCcgY29udGVu
dEVkaXRhYmxlPnNlbGVjdG1lMTwvc3Bhbj4gYW5kIG5vdCBzZWxlY3QgdXMiOwogdGVzdFdpdGhE
b3VibGxlQ2xpY2soc2hvdWxkU2VsZWN0ZUZpcnN0V29yZElubGluZSwgInNlbGVjdG1lMSIpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5q
cyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXgg
Y2Y4MDMzNDE4ODQzY2YyMGM2NjcxZTdjODQ5MDdiNzA3MmQ0OTUyMC4uM2UzY2YzM2EyMDZkNDJi
ZTM1NDBkMmU4YjExYjdmNTMyOTViNzVmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCkBAIC0yOCw3ICsyOCw3IEBAIGZ1bmN0aW9uIGluaXRT
cGVsbFRlc3QodGVzdEVsZW1lbnRJZCwgdGVzdFRleHQsIHRlc3RGdW5jdGlvbikKICAgICBqc1Rl
c3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkKHRydWUpOwogICAgIHRlc3RSdW5uZXIuc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlm
aWVkVGV4dENoZWNrZXJFbmFibGVkKHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRF
ZGl0aW5nQmVoYXZpb3IoIndpbiIpOwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKHRlc3RFbGVtZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29y
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNs
aWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYx
MzUyY2Y5YTIzZWY2MzEyM2IxNmEzNi4uZGVhNTkwOWMxYmM4ZjJjYzc2YjYwZDUwMmFkN2M5Mzk3
NzE1ZjRkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11
bmRlcnNjb3Jlcy5odG1sCkBAIC0yMSw3ICsyMSw3IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0
aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7
CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0
cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24u
b2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAg
ICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRp
b24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcgKzQ5LDcgQEAgaW5pdFNwZWxsVGVzdCgi
ZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAg
ICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmco
KSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGgg
dGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRp
b24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7
CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGlu
YXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKaW5k
ZXggMjQ5MjczZDJlMGFiYWI5ZDliY2VjOTI3YTA5YzNmYzQ2Y2UwMjdjZi4uNjMxMTM1ODNhMmJm
MTkyYjMwNDU1ODE3N2EzMmI5YTU5MDk0NWU4MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0
bWwKQEAgLTIxLDcgKzIxLDcgQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNv
bWUgaG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3Vi
bGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRyYWlsaW5nIHdoaXRlc3BhY2Uu
Ci0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNl
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0
TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0
aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0
aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgs
IHkpOwpAQCAtNDksNyArNDksNyBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxs
Y29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERv
dWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZS4K
LSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVm
dCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9u
Lm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5h
dGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IGViOThhYzAyMzYwY2E4YjEyOGU2ZTE1ZjkyYTEzNDg5NjVjYzQxMDkuLmZhM2FlNDAwNWE1OTBm
ZTA0NDFlNTQ2OGExMTQ5ZWViYzUzNzY4ODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2d0ay13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGstd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEwMCwxMSArMTAwLDcgQEAgd2Via2l0Lm9yZy9i
LzYzNzA2IGh0dHAvdGVzdHMvc2VjdXJpdHkvZHJhZy1vdmVyLXJlbW90ZS1jb250ZW50LWlmcmFt
ZS5odG1sIFsgRmEKIHdlYmtpdC5vcmcvYi82MzcwNiBwbHVnaW5zL21vdXNlLWV2ZW50cy1maXhl
ZHBvcy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvNjM3MDYgcGx1Z2lucy9tb3VzZS1l
dmVudHMuaHRtbCBbIEZhaWx1cmUgXQogCi0jIFdlYktpdDIgbmVlZHMgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkCi1CdWcoR1RLKSBlZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sIFsgRmFpbHVyZSBdCi1CdWcoR1RL
KSBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwgWyBGYWlsdXJl
IF0KLUJ1ZyhHVEspIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jh
c2guaHRtbCBbIEZhaWx1cmUgXQotQnVnKEdUSykgZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbCBbIEZhaWx1cmUgXQorQnVnKEdUSykgZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbCBbIFRpbWVvdXQgXQog
CiAjIFdlYktpdDIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkTW9ja1NwZWVjaElucHV0
UmVzdWx0CiBCdWcoR1RLKSBmYXN0L3NwZWVjaC9pbnB1dC1vbnNwZWVjaGNoYW5nZS1ldmVudC5o
dG1sIFsgRmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGVjMGM5N2FmOTVmM2JjZTE2MThjYjc4ZTY3N2RlMzQ5Y2YwYjAwYmYuLmFlZTNhYWUy
NmYyZmRiNWU3NzVjZDU0M2Y5MzA0NjBmOTEwMmRmMTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zODQsOSArMzg0LDYgQEAgaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tYXV0aG9yaXphdGlvbi13aXRoLWVtYmVkZGVyLmh0bWwK
ICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGREaXNhbGxv
d2VkVVJMCiBwbHVnaW5zL2dldC11cmwtdGhhdC10aGUtcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS13
aWxsLWRpc2FsbG93Lmh0bWwKIAotIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKLWVkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1s
Ci0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJv
cGVydHkKIHByaW50aW5nL3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190594</attachid>
            <date>2013-02-27 13:38:43 -0800</date>
            <delta_ts>2013-03-05 01:32:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130227223456.patch</filename>
            <type>text/plain</type>
            <size>19644</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0MjMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzc0NzhlM2ZjYjIyNDEy
ZGEyMzJmOTE3MTdkOTQ2Mjc5NDI2ZTE2OS4uZDQ1OGRmMTNmY2I3ZjIzMDVmOTRlN2JiYzc1YmE5
Y2FkODRiZWFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAyLTI3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDItMjcgIExp
YW5naHVpIENoZW4gIDxsaWFjaGVuQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIFVz
ZXIgY3JlZGVudGlhbHMgaXMgbm90IGNvcnJlY3RseSBoYW5kbGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggN2I2
MmFhMTJjYWNjMjZmMmNmYmE4ZWM0NTk5MjQyODFkMWM0ZjlkZS4uMjA4MGIwZWQ1NTNlNDY4Y2Zh
MjRiNjFlYzU0NjRkZGRkMzcxMzRmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEz
LTAyLTI3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oOgorICAgICAgICAoV2ViS2l0KTogQWRkIG1h
Y3JvIGZvciBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNTZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdLUHJlZmVyZW5jZXNH
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTogSW1wbGVtZW50IG1ldGhvZHMKKyAg
ICAgICAgdXNpbmcgdGhlIG5ldyBzZXR0aW5nLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQy9X
S1ByZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGQgbmV3IG1ldGhvZHMgaGVhZGVycy4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKTogSW1wbGVtZW50CisgICAgICAgIG1ldGhvZCBkZWxhdGluZyBpbiBXZWJQYWdlLgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOiBTZXQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOiBTZXQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQpOiBJbXBsZW1lbnQgbWV0aG9kCisgICAgICAgIHVzaW5nIHNldHRpbmdzLgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKTogSW1wbGVtZW50IG1ldGhvZAorICAgICAgICB1c2luZyBzZXR0aW5ncyBhbmQgc2V0IHNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseQorICAgICAgICBleGNs
dXNpdmUuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAg
KFdlYlBhZ2UpOiBBZGQgbmV3IG1ldGhvZHMgaGVhZGVycy4KKwogMjAxMy0wMi0yNyAgSmVyIE5v
YmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OICg0ODUzMyk6
IEZ1bGwtZnJhbWUgcGx1Z2lucyBzdG9wcGVkIHdvcmtpbmcgKGRvd25sb2FkIGluc3RlYWQgb2Yg
bG9hZGluZyB0aGUgcGx1Z2luKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRj
YzE0MDMwN2ZjMDk3NjdiZWZmMjE0YTUzYmY3ZWJhZC4uZjYzNTllMGM3MmVmMGU3NzA0MmFiZDhi
MDc2NWZjMjBkYTFjZWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1
LDcgQEAgdW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4
dENoZWNrZXJFbmFibGVkCiAKIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVk
IGluaXRpYWw9ZmFsc2UKIAorIyBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXJlIG11dHVhbGx5CisjIGV4Y2x1c2l2ZSwgbWVhbmlu
ZyB0aGF0IGVuYWJsaW5nIG9uZSB3aWxsIGRpc2FibGUgdGhlIG90aGVyLgogc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGluaXRpYWw9dHJ1ZQorc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJl
ZmVyZW5jZXNTdG9yZS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3Rv
cmUuaAppbmRleCA3Y2VhOTBlMmViMmVkM2I2MjgxY2JlYTc2Y2Q5ZWZhMzYwYzEwZWI1Li5iOThm
ZjY0N2EzNWJhOGE0MWQ3ZjFjNWJkZjdmNWEyNTI2ZGU4NmRjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKQEAgLTE0MSw2ICsxNDEsNyBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKICAgICBtYWNybyhMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5h
YmxlZCwgbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQsIEJvb2wsIGJvb2ws
IGZhbHNlKSBcCiAgICAgbWFjcm8oUGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQsIHBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCBC
b29sLCBib29sLCBmYWxzZSkgXAogICAgIG1hY3JvKFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCwg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFjcm8o
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCwgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZpbmUgRk9SX0VBQ0hf
V0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggNGJkYzNkZmFmMDY4MGRmZDM1
NWY0NWZhNzcyM2NiYjgyZTgzOWNlMi4uNjM3ZmNmNjA4NmQ2ODVlZDcyNGJhMDVjMzY1NDc2NDM3
MjkwNDYyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcApAQCAtMTA0MywzICsxMDQzLDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQog
ewogICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmLCBib29sIGVuYWJsZWQp
Cit7CisgICAgdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChlbmFibGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQor
eworICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDExNjYxZDliZDI4N2ZhZThkYjYxZTU1
NjAxYmIyZWVhNGFlNDFiZmYuLmI0Mzc3ZTQwMmQxODU2OGEyZmM4MjU2YjhjODZkZTZjNDY0YjM5
MWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVu
Y2VzUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzUHJpdmF0ZS5oCkBAIC0yNTMsNiArMjUzLDEwIEBAIFdLX0VYUE9SVCB2b2lkIFdLUHJl
ZmVyZW5jZXNSZXNldFRlc3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJl
bmNlCiBXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2VzU2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgZW5hYmxlZCk7CiBXS19FWFBP
UlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZQorV0tfRVhQT1JU
IHZvaWQgV0tQcmVmZXJlbmNlc1NldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoV0tQ
cmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29s
IFdLUHJlZmVyZW5jZXNHZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMpOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGYzMDlhYWM2MWVjNDZmNmExNmVhNTA1NjMxOWQw
YzZjMDBlM2IzMDIuLjMxOWY3OTE3MDMyYmQ3YmU1NGY3OGRmZGY1NmI1N2FjNTA1YmEyODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTg3LDggKzg3LDcgQEAgYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiAgCiBib29sIFdlYkVkaXRvckNsaWVu
dDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5pc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAxMmZiNDAyMzBiNmFiNDc2YmRmZDc2ZDJi
YTI2MWQyZjZkZmEzOWNjLi42Yzc5NjUyOThiYzkyMjQ4M2Q5MWNmZjIyYTg4NTExNTlkYThhMjBh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBA
IC0yMzkyLDYgKzIzOTIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0
IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLT5zZXRMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2Vi
UHJlZmVyZW5jZXNLZXk6OmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkS2V5
KCkpKTsKIAogICAgIHNldHRpbmdzLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoc3RvcmUu
Z2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWRLZXkoKSkpOworICAgIHNldHRpbmdzLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZEtleSgpKSk7CiAKICAgICBwbGF0Zm9ybVByZWZlcmVu
Y2VzRGlkQ2hhbmdlKHN0b3JlKTsKIApAQCAtMzc5Miw2ICszNzkzLDIwIEBAIGJvb2wgV2ViUGFn
ZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogdm9pZCBXZWJQYWdlOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogewogICAgIG1fcGFnZS0+c2V0dGluZ3Mo
KS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOworICAgIC8vIFNldCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2
ZS4KKyAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFlbmFibGVkKTsKK30K
KworYm9vbCBXZWJQYWdlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQorewor
ICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKK30KKwordm9pZCBXZWJQYWdlOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZW5hYmxlZCkKK3sKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7CisgICAgLy8gU2V0IHNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFlbmFibGVkKTsKIH0KIAogYm9vbCBXZWJQYWdlOjpj
YW5TaG93TUlNRVR5cGUoY29uc3QgU3RyaW5nJiBNSU1FVHlwZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCmluZGV4IDdkMWE4YTA1NWM1OGNkM2Fl
ODRhNGI5NWZiMmZjYjMwZjM1NTMwYTguLmZjNTYwOGU4NTEyNWFkMGEyNThhYzk5YTI4ODFiMzkz
YzU3MWU1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aApAQCAtNDg1LDYgKzQ4NSw5IEBAIHB1YmxpYzoKICAgICBib29sIGlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCk7CiAgICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7
CiAKKyAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKKwogICAgIHZvaWQg
cmVwbGFjZVNlbGVjdGlvbldpdGhUZXh0KFdlYkNvcmU6OkZyYW1lKiwgY29uc3QgU3RyaW5nJik7
CiAgICAgdm9pZCBjbGVhclNlbGVjdGlvbigpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNTExMmFlNzEwZTFhYjJjYTAy
Y2ExOTZmNzZhMDJkZWE4NDUyNDBmOC4uNGFhY2JhNDFjMDg0MmExMDE3YzQyNGRmYzUzZmMzYzMy
OGNkYzE0ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI3ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jh
c2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNs
aWNrLXdoaXRlc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQt
dGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOgor
ICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChp
bml0U3BlbGxUZXN0KToKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJs
ZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sOgorICAgICAgICAqIHBs
YXRmb3JtL2d0ay13azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnIHNldmVyYWwgdGVzdHMgcGFz
c2luZyBub3cKKyAgICAgICAgYW5kIG1hcmsgb25lIHRlc3QgYXMgdGltZW91dC4KKyAgICAgICAg
KiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5o
dG1sCisgICAgICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDItMjcgIEpvY2hlbiBFaXNp
bmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU2tpcCBtZWRpYSB0ZXN0cyB0
aGF0IGZhaWwgb24gY29udGVudF9zaGVsbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXgg
OGI5OGJhNzJmYmZjNzQwYWZhMzVjMmQwOGFjOTU3N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3
Nzg0NTFhZWVmNTI3YWVlMzZjMGQ4ZmJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBA
IC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25P
Zk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4
ZTg4NDA3OTc4YWE4Mzc2OTM3N2M4Njg2YWY4Zi4uYzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0
MTI2MWZhNDkzNjlhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0
LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1n
LWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCmluZGV4IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3
MTY0ZGZkNDQ2Mzc1MDQuLmY3NGFhMjY1Njc3NjU2MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2Ug
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAK
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxz
ZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0
cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQodHJ1ZSk7CiAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLmh0bWwKaW5kZXggODUzMGZiYzUzMWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4
YjdkYy4uN2Q4M2ZiMWZhMWU1OGI1ZTc0MTVlMmYzYWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UuaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9u
IGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRl
bnRlZGl0YWJsZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0
cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXgg
ZWU2NTVkYzA3MmFmZjJiMjVmYjcyMzU2OTUwMzA5MDk1YzFjMmUzOS4uNGMxYzU0NTc1NmMzNGQw
OTAxYjlhNWVmMjdjYWNhZWJhNTU1OGNmYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNv
bnRlbnRlZGl0YWJsZS5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3Jp
cHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpz
CkBAIC03OCw3ICs3OCw3IEBAIGZ1bmN0aW9uIHRlc3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0
SW5uZXJIVE1MLCBleHBlY3RlZFRleHQpCiAgICAgc2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5
TW9kaWZ5IiwgdG9MaXRlcmFsKGV4cGVjdGVkVGV4dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogCiB2YXIgc2hvdWxk
U2VsZWN0ZUZpcnN0V29yZElubGluZSA9ICI8c3BhbiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFi
bGU+c2VsZWN0bWUxPC9zcGFuPiBhbmQgbm90IHNlbGVjdCB1cyI7CiB0ZXN0V2l0aERvdWJsbGVD
bGljayhzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lLCAic2VsZWN0bWUxIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBjZjgwMzM0
MTg4NDNjZjIwYzY2NzFlN2M4NDkwN2I3MDcyZDQ5NTIwLi4zZTNjZjMzYTIwNmQ0MmJlMzU0MGQy
ZThiMTFiN2Y1MzI5NWI3NWY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
cmVzb3VyY2VzL3V0aWwuanMKQEAgLTI4LDcgKzI4LDcgQEAgZnVuY3Rpb24gaW5pdFNwZWxsVGVz
dCh0ZXN0RWxlbWVudElkLCB0ZXN0VGV4dCwgdGVzdEZ1bmN0aW9uKQogICAgIGpzVGVzdElzQXN5
bmMgPSB0cnVlOwogICAgIHRlc3RSdW5uZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQodHJ1ZSk7CiAgICAgdGVzdFJ1bm5lci5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0
Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdC
ZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13
b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAppbmRleCBjYTU5MzVmZTAwMDVhNWEwNjEzNTJjZjlh
MjNlZjYzMTIzYjE2YTM2Li5kZWE1OTA5YzFiYzhmMmNjNzZiNjBkNTAyYWQ3YzkzOTc3MTVmNGQy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJs
ZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2Nv
cmVzLmh0bWwKQEAgLTIxLDcgKzIxLDcgQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAi
d2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAg
IC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdGhlIHRyYWlsaW5n
IHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIg
eSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNDksNyBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5h
dGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIp
OwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJh
aWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZz
ZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2
YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5v
ZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAyNDky
NzNkMmUwYWJhYjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi42MzExMzU4M2EyYmYxOTJiMzA0
NTU4MTc3YTMyYjlhNTkwOTQ1ZTgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApAQCAt
MjEsNyArMjEsNyBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21l
LiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGlj
ayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0
ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZh
bHNlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsg
ZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zm
c2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9u
Lm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBA
IC00OSw3ICs0OSw3IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhv
bWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndp
bmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNs
aWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVl
KTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVz
dGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0
UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9m
ZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGstd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggMjIyN2Vh
YzYwMGUxMWI4Yjc1ODA5NzI0MGU3MTQ2NmU4OTExYTZmNy4uMjc1NTAxZDM3MGM0NjE3MWU3YjUx
NTEyOWQ2NTU4OGYwNjJlYTY0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3Rr
LXdrMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay13azIv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTAwLDExICsxMDAsNyBAQCB3ZWJraXQub3JnL2IvNjM3MDYg
aHR0cC90ZXN0cy9zZWN1cml0eS9kcmFnLW92ZXItcmVtb3RlLWNvbnRlbnQtaWZyYW1lLmh0bWwg
WyBGYQogd2Via2l0Lm9yZy9iLzYzNzA2IHBsdWdpbnMvbW91c2UtZXZlbnRzLWZpeGVkcG9zLmh0
bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi82MzcwNiBwbHVnaW5zL21vdXNlLWV2ZW50cy5o
dG1sIFsgRmFpbHVyZSBdCiAKLSMgV2ViS2l0MiBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQKLUJ1ZyhHVEspIGVkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgWyBGYWlsdXJlIF0KLUJ1ZyhHVEspIGVkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbCBbIEZhaWx1cmUgXQotQnVn
KEdUSykgZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1s
IFsgRmFpbHVyZSBdCi1CdWcoR1RLKSBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLWltZy1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCitCdWcoR1RLKSBlZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sIFsgVGltZW91dCBdCiAKICMgV2Vi
S2l0MiBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGRNb2NrU3BlZWNoSW5wdXRSZXN1bHQK
IEJ1ZyhHVEspIGZhc3Qvc3BlZWNoL2lucHV0LW9uc3BlZWNoY2hhbmdlLWV2ZW50Lmh0bWwgWyBG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0
YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXgg
NWI5ODY5MTAzNzc0MWIzOThmZmM1YTY3NDMyZjJkZjE0MmNhMWE3OS4uZGIwNDdkMzI2OGU1YTU4
YWJmMTdlMzZkZGYyZGE3MGZmOTY5NjRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTM3OSw5ICszNzksNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbAogIyBXZWJL
aXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwK
IHBsdWdpbnMvZ2V0LXVybC10aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlz
YWxsb3cuaHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAotZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKLQogIyBX
ZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eQog
cHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191435</attachid>
            <date>2013-03-05 01:32:13 -0800</date>
            <delta_ts>2013-03-05 01:58:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305102819.patch</filename>
            <type>text/plain</type>
            <size>83707</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi4xNTNiNTRiNmM3NzRmM2QzMzE5NGRlNTZmZjUxYzg3ZDNmNzE2MDA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgrW1dlYlZp
ZXcgaW5pdGlhbGl6ZV0pOiBJbml0aWFsaXplIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMu
CisgICAgICAgICgtW1dlYlZpZXcgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgor
ICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIExhc3psbyBH
b21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBKU0NfT0JKQ19BUElfRU5B
QkxFRCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZlYXR1cmVEZWZpbmVzLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggOTM3ZmE5MTk1ZWVkNGI4YTdhNzQwNjk2ZGE2MTQ3ZDQyMTk0MDAxNS4uMWNhMWE1ZjZl
YmU1ZGFmNDY0MTIyMGJjNWFmYmQ0OGFjMjU0Y2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRR
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAg
KEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBi
YWNrIHNvbWUgaW5jbHVkZXMgcmVtb3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLmIwMjdlYWFkZGIxZDE1ZGIyMDU2MmNh
NGNjZGQzMmQ4Mjc5YmZhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uM2I4ZTZiZmQ2NDk3MTM3
OWFjYmU3Njg4MWY5MWU2MmI0YzU4YWI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MzI0Mzg3MjIwOTY2Y2MxZTA0NzQxYzNhZDZkYWRkNWE5MzBjN2I5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2Zj
MDk3NjdiZWZmMjE0YTUzYmY3ZWJhZC4uZjYzNTllMGM3MmVmMGU3NzA0MmFiZDhiMDc2NWZjMjBk
YTFjZWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDcgQEAgdW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkCiAKIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9
ZmFsc2UKIAorIyBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgYXJlIG11dHVhbGx5CisjIGV4Y2x1c2l2ZSwgbWVhbmluZyB0aGF0IGVu
YWJsaW5nIG9uZSB3aWxsIGRpc2FibGUgdGhlIG90aGVyLgogc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGluaXRpYWw9dHJ1ZQorc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbml0aWFs
PWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5k
ZXJUcmVlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJU
cmVlQ2xpZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThk
MS4uZTk3NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAt
ODMsNyArODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5n
ZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29s
IHN0aWxsU2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUo
V2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikg
PSAwOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVm
ODgyNTA0YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLjlkNTI3MWFlOTAwOGU4ZTEyZGY0
MGJjNjY4N2RhZjIzYmVhNjVhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93
c0tleWJvYXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRv
ckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9k
dW1wUmVuZGVyVHJlZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUtPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNvcmUobV93ZWJQYWdl
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2
b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmVuYWJsZVNwZWxsQ2hlY2tpbmcoYm9vbCBlbmFi
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5k
ZXggMzhjNjZkZmU4OWY5M2ZhODhlMThkNTA2ODA4NDU2MTY2YzAyNjczMy4uNWY5YWM5MDhlMmM3
OTFmYjU4NTcxODIyYTAzM2YzMDE2NzM5NmQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTg2LDkgKzE4Niw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIHRydWU7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ29tcG9zaXRpb25PblNlbGVjdGlvbkNoYW5nZSgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc1NlbGVjdGlvbkVt
cHR5KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAKaW5kZXggOTgzMDNmNGY0NjRkZjMyMWJiNDk0ZDMzNGJlM2E4NjBiYzQ4MjJmNC4uMDgy
MWI5ZTQzYTA1OThhNGZjNmU4YzM0ZjlhYzUxMTc0M2I0ZTNhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkBAIC05NSwxNSArOTYsMTkgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpmcmFtZVdpbGxEZXRhY2hQYWdlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKIAogYm9vbCBF
ZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICBpZiAobV93ZWJWaWV3LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZWxzZQogICAgIHJldHVybiB0cnVlOworI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1w
bDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4g
dHJ1ZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggOWNmZDZiOWM3MWI1OTQzYThlNGY0YzE1MmNlMDUwNWU1YmFjMDhhMi4uNzBjYjg5MTll
YzdjN2ZmZTAwMmNjMjU1ODliNTJmNGJlODQ4ZGZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNTEyLDYgKzUxMiwxMSBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogI2VuZGlmCiAKICAgICBtX2luc3Bl
Y3RvclNldHRpbmdzTWFwID0gYWRvcHRQdHIobmV3IFNldHRpbmdzTWFwKTsKKworI2lmIE9TKFdJ
TkRPV1MpCisgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJ
bXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IDM4ZDJlNWNlNmU5NGNlNGUxMTQ4
M2FmZmVhOTcyOTlmYmY1NTdiMTguLjNlZmQ3YzIyY2IxYjUyOGE5NjJkMjQ5MzhjMDdmYTM4N2Q0
MGJhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtMzM4LDI4ICszMzgsNiBAQCBi
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldywgY29ucwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxl
ZCgpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAg
RFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRv
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRv
ckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVk
aXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZWRpdG9yQ2xpZW50LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVu
YWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdr
RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCBkOGZmM2U1NmZjOWY4YjM2Zjk0MmE4
MDQ2ZGFkZTUwOTFkZDJmYTViLi5hMGM3ODI4YzRjMTBiM2YyOTc0NDQ4YTcwM2QwNjVjOGUyYmY0
YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtODEsOCArODEsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3Rh
dGljIHZvaWQgc2V0Q1NTUmVnaW9uc0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxl
ZChib29sKTsKIAogICAgIHN0YXRpYyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmNwcAppbmRleCBhNGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBi
ZDNmLi4yYmUzMWE5YTA3NjNmZTNmYzg1MTI2OTk1MGZlOTU5YTllZjcwM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAK
QEAgLTI0MywyOCArMjQzLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVk
KCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwotfQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFj
b3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBj
b3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFn
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3Mo
KS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNs
aWVudEVmbDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtMzcxLDggKzM2Myw2
IEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9h
cmRFdmVudCopCiBFZGl0b3JDbGllbnRFZmw6OkVkaXRvckNsaWVudEVmbChFdmFzX09iamVjdCog
dmlldykKICAgICA6IG1faXNJblJlZG8oZmFsc2UpCiAgICAgLCBtX3ZpZXcodmlldykKLSAgICAs
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
CmluZGV4IDNjMmEyNDdkZTQ3YTk3ZGZiMzQ0ZmJlMGNjNDllYjgyZTM2NjMwNDguLmQwZDVkMzA4
MTUzY2JjMjA5NDU4MzFmYzE1MDQ5YTVmMTc0OGFhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC04NCw5ICs4NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShSYW5nZSopOwog
ICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3Vz
U3BlbGxDaGVja2luZygpOwogICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWQoKTsKQEAgLTE1Nyw4ICsxNTUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRXZhc19P
YmplY3QgKm1fdmlldzsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggY2U0OTM2Zjc5Mjk0ZjlkODBiNjZjMDc4MGE2ZmVjMjQ4
MWMwMDdkMC4uNTJjN2ViYmYxNjg4MmFkYTFjNGU0NGM0ODUzY2M4NDg1N2U0YzhiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNl
OwogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hh
aW4gPSB0cnVlOwotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpG
cmFtZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxv
YWRFdmVudENhbGxiYWNrID0gMDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGlj
YXRpb25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25D
YWxsYmFjayA9IDA7CiAKQEAgLTExMiwxNiArMTExLDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKQogICAgIHJldHVybiBzX2xpbmtz
SW5jbHVkZWRJblRhYkNoYWluOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotYm9vbCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQotewotICAgIHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0K
IC8qKgogICogZ2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
QEAgLTQ1MywxNSArNDQyLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERl
ZmVyc0xvYWRpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBkZWYKICAgICBjb3JlKHdl
YlZpZXcpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHdlYlZpZXcpOwotCi0g
ICAgV2ViS2l0OjpFZGl0b3JDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6RWRp
dG9yQ2xpZW50Kj4oY29yZSh3ZWJWaWV3KS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGNsaWVudC0+
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDA5Y2U3MjI2NDRmNTJiMTBjNWY1NWRkODZlODA2
MjI2NDkzNWJlNDcuLjg0NWYyYmIyNTk2ZjQyMThhMWE0OTIxNTc3NGE3MmE0MDY2ZjczNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyB2b2lkIHNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oYm9vbCk7CiAgICAgc3RhdGlj
IGJvb2wgbGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJP
cGVuZXIoV2ViS2l0V2ViRnJhbWUqKTsKIApAQCAtNzgsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2Vi
VmlldyosIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xv
YWRpbmcoV2ViS2l0V2ViVmlldyosIGJvb2wpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAgICAgc3RhdGljIHZvaWQg
Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyopOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0
eQpAQCAtMTQ2LDcgKzE0Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wg
c19kcnRSdW47CiAgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKLSAg
ICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCmluZGV4IGY5NDQyOWU5Nzg1MDY3MWU0ODgxODZkOWZhMTkwNjhiZDYwMzU4
NWYuLjljMGZkOTRhYTE3MjkzNTI1ZWYxZjg1NGNiNzBhYjlmOTJhMmE2NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJk
SGVscGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVW5k
b1N0ZXAuaCIKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCkBAIC0zNjAsMjEgKzM2MSwy
MCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7
CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsK
LX0KLQogYm9vbCBFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0g
ICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gY29yZShtX3dlYlZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFnZSogY29y
ZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JD
bGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1MDEsNiBA
QCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAg
ICwgbV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRfZ2V0X3Rl
eHRfY2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAzYTdlYWYx
NGM3MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNiZmZiY2Vm
MjE3ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBFZGl0b3JD
bGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAgdmlydHVh
bCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRvZ2ds
ZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xhc3MgRWRp
dG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAgIFdlYktp
dFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0
b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBt
X3BlbmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUwZjU3ODFl
ZmI0YzIxODNjZTc3NDYzMC4uNzg5NzI0MThjMjA5ZjI3ODc0YzE2NzYzYWUwYWRlZjg5MTIyN2U5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRB
cmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNldC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTggQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQq
IGVsZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07
CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZp
ZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwog
fQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDJjMWQ2YTMyMTIwMzUyNzc3MDljZWRjMzdmY2I0NjdkZjhhYTg4YjUuLjE1MzUwYTNm
YzIxZmRmMmNmY2JmYWY1NzcxZDM0YWI4ZTVhMDdiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTI0NzEsMTQgKzI0NzEsMTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0
TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgIT0gZmxhZykgeworICAg
ICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIFtzZWxmIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDohZmxhZ107CisgICAgfQogfQogCiAtIChCT09MKWlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJpdmF0ZS0+c2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogLSAodm9p
ZClzZXRNZW1vcnlDYWNoZURlbGVnYXRlQ2FsbHNFbmFibGVkOihCT09MKWVuYWJsZWQKQEAgLTMx
ODIsNiArMzE4NCw4IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB0b1N0cmluZ1ZlY3RvcihOU0Fy
cmF5KiBwYXR0ZXJucykKICAgICBpZiAoIVtkZWZhdWx0cyBvYmplY3RGb3JLZXk6V2ViQXV0b21h
dGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZF0pCiAgICAgICAgIGF1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbkVuYWJsZWQgPSBbTlNTcGVsbENoZWNrZXIgaXNBdXRvbWF0aWNTcGVsbGluZ0Nv
cnJlY3Rpb25FbmFibGVkXTsKICNlbmRpZgorCisgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkOltkZWZhdWx0cyBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZF1dOwogfQogCiArICh2b2lkKV9hcHBsaWNhdGlvbldpbGxUZXJtaW5hdGUKQEAgLTU0MzAsMTcg
KzU0MzQsMTcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1Zh
bHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGoKIAogLSAodm9pZClzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIGlmIChfcHJpdmF0ZS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkICE9IGZsYWcpIHsKLSAgICAgICAgX3ByaXZhdGUtPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCA9IGZsYWc7Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRh
cmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBpZiAoX3ByaXZhdGUt
PnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAhPSBmbGFnKSB7Cisg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmxhZyk7CisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIHNldEJvb2w6X3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgLy8g
U2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkg
ZXhjbHVzaXZlLgorICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOiFmbGFnXTsKICAgICB9Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6ZmFsc2VdOwogfQogCiAtIChCT09MKXNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwogfQogCiAtICh2b2lkKXNldENvbnRpbnVvdXNTcGVsbENoZWNr
aW5nRW5hYmxlZDooQk9PTClmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRh
LmgKaW5kZXggYWRlYWJlN2VlMmNmYTIyY2JkYzI4ZTNiYTgzMzc4ZjQ2MDNlMDJlMi4uMzQ3YWJh
NDU3ODVmMTgwZThjOTc0NmNjY2I2MmE0ZTY3ODBlOTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTQ2LDkgKzE0Niw2IEBAIHByaXZhdGU6CiAgICAgQk9P
TCBoYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgc3BlbGxDaGVja2Vy
RG9jdW1lbnRUYWc7CiAKLSAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBC
T09MIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgICAgIAogI2lmIEVOQUJM
RShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2Vu
ZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzOwogICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdh
eXNTZW5kQWN0aXZlTnVsbEV2ZW50c1RvUGx1Z0luczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLm1tCmluZGV4IGUyNzY2ZjAxYTM1YmMwN2VlYWE0ODZjMjY1NWI0YzAxYmFl
ZDk3YTYuLmM2ODFmMDliYTcyMTZkOGQyMTZlNTk3NTI2YWY4NTgxZDAwM2RlN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNl
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtOTUsMTAgKzk1LDYgQEAgTGF5
ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250cm9sbGVyKFdlYlZpZXcqIHdlYlZpZXcp
CiAKICAgICBzaG91bGRDbG9zZVdpdGhXaW5kb3cgPSBvYmpjX2NvbGxlY3RpbmdFbmFibGVkKCk7
CiAKLSAgICBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZF0KLSAgICAgICAgfHwgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9v
bEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOwotCi0KICAgICBwbHVnaW5EYXRh
YmFzZUNsaWVudENvdW50Kys7CiAKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggOGE0ZTBlY2E4NDE1YzU4YTdmNmNiMDcwZjMyZTAxMjk0
MTkzZmM3Yi4uMDQ2MzZmYmRmOWJlZDZhNmRlMDlhNTljNjk2MDYwZmM2NzQzY2M1MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMyNiwxOCArMzI2LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoUVdlYlBhZ2VBZGFwdGVy
KiBhZGEKICAgICBhZGFwdGVyLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZCh2YWx1ZSk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBh
Z2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQp
OwotfQotCi0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVuYWJsZWQp
Ci17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0
b3JDbGllbnQoKSktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7
Ci19Ci0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5k
QnlOYW1lKFFXZWJQYWdlQWRhcHRlciogYWRhcHRlciwgY29uc3QgUVN0cmluZyYgbmFtZSwgY29u
c3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgYWRhcHRlci0+cGFnZS0+Zm9jdXNDb250cm9sbGVy
KCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1lKS5leGVjdXRl
KHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAwOTgwOWVmOTc2MzE3MTRjZjg5ZTgyZjNi
ZGRlNDJhZGMwZWI0NmUwLi45M2QwNjgzZTkzMTc2NGMxYmNmYTgyNzg0Yjg4OGRlZGI4ODNiZTVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0
aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3Qg
UVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlz
Q29tbWFuZEVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFtZSk7CiAg
ICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5n
JiwgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsK
LSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQ
YWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBzZWxl
Y3RlZFJhbmdlKFFXZWJQYWdlQWRhcHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3QgZmly
c3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0aW9uLCBp
bnQgbGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VB
ZGFwdGVyKiwgY29uc3QgY2hhciogdGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZlMGE1NGJmMWEz
YjBiYmM1ZWM1YWEyNDkwODdhMDMuLjc0MGJjOTYzOWVhMzNiYzFiNTMyMGVmMmQ4MjhkMGQzMWMx
YTQ5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwCkBAIC0zMzMsMTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0Ojpw
YWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAg
UGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
biB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRl
KCkKIHsKLSAgICBib29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAg
ICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2Ug
PSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3Mo
KS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQpOworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKTsKKyAgICB9CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50UXQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdl
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEs
OCArNTUwLDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRl
ciogcGFnZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRp
bmcoZmFsc2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVh
MTkyNGIyZi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAt
MTExLDkgKzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAK
LSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
PSBiOyB9Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0
aWMgYm9vbCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAg
ICAgUVdlYlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9v
bCBtX2luVW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9u
J3QgcmUtZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBi
b29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IGQ5ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmM0YzU0YThkNjkx
MjYyMmVmYTFiMzQ2NzgwZWZkOTEwNWVmODFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRv
ckNsaWVudDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90
aWZpY2F0aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVu
dDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9
IEZBTFNFOyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxl
ZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3
LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJv
b2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodm9p
ZCkKIHsKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsKLSAgICBtX3dlYlZpZXctPmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxl
ZDsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6
OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5n
ZSosIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZDYy
MTQxMTUyMDg2NTFjM2QzNjdlMmUyYWQ2MDNlOGU1Mjk4MWVlZS4uM2I0NWY3ZTY4ZTJhODhiNTM5
MGVjYjMyNTI3Nzc1MDRkOGFlZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTM2NSw3ICsz
NjUsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxz
ZSkKICAgICAsIG1fcGFpbnRDb3VudCgwKQogICAgICwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVu
dFRhZyhmYWxzZSkKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9kaWRDbG9zZShmYWxzZSkKICAgICAsIG1faW5JTUVDb21wb3NpdGlvbigwKQogICAgICwg
bV90b29sVGlwSHduZCgwKQpAQCAtMzczLDcgKzM3Miw2IEBAIFdlYlZpZXc6OldlYlZpZXcoKQog
ICAgICwgbV90b3BMZXZlbFBhcmVudCgwKQogICAgICwgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1l
ckFjdGl2ZShmYWxzZSkKICAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCi0gICAgLCBtX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RQYW5YKDApCiAg
ICAgLCBtX2xhc3RQYW5ZKDApCiAgICAgLCBtX3hPdmVycGFuKDApCkBAIC00MDgyLDMyICs0MDgw
LDM2IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dHlwaW5nU3R5bGUoCiBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCggCiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCkKLSAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkg
PT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVy
biBTX09LOwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wq
IGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA/
IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAg
ICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghIWZsYWcpOwor
ICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVh
bGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFmbGFn
KTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAg
ICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAq
ZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmgKaW5kZXggYzkzNzM0NjJmZWYyODQxZTU3N2MwNjA5ZDAzODJmMWI3MzYwN2I2ZS4uZmNiNzgy
NDg0MzA4M2NlZTNjMDgzNTk4ZDNhMThlOWQ3ZmJjNGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAt
MTExMiw4ICsxMTEyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVk
OwogICAgIHVuc2lnbmVkIG1fcGFpbnRDb3VudDsKICAgICBib29sIG1faGFzU3BlbGxDaGVja2Vy
RG9jdW1lbnRUYWc7Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBi
b29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fZGlkQ2xv
c2U7CiAgICAgYm9vbCBtX2hhc0N1c3RvbURyb3BUYXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pbklN
RUNvbXBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAppbmRleCBiOWY0NjhmNDE1NDJiY2NkMDhiZTUx
MWM2NzgxNDgxZjc1M2EzY2IyLi5mZTFhZjA0YTBlZWJkODg0ZTlkNTI3YzJlYmIyMDM2NTA5NDVm
YzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFdpbkNFLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVk
LmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
IgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIwOSwx
NCArMjEwLDE4IEBAIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnBhZ2VEZXN0cm95ZWQoKQogCiBi
b29sIEVkaXRvckNsaWVudFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBt
X3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsK
IH0KIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6dG9n
Z2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKaW5kZXggNWVmNjRjZDRhOWMwMTM2M2M0OTll
NTdmY2Q5N2FkZDVkOWMzMTVhYS4uNzI2YWQwYTNmODg4YWM5NTY1MWM2YTMyMjdkNDJmM2IzNjhl
MmE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNs
aWVudFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xp
ZW50V3guY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIK
ICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisj
aW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldl
YkZyYW1lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKQEAgLTE0OSwxNCArMTUwLDE2
IEBAIGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikKIAogYm9v
bCBFZGl0b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJ
bXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCAwNGRiMzRmYWNhZDUwNzVkNDQzMWFkODdmYmQ1OWM0YjUwNDkxZDQ5Li4xNGZjNmRk
MGM0MmE4NzBiZGY5ZWQ4ZWEyYTBlYmJjMzA4MzhhNGYzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMtMDMtMDUg
IE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVz
IGFsbCB0aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAg
ICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcyB0aGV5IHdp
bGwgYmUgbWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFscyBmcm9tIG5vdyBvbi4KKworICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
Lmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFj
a2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChC
bGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
QmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1w
UmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJU
ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkU3Rv
cExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1
bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1
ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAo
cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRl
QmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJN
YWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRX
ZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
d3gvVGVzdFJ1bm5lcld4LmNwcDoKKwogMjAxMy0wMy0wNCAgTWlraGFpbCBQb3pkbnlha292ICA8
bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtFRkxdIEFkZCBj
YWxsYmFja3MgdG8gdGhlIFdLVmlld0NsaWVudCB0byBoYW5kbGUgV2ViIFByb2Nlc3MgY3Jhc2gg
YW5kIHJlbGF1bmNoCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDIzYjcyMzgy
Yzk5N2VkZGMxZmZiMzQ5MDk5YzlhM2Q5MDFhNmZkMjQuLjA1NGIxNzA2MzBkMzJiYTA2MjE1MjM1
MGQwMDBiZTE0NjE4MWFjZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0x
NTA2LDE2ICsxNTA2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlzaWJpbGl0eUNh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZgogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAgCiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIg
PSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKLSAgICBjb250cm9sbGVyLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoSlNWYWx1ZVRv
Qm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0
UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQog
ewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAgLTE1MjYsMTYgKzE1MTYsNiBAQCBzdGF0
aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlv
biwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpT
VmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAo
YXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0
UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVy
LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29u
dGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxv
YWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFRlc3RSdW5u
ZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2
YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIxNTAsOSArMjEzMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24q
IFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFBsdWdpbnNFbmFi
bGVkIiwgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQ
cmludGluZyIsIHNldFByaW50aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZCIsIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIiwg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInNldFNlcmlhbGl6ZUhUVFBMb2FkcyIsIHNldFNlcmlhbGl6ZUhUVFBMb2Fkc0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIsIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMi
LCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwgc2V0VGFiS2V5Q3ljbGVzVGhyb3Vn
aEVsZW1lbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRl
eCBjY2E0MWY3NGZhNDY4M2QxN2M1ODRiYjI4OWQ2Y2EwZmQzMzI4NjI1Li5kOTg0NzAwZmI3OGU3
OGIxNWU4ZjY2M2QzNGE4Y2RiOWQwZWZiY2MzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5o
CkBAIC0xMDMsOCArMTAzLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQo
Ym9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRz
KGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUoYm9vbCBm
bGFnKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGZsYWcpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCA3MTY1MmRjZDEyMzhhMTM2NDM3MmIwOTgzNTgwYmMwMmQyODM4MTA1Li45NTY0NDRiYzdm
ODU1YWNhOWVhZjQ2NWMwMjQxYmVhN2JiNWQ4NmI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw2IEBA
IG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBEdW1wUmVuZGVy
VHJlZSogRHVtcFJlbmRlclRyZWU6OnNfY3VycmVudEluc3RhbmNlID0gMDsKLWJvb2wgRHVtcFJl
bmRlclRyZWU6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogCiBz
dGF0aWMgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7CkBAIC0yOTUs
NyArMjk0LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnMKIAogICAgIHRvcExvYWRpbmdGcmFt
ZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxzZTsKLSAgICBzX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCA9
IGZhbHNlOwogICAgIHdhaXRGb3JQb2xpY3kgPSBmYWxzZTsKICAgICB0ZXN0RG9uZSA9IGZhbHNl
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZUJsYWNrQmVycnkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWVCbGFja0JlcnJ5LmgKaW5kZXggYTEzYWZiMTJkOGQ1MjM4MzM1NDdmMzNjMjcwOTA0
MWUwMGI3OTgzNi4uMjY3YzRkY2FkZjZlZDA3NjU3NmQ3Y2RiY2QwMGFkZjM5ZGNlMDljMCAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJs
YWNrQmVycnkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5k
ZXJUcmVlQmxhY2tCZXJyeS5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgogICAgIGJvb2wg
c2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5z
ZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2Vi
Q29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKIAotICAgIGJvb2wgaXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gc19zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
PSBlbmFibGVkOyB9CiAgICAgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Uo
V2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCiAgICAgLy8gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJs
YWNrQmVycnlQbGF0Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0aG9kCkBAIC0xNDgsNyArMTQ2LDYg
QEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9hY2NlcHRzRWRpdGluZzsKICAgICBib29sIG1fbG9h
ZEZpbmlzaGVkOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogfTsKIH0KZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnku
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJy
eS5jcHAKaW5kZXggYWFlODQzODhhOGMyZTJiMzE0MWQ2ODMzN2QxOGE0YWJmMWQzNDVmNi4uMjEw
MjBkOWQ4ZmUwMzA2ZGY3YWM5NzQyMjNkMDRmM2UwMGMwNWU5YyAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAK
QEAgLTI2MCwxNyArMjYwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRYU1NBdWRpdG9yRW5hYmxl
ZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3Vy
cmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRvckVuYWJsZWQo
ZmxhZyk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVy
VHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoZmxhZyk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGJvb2wgZmxhZykKLXsKLSAgICBVTlVTRURfUEFSQU0oZmxhZyk7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxl
bWVudHMoYm9vbCBjeWNsZXMpCiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJv
eHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dl
YlRlc3RQcm94eS5oCmluZGV4IGE0NGVjYmQ3ODBkYTYxZDliZmU3ZTljODBlNTIxZjZiMWI5MDc1
YzguLmQ0YTYwMGI4MjBlOTMwNzNkYjg5NzYxZWJhNzI5MGMxMWZjZDBhMTUgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQ
cm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3RQcm94eS5oCkBAIC0xNDksOCArMTQ5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdl
YktpdDo6V2ViUGx1Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdl
YktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFdl
YktpdDo6V2ViU3RyaW5nJik7CiAgICAgdm9pZCBkaWRTdG9wTG9hZGluZygpOwotICAgIGJvb2wg
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2Vi
RnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYpOwogICAgIFdlYktpdDo6
V2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQoKTsKICAgICB2b2lkIHByaW50UGFn
ZShXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0zNjgsMTQgKzM2Niw2IEBAIHB1YmxpYzoKICAgICAg
ICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICAgICAgQmFzZTo6ZGlk
U3RvcExvYWRpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJU
ZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB9
CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkZyYW1lKiBmcmFt
ZSwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0YSkKICAg
ICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShmcmFtZSwgY29u
dGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggNDc5NTFlZmFjMGEwZDg4
ZDBjM2M0NDUwZDdiN2FhM2QwMjY5NmRlOS4uNWMwMmY3YzkxZjBlNDhmNThmZDUxMmVhZTg2ZGVm
NmI5MzdjNzBjMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIwOCw4ICsyMDgsNiBAQCBU
ZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2VzKQogICAgIGJp
bmRNZXRob2QoInRleHRTdXJyb3VuZGluZ05vZGUiLCAmVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5k
aW5nTm9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RS
dW5uZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7CiAgICAgYmluZE1ldGhvZCgiZW5hYmxlQXV0
b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUpOwotICAgIGJp
bmRNZXRob2QoInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwotICAgIGJpbmRNZXRob2QoInNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9u
IiwgJlRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAgYmluZE1ldGhv
ZCgiZGlkQWNxdWlyZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZEFjcXVpcmVQb2ludGVy
TG9jayk7CiAgICAgYmluZE1ldGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6
OmRpZExvc2VQb2ludGVyTG9jayk7CkBAIC00MTAsMTIgKzQwOCw2IEBAIHZvaWQgVGVzdFJ1bm5l
cjo6cmVzZXQoKQogICAgIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxv
YWQgPSBmYWxzZTsKICAgICBtX3Nob3VsZEJsb2NrUmVkaXJlY3RzID0gZmFsc2U7CiAgICAgbV93
aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsID0gZmFsc2U7Ci0gICAgbV9zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSB0cnVlOwotI2lmZGVmIFdJTjMyCi0gICAgbV9zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi0gICAgbV9zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKICAgICBtX3Nob3VsZER1bXBSZXNvdXJj
ZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0cEhlYWRlcnNUb0NsZWFyLmNsZWFyKCk7
CkBAIC02NzQsMTYgKzY2Niw2IEBAIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkSW50ZXJjZXB0UG9z
dE1lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2ludGVyY2VwdFBvc3RNZXNzYWdlLmlzQm9v
bCgpICYmIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UudG9Cb29sZWFuKCk7CiB9CiAKLWJvb2wgVGVz
dFJ1bm5lcjo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVy
biBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotYm9vbCBUZXN0UnVubmVyOjppc1Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0KIGJvb2wgVGVzdFJ1bm5lcjo6c2hv
dWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2hvdWxk
RHVtcFJlc291cmNlUHJpb3JpdGllczsKQEAgLTE0OTAsMjAgKzE0NzIsNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVu
dHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0KHN1cnJvdW5kaW5nVGV4dC50ZXh0Q29udGVu
dCgpLnV0ZjgoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1
bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jv
b2woKSkKLSAgICAgICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0u
dmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIFRlc3RS
dW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1l
bnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVl
OwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNv
dXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBD
cHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVz
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCA4OGQ4YjM3MTU1OTI5MTA3MTdhMWY4OGUy
NTNjZTVhZjVhMmRiODk3Li5mZWFkYTg4ZjgyMmE3MDUyYjc1YzE3ZDM3MWFiNGFmMDFmYmIwMTAz
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMTgsOCArMTE4LDYgQEAgcHVibGljOgogICAgIGJv
b2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25zdDsKICAgICBib29sIHBvbGljeURl
bGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSW50ZXJjZXB0
UG9zdE1lc3NhZ2UoKSBjb25zdDsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBj
b25zdDsKICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBjb25zdDsKICNp
ZiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgIFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2Vu
dGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKQEAgLTI3MCwxMSArMjY4LDYgQEAg
cHJpdmF0ZToKICAgICAvLyBsZW5ndGggdG8gcmV0cmlldmUuCiAgICAgdm9pZCB0ZXh0U3Vycm91
bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8v
IEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9kZWxldGUuIFRoaXMgaXMgZW5hYmxlZCBi
eSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxl
IHRyYWlsaW5nIHdoaXRlc3BhY2Ugc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljay4KLSAgICB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1dG9SZXNpemVN
b2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAtNjcwLDEwICs2
NjMsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVy
bk51bGw7CiAKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotCi0gICAgYm9v
bCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0KICAgICBib29sIG1fc2hvdWxk
RHVtcFJlc291cmNlUHJpb3JpdGllczsKIAogICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiBtX2h0
dHBIZWFkZXJzVG9DbGVhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCmluZGV4IDg2ODEzM2Zl
NDcwZjkxYWVmY2VkMWZjMTk2YmNhOGY3MGQzMGQwOTQuLmNjNTA3NTM0ZTE2ZDk4NTlhMjJjNTdk
YzIxZDU0YWM1YjNlMmFhZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcApAQCAtOTc4LDE2
ICs5NzgsNiBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5nKCkKICAgICAg
ICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNh
dGlvblxuIik7CiB9CiAKLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCkt
PmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci19Ci0KLWJvb2wgV2ViVGVzdFByb3h5QmFz
ZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV90
ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKLX0KLQogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29udGV4dE1lbnUoV2Vi
RnJhbWUqLCBjb25zdCBXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0YSkKIHsKICAg
ICBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVudFNlbmRlcigpLT5zZXRDb250ZXh0TWVudURhdGEoY29u
dGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdI
b3N0LmNwcAppbmRleCA2OTA1Y2RhNmY3Y2QxOGFhOGU1MTBiZjk2YmQ3ZDMyZGU4NzdiZWExLi5k
ZDYyZjNhMjEwZmIwZjExY2M3OTVhZWUwOTlmYWU4NDZjZTA3NDNiIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNjksMjAgKzE2OSw2IEBA
IGJvb2wgV2ViVmlld0hvc3Q6OnNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3RyaW5nJiBzdHls
ZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2Vi
Vmlld0hvc3Q6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1
ZTsKLX0KLQotYm9vbCBXZWJWaWV3SG9zdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCkKLXsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBXZWJWaWV3SG9zdDo6aGFuZGxlQ3VycmVu
dEtleWJvYXJkRXZlbnQoKQogewogICAgIGlmIChtX2VkaXRDb21tYW5kTmFtZS5lbXB0eSgpKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggYzE2ZDVm
Zjc4ZTU2ZDE1OGUxNTYyZDA2YTE2YzZkZjJjNzhmMTJmOC4uMzdlMDBjMjgwYWQ3YTgzMDdhNDNm
ZDZmMjg4NzgxYTYxNDYyMmQ4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJs
aWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwK
ICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShjb25zdCBXZWJLaXQ6
OldlYlJhbmdlJiBmcm9tLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiB0bywgV2ViS2l0OjpXZWJU
ZXh0QWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGREZWxldGVSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7CiAgICAgdmlydHVhbCBib29s
IHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBX
ZWJLaXQ6OldlYlJhbmdlJik7Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCk7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpOwog
ICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKFdlYktpdDo6V2ViRnJhbWUqLCBj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBydW5Nb2RhbENvbmZp
cm1EaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApp
bmRleCBlMzc4NWIxMDUyOTUyMmIxYjMzY2M0NzM2MTQ3OGFjMGI0YmJkYmQxLi5kZDY5MzllNTA0
MjRlOTY4MmI4YzJhODBlM2I1ZTM4NTU1MzA1N2JjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTMwNiw4ICszMDYsNiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVz
KCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNzYWdlVGlt
ZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3KCksIC0xKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1haW5WaWV3KCksIHRydWUpOwog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQobWFp
blZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobWFpblZpZXco
KSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVmZXJzTG9hZGlu
ZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRM
b2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmlldygpLCBmYWxz
ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMo
ZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4
IDg4NzU2ZGNkNzJlNjc0ZjdlMDZhYzU2ZjA0MzE2Mjk0NmNjNmVlMzAuLmY4Y2YzY2VlNTU2OWJk
MjIwOGU0MjE2MzY5ZWFkNTk5MDhhNjQ5OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
VGVzdFJ1bm5lckVmbC5jcHAKQEAgLTI3MiwxMSArMjcyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpz
ZXRXaW5kb3dJc0tleShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChicm93
c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogc3RhdGljIEVpbmFfQm9vbCB3YWl0VG9EdW1w
V2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICB3YWl0VG9EdW1wV2F0Y2hkb2cgPSAwOwpAQCAt
NDIxLDExICs0MTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQogICAgICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9wYXRoX3Nl
dChkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJy
b3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBld2tfdmlld19zZXR0aW5nX3Njcmlw
dHNfY2FuX29wZW5fd2luZG93c19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgIWZsYWcpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNWEzNTc0Zjcx
MjEzYjQ1NjI3MTVkMmM4ZWRkZTA5NmIzY2E4ZTBkNS4uY2VlNDYxYzU4MWQzZjE5MzJlNDFkNDc0
NjU0NGVkYmY2NDYwZGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC01MDEsOCArNTAxLDYgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1Rv
Q29uc2lzdGVudFZhbHVlcygpCiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldExp
bmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4odHJ1ZSk7CiAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vf
c2V0X3BhdGgod2Via2l0X2dldF9pY29uX2RhdGFiYXNlKCksIDApOwotICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQod2ViVmlldywgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREZWZl
cnNMb2FkaW5nKHdlYlZpZXcsIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBmMWMzMDY5Mjc2MjZiZmNlMjE0MjIyNjc5N2Q2OThi
YWI2N2JkOTc2Li5mOWViYjBhNmE4ZDUxZTRkN2E2M2RlNWJlZGZmODhmMmZlNzg1NjQ3IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0zMjMsMTEgKzMy
Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkK
ICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93
ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFnKTsKLX0KLQogc3RhdGljIGdib29sZWFuIHdhaXRUb0R1
bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHNldFdhaXRUb0R1bXBXYXRjaGRvZygwKTsK
QEAgLTQ4NSwxMSArNDgwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJY29uRGF0YWJhc2VFbmFi
bGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgo
ZGF0YWJhc2UsIDApOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgV2Vi
S2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFt
ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggOWEy
MDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OC4uY2IxNGExNTdhNDU4NzZiMTdj
NGJmNGYzMDJkMmY2YzU1NDlhOGI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbQpAQCAtMTI3OCw4ICsxMjc4LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJW
aWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgZ1Rlc3RSdW5uZXIt
PnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB9CiAKLSAgICBbW21haW5GcmFtZSB3ZWJW
aWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6WUVTXTsKLQogICAgIFtXZWJWaWV3IF9z
ZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwogICAgIFtXZWJWaWV3IF9yZXNldE9y
aWdpbkFjY2Vzc1doaXRlbGlzdHNdOwogICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NSb3VuZGluZ0hh
Y2tzOk5PXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXgg
ZGZiOWE2ZWNmZDc0YzM3MzM2YzMwNTA0MmE2MmM5ODIxMmJjNzBjMi4uNzljODRmZWFjN2E2ZWJm
YjFmYTc1MWIzNWMxMzg4MWRlZWNjYWYwOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW0KQEAgLTYzNCwxNiArNjM0LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRX
aW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIF91
cGRhdGVBY3RpdmVTdGF0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgW1ttYWlu
RnJhbWUgd2ViVmlld10gc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpmbGFnXTsK
LX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1bXBXYXRjaGRvZ0ludGVy
dmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgd2FpdFVudGlsRG9uZVdhdGNoZG9nRmlyZWQoQ0ZS
dW5Mb29wVGltZXJSZWYgdGltZXIsIHZvaWQqIGluZm8pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDIzZmQzNWMxYzZmYjVmMTc5MzNiNjUzMmJk
NGM4NzQxNzAwZThjZDIuLmRmYTY3MmI2NzRkZWMzY2U5NzA2MmY1OGZlZmNmYzk5MzgwMWEwNWYg
MTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0x
OTIsOCArMTkyLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKIAogICAgIG1fZHJ0
LT50ZXN0UnVubmVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKICAgICBtX2Ry
dC0+dGVzdFJ1bm5lcigpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0cnVlKTsKLSAg
ICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7
Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0RGVmZXJzTG9hZGluZyhm
YWxzZSk7CiAKICAgICAvLyBnbG9iYWxTZXR0aW5ncyBtdXN0IGJlIHJlc2V0IGV4cGxpY2l0bHku
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCA2MGM1M2JiMDM2
NzZiM2Y1N2ViMmU0OGZkM2IyNWJjOGEzMTU1NTNiLi42NmRlNTkzOTc4ZjcwYzk4ZGFhMzY2YzNk
YTBkY2Q2OThjMzcyZWJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAKQEAgLTcyMCwxNiArNzIwLDYgQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNjcm9sbGJhclBv
bGljeShjb25zdCBRU3RyaW5nJiBvcmllbnRhdGlvbiwgY29uc3QgUVN0cmluZyYKICAgICBtX2Ry
dC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0U2Nyb2xsQmFyUG9saWN5KG8sIHApOwogfQog
Ci12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5h
YmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KLXZvaWQgVGVzdFJ1
bm5lclF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlKQot
ewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUpOwotfQotCiB2b2lkIFRlc3RS
dW5uZXJRdDo6ZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYg
dmFsdWUpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFu
ZEJ5TmFtZShtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCBkZDAyNmRlMWIwOWE0MjBmMmE4MTFmNjhhYmZi
MDA2YTFiZjA0M2VmLi5lYmIyMjk0NDRmOGNmZTFjOTQxZmU0Y2JlZjhiNzlhMzI5ZTY2ZWY0IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTc4LDggKzE3OCw2IEBA
IHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpOwotICAgIHZvaWQg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2b2lkIGV4ZWNDb21tYW5kKGNvbnN0
IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlID0gUVN0cmluZygpKTsKICAgICBi
b29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9v
bCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJy
YXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
Zjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEzODM3ODczZWRhNzhjZWY1Yi4uODlmYTlmN2FmYTE2MzVm
NjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC04OTksMTAgKzg5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0
V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAgIFdlYkNvcmVU
ZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5hbHNPYmplY3QoY29udGV4dCk7CiAgICAgfQogCi0gICAg
Q09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKFNVQ0NFRURFRCh3
ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgdmlld0VkaXRp
bmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChUUlVFKTsKLQogICAgIENPTVB0cjxJV2Vi
Vmlld1ByaXZhdGU+IHdlYlZpZXdQcml2YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKICAgICBpZiAoIXdl
YlZpZXdQcml2YXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggODQyMzI2Y2JjZjU5NThjOWVkMzQ3MGMwYjExMjUzN2U1
MzA1YmI4MS4uZDgyZGYyZWU1M2MxMGFhMDE3YTQ3YWRiYWQ0YWM3NzVhNjQwYmNkYiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzIzLDMyICs3MjMs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgZmxhZykKICAgICA6OlNl
bmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIGZsYWcgPyBXTV9TRVRGT0NVUyA6IFdNX0tJTExGT0NV
UywgKFdQQVJBTSk6OkdldERlc2t0b3BXaW5kb3coKSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8
SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmll
dykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3
RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRp
dGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCi12b2lkIFRlc3RSdW5u
ZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAg
IENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3
KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRp
bmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2Uo
JnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQot
CiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwg
PSAzMC4wOwogCiBzdGF0aWMgdm9pZCBDQUxMQkFDSyB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJl
ZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVz
dFJ1bm5lcld4LmNwcAppbmRleCA5Nzc1MTEzNTBlY2ViZWQwZDk1MzJmZTUwNDlmZjVmYWFmNjg3
M2VjLi40MTY3ODI3ZjFhNzBlZjFhM2Q3MjI0OTQ0NGZlNmMzOTAxYzc3ZDJlIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTE1MSwxMSArMTUxLDYgQEAgdm9p
ZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJ
WE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9p
ZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkKIHsKICAgICBz
dGF0aWMgY29uc3QgaW50IHRpbWVvdXRTZWNvbmRzID0gMTA7CkBAIC0yOTQsMTEgKzI4OSw2IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxv
bmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8g
RklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmll
bnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3Zp
ZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkK
IHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBEZXZpY2VPcmllbnRhdGlvbiBsYXlvdXQg
dGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggYTI2NzZlYmM2MDgyODNmMjU0M2RmNWUxODNmNTNkYmVkN2E4Nzg3NC4u
MWZiNzFmYWY5NGYxODRmNTI2NWJiODY4MThmZjMyZGY4YzRhMjhmOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRp
bmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAgICAgICAgQmUgc3VyZSB0aGF0IHRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgYXJlIHNldCB0byBvcHBvc2l0ZSB2YWx1ZXMgYXMgdGhleSBhcmUKKyAgICAgICAg
bXV0dWFsbHkgZXhjbHVzaXZlLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1l
ZGl0aW5nLWRpc2FibGVkLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1s
YXN0LWNvbnRlbnRlZGl0YWJsZS5qczoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Jlc291
cmNlcy91dGlsLmpzOgorICAgICAgICAoaW5pdFNwZWxsVGVzdCk6CisgICAgICAgICogZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2Vk
LXdvcmQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5m
bGFnCisgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1s
YXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAgICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIw
MTMtMDMtMDQgIENocmlzdGlhbiBCaWVzaW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4K
IAogICAgICAgICAodGVzdHMpIGZsZXhib3gvcmVzb3VyY2VzLmNzcyBzaG91bGQgdXNlIHVucHJl
Zml4ZWQgcHJvcGVydGllcywgZm9yIGZpcmVmb3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKaW5kZXggN2ViMzBk
MjIxMWQwYzBkODE5YmVmMmY1ZTczNjg0ODE5ODFkZWQ2OS4uZDBmN2Q3YWYxNThkYTI1Yzg3ODc2
Yzg4MzZhZjA3YmFhNzQ2YWI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKQEAgLTUsNiArNSw3IEBACiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNw
YW4uaHRtbAppbmRleCA4Yjk4YmE3MmZiZmM3NDBhZmEzNWMyZDA4YWM5NTc3YWI2Yjk5ZTlhLi44
ZDVjYjc2YjdhZGIxODc3ODQ1MWFlZWY1MjdhZWUzNmMwZDhmYmIxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1j
ci1zcGFuLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlv
biBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAppbmRl
eCA0MGUyNDEzODIxZThlODg0MDc5NzhhYTgzNzY5Mzc3Yzg2ODZhZjhmLi5jOWI0NGU2YzY2ZjM5
NWE1YjA3ZmYzOTMzNDQxMjYxZmE0OTM2OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5o
dG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKaW5kZXggZjI4MGEyNmE3Njlh
OTVhNzlkZGE2ZDQ0NjcxNjRkZmQ0NDYzNzUwNC4uZjc0YWEyNjU2Nzc2NTYzNThhNzk1OTg2ZTNh
Mzc5OWM3ZmNlZjY3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCkBA
IC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbAppbmRleCA4NTMwZmJjNTMxYTQ1M2E2YWY1ZmJm
MzlkNWY2ZjFlYWFmOThiN2RjLi43ZDgzZmIxZmExZTU4YjVlNzQxNWUyZjNhZTFmMjk0ZGMyZGVl
YzFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay13aGl0ZXNwYWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
IH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZp
cnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0
YWJsZS5qcwppbmRleCBlZTY1NWRjMDcyYWZmMmIyNWZiNzIzNTY5NTAzMDkwOTVjMWMyZTM5Li5l
N2JkZmY1Y2QyNjMzMjc4Nzg2ZTYyZjY4MjIxOTkwOWE5NzE2YzIxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5l
LWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250
ZW50ZWRpdGFibGUuanMKQEAgLTc4LDcgKzc4LDggQEAgZnVuY3Rpb24gdGVzdFdpdGhDbGlja0Fu
ZE1vZGlmeSh0YXJnZXRJbm5lckhUTUwsIGV4cGVjdGVkVGV4dCkKICAgICBzaG91bGRCZSgid2lu
ZG93LnNlbGVjdGVkQnlNb2RpZnkiLCB0b0xpdGVyYWwoZXhwZWN0ZWRUZXh0KSk7CiB9CiAKLXRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CitpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwog
CiB2YXIgc2hvdWxkU2VsZWN0ZUZpcnN0V29yZElubGluZSA9ICI8c3BhbiBpZD0ndGFyZ2V0JyBj
b250ZW50RWRpdGFibGU+c2VsZWN0bWUxPC9zcGFuPiBhbmQgbm90IHNlbGVjdCB1cyI7CiB0ZXN0
V2l0aERvdWJsbGVDbGljayhzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lLCAic2VsZWN0bWUx
Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91
dGlsLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwpp
bmRleCBjZjgwMzM0MTg4NDNjZjIwYzY2NzFlN2M4NDkwN2I3MDcyZDQ5NTIwLi4wOTRhNTNiMjg5
Njg4ZDgyZGU0ZGU3MzY3YTljOTQzMzRmNTYyNDk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTI3LDggKzI3LDggQEAgZnVuY3Rpb24g
aW5pdFNwZWxsVGVzdCh0ZXN0RWxlbWVudElkLCB0ZXN0VGV4dCwgdGVzdEZ1bmN0aW9uKQogICAg
IHRlc3RGdW5jdGlvbkNhbGxiYWNrID0gdGVzdEZ1bmN0aW9uOwogICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOwogICAgIHRlc3RSdW5uZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQodHJ1ZSk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1
ZSk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZh
bHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGZhbHNlKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRD
aGVja2VyRW5hYmxlZCh0cnVlKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0Jl
aGF2aW9yKCJ3aW4iKTsKICAgICB2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCh0ZXN0RWxlbWVudElkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdv
cmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCmluZGV4IGNhNTkzNWZlMDAwNWE1YTA2MTM1MmNmOWEy
M2VmNjMxMjNiMTZhMzYuLjQwNjA3MTgxMGQwMWJiOThlNmU1ZjEzYzM4ZDYwOTNkMzZlN2VhYTgg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29y
ZXMuaHRtbApAQCAtMjEsNyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3
ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAg
Ly8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0aGUgdHJhaWxpbmcg
d2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0
UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFy
IHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zm
c2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGlu
YXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hv
dWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIi
KTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdGhlIHRy
YWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24u
b2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAg
ICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRp
b24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKaW5kZXgg
MjQ5MjczZDJlMGFiYWI5ZDliY2VjOTI3YTA5YzNmYzQ2Y2UwMjdjZi4uOWQyNDlmZDdmMGVmZWUy
NDNiYzZiMGZiMjllNWNlZTU5NTZlYzRlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwK
QEAgLTIxLDcgKzIxLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUg
aG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUt
Y2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0g
ICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRM
ZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRp
b24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3Rp
bmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7CkBAIC00OSw3ICs1MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxj
b21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJp
bmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91
YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlLgot
ICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNl
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCh0cnVlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRM
ZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRp
b24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3Rp
bmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwg
eSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDViOTg2
OTEwMzc3NDFiMzk4ZmZjNWE2NzQzMmYyZGYxNDJjYTFhNzkuLmRiMDQ3ZDMyNjhlNWE1OGFiZjE3
ZTM2ZGRmMmRhNzBmZjk2OTY0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCkBAIC0zNzksOSArMzc5LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9j
cm9zcy1vcmlnaW4tYXV0aG9yaXphdGlvbi13aXRoLWVtYmVkZGVyLmh0bWwKICMgV2ViS2l0VGVz
dFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGREaXNhbGxvd2VkVVJMCiBwbHVn
aW5zL2dldC11cmwtdGhhdC10aGUtcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS13aWxsLWRpc2FsbG93
Lmh0bWwKIAotIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKLWVkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCi0KICMgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkKIHByaW50
aW5nL3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191439</attachid>
            <date>2013-03-05 01:58:09 -0800</date>
            <delta_ts>2013-03-05 04:08:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305105415.patch</filename>
            <type>text/plain</type>
            <size>83721</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi4xNTNiNTRiNmM3NzRmM2QzMzE5NGRlNTZmZjUxYzg3ZDNmNzE2MDA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgrW1dlYlZp
ZXcgaW5pdGlhbGl6ZV0pOiBJbml0aWFsaXplIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMu
CisgICAgICAgICgtW1dlYlZpZXcgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgor
ICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIExhc3psbyBH
b21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBKU0NfT0JKQ19BUElfRU5B
QkxFRCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZlYXR1cmVEZWZpbmVzLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggOTM3ZmE5MTk1ZWVkNGI4YTdhNzQwNjk2ZGE2MTQ3ZDQyMTk0MDAxNS4uMWNhMWE1ZjZl
YmU1ZGFmNDY0MTIyMGJjNWFmYmQ0OGFjMjU0Y2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRR
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAg
KEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBi
YWNrIHNvbWUgaW5jbHVkZXMgcmVtb3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLmIwMjdlYWFkZGIxZDE1ZGIyMDU2MmNh
NGNjZGQzMmQ4Mjc5YmZhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uM2I4ZTZiZmQ2NDk3MTM3
OWFjYmU3Njg4MWY5MWU2MmI0YzU4YWI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MzI0Mzg3MjIwOTY2Y2MxZTA0NzQxYzNhZDZkYWRkNWE5MzBjN2I5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2Zj
MDk3NjdiZWZmMjE0YTUzYmY3ZWJhZC4uZjYzNTllMGM3MmVmMGU3NzA0MmFiZDhiMDc2NWZjMjBk
YTFjZWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDcgQEAgdW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkCiAKIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9
ZmFsc2UKIAorIyBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgYXJlIG11dHVhbGx5CisjIGV4Y2x1c2l2ZSwgbWVhbmluZyB0aGF0IGVu
YWJsaW5nIG9uZSB3aWxsIGRpc2FibGUgdGhlIG90aGVyLgogc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGluaXRpYWw9dHJ1ZQorc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbml0aWFs
PWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5k
ZXJUcmVlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJU
cmVlQ2xpZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThk
MS4uZTk3NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAt
ODMsNyArODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5n
ZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29s
IHN0aWxsU2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUo
V2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikg
PSAwOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVm
ODgyNTA0YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLjlkNTI3MWFlOTAwOGU4ZTEyZGY0
MGJjNjY4N2RhZjIzYmVhNjVhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93
c0tleWJvYXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRv
ckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9k
dW1wUmVuZGVyVHJlZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUtPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNvcmUobV93ZWJQYWdl
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2
b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmVuYWJsZVNwZWxsQ2hlY2tpbmcoYm9vbCBlbmFi
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5k
ZXggMzhjNjZkZmU4OWY5M2ZhODhlMThkNTA2ODA4NDU2MTY2YzAyNjczMy4uNWY5YWM5MDhlMmM3
OTFmYjU4NTcxODIyYTAzM2YzMDE2NzM5NmQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTg2LDkgKzE4Niw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIHRydWU7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ29tcG9zaXRpb25PblNlbGVjdGlvbkNoYW5nZSgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc1NlbGVjdGlvbkVt
cHR5KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAKaW5kZXggOTgzMDNmNGY0NjRkZjMyMWJiNDk0ZDMzNGJlM2E4NjBiYzQ4MjJmNC4uMDgy
MWI5ZTQzYTA1OThhNGZjNmU4YzM0ZjlhYzUxMTc0M2I0ZTNhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkBAIC05NSwxNSArOTYsMTkgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpmcmFtZVdpbGxEZXRhY2hQYWdlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKIAogYm9vbCBF
ZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICBpZiAobV93ZWJWaWV3LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZWxzZQogICAgIHJldHVybiB0cnVlOworI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1w
bDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4g
dHJ1ZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggOWNmZDZiOWM3MWI1OTQzYThlNGY0YzE1MmNlMDUwNWU1YmFjMDhhMi4uNzBjYjg5MTll
YzdjN2ZmZTAwMmNjMjU1ODliNTJmNGJlODQ4ZGZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNTEyLDYgKzUxMiwxMSBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogI2VuZGlmCiAKICAgICBtX2luc3Bl
Y3RvclNldHRpbmdzTWFwID0gYWRvcHRQdHIobmV3IFNldHRpbmdzTWFwKTsKKworI2lmIE9TKFdJ
TkRPV1MpCisgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJ
bXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IDM4ZDJlNWNlNmU5NGNlNGUxMTQ4
M2FmZmVhOTcyOTlmYmY1NTdiMTguLjNlZmQ3YzIyY2IxYjUyOGE5NjJkMjQ5MzhjMDdmYTM4N2Q0
MGJhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtMzM4LDI4ICszMzgsNiBAQCBi
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldywgY29ucwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxl
ZCgpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAg
RFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRv
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRv
ckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVk
aXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZWRpdG9yQ2xpZW50LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVu
YWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdr
RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCBkOGZmM2U1NmZjOWY4YjM2Zjk0MmE4
MDQ2ZGFkZTUwOTFkZDJmYTViLi5hMGM3ODI4YzRjMTBiM2YyOTc0NDQ4YTcwM2QwNjVjOGUyYmY0
YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtODEsOCArODEsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3Rh
dGljIHZvaWQgc2V0Q1NTUmVnaW9uc0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxl
ZChib29sKTsKIAogICAgIHN0YXRpYyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmNwcAppbmRleCBhNGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBi
ZDNmLi4yYmUzMWE5YTA3NjNmZTNmYzg1MTI2OTk1MGZlOTU5YTllZjcwM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAK
QEAgLTI0MywyOCArMjQzLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVk
KCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwotfQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFj
b3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBj
b3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFn
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3Mo
KS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNs
aWVudEVmbDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtMzcxLDggKzM2Myw2
IEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9h
cmRFdmVudCopCiBFZGl0b3JDbGllbnRFZmw6OkVkaXRvckNsaWVudEVmbChFdmFzX09iamVjdCog
dmlldykKICAgICA6IG1faXNJblJlZG8oZmFsc2UpCiAgICAgLCBtX3ZpZXcodmlldykKLSAgICAs
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
CmluZGV4IDNjMmEyNDdkZTQ3YTk3ZGZiMzQ0ZmJlMGNjNDllYjgyZTM2NjMwNDguLmQwZDVkMzA4
MTUzY2JjMjA5NDU4MzFmYzE1MDQ5YTVmMTc0OGFhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC04NCw5ICs4NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShSYW5nZSopOwog
ICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3Vz
U3BlbGxDaGVja2luZygpOwogICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWQoKTsKQEAgLTE1Nyw4ICsxNTUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRXZhc19P
YmplY3QgKm1fdmlldzsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggY2U0OTM2Zjc5Mjk0ZjlkODBiNjZjMDc4MGE2ZmVjMjQ4
MWMwMDdkMC4uNTJjN2ViYmYxNjg4MmFkYTFjNGU0NGM0ODUzY2M4NDg1N2U0YzhiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNl
OwogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hh
aW4gPSB0cnVlOwotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpG
cmFtZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxv
YWRFdmVudENhbGxiYWNrID0gMDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGlj
YXRpb25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25D
YWxsYmFjayA9IDA7CiAKQEAgLTExMiwxNiArMTExLDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKQogICAgIHJldHVybiBzX2xpbmtz
SW5jbHVkZWRJblRhYkNoYWluOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotYm9vbCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQotewotICAgIHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0K
IC8qKgogICogZ2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
QEAgLTQ1MywxNSArNDQyLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERl
ZmVyc0xvYWRpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBkZWYKICAgICBjb3JlKHdl
YlZpZXcpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHdlYlZpZXcpOwotCi0g
ICAgV2ViS2l0OjpFZGl0b3JDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6RWRp
dG9yQ2xpZW50Kj4oY29yZSh3ZWJWaWV3KS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGNsaWVudC0+
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDA5Y2U3MjI2NDRmNTJiMTBjNWY1NWRkODZlODA2
MjI2NDkzNWJlNDcuLjg0NWYyYmIyNTk2ZjQyMThhMWE0OTIxNTc3NGE3MmE0MDY2ZjczNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyB2b2lkIHNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oYm9vbCk7CiAgICAgc3RhdGlj
IGJvb2wgbGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJP
cGVuZXIoV2ViS2l0V2ViRnJhbWUqKTsKIApAQCAtNzgsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2Vi
VmlldyosIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xv
YWRpbmcoV2ViS2l0V2ViVmlldyosIGJvb2wpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAgICAgc3RhdGljIHZvaWQg
Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyopOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0
eQpAQCAtMTQ2LDcgKzE0Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wg
c19kcnRSdW47CiAgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKLSAg
ICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCmluZGV4IGY5NDQyOWU5Nzg1MDY3MWU0ODgxODZkOWZhMTkwNjhiZDYwMzU4
NWYuLjljMGZkOTRhYTE3MjkzNTI1ZWYxZjg1NGNiNzBhYjlmOTJhMmE2NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJk
SGVscGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVW5k
b1N0ZXAuaCIKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCkBAIC0zNjAsMjEgKzM2MSwy
MCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7
CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsK
LX0KLQogYm9vbCBFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0g
ICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gY29yZShtX3dlYlZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFnZSogY29y
ZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JD
bGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1MDEsNiBA
QCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAg
ICwgbV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRfZ2V0X3Rl
eHRfY2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAzYTdlYWYx
NGM3MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNiZmZiY2Vm
MjE3ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBFZGl0b3JD
bGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAgdmlydHVh
bCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRvZ2ds
ZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xhc3MgRWRp
dG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAgIFdlYktp
dFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0
b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBt
X3BlbmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUwZjU3ODFl
ZmI0YzIxODNjZTc3NDYzMC4uNzg5NzI0MThjMjA5ZjI3ODc0YzE2NzYzYWUwYWRlZjg5MTIyN2U5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRB
cmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNldC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTggQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQq
IGVsZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07
CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZp
ZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwog
fQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDJjMWQ2YTMyMTIwMzUyNzc3MDljZWRjMzdmY2I0NjdkZjhhYTg4YjUuLjBkM2MxZDA2
NDViOWFiYzg3NzQ0YTk3ZWNiMTk2OTZjYThlYjc1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTI0NzEsMTQgKzI0NzEsMTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0
TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSAhPSBmbGFnKSB7Cisg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3NlbGYgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9CiB9CiAKIC0gKEJPT0wpaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiAtICh2
b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZApAQCAt
MzE4Miw2ICszMTg0LDggQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKE5T
QXJyYXkqIHBhdHRlcm5zKQogICAgIGlmICghW2RlZmF1bHRzIG9iamVjdEZvcktleTpXZWJBdXRv
bWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXSkKICAgICAgICAgYXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZCA9IFtOU1NwZWxsQ2hlY2tlciBpc0F1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbkVuYWJsZWRdOwogI2VuZGlmCisKKyAgICBbc2VsZiBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ6W2RlZmF1bHRzIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkXV07CiB9CiAKICsgKHZvaWQpX2FwcGxpY2F0aW9uV2lsbFRlcm1pbmF0ZQpAQCAtNTQzMCwx
NyArNTQzNCwxNyBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpT
VmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykgewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0
ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykg
eworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07CisgICAgICAg
IC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVh
bGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3NlbGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDohZmxhZ107CiAgICAgfQotICAgIGlmIChmbGFnKQotICAgICAgICBbc2VsZiBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZhbHNlXTsKIH0KIAogLSAoQk9PTClzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldENvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKaW5kZXggYWRlYWJlN2VlMmNmYTIyY2JkYzI4ZTNiYTgzMzc4ZjQ2MDNlMDJlMi4u
MzQ3YWJhNDU3ODVmMTgwZThjOTc0NmNjY2I2MmE0ZTY3ODBlOTRjMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTQ2LDkgKzE0Niw2IEBAIHByaXZhdGU6CiAg
ICAgQk9PTCBoYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgc3BlbGxD
aGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsK
LSAgICBCT09MIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgICAgIAogI2lm
IEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3
YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzOwogICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZp
b3JBbHdheXNTZW5kQWN0aXZlTnVsbEV2ZW50c1RvUGx1Z0luczsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGUyNzY2ZjAxYTM1YmMwN2VlYWE0ODZjMjY1NWI0
YzAxYmFlZDk3YTYuLmM2ODFmMDliYTcyMTZkOGQyMTZlNTk3NTI2YWY4NTgxZDAwM2RlN2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtOTUsMTAgKzk1LDYg
QEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250cm9sbGVyKFdlYlZpZXcqIHdl
YlZpZXcpCiAKICAgICBzaG91bGRDbG9zZVdpdGhXaW5kb3cgPSBvYmpjX2NvbGxlY3RpbmdFbmFi
bGVkKCk7CiAKLSAgICBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhW1tOU1VzZXJEZWZhdWx0
cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZF0KLSAgICAgICAgfHwgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOwotCi0KICAgICBwbHVn
aW5EYXRhYmFzZUNsaWVudENvdW50Kys7CiAKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZF
UykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggOGE0ZTBlY2E4NDE1YzU4YTdmNmNiMDcwZjMy
ZTAxMjk0MTkzZmM3Yi4uMDQ2MzZmYmRmOWJlZDZhNmRlMDlhNTljNjk2MDYwZmM2NzQzY2M1MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMyNiwxOCArMzI2LDYgQEAgdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoUVdlYlBhZ2VB
ZGFwdGVyKiBhZGEKICAgICBhZGFwdGVyLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRBdXRob3JBbmRV
c2VyU3R5bGVzRW5hYmxlZCh2YWx1ZSk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIs
IGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFkYXB0
ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVu
YWJsZWQpOwotfQotCi0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVu
YWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdl
LT5lZGl0b3JDbGllbnQoKSktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5h
YmxlZCk7Ci19Ci0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVD
b21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciogYWRhcHRlciwgY29uc3QgUVN0cmluZyYgbmFt
ZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgYWRhcHRlci0+cGFnZS0+Zm9jdXNDb250
cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1lKS5l
eGVjdXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAwOTgwOWVmOTc2MzE3MTRjZjg5
ZTgyZjNiZGRlNDJhZGMwZWI0NmUwLi45M2QwNjgzZTkzMTc2NGMxYmNmYTgyNzg0Yjg4OGRlZGI4
ODNiZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiwg
Y29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBi
b29sIGlzQ29tbWFuZEVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFt
ZSk7CiAgICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBR
U3RyaW5nJiwgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKLSAgICBzdGF0aWMgdm9p
ZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFi
bGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlz
dCBzZWxlY3RlZFJhbmdlKFFXZWJQYWdlQWRhcHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFudExp
c3QgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0
aW9uLCBpbnQgbGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdl
YlBhZ2VBZGFwdGVyKiwgY29uc3QgY2hhciogdGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZlMGE1
NGJmMWEzYjBiYmM1ZWM1YWEyNDkwODdhMDMuLjNjZjA4NzAyMGVjZWYwZjMyNTYxZjNiMDI1ODM0
NTEzMjRhNmI0YWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwCkBAIC0zMzMsMTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNsaWVu
dFF0OjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7
CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRRdDo6dG9nZ2xlU21hcnRJbnNl
cnREZWxldGUoKQogewotICAgIGJvb2wgY3VycmVudCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkOwotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gIWN1cnJlbnQ7CisgICAgUGFn
ZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAocGFnZSkgeworICAgICAgICBwYWdlLT5z
ZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCkt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKTsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpKTsKKyAgICB9CiB9CiAKIGJvb2wgRWRpdG9y
Q2xpZW50UXQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0
dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0g
bV9wYWdlLT5wYWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNr
aW5nKCkKQEAgLTU0MSw4ICs1NTAsNiBAQCBFZGl0b3JDbGllbnRRdDo6RWRpdG9yQ2xpZW50UXQo
UVdlYlBhZ2VBZGFwdGVyKiBwYWdlQWRhcHRlcikKICAgICA6IG1fcGFnZShwYWdlQWRhcHRlcikK
ICAgICAsIG1fZWRpdGluZyhmYWxzZSkKICAgICAsIG1faW5VbmRvUmVkbyhmYWxzZSkKLSAgICAs
IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAppbmRleCBhMTM0ZjVlYjZlN2Q0OTI2ZDQ0
Mzk1NTEzNTYzODNmZWExOTI0YjJmLi43ODJjZGUzZDU0YmY2NGNjMWExNzRhNzM1ODQxZTVmM2Iz
YzVjNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5oCkBAIC0xMTEsOSArMTExLDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VkaXRp
bmcoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wg
YikgeyBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGI7IH0KLSAgICB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBiKSB7IG1fc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCA9IGI7IH0KLQogICAgIHN0YXRpYyBib29sIGR1bXBFZGl0aW5nQ2FsbGJh
Y2tzOwogICAgIHN0YXRpYyBib29sIGFjY2VwdHNFZGl0aW5nOwogCkBAIC0xMjIsOCArMTE5LDYg
QEAgcHJpdmF0ZToKICAgICBRV2ViUGFnZUFkYXB0ZXIqIG1fcGFnZTsKICAgICBib29sIG1fZWRp
dGluZzsKICAgICBib29sIG1faW5VbmRvUmVkbzsgLy8gb3VyIHVuZG8gc3RhY2sgd29ya3MgZGlm
ZmVyZW50bHkgLSBkb24ndCByZS1lbnRlciEKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVF
bmFibGVkOwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5jcHAKaW5kZXggZDk4Nzg5MjdmMmY0OWI3MDk5YTY0ZDJjZjI1NDkzNzE2ZGEzMzY2
NS4uYzRjNTRhOGQ2OTEyNjIyZWZhMWIzNDY3ODBlZmQ5MTA1ZWY4MWM3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBA
IC00MCw4ICs0MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90
SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VbmRvU3Rl
cC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KQEAgLTMwMiwxNyArMzA0LDE5IEBA
IHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uKFdlYk5vdGlm
aWNhdGlvbiogLypub3RpZmljYXRpb24qCiB7ICBub3RJbXBsZW1lbnRlZCgpOyB9CiAKIGJvb2wg
V2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQodm9pZCkKLXsgCi0gICAg
Qk9PTCBlbmFibGVkID0gRkFMU0U7IAotICAgIG1fd2ViVmlldy0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCZlbmFibGVkKTsKLSAgICByZXR1cm4gISFlbmFibGVkOworeworICAgIFBhZ2UqIHBh
Z2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCh2b2lkKQogewotICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNFOwotICAgIG1fd2Vi
Vmlldy0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCZlbmFibGVkKTsKLSAgICBy
ZXR1cm4gISFlbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBib29sIFdl
YkVkaXRvckNsaWVudDo6c2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSos
IFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6RUFmZmluaXR5LCBib29sKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3
LmNwcAppbmRleCBkNjIxNDExNTIwODY1MWMzZDM2N2UyZTJhZDYwM2U4ZTUyOTgxZWVlLi4zYjQ1
ZjdlNjhlMmE4OGI1MzkwZWNiMzI1Mjc3NzUwNGQ4YWVmMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cApAQCAtMzY1LDcgKzM2NSw2IEBAIFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwgbV9pc0JlaW5n
RGVzdHJveWVkKGZhbHNlKQogICAgICwgbV9wYWludENvdW50KDApCiAgICAgLCBtX2hhc1NwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpCiAgICAgLCBtX2RpZENsb3NlKGZhbHNlKQogICAgICwgbV9pbklNRUNvbXBvc2l0
aW9uKDApCiAgICAgLCBtX3Rvb2xUaXBId25kKDApCkBAIC0zNzMsNyArMzcyLDYgQEAgV2ViVmll
dzo6V2ViVmlldygpCiAgICAgLCBtX3RvcExldmVsUGFyZW50KDApCiAgICAgLCBtX2RlbGV0ZUJh
Y2tpbmdTdG9yZVRpbWVyQWN0aXZlKGZhbHNlKQogICAgICwgbV90cmFuc3BhcmVudChmYWxzZSkK
LSAgICAsIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKICAgICAsIG1f
bGFzdFBhblgoMCkKICAgICAsIG1fbGFzdFBhblkoMCkKICAgICAsIG1feE92ZXJwYW4oMCkKQEAg
LTQwODIsMzIgKzQwODAsMzYgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojp0
eXBpbmdTdHlsZSgKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCAKICAgICAgICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0g
ICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKQotICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKSA9PSAhIWZsYWcpIHsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZl
LgorICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFmbGFnKTsKKyAg
ICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2YWxd
W291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkID8gVFJVRSA6IEZBTFNFOworICAgICplbmFibGVkID0gbV9wYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICBy
ZXR1cm4gU19PSzsKIH0KICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8qIFtpbl0gKi8gQk9P
TCBmbGFnKQogewotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9ICEhZmxh
ZzsKLSAgICBpZiAobV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKQotICAgICAgICBz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3BhZ2UtPnNldHRp
bmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA9PSAhIWZsYWcpIHsKKyAg
ICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCEhZmxhZyk7CisgICAgICAgIC8vIFNldCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYXMg
dGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAgICAKIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewot
ICAgICplbmFibGVkID0gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID8gVFJVRSA6
IEZBTFNFOworICAgICplbmFibGVkID0gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuaAppbmRleCBjOTM3MzQ2MmZlZjI4NDFlNTc3YzA2MDlkMDM4MmYxYjcz
NjA3YjZlLi5mY2I3ODI0ODQzMDgzY2VlM2MwODM1OThkM2ExOGU5ZDdmYmM0ZTk5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5oCkBAIC0xMTEyLDggKzExMTIsNiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lz
QmVpbmdEZXN0cm95ZWQ7CiAgICAgdW5zaWduZWQgbV9wYWludENvdW50OwogICAgIGJvb2wgbV9o
YXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVF
bmFibGVkOwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAg
IGJvb2wgbV9kaWRDbG9zZTsKICAgICBib29sIG1faGFzQ3VzdG9tRHJvcFRhcmdldDsKICAgICB1
bnNpZ25lZCBtX2luSU1FQ29tcG9zaXRpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCmluZGV4IGI5ZjQ2OGY0
MTU0MmJjY2QwOGJlNTExYzY3ODE0ODFmNzUzYTNjYjIuLmZlMWFmMDRhMGVlYmQ4ODRlOWQ1Mjdj
MmViYjIwMzY1MDk0NWZjNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2Uv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAj
aW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1L
ZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiVW5kb1N0ZXAuaCIKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgpAQCAtMjA5LDE0ICsyMTAsMTggQEAgdm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6cGFnZURl
c3Ryb3llZCgpCiAKIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
UGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3Mo
KS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNs
aWVudFdpbkNFOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwIGIvU291cmNl
L1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAppbmRleCA1ZWY2NGNk
NGE5YzAxMzYzYzQ5OWU1N2ZjZDk3YWRkNWQ5YzMxNWFhLi43MjZhZDBhM2Y4ODhhYzk1NjUxYzZh
MzIyN2Q0MmYzYjM2OGUyYTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1
cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJOb3RJ
bXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgi
CiAjaW5jbHVkZSAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpAQCAt
MTQ5LDE0ICsxNTAsMTYgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkRGVsZXRlUmFuZ2Uo
UmFuZ2UqKQogCiBib29sIEVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmICgh
bV9wYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5n
cygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRX
eDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRXeDo6aXNDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIv
VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA0ZGIzNGZhY2FkNTA3NWQ0NDMxYWQ4N2ZiZDU5YzRiNTA0
OTFkNDkuLjE0ZmM2ZGQwYzQyYTg3MGJkZjllZDhlYTJhMGViYmMzMDgzOGE0ZjMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBA
QAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4K
KworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRv
IFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFJlbW92ZXMgYWxsIHRoZSBjb2RlIHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVF
bmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRp
bmdzIGFzIHRoZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20KKyAgICAgICAgaW50ZXJuYWxzIGZyb20g
bm93IG9uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OnJlc2V0VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvcHVibGljL1dlYlRlc3RQcm94eS5oOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVz
dFByb3h5OjpkaWRTdG9wTG9hZGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RS
dW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2Vi
Vmlld0hvc3QpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1Rv
Q29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5j
cHA6CisgICAgICAgIChyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9D
b25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlBhZ2U6OnJlc2V0U2V0dGluZ3Mp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHA6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0Lmg6CisgICAgICAgIChUZXN0UnVubmVy
UXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6Cisg
ICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwOgorCiAyMDEzLTAzLTA0ICBNaWtoYWls
IFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRueWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtX
SzJdW0VGTF0gQWRkIGNhbGxiYWNrcyB0byB0aGUgV0tWaWV3Q2xpZW50IHRvIGhhbmRsZSBXZWIg
UHJvY2VzcyBjcmFzaCBhbmQgcmVsYXVuY2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAK
aW5kZXggMjNiNzIzODJjOTk3ZWRkYzFmZmIzNDkwOTljOWEzZDkwMWE2ZmQyNC4uMDU0YjE3MDYz
MGQzMmJhMDYyMTUyMzUwZDAwMGJlMTQ2MTgxYWNlOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHAKQEAgLTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByZXNldFBh
Z2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmCiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfSAgICAKIAotc3RhdGlj
IEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5l
ciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYg
c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMTUyNiwxNiAr
MTUxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtl
VW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2Jq
ZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0
YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwot
ICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoSlNWYWx1
ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92
aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7
CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjE1MCw5ICsyMTMwLDcgQEAgSlNT
dGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAi
c2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAg
ICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRzIiwgc2V0U2VyaWFsaXpl
SFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIiwgc2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3RvcFByb3Zpc2lv
bmFsRnJhbWVMb2FkcyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMiLCBzZXRUYWJL
ZXlDeWNsZXNUaHJvdWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCmluZGV4IGNjYTQxZjc0ZmE0NjgzZDE3YzU4NGJiMjg5ZDZjYTBmZDMzMjg2MjUu
LmQ5ODQ3MDBmYjc4ZTc4YjE1ZThmNjYzZDM0YThjZGI5ZDBlZmJjYzMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQ
bHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNU
aHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmls
aXR5TW9kZShib29sIGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJv
b2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1
bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IDcxNjUyZGNkMTIzOGExMzY0MzcyYjA5ODM1ODBiYzAyZDI4Mzgx
MDUuLjk1NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1ZDg2YjggMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0x
NTEsNyArMTUxLDYgQEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIER1bXBSZW5kZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19jdXJyZW50SW5zdGFuY2UgPSAw
OwotYm9vbCBEdW1wUmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
ID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSkKIHsKQEAgLTI5NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29u
c2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVybCwgY29ucwogCiAgICAg
dG9wTG9hZGluZ0ZyYW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hlZCA9IGZhbHNlOwotICAgIHNf
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogICAgIG1fcG9saWN5RGVs
ZWdhdGVFbmFibGVkID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGljeSA9IGZhbHNlOwogICAgIHRl
c3REb25lID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRleCBhMTNhZmIxMmQ4ZDUyMzgz
MzU0N2YzM2MyNzA5MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVkMDc2NTc2ZDdjZGJjZDAwYWRm
MzlkY2UwOWMwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1
bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwdWJs
aWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpS
YW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogCi0gICAgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBzX3Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKICAgICAvLyBCbGFja0JlcnJ5
OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENsaWVudCBtZXRob2QKQEAg
LTE0OCw3ICsxNDYsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2FjY2VwdHNFZGl0aW5nOwog
ICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJvb2wgc19zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiB9
OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RS
dW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCBhYWU4NDM4OGE4YzJlMmIzMTQxZDY4MzM3ZDE4YTRh
YmYxZDM0NWY2Li4yMTAyMGQ5ZDhmZTAzMDZkZjdhYzk3NDIyM2QwNGYzZTAwYzA1ZTljIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJC
bGFja0JlcnJ5LmNwcApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFhT
U0F1ZGl0b3JFbmFibGVkKGJvb2wgZmxhZykKICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBS
ZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRYU1NB
dWRpdG9yRW5hYmxlZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBCbGFja0JlcnJ5OjpXZWJL
aXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNFRF9QQVJBTShmbGFnKTsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBpZiAoIW1haW5GcmFtZSkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVi
bGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNiZDc4MGRhNjFkOWJmZTdlOWM4
MGU1MjFmNmIxYjkwNzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3NjFlYmE3MjkwYzExZmNkMGEx
NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9w
dWJsaWMvV2ViVGVzdFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcm90
ZWN0ZWQ6CiAgICAgV2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBsdWdpbihXZWJLaXQ6OldlYkZy
YW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAgICB2b2lkIHNldFN0YXR1
c1RleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2b2lkIGRpZFN0b3BMb2FkaW5n
KCk7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIGJvb2wgaXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1l
bnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJik7
CiAgICAgV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRpYUNsaWVudCgpOwogICAg
IHZvaWQgcHJpbnRQYWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAgLTM2OCwxNCArMzY2LDYgQEAg
cHVibGljOgogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAg
ICAgICBCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQ
cm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgfQotICAgIHZpcnR1
YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6
V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYgY29udGV4
dE1lbnVEYXRhKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hvd0NvbnRleHRN
ZW51KGZyYW1lLCBjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCA0
Nzk1MWVmYWMwYTBkODhkMGMzYzQ0NTBkN2I3YWEzZDAyNjk2ZGU5Li41YzAyZjdjOTFmMGU0OGY1
OGZkNTEyZWFlODZkZWY2YjkzN2M3MGMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMjA4
LDggKzIwOCw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVzdEludGVyZmFjZXMqIGludGVy
ZmFjZXMpCiAgICAgYmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5nTm9kZSIsICZUZXN0UnVubmVy
Ojp0ZXh0U3Vycm91bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9kKCJkaXNhYmxlQXV0b1Jlc2l6
ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0
aG9kKCJlbmFibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXpl
TW9kZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgJlRl
c3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0gICAgYmluZE1ldGhvZCgi
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKTsK
ICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlk
QWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2si
LCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAgLTQxMCwxMiArNDA4LDYgQEAg
dm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5k
bGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQmxvY2tSZWRpcmVjdHMgPSBm
YWxzZTsKICAgICBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwgPSBmYWxzZTsKLSAg
ICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZkZWYgV0lOMzIKLSAgICBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOwotI2Vsc2UKLSAgICBtX3Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLSNlbmRpZgogICAgIG1fc2hv
dWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAgICAgbV9odHRwSGVhZGVyc1Rv
Q2xlYXIuY2xlYXIoKTsKQEAgLTY3NCwxNiArNjY2LDYgQEAgYm9vbCBUZXN0UnVubmVyOjpzaG91
bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW50ZXJjZXB0UG9z
dE1lc3NhZ2UuaXNCb29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVzc2FnZS50b0Jvb2xlYW4oKTsK
IH0KIAotYm9vbCBUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotfQotCi1ib29sIFRl
c3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogYm9vbCBU
ZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkgY29uc3QKIHsKICAgICBy
ZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpAQCAtMTQ5MCwyMCArMTQ3Miw2
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5zZXQoc3Vycm91bmRpbmdU
ZXh0LnRleHRDb250ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENw
cFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJn
dW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19
Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewot
ICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0g
ICAgICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52
YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1
bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3Nob3VsZER1bXBSZXNv
dXJjZVByaW9yaXRpZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDg4ZDhiMzcxNTU5
MjkxMDcxN2ExZjg4ZTI1M2NlNWFmNWEyZGI4OTcuLmZlYWRhODhmODIyYTcwNTJiNzVjMTdkMzcx
YWI0YWYwMWZiYjAxMDMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTExOCw4ICsxMTgsNiBAQCBw
dWJsaWM6CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0OwogICAg
IGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CiAgICAgYm9vbCBz
aG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAgIGJvb2wgaXNTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGll
cygpIGNvbnN0OwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAgICAgV2ViS2l0OjpXZWJOb3Rp
ZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwpAQCAtMjcw
LDExICsyNjgsNiBAQCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0byByZXRyaWV2ZS4KICAgICB2
b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhp
cyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCi0gICAgLy8gRW5h
YmxlIG9yIGRpc2FibGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxlY3Rpb24gb24gZG91YmxlIGNs
aWNrLgotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVBdXRvUmVzaXpl
TW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNh
YmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
CkBAIC02NzAsMTAgKzY2Myw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fd2lsbFNlbmRSZXF1
ZXN0U2hvdWxkUmV0dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQ7Ci0KLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLQogICAg
IGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwogCiAgICAgc3RkOjpzZXQ8c3Rk
OjpzdHJpbmc+IG1faHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAK
aW5kZXggODY4MTMzZmU0NzBmOTFhZWZjZWQxZmMxOTZiY2E4ZjcwZDMwZDA5NC4uY2M1MDc1MzRl
MTZkOTg1OWEyMmM1N2RjMjFkNTRhYzViM2UyYWFkZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHku
Y3BwCkBAIC05NzgsMTYgKzk3OCw2IEBAIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExv
YWRpbmcoKQogICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoInBvc3RQcm9ncmVzc0Zp
bmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKIH0KIAotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMt
PnRlc3RSdW5uZXIoKS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBX
ZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewot
ICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OnNob3dD
b250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1l
bnVEYXRhKQogewogICAgIG1fdGVzdEludGVyZmFjZXMtPmV2ZW50U2VuZGVyKCktPnNldENvbnRl
eHRNZW51RGF0YShjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDY5MDVjZGE2ZjdjZDE4YWE4ZTUxMGJmOTZiZDdk
MzJkZTg3N2JlYTEuLmRkNjJmM2EyMTBmYjBmMTFjYzc5NWFlZTA5OWZhZTg0NmNlMDc0M2IgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE2
OSwyMCArMTY5LDYgQEAgYm9vbCBXZWJWaWV3SG9zdDo6c2hvdWxkQXBwbHlTdHlsZShjb25zdCBX
ZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYgcmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAotYm9vbCBXZWJWaWV3SG9zdDo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewot
ICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKQotewotI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRydWU7
Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBib29sIFdlYlZpZXdIb3N0
OjpoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpCiB7CiAgICAgaWYgKG1fZWRpdENvbW1hbmRO
YW1lLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
aAppbmRleCBjMTZkNWZmNzhlNTZkMTU4ZTE1NjJkMDZhMTZjNmRmMmM3OGYxMmY4Li4zN2UwMGMy
ODBhZDdhODMwN2E0M2ZkNmYyODg3ODFhNjE0NjIyZDhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJW
aWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6Oldl
YkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdl
KGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20sIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRv
LCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYg
c3R5bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUN1cnJlbnRLZXli
b2FyZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0
OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29s
IHJ1bk1vZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpX
ZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwCmluZGV4IGUzNzg1YjEwNTI5NTIyYjFiMzNjYzQ3MzYxNDc4YWMwYjRiYmRi
ZDEuLmRkNjkzOWU1MDQyNGU5NjgyYjhjMmE4MGUzYjVlMzg1NTUzMDU3YmMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMzA2
LDggKzMwNiw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0Nv
bnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRh
dGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFpblZpZXcoKSwgLTEpOwogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQobWFpblZp
ZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5
b3V0RW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1h
aW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlh
bGl6ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9l
ZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5l
ckVmbC5jcHAKaW5kZXggODg3NTZkY2Q3MmU2NzRmN2UwNmFjNTZmMDQzMTYyOTQ2Y2M2ZWUzMC4u
ZjhjZjNjZWU1NTY5YmQyMjA4ZTQyMTYzNjllYWQ1OTkwOGE2NDk5MSAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtMjcyLDExICsyNzIsNiBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiBzdGF0aWMgRWluYV9C
b29sIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHdhaXRUb0R1bXBXYXRj
aGRvZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRh
dGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29uX2Rh
dGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIGV3a192aWV3
X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChicm93c2VyLT5tYWluVmlldygp
LCAhZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApp
bmRleCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhlZGRlMDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgx
ZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUwMSw4ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCBy
ZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKIAogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRf
aWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNldERlZmVyc0xvYWRpbmcod2ViVmlldywgZmFsc2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IGYxYzMwNjkyNzYyNmJmY2Uy
MTQyMjI2Nzk3ZDY5OGJhYjY3YmQ5NzYuLmY5ZWJiMGE2YThkNTFlNGQ3YTYzZGU1YmVkZmY4OGYy
ZmU3ODU2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVy
R3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAK
QEAgLTMyMywxMSArMzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29s
IHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSksIGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jv
b2xlYW4gd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAgICAgc2V0V2FpdFRvRHVt
cFdhdGNoZG9nKDApOwpAQCAtNDg1LDExICs0ODAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldElj
b25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRh
YmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcp
OwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxh
ZykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2Vi
X3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9E
dW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbQppbmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0
YTE1N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0OWE4YjRiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMjc4LDggKzEyNzgsNiBAQCBzdGF0aWMg
dm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAg
ICBnVGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogICAgIH0KIAotICAgIFtb
bWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAg
ICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yOllFU107CiAgICAgW1dl
YlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CiAgICAgW1dlYlZpZXcgX3NldEFs
bG93c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5l
ck1hYy5tbQppbmRleCBkZmI5YTZlY2ZkNzRjMzczMzZjMzA1MDQyYTYyYzk4MjEyYmM3MGMyLi43
OWM4NGZlYWM3YTZlYmZiMWZhNzUxYjM1YzEzODgxZGVlY2NhZjA5IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgW1ttYWluRnJh
bWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1l
IHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpmbGFnXTsKLX0KLQotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkOmZsYWddOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVt
cFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0
Y2hkb2dGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCogaW5mbykKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjNmZDM1YzFjNmZi
NWYxNzkzM2I2NTMyYmQ0Yzg3NDE3MDBlOGNkMi4uZGZhNjcyYjY3NGRlYzNjZTk3MDYyZjU4ZmVm
Y2ZjOTkzODAxYTA1ZiAxMDA3NTUKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJl
bmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHAKQEAgLTE5Miw4ICsxOTIsNiBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3Mo
KQogCiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFs
c2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFi
bGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRE
ZWZlcnNMb2FkaW5nKGZhbHNlKTsKIAogICAgIC8vIGdsb2JhbFNldHRpbmdzIG11c3QgYmUgcmVz
ZXQgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmlu
ZGV4IDYwYzUzYmIwMzY3NmIzZjU3ZWIyZTQ4ZmQzYjI1YmM4YTMxNTU1M2IuLjY2ZGU1OTM5Nzhm
NzBjOThkYWEzNjZjM2RhMGRjZDY5OGMzNzJlYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmNwcApAQCAtNzIwLDE2ICs3MjAsNiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6
c2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFTdHJpbmcmIG9yaWVudGF0aW9uLCBjb25zdCBRU3Ry
aW5nJgogICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xp
Y3kobywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0K
LQotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
Ym9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19
Ci0KIHZvaWQgVGVzdFJ1bm5lclF0OjpleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBj
b25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhl
Y3V0ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IGRkMDI2ZGUxYjA5YTQy
MGYyYTgxMWY2OGFiZmIwMDZhMWJmMDQzZWYuLmViYjIyOTQ0NGY4Y2ZlMWM5NDFmZTRjYmVmOGI3
OWEzMjllNjZlZjQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5u
ZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0x
NzgsOCArMTc4LDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5n
RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9k
ZSk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9p
ZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhl
Y0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3Ry
aW5nKCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBj
b25zdDsKICAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdM
aXN0JiBvcHRpb25BcnJheSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJU
cmVlLmNwcAppbmRleCBmNzQ3NmZhMTI2M2RmMWUwY2UyNjA2YTM4Mzc4NzNlZGE3OGNlZjViLi44
OWZhOWY3YWZhMTYzNWY2MTI1ZDQ0YzllMTMyNGVkYzE1ZTI5MTA3IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTg5OSwxMCArODk5LDYgQEAgc3Rh
dGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAg
ICAgICAgV2ViQ29yZVRlc3RTdXBwb3J0OjpyZXNldEludGVybmFsc09iamVjdChjb250ZXh0KTsK
ICAgICB9CiAKLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBp
ZiAoU1VDQ0VFREVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAg
ICAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFRSVUUpOwotCiAg
ICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlld1ByaXZhdGUoUXVlcnksIHdlYlZpZXcp
OwogICAgIGlmICghd2ViVmlld1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCA4NDIzMjZjYmNmNTk1OGM5ZWQz
NDcwYzBiMTEyNTM3ZTUzMDViYjgxLi5kODJkZjJlZTUzYzEwYWEwMTdhNDdhZGJhZDRhYzc3NWE2
NDBiY2RiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBA
IC03MjMsMzIgKzcyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCBm
bGFnKQogICAgIDo6U2VuZE1lc3NhZ2Uod2ViVmlld1dpbmRvdywgZmxhZyA/IFdNX1NFVEZPQ1VT
IDogV01fS0lMTEZPQ1VTLCAoV1BBUkFNKTo6R2V0RGVza3RvcFdpbmRvdygpLCAwKTsKIH0KIAot
dm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQot
ewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53
ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmll
d0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRl
cmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5n
LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0K
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQo
ZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRy
PElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5R
dWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmll
d0VkaXRpbmctPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyA/IFRSVUUg
OiBGQUxTRSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0
Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lkIENBTExCQUNLIHdhaXRVbnRpbERv
bmVXYXRjaGRvZ0ZpcmVkKEhXTkQsIFVJTlQsIFVJTlRfUFRSLCBEV09SRCkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCmluZGV4IDk3NzUxMTM1MGVjZWJlZDBkOTUzMmZl
NTA0OWZmNWZhYWY2ODczZWMuLjQxNjc4MjdmMWE3MGVmMWEzZDcyMjQ5NDQ0ZmU2YzM5MDFjNzdk
MmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcApAQCAtMTUxLDEx
ICsxNTEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNL
ZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxl
bWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFdhaXRUb0R1bXAoYm9vbCB3YWl0VW50aWxE
b25lKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgdGltZW91dFNlY29uZHMgPSAxMDsKQEAgLTI5
NCwxMSArMjg5LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVu
c2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxh
ZykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0
TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEs
IGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwg
ZG91YmxlIGdhbW1hKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIERldmljZU9yaWVu
dGF0aW9uIGxheW91dCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBhMjY3NmViYzYwODI4M2YyNTQzZGY1ZTE4M2Y1
M2RiZWQ3YTg3ODc0Li4xZmI3MWZhZjk0ZjE4NGY1MjY1YmI4NjgxOGZmMzJkZjhjNGEyOGY4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMg
IDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBieQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbiB0ZXN0cy4KKworICAgICAgICBCZSBz
dXJlIHRoYXQgdHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcmUgc2V0IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5
IGFyZQorICAgICAgICBtdXR1YWxseSBleGNsdXNpdmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2Rl
bGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2st
aW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOgorICAgICAgICAqIGVkaXRpbmcv
c3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChpbml0U3BlbGxUZXN0KToKKyAg
ICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0
aC11bmRlcnNjb3Jlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
ZG91YmxlLWNsaWNrZWQtd29yZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zOiBVbmZsYWcKKyAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
aW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAgYXMgaXQgcGFz
c2VzIG5vdy4KKwogMjAxMy0wMy0wNCAgQ2hyaXN0aWFuIEJpZXNpbmdlciAgPGNiaWVzaW5nZXJA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgICh0ZXN0cykgZmxleGJveC9yZXNvdXJjZXMuY3NzIHNo
b3VsZCB1c2UgdW5wcmVmaXhlZCBwcm9wZXJ0aWVzLCBmb3IgZmlyZWZveApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRt
bAppbmRleCA3ZWIzMGQyMjExZDBjMGQ4MTliZWYyZjVlNzM2ODQ4MTk4MWRlZDY5Li5kMGY3ZDdh
ZjE1OGRhMjVjODc4NzZjODgzNmFmMDdiYWE3NDZhYjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbApAQCAt
NSw2ICs1LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lk
ZS1jci1zcGFuLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay1iZXNpZGUtY3Itc3Bhbi5odG1sCmluZGV4IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1
NzdhYjZiOTllOWEuLjhkNWNiNzZiN2FkYjE4Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lk
ZS1jci1zcGFuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RS
dW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7
CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1j
cmFzaC5odG1sCmluZGV4IDQwZTI0MTM4MjFlOGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYu
LmM5YjQ0ZTZjNjZmMzk1YTViMDdmZjM5MzM0NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2gu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRl
eCBmMjgwYTI2YTc2OWE5NWE3OWRkYTZkNDQ2NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1
NjM1OGE3OTU5ODZlM2EzNzk5YzdmY2VmNjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1n
LWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1
MzFhNDUzYTZhZjVmYmYzOWQ1ZjZmMWVhYWY5OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJm
M2FlMWYyOTRkYzJkZWVjMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2Up
OwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1
ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxh
c3QtY29udGVudGVkaXRhYmxlLmpzCmluZGV4IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMw
OTA5NWMxYzJlMzkuLmU3YmRmZjVjZDI2MzMyNzg3ODZlNjJmNjgyMjE5OTA5YTk3MTZjMjEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3Vi
bGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1m
aXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwpAQCAtNzgsNyArNzgsOCBAQCBmdW5jdGlvbiB0
ZXN0V2l0aENsaWNrQW5kTW9kaWZ5KHRhcmdldElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAg
IHNob3VsZEJlKCJ3aW5kb3cuc2VsZWN0ZWRCeU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRl
eHQpKTsKIH0KIAotdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSk7CitpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CiAKIHZhciBzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lID0gIjxzcGFu
IGlkPSd0YXJnZXQnIGNvbnRlbnRFZGl0YWJsZT5zZWxlY3RtZTE8L3NwYW4+IGFuZCBub3Qgc2Vs
ZWN0IHVzIjsKIHRlc3RXaXRoRG91YmxsZUNsaWNrKHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxp
bmUsICJzZWxlY3RtZTEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291
cmNlcy91dGlsLmpzCmluZGV4IGNmODAzMzQxODg0M2NmMjBjNjY3MWU3Yzg0OTA3YjcwNzJkNDk1
MjAuLjA5NGE1M2IyODk2ODhkODJkZTRkZTczNjdhOWM5NDMzNGY1NjI0OTQgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMjcsOCArMjcs
OCBAQCBmdW5jdGlvbiBpbml0U3BlbGxUZXN0KHRlc3RFbGVtZW50SWQsIHRlc3RUZXh0LCB0ZXN0
RnVuY3Rpb24pCiAgICAgdGVzdEZ1bmN0aW9uQ2FsbGJhY2sgPSB0ZXN0RnVuY3Rpb247CiAgICAg
anNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgdGVzdFJ1bm5lci5zZXRBc3luY2hyb25vdXNTcGVs
bENoZWNraW5nRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVyLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIpOwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKHRlc3RFbGVtZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5k
ZXJzY29yZXMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91
YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1
YTVhMDYxMzUyY2Y5YTIzZWY2MzEyM2IxNmEzNi4uNDA2MDcxODEwZDAxYmI5OGU2ZTVmMTNjMzhk
NjA5M2QzNmU3ZWFhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQt
d2l0aC11bmRlcnNjb3Jlcy5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRl
c3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCki
LCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0
IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0
aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQg
KyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBk
ZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3Bl
bGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5v
ZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdv
cmQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHgg
PSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNl
dExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRU
b3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAy
OwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdv
cmQuaHRtbAppbmRleCAyNDkyNzNkMmUwYWJhYjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi45
ZDI0OWZkN2YwZWZlZTI0M2JjNmIwZmIyOWU1Y2VlNTk1NmVjNGVhIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlj
a2VkLXdvcmQuaHRtbApAQCAtMjEsNyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlv
biIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAog
ICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcg
d2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0
UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFy
IHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zm
c2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGlu
YXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7
CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRyYWlsaW5n
IHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0
UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFy
IHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zm
c2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9U
ZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNWI5ODY5MTAzNzc0MWIzOThmZmM1YTY3NDMyZjJkZjE0MmNhMWE3OS4uZGIwNDdk
MzI2OGU1YTU4YWJmMTdlMzZkZGYyZGE3MGZmOTY5NjRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3OSw5ICszNzksNiBAQCBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRt
bAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2Fs
bG93ZWRVUkwKIHBsdWdpbnMvZ2V0LXVybC10aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRl
LXdpbGwtZGlzYWxsb3cuaHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAotZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0
bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQ
cm9wZXJ0eQogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191460</attachid>
            <date>2013-03-05 04:09:06 -0800</date>
            <delta_ts>2013-03-05 05:55:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305130512.patch</filename>
            <type>text/plain</type>
            <size>83866</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi4xNTNiNTRiNmM3NzRmM2QzMzE5NGRlNTZmZjUxYzg3ZDNmNzE2MDA2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgrW1dlYlZp
ZXcgaW5pdGlhbGl6ZV0pOiBJbml0aWFsaXplIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMu
CisgICAgICAgICgtW1dlYlZpZXcgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAg
ICAgICAoLVtXZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdl
YlZpZXcvV2ViVmlld0RhdGEuaDoKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgor
ICAgICAgICAoLVtXZWJWaWV3UHJpdmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIExhc3psbyBH
b21ib3MgIDxsLmdvbWJvc0BzYW1zdW5nLmNvbT4KIAogICAgICAgICBKU0NfT0JKQ19BUElfRU5B
QkxFRCBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIEZlYXR1cmVEZWZpbmVzLmgKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cK
aW5kZXggOTM3ZmE5MTk1ZWVkNGI4YTdhNzQwNjk2ZGE2MTQ3ZDQyMTk0MDAxNS4uMWNhMWE1ZjZl
YmU1ZGFmNDY0MTIyMGJjNWFmYmQ0OGFjMjU0Y2YzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUu
CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHA6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaDoKKyAg
ICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRR
dCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAgICAgICAg
KEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBi
YWNrIHNvbWUgaW5jbHVkZXMgcmVtb3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLmIwMjdlYWFkZGIxZDE1ZGIyMDU2MmNh
NGNjZGQzMmQ4Mjc5YmZhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uM2I4ZTZiZmQ2NDk3MTM3
OWFjYmU3Njg4MWY5MWU2MmI0YzU4YWI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MzI0Mzg3MjIwOTY2Y2MxZTA0NzQxYzNhZDZkYWRkNWE5MzBjN2I5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2Zj
MDk3NjdiZWZmMjE0YTUzYmY3ZWJhZC4uZjYzNTllMGM3MmVmMGU3NzA0MmFiZDhiMDc2NWZjMjBk
YTFjZWMyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDcgQEAgdW5p
ZmllZFRleHRDaGVja2VyRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJF
bmFibGVkCiAKIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9
ZmFsc2UKIAorIyBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgYXJlIG11dHVhbGx5CisjIGV4Y2x1c2l2ZSwgbWVhbmluZyB0aGF0IGVu
YWJsaW5nIG9uZSB3aWxsIGRpc2FibGUgdGhlIG90aGVyLgogc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGluaXRpYWw9dHJ1ZQorc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbml0aWFs
PWZhbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5k
ZXJUcmVlQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJU
cmVlQ2xpZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThk
MS4uZTk3NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAt
ODMsNyArODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVj
dGVkRE9NUmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5n
ZSogZnJvbVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29s
IHN0aWxsU2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUo
V2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6
OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29s
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikg
PSAwOwogCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVm
ODgyNTA0YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLjlkNTI3MWFlOTAwOGU4ZTEyZGY0
MGJjNjY4N2RhZjIzYmVhNjVhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJy
eS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5j
cHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1
ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93
c0tleWJvYXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRv
ckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9k
dW1wUmVuZGVyVHJlZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUtPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNvcmUobV93ZWJQYWdl
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2
b2lkIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmVuYWJsZVNwZWxsQ2hlY2tpbmcoYm9vbCBlbmFi
bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5k
ZXggMzhjNjZkZmU4OWY5M2ZhODhlMThkNTA2ODA4NDU2MTY2YzAyNjczMy4uNWY5YWM5MDhlMmM3
OTFmYjU4NTcxODIyYTAzM2YzMDE2NzM5NmQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTg2LDkgKzE4Niw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIHRydWU7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ29tcG9zaXRpb25PblNlbGVjdGlvbkNoYW5nZSgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc1NlbGVjdGlvbkVt
cHR5KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAKaW5kZXggOTgzMDNmNGY0NjRkZjMyMWJiNDk0ZDMzNGJlM2E4NjBiYzQ4MjJmNC4uMDgy
MWI5ZTQzYTA1OThhNGZjNmU4YzM0ZjlhYzUxMTc0M2I0ZTNhZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkBAIC05NSwxNSArOTYsMTkgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpmcmFtZVdpbGxEZXRhY2hQYWdlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKIAogYm9vbCBF
ZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICBpZiAobV93ZWJWaWV3LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CisjaWYgT1MoV0lORE9XUykKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZWxzZQogICAgIHJldHVybiB0cnVlOworI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1w
bDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2Uo
KSkKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAjaWYgT1MoV0lORE9XUykKICAgICByZXR1cm4g
dHJ1ZTsKICNlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
aW5kZXggOWNmZDZiOWM3MWI1OTQzYThlNGY0YzE1MmNlMDUwNWU1YmFjMDhhMi4uNzBjYjg5MTll
YzdjN2ZmZTAwMmNjMjU1ODliNTJmNGJlODQ4ZGZiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAtNTEyLDYgKzUxMiwxMSBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoV2ViVmlld0NsaWVudCogY2xpZW50KQogI2VuZGlmCiAKICAgICBtX2luc3Bl
Y3RvclNldHRpbmdzTWFwID0gYWRvcHRQdHIobmV3IFNldHRpbmdzTWFwKTsKKworI2lmIE9TKFdJ
TkRPV1MpCisgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyNlbmRpZgogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJ
bXBsKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IDM4ZDJlNWNlNmU5NGNlNGUxMTQ4
M2FmZmVhOTcyOTlmYmY1NTdiMTguLjNlZmQ3YzIyY2IxYjUyOGE5NjJkMjQ5MzhjMDdmYTM4N2Q0
MGJhYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtMzM4LDI4ICszMzgsNiBAQCBi
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFz
X09iamVjdCogZXdrVmlldywgY29ucwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxl
ZCgpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAg
RFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6
OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRv
ckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRV
Uk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRv
ckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVk
aXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgZWRpdG9yQ2xpZW50LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVu
YWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdr
RnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCBkOGZmM2U1NmZjOWY4YjM2Zjk0MmE4
MDQ2ZGFkZTUwOTFkZDJmYTViLi5hMGM3ODI4YzRjMTBiM2YyOTc0NDQ4YTcwM2QwNjVjOGUyYmY0
YTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtODEsOCArODEsNiBAQCBwdWJsaWM6CiAg
ICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmll
dywgY29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3Rh
dGljIHZvaWQgc2V0Q1NTUmVnaW9uc0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxl
ZChib29sKTsKIAogICAgIHN0YXRpYyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tG
cmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmNwcAppbmRleCBhNGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBi
ZDNmLi4yYmUzMWE5YTA3NjNmZTNmYzg1MTI2OTk1MGZlOTU5YTllZjcwM2Y2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAK
QEAgLTI0MywyOCArMjQzLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVk
KCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOwotfQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAg
ICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFj
b3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGll
bnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBj
b3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFn
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3Mo
KS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNs
aWVudEVmbDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtMzcxLDggKzM2Myw2
IEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9h
cmRFdmVudCopCiBFZGl0b3JDbGllbnRFZmw6OkVkaXRvckNsaWVudEVmbChFdmFzX09iamVjdCog
dmlldykKICAgICA6IG1faXNJblJlZG8oZmFsc2UpCiAgICAgLCBtX3ZpZXcodmlldykKLSAgICAs
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRF
ZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5o
CmluZGV4IDNjMmEyNDdkZTQ3YTk3ZGZiMzQ0ZmJlMGNjNDllYjgyZTM2NjMwNDguLmQwZDVkMzA4
MTUzY2JjMjA5NDU4MzFmYzE1MDQ5YTVmMTc0OGFhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC04NCw5ICs4NCw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShSYW5nZSopOwog
ICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3Vz
U3BlbGxDaGVja2luZygpOwogICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWQoKTsKQEAgLTE1Nyw4ICsxNTUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRXZhc19P
YmplY3QgKm1fdmlldzsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogfTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0ay5jcHAKaW5kZXggY2U0OTM2Zjc5Mjk0ZjlkODBiNjZjMDc4MGE2ZmVjMjQ4
MWMwMDdkMC4uNTJjN2ViYmYxNjg4MmFkYTFjNGU0NGM0ODUzY2M4NDg1N2U0YzhiNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNl
OwogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hh
aW4gPSB0cnVlOwotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpG
cmFtZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxv
YWRFdmVudENhbGxiYWNrID0gMDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGlj
YXRpb25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25D
YWxsYmFjayA9IDA7CiAKQEAgLTExMiwxNiArMTExLDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OmxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKQogICAgIHJldHVybiBzX2xpbmtz
SW5jbHVkZWRJblRhYkNoYWluOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAg
c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotYm9vbCBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQotewotICAgIHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0K
IC8qKgogICogZ2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUK
QEAgLTQ1MywxNSArNDQyLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERl
ZmVyc0xvYWRpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBkZWYKICAgICBjb3JlKHdl
YlZpZXcpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lT
X1dFQl9WSUVXKHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHdlYlZpZXcpOwotCi0g
ICAgV2ViS2l0OjpFZGl0b3JDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6RWRp
dG9yQ2xpZW50Kj4oY29yZSh3ZWJWaWV3KS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGNsaWVudC0+
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDA5Y2U3MjI2NDRmNTJiMTBjNWY1NWRkODZlODA2
MjI2NDkzNWJlNDcuLjg0NWYyYmIyNTk2ZjQyMThhMWE0OTIxNTc3NGE3MmE0MDY2ZjczNWUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKIAogICAgIHN0
YXRpYyB2b2lkIHNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oYm9vbCk7CiAgICAgc3RhdGlj
IGJvb2wgbGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJP
cGVuZXIoV2ViS2l0V2ViRnJhbWUqKTsKIApAQCAtNzgsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9f
cmVjdGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2Vi
VmlldyosIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xv
YWRpbmcoV2ViS2l0V2ViVmlldyosIGJvb2wpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAgICAgc3RhdGljIHZvaWQg
Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyopOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0
eQpAQCAtMTQ2LDcgKzE0Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wg
c19kcnRSdW47CiAgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKLSAg
ICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCmluZGV4IGY5NDQyOWU5Nzg1MDY3MWU0ODgxODZkOWZhMTkwNjhiZDYwMzU4
NWYuLjljMGZkOTRhYTE3MjkzNTI1ZWYxZjg1NGNiNzBhYjlmOTJhMmE2NzIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApA
QCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJk
SGVscGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVW5k
b1N0ZXAuaCIKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCkBAIC0zNjAsMjEgKzM2MSwy
MCBAQCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7
CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCBlbmFibGVkKQotewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsK
LX0KLQogYm9vbCBFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0g
ICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2Uq
IGNvcmVQYWdlID0gY29yZShtX3dlYlZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFnZSogY29y
ZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAgICAgcmV0
dXJuIGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JD
bGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1MDEsNiBA
QCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAg
ICwgbV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRfZ2V0X3Rl
eHRfY2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAzYTdlYWYx
NGM3MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNiZmZiY2Vm
MjE3ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBFZGl0b3JD
bGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAgdmlydHVh
bCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb250
aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRvZ2ds
ZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xhc3MgRWRp
dG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAgIFdlYktp
dFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0
b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBt
X3BlbmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUwZjU3ODFl
ZmI0YzIxODNjZTc3NDYzMC4uNzg5NzI0MThjMjA5ZjI3ODc0YzE2NzYzYWUwYWRlZjg5MTIyN2U5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRB
cmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNv
cmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2Vi
Q29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNldC5o
PgogI2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTggQEAgYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQq
IGVsZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07
CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZp
ZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1
cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwog
fQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5
U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1t
CmluZGV4IDJjMWQ2YTMyMTIwMzUyNzc3MDljZWRjMzdmY2I0NjdkZjhhYTg4YjUuLjU1ZTkxZmQ0
NDY0OGU3NTI5ODE5MTI3MjQ3MmU2YWYwNGI5YjE3MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXcubW0KQEAgLTI0NzEsMTQgKzI0NzEsMTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0
TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSAhPSBmbGFnKSB7Cisg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3NlbGYgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9CiB9CiAKIC0gKEJPT0wpaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiAtICh2
b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZApAQCAt
MzE4Miw2ICszMTg0LDkgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKE5T
QXJyYXkqIHBhdHRlcm5zKQogICAgIGlmICghW2RlZmF1bHRzIG9iamVjdEZvcktleTpXZWJBdXRv
bWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkXSkKICAgICAgICAgYXV0b21hdGljU3BlbGxp
bmdDb3JyZWN0aW9uRW5hYmxlZCA9IFtOU1NwZWxsQ2hlY2tlciBpc0F1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbkVuYWJsZWRdOwogI2VuZGlmCisKKyAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGlu
Z3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFtkZWZhdWx0cyBib29sRm9yS2V5Oldl
YlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOworICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5n
cygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFbZGVmYXVsdHMgYm9vbEZv
cktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdKTsKIH0KIAogKyAodm9pZClfYXBwbGlj
YXRpb25XaWxsVGVybWluYXRlCkBAIC01NDMwLDE3ICs1NDM1LDE3IEBAIHN0YXRpYyBOU0FwcGxl
RXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6
SlNWYWx1ZSBqCiAKIC0gKHZvaWQpc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOihCT09MKWZs
YWcKIHsKLSAgICBpZiAoX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAhPSBmbGFn
KSB7Ci0gICAgICAgIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBmbGFnOwot
ICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9w
cml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZF07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5z
ZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGZvcktleTpXZWJTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIFtz
ZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6IWZsYWddOwogICAgIH0KLSAg
ICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZDpmYWxzZV07CiB9CiAKIC0gKEJPT0wpc21hcnRJbnNlcnREZWxldGVFbmFibGVkCiB7Ci0g
ICAgcmV0dXJuIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgcmV0dXJu
IF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsK
IH0KIAogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxh
ZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IGFkZWFiZTdlZTJj
ZmEyMmNiZGMyOGUzYmE4MzM3OGY0NjAzZTAyZTIuLjM0N2FiYTQ1Nzg1ZjE4MGU4Yzk3NDZjY2Ni
NjJhNGU2NzgwZTk0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgK
QEAgLTE0Niw5ICsxNDYsNiBAQCBwcml2YXRlOgogICAgIEJPT0wgaGFzU3BlbGxDaGVja2VyRG9j
dW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogCi0gICAg
Qk9PTCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgQk9PTCBzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkOwotICAgICAgICAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQp
CiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRNb3VzZUV2ZW50c1RvQWxsV2lu
ZG93czsKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZEFjdGl2ZU51bGxFdmVu
dHNUb1BsdWdJbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRl
eCBlMjc2NmYwMWEzNWJjMDdlZWFhNDg2YzI2NTViNGMwMWJhZWQ5N2E2Li5jNjgxZjA5YmE3MjE2
ZDhkMjE2ZTU5NzUyNmFmODU4MWQwMDNkZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEubW0KQEAgLTk1LDEwICs5NSw2IEBAIExheWVyRmx1c2hDb250cm9sbGVyOjpM
YXllckZsdXNoQ29udHJvbGxlcihXZWJWaWV3KiB3ZWJWaWV3KQogCiAgICAgc2hvdWxkQ2xvc2VX
aXRoV2luZG93ID0gb2JqY19jb2xsZWN0aW5nRW5hYmxlZCgpOwogCi0gICAgc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkID0gIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9i
amVjdEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdCi0gICAgICAgIHx8IFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNl
cnREZWxldGVFbmFibGVkXTsKLQotCiAgICAgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCsrOwog
CiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmlu
ZGV4IDhhNGUwZWNhODQxNWM1OGE3ZjZjYjA3MGYzMmUwMTI5NDE5M2ZjN2IuLjA0NjM2ZmJkZjli
ZWQ2YTZkZTA5YTU5YzY5NjA2MGZjNjc0M2NjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
cXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBA
IC0zMjYsMTggKzMyNiw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dGhv
ckFuZFVzZXJTdHlsZXNFbmFibGVkKFFXZWJQYWdlQWRhcHRlciogYWRhCiAgICAgYWRhcHRlci0+
cGFnZS0+c2V0dGluZ3MoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodmFsdWUpOwog
fQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3Rh
dGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSkt
PnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCi12b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFX
ZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRpY19jYXN0
PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KIHZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0
ZXIqIGFkYXB0ZXIsIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQog
ewogICAgIGFkYXB0ZXItPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJh
bWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuZXhlY3V0ZSh2YWx1ZSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmgKaW5kZXggMDk4MDllZjk3NjMxNzE0Y2Y4OWU4MmYzYmRkZTQyYWRjMGViNDZlMC4uOTNk
MDY4M2U5MzE3NjRjMWJjZmE4Mjc4NGI4ODhkZWRiODgzYmU1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aApAQCAtOTQsOCArOTQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZXhlY3V0ZUNvcmVD
b21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0
IFFTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKFFXZWJQ
YWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUpOwogICAgIHN0YXRpYyBib29sIGZpbmRT
dHJpbmcoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0
JiBvcHRpb25BcnJheSk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVu
YWJsZWQpOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3Qgc2VsZWN0ZWRSYW5nZShRV2ViUGFnZUFk
YXB0ZXIqKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJh
bmdlKFFXZWJQYWdlQWRhcHRlciosIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCk7CiAgICAgc3Rh
dGljIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IGNoYXIq
IHRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmNwcAppbmRleCBhZmNjOGQ2NGVmZTBhNTRiZjFhM2IwYmJjNWVjNWFhMjQ5MDg3YTAz
Li4zY2YwODcwMjBlY2VmMGYzMjU2MWYzYjAyNTgzNDUxMzI0YTZiNGFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApAQCAtMzMz
LDE4ICszMzMsMjcgQEAgdm9pZCBFZGl0b3JDbGllbnRRdDo6cGFnZURlc3Ryb3llZCgpCiAKIGJv
b2wgRWRpdG9yQ2xpZW50UXQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0
dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2Ut
PnBhZ2U7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAgICBib29sIGN1
cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7Cisg
ICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KSk7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKSk7CisgICAgfQogfQogCiBib29sIEVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVu
dFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEsOCArNTUwLDYgQEAg
RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRlciogcGFnZUFkYXB0
ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRpbmcoZmFsc2UpCiAg
ICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQog
ewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTkyNGIyZi4uNzgy
Y2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTExLDkgKzExMSw2
IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBiOyB9Ci0KICAg
ICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBhY2Nl
cHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUVdlYlBhZ2VB
ZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9vbCBtX2luVW5kb1Jl
ZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9uJ3QgcmUtZW50ZXIh
Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGQ5ODc4OTI3
ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmM0YzU0YThkNjkxMjYyMmVmYTFiMzQ2
NzgwZWZkOTEwNWVmODFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0
cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5n
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vz
ZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2Vs
ZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2Vi
Vmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90aWZpY2F0aW9uKgog
eyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNFOyAKLSAg
ICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0
dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9y
Q2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodm9pZCkKIHsKLSAgICBC
T09MIGVuYWJsZWQgPSBGQUxTRTsKLSAgICBtX3dlYlZpZXctPmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKKyAgICBQYWdl
KiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5n
ZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6
OkVBZmZpbml0eSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZDYyMTQxMTUyMDg2NTFj
M2QzNjdlMmUyYWQ2MDNlOGU1Mjk4MWVlZS4uM2I0NWY3ZTY4ZTJhODhiNTM5MGVjYjMyNTI3Nzc1
MDRkOGFlZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTM2NSw3ICszNjUsNiBAQCBXZWJW
aWV3OjpXZWJWaWV3KCkKICAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKICAgICAsIG1f
cGFpbnRDb3VudCgwKQogICAgICwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkK
LSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9kaWRDbG9z
ZShmYWxzZSkKICAgICAsIG1faW5JTUVDb21wb3NpdGlvbigwKQogICAgICwgbV90b29sVGlwSHdu
ZCgwKQpAQCAtMzczLDcgKzM3Miw2IEBAIFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwgbV90b3BM
ZXZlbFBhcmVudCgwKQogICAgICwgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2ZShmYWxz
ZSkKICAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RQYW5YKDApCiAgICAgLCBtX2xhc3RQ
YW5ZKDApCiAgICAgLCBtX3hPdmVycGFuKDApCkBAIC00MDgyLDMyICs0MDgwLDM2IEBAIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dHlwaW5nU3R5bGUoCiBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAgICAg
ICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkID0gISFmbGFnOwotICAgIGlmIChtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCkKLSAgICAg
ICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaWYgKG1f
cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgPT0gISFmbGFnKSB7
CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCEhZmxhZyk7CisgICAgICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
IGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQog
ICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7
Ci0gICAgKmVuYWJsZWQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA/IFRSVUUgOiBGQUxT
RTsKKyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgCiBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1fc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGZhbHNlKTsKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghIWZsYWcpOworICAgICAgICAvLyBT
ZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2
ZS4KKyAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFmbGFnKTsKKyAgICB9CiAg
ICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2
YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1f
cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID8gVFJV
RSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYzkz
NzM0NjJmZWYyODQxZTU3N2MwNjA5ZDAzODJmMWI3MzYwN2I2ZS4uZmNiNzgyNDg0MzA4M2NlZTNj
MDgzNTk4ZDNhMThlOWQ3ZmJjNGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTExMiw4ICsxMTEy
LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkOwogICAgIHVuc2ln
bmVkIG1fcGFpbnRDb3VudDsKICAgICBib29sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7
Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fZGlkQ2xvc2U7CiAgICAgYm9v
bCBtX2hhc0N1c3RvbURyb3BUYXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pbklNRUNvbXBvc2l0aW9u
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmNwcAppbmRleCBiOWY0NjhmNDE1NDJiY2NkMDhiZTUxMWM2NzgxNDgxZjc1
M2EzY2IyLi5mZTFhZjA0YTBlZWJkODg0ZTlkNTI3YzJlYmIyMDM2NTA5NDVmYzU5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNF
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVk
ZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUg
IlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIwOSwxNCArMjEwLDE4IEBA
IHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNs
aWVudFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBh
Z2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBw
YWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBF
ZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdl
ID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6dG9nZ2xlQ29udGludW91
c1NwZWxsQ2hlY2tpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBw
b3J0L0VkaXRvckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9F
ZGl0b3JDbGllbnRXeC5jcHAKaW5kZXggNWVmNjRjZDRhOWMwMTM2M2M0OTllNTdmY2Q5N2FkZDVk
OWMzMTVhYS4uNzI2YWQwYTNmODg4YWM5NTY1MWM2YTMyMjdkNDJmM2IzNjhlMmE3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCkBA
IC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQ
YWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJpdmF0
ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKQEAgLTE0OSwxNCArMTUwLDE2IEBAIGJvb2wgRWRp
dG9yQ2xpZW50V3g6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikKIAogYm9vbCBFZGl0b3JDbGll
bnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7
CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9w
YWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAK
IGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNGRi
MzRmYWNhZDUwNzVkNDQzMWFkODdmYmQ1OWM0YjUwNDkxZDQ5Li4xNGZjNmRkMGM0MmE4NzBiZGY5
ZWQ4ZWEyYTBlYmJjMzA4MzhhNGYzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdv
IENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29k
ZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdl
ZCBmcm9tCisgICAgICAgIGludGVybmFscyBmcm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVu
Y3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAg
IChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBS
ZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpX
ZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGlu
Zyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJs
YWNrQmVycnkuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5u
ZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6
CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAg
ICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0
c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJl
ZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGlu
Zyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25z
aXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5l
cld4LmNwcDoKKwogMjAxMy0wMy0wNCAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pk
bnlha292QGludGVsLmNvbT4KIAogICAgICAgICBbV0syXVtFRkxdIEFkZCBjYWxsYmFja3MgdG8g
dGhlIFdLVmlld0NsaWVudCB0byBoYW5kbGUgV2ViIFByb2Nlc3MgY3Jhc2ggYW5kIHJlbGF1bmNo
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDIzYjcyMzgyYzk5N2VkZGMxZmZi
MzQ5MDk5YzlhM2Q5MDFhNmZkMjQuLjA1NGIxNzA2MzBkMzJiYTA2MjE1MjM1MGQwMDBiZTE0NjE4
MWFjZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNTA2LDE2ICsxNTA2
LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIH0gICAgCiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAg
ICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250
cm9sbGVyLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250
ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25F
bmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9u
LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNW
YWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChh
cmd1bWVudENvdW50IDwgMSkKQEAgLTE1MjYsMTYgKzE1MTYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAot
c3RhdGljIEpTVmFsdWVSZWYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3Vu
dCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQot
ICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNP
YmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1l
bnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQot
CiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0
aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVu
dHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKQEAgLTIxNTAsOSArMjEzMCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6
OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFBsdWdpbnNFbmFibGVkIiwgc2V0UGx1
Z2luc0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcmludGluZyIsIHNl
dFByaW50aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UHJpdmF0ZUJyb3dzaW5n
RW5hYmxlZCIsIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAg
ICAgICB7ICJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIiwgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNl
cmlhbGl6ZUhUVFBMb2FkcyIsIHNldFNlcmlhbGl6ZUhUVFBMb2Fkc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
Ci0gICAgICAgIHsgInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNwYXRpYWxOYXZp
Z2F0aW9uRW5hYmxlZCIsIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHMiLCBzZXRTdG9wUHJv
dmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0VGFiS2V5
Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCBjY2E0MWY3NGZh
NDY4M2QxN2M1ODRiYjI4OWQ2Y2EwZmQzMzI4NjI1Li5kOTg0NzAwZmI3OGU3OGIxNWU4ZjY2M2Qz
NGE4Y2RiOWQwZWZiY2MzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0xMDMsOCAr
MTAzLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7CiAgICAg
dm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wpOwogICAg
IHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1vZGUoYm9vbCBmbGFnKTsKICAgICB2
b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA3MTY1MmRj
ZDEyMzhhMTM2NDM3MmIwOTgzNTgwYmMwMmQyODM4MTA1Li45NTY0NDRiYzdmODU1YWNhOWVhZjQ2
NWMwMjQxYmVhN2JiNWQ4NmI4IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFj
a2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFj
a2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTUxLDcgKzE1MSw2IEBAIG5hbWVzcGFjZSBC
bGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBEdW1wUmVuZGVyVHJlZSogRHVtcFJl
bmRlclRyZWU6OnNfY3VycmVudEluc3RhbmNlID0gMDsKLWJvb2wgRHVtcFJlbmRlclRyZWU6OnNf
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogCiBzdGF0aWMgdm9pZCBj
cmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7CkBAIC0yOTUsNyArMjk0LDYgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmco
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnMKIAogICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CiAgICAg
bV9sb2FkRmluaXNoZWQgPSBmYWxzZTsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgPSBmYWxzZTsKICAgICBtX3BvbGljeURlbGVnYXRlRW5hYmxlZCA9IGZhbHNlOwogICAg
IHdhaXRGb3JQb2xpY3kgPSBmYWxzZTsKICAgICB0ZXN0RG9uZSA9IGZhbHNlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVy
cnkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFj
a0JlcnJ5LmgKaW5kZXggYTEzYWZiMTJkOGQ1MjM4MzM1NDdmMzNjMjcwOTA0MWUwMGI3OTgzNi4u
MjY3YzRkY2FkZjZlZDA3NjU3NmQ3Y2RiY2QwMGFkZjM5ZGNlMDljMCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tC
ZXJyeS5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkSW5zZXJ0
Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsK
ICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2Uq
LCBpbnQgaW5zZXJ0QWN0aW9uKTsKIAotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZW5hYmxlZCkgeyBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOyB9
CiAgICAgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6Q3Jl
ZGVudGlhbCYpOwogCiAgICAgLy8gQmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlQbGF0
Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0aG9kCkBAIC0xNDgsNyArMTQ2LDYgQEAgcHJpdmF0ZToK
IAogICAgIGJvb2wgbV9hY2NlcHRzRWRpdGluZzsKICAgICBib29sIG1fbG9hZEZpbmlzaGVkOwot
ICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBi
b29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogfTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKaW5kZXgg
YWFlODQzODhhOGMyZTJiMzE0MWQ2ODMzN2QxOGE0YWJmMWQzNDVmNi4uMjEwMjBkOWQ4ZmUwMzA2
ZGY3YWM5NzQyMjNkMDRmM2UwMGMwNWU5YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKQEAgLTI2MCwxNyAr
MjYwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGZsYWcp
CiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNl
KCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZmxhZyk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVu
dEluc3RhbmNlKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7Ci19
Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxh
ZykKLXsKLSAgICBVTlVTRURfUEFSQU0oZmxhZyk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0K
LQogdm9pZCBUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCBj
eWNsZXMpCiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5o
CmluZGV4IGE0NGVjYmQ3ODBkYTYxZDliZmU3ZTljODBlNTIxZjZiMWI5MDc1YzguLmQ0YTYwMGI4
MjBlOTMwNzNkYjg5NzYxZWJhNzI5MGMxMWZjZDBhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQ
cm94eS5oCkBAIC0xNDksOCArMTQ5LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYktpdDo6V2ViUGx1
Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViUGx1
Z2luUGFyYW1zJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CiAgICAgdm9pZCBkaWRTdG9wTG9hZGluZygpOwotICAgIGJvb2wgaXNTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKTsKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqLCBjb25z
dCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYpOwogICAgIFdlYktpdDo6V2ViVXNlck1lZGlh
Q2xpZW50KiB1c2VyTWVkaWFDbGllbnQoKTsKICAgICB2b2lkIHByaW50UGFnZShXZWJLaXQ6Oldl
YkZyYW1lKik7CkBAIC0zNjgsMTQgKzM2Niw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVGVzdFBy
b3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICAgICAgQmFzZTo6ZGlkU3RvcExvYWRpbmco
KTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlCYXNl
Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB9CiAgICAgdmlydHVh
bCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2Vi
S2l0OjpXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0YSkKICAgICB7CiAgICAgICAg
IFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShmcmFtZSwgY29udGV4dE1lbnVEYXRh
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggNDc5NTFlZmFjMGEwZDg4ZDBjM2M0NDUwZDdi
N2FhM2QwMjY5NmRlOS4uNWMwMmY3YzkxZjBlNDhmNThmZDUxMmVhZTg2ZGVmNmI5MzdjNzBjMiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIwOCw4ICsyMDgsNiBAQCBUZXN0UnVubmVyOjpU
ZXN0UnVubmVyKFRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2VzKQogICAgIGJpbmRNZXRob2QoInRl
eHRTdXJyb3VuZGluZ05vZGUiLCAmVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZSk7CiAg
ICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6OmRpc2Fi
bGVBdXRvUmVzaXplTW9kZSk7CiAgICAgYmluZE1ldGhvZCgiZW5hYmxlQXV0b1Jlc2l6ZU1vZGUi
LCAmVGVzdFJ1bm5lcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUpOwotICAgIGJpbmRNZXRob2QoInNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQpOwotICAgIGJpbmRNZXRob2QoInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9yaWVudGF0aW9uIiwgJlRlc3RSdW5u
ZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAgYmluZE1ldGhvZCgiZGlkQWNxdWly
ZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk7CiAgICAg
YmluZE1ldGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZExvc2VQb2lu
dGVyTG9jayk7CkBAIC00MTAsMTIgKzQwOCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQog
ICAgIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBmYWxzZTsK
ICAgICBtX3Nob3VsZEJsb2NrUmVkaXJlY3RzID0gZmFsc2U7CiAgICAgbV93aWxsU2VuZFJlcXVl
c3RTaG91bGRSZXR1cm5OdWxsID0gZmFsc2U7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgPSB0cnVlOwotI2lmZGVmIFdJTjMyCi0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkID0gdHJ1ZTsKLSNlbHNlCi0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkID0gZmFsc2U7Ci0jZW5kaWYKICAgICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMg
PSBmYWxzZTsKIAogICAgIG1faHR0cEhlYWRlcnNUb0NsZWFyLmNsZWFyKCk7CkBAIC02NzQsMTYg
KzY2Niw2IEBAIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBj
b25zdAogICAgIHJldHVybiBtX2ludGVyY2VwdFBvc3RNZXNzYWdlLmlzQm9vbCgpICYmIG1faW50
ZXJjZXB0UG9zdE1lc3NhZ2UudG9Cb29sZWFuKCk7CiB9CiAKLWJvb2wgVGVzdFJ1bm5lcjo6aXNT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotYm9vbCBUZXN0UnVubmVyOjppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0KIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291
cmNlUHJpb3JpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2hvdWxkRHVtcFJlc291cmNl
UHJpb3JpdGllczsKQEAgLTE0OTAsMjAgKzE0NzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRleHRT
dXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bgogICAgIHJlc3VsdC0+c2V0KHN1cnJvdW5kaW5nVGV4dC50ZXh0Q29udGVudCgpLnV0ZjgoKSk7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAg
ICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZh
bHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+
IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3Vs
dC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RQ
cmlvcml0aWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiBy
ZXN1bHQpCiB7CiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzID0gdHJ1ZTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3Jj
L1Rlc3RSdW5uZXIuaAppbmRleCA4OGQ4YjM3MTU1OTI5MTA3MTdhMWY4OGUyNTNjZTVhZjVhMmRi
ODk3Li5mZWFkYTg4ZjgyMmE3MDUyYjc1YzE3ZDM3MWFiNGFmMDFmYmIwMTAzIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dFJ1bm5lci5oCkBAIC0xMTgsOCArMTE4LDYgQEAgcHVibGljOgogICAgIGJvb2wgcG9saWN5RGVs
ZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25zdDsKICAgICBib29sIHBvbGljeURlbGVnYXRlU2hvdWxk
Tm90aWZ5RG9uZSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2Uo
KSBjb25zdDsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBjb25zdDsKICNpZiBFTkFCTEVfTk9U
SUZJQ0FUSU9OUwogICAgIFdlYktpdDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmlj
YXRpb25QcmVzZW50ZXIoKSBjb25zdDsKQEAgLTI3MCwxMSArMjY4LDYgQEAgcHJpdmF0ZToKICAg
ICAvLyBsZW5ndGggdG8gcmV0cmlldmUuCiAgICAgdm9pZCB0ZXh0U3Vycm91bmRpbmdOb2RlKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEVuYWJsZSBvciBk
aXNhYmxlIHNtYXJ0IGluc2VydC9kZWxldGUuIFRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0Lgot
ICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKLQotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHRyYWlsaW5nIHdo
aXRlc3BhY2Ugc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljay4KLSAgICB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAtNjcwLDEwICs2NjMsNiBAQCBwcml2
YXRlOgogCiAgICAgYm9vbCBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGw7CiAKLSAg
ICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotCi0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0KICAgICBib29sIG1fc2hvdWxkRHVtcFJlc291cmNl
UHJpb3JpdGllczsKIAogICAgIHN0ZDo6c2V0PHN0ZDo6c3RyaW5nPiBtX2h0dHBIZWFkZXJzVG9D
bGVhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCmluZGV4IDg2ODEzM2ZlNDcwZjkxYWVmY2Vk
MWZjMTk2YmNhOGY3MGQzMGQwOTQuLmNjNTA3NTM0ZTE2ZDk4NTlhMjJjNTdkYzIxZDU0YWM1YjNl
MmFhZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcApAQCAtOTc4LDE2ICs5NzgsNiBAQCB2
b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9kZWxlZ2F0
ZS0+cHJpbnRNZXNzYWdlKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxuIik7CiB9
CiAKLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQot
ewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7Ci19Ci0KLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV90ZXN0SW50ZXJmYWNl
cy0+dGVzdFJ1bm5lcigpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLX0K
LQogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29udGV4dE1lbnUoV2ViRnJhbWUqLCBjb25z
dCBXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0YSkKIHsKICAgICBtX3Rlc3RJbnRl
cmZhY2VzLT5ldmVudFNlbmRlcigpLT5zZXRDb250ZXh0TWVudURhdGEoY29udGV4dE1lbnVEYXRh
KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRl
eCA2OTA1Y2RhNmY3Y2QxOGFhOGU1MTBiZjk2YmQ3ZDMyZGU4NzdiZWExLi5kZDYyZjNhMjEwZmIw
ZjExY2M3OTVhZWUwOTlmYWU4NDZjZTA3NDNiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNjksMjAgKzE2OSw2IEBAIGJvb2wgV2ViVmll
d0hvc3Q6OnNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3RyaW5nJiBzdHlsZSwgY29uc3QgV2Vi
UmFuZ2UmIHJhbmdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViVmlld0hvc3Q6Omlz
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9v
bCBXZWJWaWV3SG9zdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSNp
ZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKLX0KLQogYm9vbCBXZWJWaWV3SG9zdDo6aGFuZGxlQ3VycmVudEtleWJvYXJkRXZl
bnQoKQogewogICAgIGlmIChtX2VkaXRDb21tYW5kTmFtZS5lbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggYzE2ZDVmZjc4ZTU2ZDE1OGUx
NTYyZDA2YTE2YzZkZjJjNzhmMTJmOC4uMzdlMDBjMjgwYWQ3YTgzMDdhNDNmZDZmMjg4NzgxYTYx
NDYyMmQ4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5o
CkBAIC0xNDMsOCArMTQzLDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpX
ZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFs
IGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiBm
cm9tLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiB0bywgV2ViS2l0OjpXZWJUZXh0QWZmaW5pdHks
IGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5n
ZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5
U3R5bGUoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJLaXQ6OldlYlJh
bmdlJik7Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0g
ICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAg
IHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpOwogICAgIHZpcnR1YWwg
dm9pZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6
OldlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBydW5Nb2RhbENvbmZpcm1EaWFsb2coV2Vi
S2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBlMzc4NWIx
MDUyOTUyMmIxYjMzY2M0NzM2MTQ3OGFjMGI0YmJkYmQxLi5kZDY5MzllNTA0MjRlOTY4MmI4YzJh
ODBlM2I1ZTM4NTU1MzA1N2JjIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTMwNiw4ICszMDYsNiBAQCB2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0
aW9uKG1haW5WaWV3KCksIC0xKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1
dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1haW5WaWV3KCksIHRydWUpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQobWFpblZpZXcoKSwgZmFs
c2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwog
ICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVmZXJzTG9hZGluZyhtYWluVmlldygp
LCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRMb2Fkc1NpdGVJY29u
c0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IDg4NzU2ZGNkNzJl
Njc0ZjdlMDZhYzU2ZjA0MzE2Mjk0NmNjNmVlMzAuLmY4Y2YzY2VlNTU2OWJkMjIwOGU0MjE2MzY5
ZWFkNTk5MDhhNjQ5OTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0
UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVm
bC5jcHAKQEAgLTI3MiwxMSArMjcyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tl
eShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChicm93c2VyLT5tYWluVmll
dygpLCBmbGFnKTsKLX0KLQogc3RhdGljIEVpbmFfQm9vbCB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJl
ZCh2b2lkKikKIHsKICAgICB3YWl0VG9EdW1wV2F0Y2hkb2cgPSAwOwpAQCAtNDIxLDExICs0MTYs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9wYXRoX3NldChkYXRhYmFzZVBh
dGgudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5W
aWV3KCksIGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFi
bGVkKGJvb2wgZmxhZykKIHsKICAgICBld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX29wZW5f
d2luZG93c19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgIWZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNWEzNTc0ZjcxMjEzYjQ1NjI3MTVk
MmM4ZWRkZTA5NmIzY2E4ZTBkNS4uY2VlNDYxYzU4MWQzZjE5MzJlNDFkNDc0NjU0NGVkYmY2NDYw
ZGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBA
IC01MDEsOCArNTAxLDYgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZh
bHVlcygpCiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldExpbmtzSW5jbHVkZWRJ
bkZvY3VzQ2hhaW4odHJ1ZSk7CiAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgod2Vi
a2l0X2dldF9pY29uX2RhdGFiYXNlKCksIDApOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQod2ViVmlldywg
dHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKHdl
YlZpZXcsIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlcmlhbGl6
ZUhUVFBMb2FkcyhmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVy
R3RrLmNwcAppbmRleCBmMWMzMDY5Mjc2MjZiZmNlMjE0MjIyNjc5N2Q2OThiYWI2N2JkOTc2Li5m
OWViYjBhNmE4ZDUxZTRkN2E2M2RlNWJlZGZmODhmMmZlNzg1NjQ3IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0zMjMsMTEgKzMyMyw2IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICAvLyBGSVhN
RTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWlu
RnJhbWUpLCBmbGFnKTsKLX0KLQogc3RhdGljIGdib29sZWFuIHdhaXRUb0R1bXBXYXRjaGRvZ0Zp
cmVkKHZvaWQqKQogewogICAgIHNldFdhaXRUb0R1bXBXYXRjaGRvZygwKTsKQEAgLTQ4NSwxMSAr
NDgwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5h
YmxlZCkKICAgICAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgoZGF0YWJhc2UsIDAp
OwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpz
ZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyog
dmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggOWEyMDIyZTJkZjM3NTQw
M2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OC4uY2IxNGExNTdhNDU4NzZiMTdjNGJmNGYzMDJkMmY2
YzU1NDlhOGI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQpAQCAtMTI3OCw4ICsxMjc4LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgZ1Rlc3RSdW5uZXItPnJlbW92ZUNocm9t
ZUlucHV0RmllbGQoKTsKICAgICB9CiAKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ6WUVTXTsKLQogICAgIFtXZWJWaWV3IF9zZXRVc2VzVGVzdE1v
ZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwogICAgIFtXZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1do
aXRlbGlzdHNdOwogICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzOk5PXTsKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggZGZiOWE2ZWNmZDc0
YzM3MzM2YzMwNTA0MmE2MmM5ODIxMmJjNzBjMi4uNzljODRmZWFjN2E2ZWJmYjFmYTc1MWIzNWMx
Mzg4MWRlZWNjYWYwOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RS
dW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW0KQEAgLTYzNCwxNiArNjM0LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShi
b29sIHdpbmRvd0lzS2V5KQogICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIF91cGRhdGVBY3RpdmVT
dGF0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgW1ttYWluRnJhbWUgd2ViVmll
d10gc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpmbGFnXTsKLX0KLQogc3RhdGlj
IGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsK
IAogc3RhdGljIHZvaWQgd2FpdFVudGlsRG9uZVdhdGNoZG9nRmlyZWQoQ0ZSdW5Mb29wVGltZXJS
ZWYgdGltZXIsIHZvaWQqIGluZm8pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5k
ZXJUcmVlUXQuY3BwCmluZGV4IDIzZmQzNWMxYzZmYjVmMTc5MzNiNjUzMmJkNGM4NzQxNzAwZThj
ZDIuLmRmYTY3MmI2NzRkZWMzY2U5NzA2MmY1OGZlZmNmYzk5MzgwMWEwNWYgMTAwNzU1Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0xOTIsOCArMTkyLDYg
QEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKIAogICAgIG1fZHJ0LT50ZXN0UnVubmVy
KCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5l
cigpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVz
dFJ1bm5lcigpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQt
PnRlc3RSdW5uZXIoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICAg
ICAvLyBnbG9iYWxTZXR0aW5ncyBtdXN0IGJlIHJlc2V0IGV4cGxpY2l0bHkuCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCA2MGM1M2JiMDM2NzZiM2Y1N2ViMmU0
OGZkM2IyNWJjOGEzMTU1NTNiLi42NmRlNTkzOTc4ZjcwYzk4ZGFhMzY2YzNkYTBkY2Q2OThjMzcy
ZWJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTcyMCwx
NiArNzIwLDYgQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNjcm9sbGJhclBvbGljeShjb25zdCBR
U3RyaW5nJiBvcmllbnRhdGlvbiwgY29uc3QgUVN0cmluZyYKICAgICBtX2RydC0+d2ViUGFnZSgp
LT5tYWluRnJhbWUoKS0+c2V0U2Nyb2xsQmFyUG9saWN5KG8sIHApOwogfQogCi12b2lkIFRlc3RS
dW5uZXJRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobV9k
cnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKG1f
ZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUpOwotfQotCiB2b2lkIFRlc3RSdW5uZXJRdDo6ZXhl
Y0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShtX2Ry
dC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuaAppbmRleCBkZDAyNmRlMWIwOWE0MjBmMmE4MTFmNjhhYmZiMDA2YTFiZjA0M2Vm
Li5lYmIyMjk0NDRmOGNmZTFjOTQxZmU0Y2JlZjhiNzlhMzI5ZTY2ZWY0IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTc4LDggKzE3OCw2IEBAIHB1YmxpYyBRX1NM
T1RTOgogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFZpZXdNb2Rl
TWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpOwotICAgIHZvaWQgc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChib29sKTsKICAgICB2b2lkIGV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5h
bWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlID0gUVN0cmluZygpKTsKICAgICBib29sIGlzQ29tbWFu
ZEVuYWJsZWQoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9vbCBmaW5kU3RyaW5n
KGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkpOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZjc0NzZmYTEyNjNk
ZjFlMGNlMjYwNmEzODM3ODczZWRhNzhjZWY1Yi4uODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEz
MjRlZGMxNWUyOTEwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRy
ZWUuY3BwCkBAIC04OTksMTAgKzg5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29u
c2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6
cmVzZXRJbnRlcm5hbHNPYmplY3QoY29udGV4dCk7CiAgICAgfQogCi0gICAgQ09NUHRyPElXZWJW
aWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT5RdWVy
eUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgdmlld0VkaXRpbmctPnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChUUlVFKTsKLQogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+
IHdlYlZpZXdQcml2YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKICAgICBpZiAoIXdlYlZpZXdQcml2YXRl
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4v
VGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAKaW5kZXggODQyMzI2Y2JjZjU5NThjOWVkMzQ3MGMwYjExMjUzN2U1MzA1YmI4MS4uZDgy
ZGYyZWU1M2MxMGFhMDE3YTQ3YWRiYWQ0YWM3NzVhNjQwYmNkYiAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzIzLDMyICs3MjMsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgZmxhZykKICAgICA6OlNlbmRNZXNzYWdlKHdl
YlZpZXdXaW5kb3csIGZsYWcgPyBXTV9TRVRGT0NVUyA6IFdNX0tJTExGT0NVUywgKFdQQVJBTSk6
OkdldERlc2t0b3BXaW5kb3coKSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdl
YlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAg
ICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2Vi
Vmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0
aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5n
KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCiBzdGF0aWMgY29u
c3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBz
dGF0aWMgdm9pZCBDQUxMQkFDSyB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChIV05ELCBVSU5U
LCBVSU5UX1BUUiwgRFdPUkQpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9U
ZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNw
cAppbmRleCA5Nzc1MTEzNTBlY2ViZWQwZDk1MzJmZTUwNDlmZjVmYWFmNjg3M2VjLi40MTY3ODI3
ZjFhNzBlZjFhM2Q3MjI0OTQ0NGZlNmMzOTAxYzc3ZDJlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTE1MSwxMSArMTUxLDYgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1l
bnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVy
OjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkKIHsKICAgICBzdGF0aWMgY29uc3Qg
aW50IHRpbWVvdXRTZWNvbmRzID0gMTA7CkBAIC0yOTQsMTEgKzI4OSw2IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAg
ICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxl
bWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29s
IGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3Vi
bGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICAvLyBG
SVhNRTogSW1wbGVtZW50IGZvciBEZXZpY2VPcmllbnRhdGlvbiBsYXlvdXQgdGVzdHMuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYTI2NzZlYmM2MDgyODNmMjU0M2RmNWUxODNmNTNkYmVkN2E4Nzg3NC4uMWZiNzFmYWY5NGYx
ODRmNTI2NWJiODY4MThmZjMyZGY4YzRhMjhmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UmVwbGFjZSB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkK
KyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgaW4gdGVzdHMuCisKKyAgICAgICAgQmUgc3VyZSB0aGF0IHRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXJl
IHNldCB0byBvcHBvc2l0ZSB2YWx1ZXMgYXMgdGhleSBhcmUKKyAgICAgICAgbXV0dWFsbHkgZXhj
bHVzaXZlLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2Fi
bGVkLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRl
LWNyLXNwYW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxl
Y3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRl
ZGl0YWJsZS5qczoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpz
OgorICAgICAgICAoaW5pdFNwZWxsVGVzdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbDoKKyAgICAg
ICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbDoK
KyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAg
IGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRl
ZGl0YWJsZS5odG1sCisgICAgICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDMtMDQgIENo
cmlzdGlhbiBCaWVzaW5nZXIgIDxjYmllc2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICAo
dGVzdHMpIGZsZXhib3gvcmVzb3VyY2VzLmNzcyBzaG91bGQgdXNlIHVucHJlZml4ZWQgcHJvcGVy
dGllcywgZm9yIGZpcmVmb3gKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRp
bmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxl
dGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKaW5kZXggN2ViMzBkMjIxMWQwYzBkODE5
YmVmMmY1ZTczNjg0ODE5ODFkZWQ2OS4uZDBmN2Q3YWYxNThkYTI1Yzg3ODc2Yzg4MzZhZjA3YmFh
NzQ2YWI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1l
ZGl0aW5nLWRpc2FibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9z
bWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0K
IAogZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sIGIvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAppbmRl
eCA4Yjk4YmE3MmZiZmM3NDBhZmEzNWMyZDA4YWM5NTc3YWI2Yjk5ZTlhLi44ZDVjYjc2YjdhZGIx
ODc3ODQ1MWFlZWY1MjdhZWUzNmMwZDhmYmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwK
QEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBnZXRQb3NpdGlv
bk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAppbmRleCA0MGUyNDEzODIx
ZThlODg0MDc5NzhhYTgzNzY5Mzc3Yzg2ODZhZjhmLi5jOWI0NGU2YzY2ZjM5NWE1YjA3ZmYzOTMz
NDQxMjYxZmE0OTM2OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCkBAIC00LDcg
KzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1p
bWctY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKaW5kZXggZjI4MGEyNmE3NjlhOTVhNzlkZGE2ZDQ0
NjcxNjRkZmQ0NDYzNzUwNC4uZjc0YWEyNjU2Nzc2NTYzNThhNzk1OTg2ZTNhMzc5OWM3ZmNlZjY3
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCkBAIC00LDcgKzQsNyBA
QAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZh
bHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCh0cnVlKTsKICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UuaHRtbAppbmRleCA4NTMwZmJjNTMxYTQ1M2E2YWY1ZmJmMzlkNWY2ZjFlYWFm
OThiN2RjLi43ZDgzZmIxZmExZTU4YjVlNzQxNWUyZjNhZTFmMjk0ZGMyZGVlYzFkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hp
dGVzcGFjZS5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rp
b24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29u
dGVudGVkaXRhYmxlLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRl
c3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwppbmRl
eCBlZTY1NWRjMDcyYWZmMmIyNWZiNzIzNTY5NTAzMDkwOTVjMWMyZTM5Li5lN2JkZmY1Y2QyNjMz
Mjc4Nzg2ZTYyZjY4MjIxOTkwOWE5NzE2YzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3Qt
Y29udGVudGVkaXRhYmxlLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nj
cmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUu
anMKQEAgLTc4LDcgKzc4LDggQEAgZnVuY3Rpb24gdGVzdFdpdGhDbGlja0FuZE1vZGlmeSh0YXJn
ZXRJbm5lckhUTUwsIGV4cGVjdGVkVGV4dCkKICAgICBzaG91bGRCZSgid2luZG93LnNlbGVjdGVk
QnlNb2RpZnkiLCB0b0xpdGVyYWwoZXhwZWN0ZWRUZXh0KSk7CiB9CiAKLXRlc3RSdW5uZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CitpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogCiB2YXIgc2hvdWxk
U2VsZWN0ZUZpcnN0V29yZElubGluZSA9ICI8c3BhbiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFi
bGU+c2VsZWN0bWUxPC9zcGFuPiBhbmQgbm90IHNlbGVjdCB1cyI7CiB0ZXN0V2l0aERvdWJsbGVD
bGljayhzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lLCAic2VsZWN0bWUxIik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBjZjgwMzM0
MTg4NDNjZjIwYzY2NzFlN2M4NDkwN2I3MDcyZDQ5NTIwLi4wOTRhNTNiMjg5Njg4ZDgyZGU0ZGU3
MzY3YTljOTQzMzRmNTYyNDk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
cmVzb3VyY2VzL3V0aWwuanMKQEAgLTI3LDggKzI3LDggQEAgZnVuY3Rpb24gaW5pdFNwZWxsVGVz
dCh0ZXN0RWxlbWVudElkLCB0ZXN0VGV4dCwgdGVzdEZ1bmN0aW9uKQogICAgIHRlc3RGdW5jdGlv
bkNhbGxiYWNrID0gdGVzdEZ1bmN0aW9uOwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAg
IHRlc3RSdW5uZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7Ci0g
ICAgdGVzdFJ1bm5lci5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgdGVz
dFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZh
bHNlKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZCh0cnVlKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4i
KTsKICAgICB2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RWxl
bWVudElkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRl
cnNjb3Jlcy5odG1sCmluZGV4IGNhNTkzNWZlMDAwNWE1YTA2MTM1MmNmOWEyM2VmNjMxMjNiMTZh
MzYuLjQwNjA3MTgxMGQwMWJiOThlNmU1ZjEzYzM4ZDYwOTNkMzZlN2VhYTggMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbApAQCAt
MjEsNyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZV8gaG9t
ZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndp
bmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNs
aWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZS4K
LSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1
ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNl
dExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5h
dGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVz
dGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4
LCB5KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2Vs
bGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8v
IERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdGhlIHRyYWlsaW5nIHdoaXRl
c3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50
Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBk
ZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9w
ICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKaW5kZXggMjQ5MjczZDJlMGFi
YWI5ZDliY2VjOTI3YTA5YzNmYzQ2Y2UwMjdjZi4uOWQyNDlmZDdmMGVmZWUyNDNiYzZiMGZiMjll
NWNlZTU5NTZlYzRlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKQEAgLTIxLDcgKzIx
LDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBmdW5j
dGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNl
bGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1p
c3NwZWxsZWQgd29yZCB3aXRob3V0IHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5l
ci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsK
ICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGlu
YXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFy
ZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNl
dEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3
ICs1MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwg
ZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5n
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRo
ZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5u
ZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
ICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGlu
YXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFy
ZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNl
dEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDViOTg2OTEwMzc3NDFiMzk4
ZmZjNWE2NzQzMmYyZGYxNDJjYTFhNzkuLmRiMDQ3ZDMyNjhlNWE1OGFiZjE3ZTM2ZGRmMmRhNzBm
Zjk2OTY0YzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0zNzksOSArMzc5LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4t
YXV0aG9yaXphdGlvbi13aXRoLWVtYmVkZGVyLmh0bWwKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVk
cyBsYXlvdXRUZXN0Q29udHJvbGxlci5hZGREaXNhbGxvd2VkVVJMCiBwbHVnaW5zL2dldC11cmwt
dGhhdC10aGUtcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS13aWxsLWRpc2FsbG93Lmh0bWwKIAotIyBX
ZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQKLWVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGlu
ZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBu
ZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkKIHByaW50aW5nL3BhZ2UtcnVs
ZS1zZWxlY3Rpb24uaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191478</attachid>
            <date>2013-03-05 05:55:32 -0800</date>
            <delta_ts>2013-03-05 08:02:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305145137.patch</filename>
            <type>text/plain</type>
            <size>83865</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi43YzlhZjljYTkyYTAxNDQ3Njg1MWUyNDdjNDFlMTI0Y2Q1YjQ0Zjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOiBJbml0aWFs
aXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMuCisgICAgICAgICgtW1dl
YlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpdKToKKyAgICAgICAgKC1b
V2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdKToKKyAgICAgICAgKC1b
V2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICgtW1dl
YlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEpTQ19PQkpDX0FQSV9FTkFCTEVEIHNob3VsZCBi
ZSByZW1vdmVkIGZyb20gRmVhdHVyZURlZmluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MzdmYTkx
OTVlZWQ0YjhhN2E3NDA2OTZkYTYxNDdkNDIxOTQwMDE1Li4xY2ExYTVmNmViZTVkYWY0NjQxMjIw
YmM1YWZiZDQ4YWMyNTRjZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2Rl
IHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50
UXQpOgorCiAyMDEzLTAzLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0ZWQgYnVpbGQgZml4LiBBZGRzIGJhY2sgc29tZSBpbmNs
dWRlcyByZW1vdmVkIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGFkZTM4ZDI2ZGRkOTRjNzM1ZjIx
YzdkZTUxZDlmZjc4ZTAzNGIwMy4uYjAyN2VhYWRkYjFkMTVkYjIwNTYyY2E0Y2NkZDMyZDgyNzli
ZmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAg
ICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAg
ICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTMtMDMtMDMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBmaXggYXR0
ZW1wdCBhZnRlciByMTQ0NTQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZjZhMTk4YTQyNGU4
OGJhMDM1ZTc0ODZjMjBjMDFmNzc2OTMzNGM5Li4zYjhlNmJmZDY0OTcxMzc5YWNiZTc2ODgxZjkx
ZTYyYjRjNThhYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIw
MTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGlz
YWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24gbm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRl
IEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRl
eCAwMzI0ZTIxNWRiZWRhMGFjZmE0YjY0Y2E3MGJiMmM3MWMzM2Y3MzI3Li4zMjQzODcyMjA5NjZj
YzFlMDQ3NDFjM2FkNmRhZGQ1YTkzMGM3Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcg
dG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFu
ZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAy
MDEzLTAyLTI2ICBEbWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTWVyZ2VkIFRpcCBhbmQgRGVidWcgbG9nIGxldmVscyBmb3Igd2ViIGNvbnNvbGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBlNzk5MWVhZGNjMTQwMzA3ZmMwOTc2N2JlZmYyMTRh
NTNiZjdlYmFkLi5mNjM1OWUwYzcyZWYwZTc3MDQyYWJkOGIwNzY1ZmMyMGRhMWNlYzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE5NSw0ICsxOTUsNyBAQCB1bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCisjIHNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBhcmUgbXV0dWFsbHkKKyMgZXhjbHVzaXZlLCBtZWFuaW5nIHRoYXQgZW5hYmxpbmcgb25lIHdp
bGwgZGlzYWJsZSB0aGUgb3RoZXIuCiBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgaW5pdGlhbD10
cnVlCitzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApp
bmRleCBmYzE0Y2QwMWZlNjgyNWIyM2NlNGQwMTc3YWRjY2NiNDNjM2JlOGQxLi5lOTc0MWMwN2Zh
YjFlZGZjNDI5YTQzZGUyOTliZDE5NjBjMGM5ZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCkBAIC04Myw3ICs4Myw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZVRv
RE9NUmFuZ2VBZmZpbml0eVN0aWxsU2VsZWN0aW5nKFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFuZ2Us
IFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLCBpbnQgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3Rp
bmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2Rl
KiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQg
aW5zZXJ0QWN0aW9uKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKSA9IDA7CiAKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDUxNWY4ODI1MDRiNjQ2MDFl
ZmRjNmUxOWQyMzIwODlhYjJiODNlYS4uOWQ1MjcxYWU5MDA4ZThlMTJkZjQwYmM2Njg3ZGFmMjNi
ZWE2NWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25IYW5kbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oIgogCkBAIC02OSwxNSArNzAsMTggQEAgYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpz
aG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNv
cmUobV93ZWJQYWdlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0K
IAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVl
KQotICAgICAgICByZXR1cm4gbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3BlbGxDaGVja2luZyhib29sIGVuYWJsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAzOGM2NmRmZTg5
ZjkzZmE4OGUxOGQ1MDY4MDg0NTYxNjZjMDI2NzMzLi41ZjlhYzkwOGUyYzc5MWZiNTg1NzE4MjJh
MDMzZjMwMTY3Mzk2ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCkBAIC0xODYsOSArMTg2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBj
b25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQot
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYW5jZWxDb21wb3NpdGlvbk9uU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbihib29sIGlzU2VsZWN0aW9uRW1wdHkpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRleCA5
ODMwM2Y0ZjQ2NGRmMzIxYmI0OTRkMzM0YmUzYTg2MGJjNDgyMmY0Li4wODIxYjllNDNhMDU5OGE0
ZmM2ZThjMzRmOWFjNTExNzQzYjRlM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktl
eWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKQEAgLTk1LDE1ICs5NiwxOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmZyYW1lV2ls
bERldGFjaFBhZ2UoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogCiBib29sIEVkaXRvckNsaWVudElt
cGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xp
ZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAgcmV0
dXJuIHRydWU7CisjZW5kaWYKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgp
KQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CisgICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICBy
ZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKICNpZiBPUyhXSU5ET1dTKQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA5Y2ZkNmI5
YzcxYjU5NDNhOGU0ZjRjMTUyY2UwNTA1ZTViYWMwOGEyLi43MGNiODkxOWVjN2M3ZmZlMDAyY2My
NTU4OWI1MmY0YmU4NDhkZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCkBAIC01MTIsNiArNTEyLDExIEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChX
ZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAjZW5kaWYKIAogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NN
YXAgPSBhZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOworCisjaWYgT1MoV0lORE9XUykKKyAgICBt
X3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Cisg
ICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworI2VuZGlmCiB9CiAKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzhkMmU1Y2U2ZTk0Y2U0ZTExNDgzYWZmZWE5NzI5OWZi
ZjU1N2IxOC4uM2VmZDdjMjJjYjFiNTI4YTk2MmQyNDkzOGMwN2ZhMzg3ZDQwYmFhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMzgsMjggKzMzOCw2IEBAIGJvb2wgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuaXNFbmFibGVkKCk7CiB9CiAKLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BB
R0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNs
aWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBw
YWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkp
OwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JD
bGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0K
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChld2tGcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCmluZGV4IGQ4ZmYzZTU2ZmM5ZjhiMzZmOTQyYTgwNDZkYWRlNTA5MWRk
MmZhNWIuLmEwYzc4MjhjNGMxMGIzZjI5NzQ0NDhhNzAzZDA2NWM4ZTJiZjRhNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCkBAIC04MSw4ICs4MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9v
bCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFy
KiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRD
U1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFtZXNFbmFibGVkKGJvb2wpOwogCiAg
ICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3Bw
CmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBkZGY4YzZlMGJkM2YuLjJiZTMxYTlh
MDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcApAQCAtMjQzLDI4ICsy
NDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VEZXN0cm95ZWQoKQogICAgIGRlbGV0
ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVkaXRvckNsaWVudEVmbDo6c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdl
ID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEVmbDo6aXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdL
UHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjp0b2dn
bGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEsOCArMzYzLDYgQEAgdm9pZCBFZGl0
b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KikKIEVk
aXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQogICAgIDog
bV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3KQotICAgICwgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggM2MyYTI0
N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4uZDBkNWQzMDgxNTNjYmMyMDk0NTgz
MWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkgKzg0LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKik7CiAgICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwpAQCAtMTU3
LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3
OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotICAgIGJvb2wg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCBjZTQ5MzZmNzkyOTRmOWQ4MGI2NmMwNzgwYTZmZWMyNDgxYzAwN2QwLi41MmM3
ZWJiZjE2ODgyYWRhMWM0ZTQ0YzQ4NTNjYzg0ODU3ZTRjOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVuID0gZmFsc2U7CiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbiA9IHRydWU7Ci1i
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkZyYW1lTG9hZEV2ZW50
Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRoZW50aWNhdGlvbkNhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrID0gMDsK
IApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bGlu
a3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJuIHNfbGlua3NJbmNsdWRlZEluVGFi
Q2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0gICAgcmV0
dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogLyoqCiAgKiBnZXRG
cmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQpAQCAtNDUzLDE1ICs0
NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAgIGNvcmUod2ViVmlldyktPnNldERl
ZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29s
IGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmlldyk7Ci0KLSAgICBXZWJLaXQ6OkVk
aXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpFZGl0b3JDbGllbnQqPihj
b3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgY2xpZW50LT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggMDljZTcyMjY0NGY1MmIxMGM1ZjU1ZGQ4NmU4MDYyMjY0OTM1YmU0Ny4u
ODQ1ZjJiYjI1OTZmNDIxOGExYTQ5MjE1Nzc0YTcyYTQwNjZmNzM1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0
TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAgICBzdGF0aWMgYm9vbCBsaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgYm9vbCBzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSopOwogCkBAIC03OCw3ICs3Niw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBy
ZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50
X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQs
IGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJLaXRX
ZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0aWMgdm9pZCBmb3JjZVdlYlZpZXdQ
YWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5CkBAIC0xNDYsNyAr
MTQzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKICAg
ICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwotICAgIHN0YXRpYyBib29s
IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
aW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2OGJkNjAzNTg1Zi4uOWMwZmQ5NGFh
MTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2lu
Y2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwyMSArMzYxLDIwIEBAIHZvaWQgRWRp
dG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBF
ZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17
Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCiBib29sIEVk
aXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBj
b3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUo
bV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcgKzUwMSw2IEBAIEVkaXRvckNsaWVu
dDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgLCBtX3RleHRDaGVj
a2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtpdF9nZXRfdGV4dF9jaGVja2VyKCkp
KQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDNhN2VhZjE0YzcxYWY3NTc4ZDky
MjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5Y2JmZmJjZWYyMTdkODhkMDIyZTk4
YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1Ymxp
YyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
ZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93
ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRp
bmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRv
ckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAg
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4NTBmNTc4MWVmYjRjMjE4M2NlNzc0
NjMwLi43ODk3MjQxOGMyMDlmMjc4NzRjMTY3NjNhZTBhZGVmODkxMjI3ZTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBA
IC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVn
YWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hl
Y2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwxOCBAQCBib29sIFdlYkVkaXRvckNs
aWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKIAog
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAg
cmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBQYWdlKiBw
YWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBS
YW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMmMxZDZh
MzIxMjAzNTI3NzcwOWNlZGMzN2ZjYjQ2N2RmOGFhODhiNS4uMWUxODIzMzdhOTExMTg0ZGExMjFi
MzY4N2ZkZjdhOTcyMmU3NTQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtNzg0LDYgKzc4NCw5IEBAIHN0YXRpYyBib29sIHNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NT
QXR0cmlidXRlU2V0dGVycygpCiAgICAgICAgIFtzZWxmIF9pbmplY3RPdXRsb29rUXVpcmtzU2Ny
aXB0XTsKICAgICB9CiAKKyAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pCisgICAgICAg
IHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOworCiAg
ICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJhbWVXaXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFt
ZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpmcmFtZVZpZXddOwogCiAgICAgTlNSdW5Mb29wICpy
dW5Mb29wID0gW05TUnVuTG9vcCBtYWluUnVuTG9vcF07CkBAIC0yNDcxLDE0ICsyNDc0LDE2IEBA
IHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChpZCBvLCBTRUwgcykKIAogLSAodm9pZClzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBfcHJpdmF0
ZS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZsYWc7Ci0gICAgaWYgKGZsYWcp
Ci0gICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpmYWxzZV07CisgICAg
aWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKKyAgICAgICAgLy8gU2V0
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUu
CisgICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDohZmxhZ107CisgICAg
fQogfQogCiAtIChCT09MKWlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAogewotICAg
IHJldHVybiBfcHJpdmF0ZS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBy
ZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKTsKIH0KIAogLSAodm9pZClzZXRNZW1vcnlDYWNoZURlbGVnYXRlQ2FsbHNFbmFi
bGVkOihCT09MKWVuYWJsZWQKQEAgLTU0MzAsMTcgKzU0MzUsMTcgQEAgc3RhdGljIE5TQXBwbGVF
dmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21KU1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpK
U1ZhbHVlIGoKIAogLSAodm9pZClzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6KEJPT0wpZmxh
ZwogewotICAgIGlmIChfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkICE9IGZsYWcp
IHsKLSAgICAgICAgX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGZsYWc7Ci0g
ICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3By
aXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkXTsKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpICE9IGZsYWcpIHsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNl
dHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnKTsKKyAgICAgICAgW1tO
U1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJpdmF0ZS0+cGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgZm9yS2V5OldlYlNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF07CisgICAgICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3Nl
bGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDohZmxhZ107CiAgICAgfQotICAg
IGlmIChmbGFnKQotICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOmZhbHNlXTsKIH0KIAogLSAoQk9PTClzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKIHsKLSAg
ICByZXR1cm4gX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICByZXR1cm4g
X3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwog
fQogCiAtICh2b2lkKXNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFn
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggYWRlYWJlN2VlMmNm
YTIyY2JkYzI4ZTNiYTgzMzc4ZjQ2MDNlMDJlMi4uMzQ3YWJhNDU3ODVmMTgwZThjOTc0NmNjY2I2
MmE0ZTY3ODBlOTRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApA
QCAtMTQ2LDkgKzE0Niw2IEBAIHByaXZhdGU6CiAgICAgQk9PTCBoYXNTcGVsbENoZWNrZXJEb2N1
bWVudFRhZzsKICAgICBOU0ludGVnZXIgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBC
T09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBCT09MIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQ7Ci0gICAgICAgIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkK
ICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5k
b3dzOwogICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kQWN0aXZlTnVsbEV2ZW50
c1RvUGx1Z0luczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4
IGUyNzY2ZjAxYTM1YmMwN2VlYWE0ODZjMjY1NWI0YzAxYmFlZDk3YTYuLmM2ODFmMDliYTcyMTZk
OGQyMTZlNTk3NTI2YWY4NTgxZDAwM2RlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3RGF0YS5tbQpAQCAtOTUsMTAgKzk1LDYgQEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6Okxh
eWVyRmx1c2hDb250cm9sbGVyKFdlYlZpZXcqIHdlYlZpZXcpCiAKICAgICBzaG91bGRDbG9zZVdp
dGhXaW5kb3cgPSBvYmpjX2NvbGxlY3RpbmdFbmFibGVkKCk7CiAKLSAgICBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgPSAhW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2Jq
ZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0KLSAgICAgICAgfHwgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWRdOwotCi0KICAgICBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50Kys7CiAK
ICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5k
ZXggOGE0ZTBlY2E4NDE1YzU4YTdmNmNiMDcwZjMyZTAxMjk0MTkzZmM3Yi4uMDQ2MzZmYmRmOWJl
ZDZhNmRlMDlhNTljNjk2MDYwZmM2NzQzY2M1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAg
LTMyNiwxOCArMzI2LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0aG9y
QW5kVXNlclN0eWxlc0VuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiBhZGEKICAgICBhZGFwdGVyLT5w
YWdlLT5zZXR0aW5ncygpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh2YWx1ZSk7CiB9
CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0
aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KLXZvaWQgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdl
YlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8
RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSktPnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQogdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRl
ciogYWRhcHRlciwgY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7
CiAgICAgYWRhcHRlci0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFt
ZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1lKS5leGVjdXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQuaAppbmRleCAwOTgwOWVmOTc2MzE3MTRjZjg5ZTgyZjNiZGRlNDJhZGMwZWI0NmUwLi45M2Qw
NjgzZTkzMTc2NGMxYmNmYTgyNzg0Yjg4OGRlZGI4ODNiZTVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
CkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBleGVjdXRlQ29yZUNv
bW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3Qg
UVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoUVdlYlBh
Z2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYgbmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZmluZFN0
cmluZyhRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZ0xpc3Qm
IG9wdGlvbkFycmF5KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5h
YmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBzZWxlY3RlZFJhbmdlKFFXZWJQYWdlQWRh
cHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3QgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFu
Z2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKTsKICAgICBzdGF0
aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgY2hhciog
dGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZlMGE1NGJmMWEzYjBiYmM1ZWM1YWEyNDkwODdhMDMu
LjNjZjA4NzAyMGVjZWYwZjMyNTYxZjNiMDI1ODM0NTEzMjRhNmI0YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCkBAIC0zMzMs
MTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0OjpwYWdlRGVzdHJveWVkKCkKIAogYm9v
bCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1
cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+
cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBw
YWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnRRdDo6dG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKQogewotICAgIGJvb2wgY3Vy
cmVudCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIG1fc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkID0gIWN1cnJlbnQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAg
ICBpZiAocGFnZSkgeworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
KTsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpKTsKKyAgICB9CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50UXQ6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlmICghcGFn
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50
UXQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTU0MSw4ICs1NTAsNiBAQCBF
ZGl0b3JDbGllbnRRdDo6RWRpdG9yQ2xpZW50UXQoUVdlYlBhZ2VBZGFwdGVyKiBwYWdlQWRhcHRl
cikKICAgICA6IG1fcGFnZShwYWdlQWRhcHRlcikKICAgICAsIG1fZWRpdGluZyhmYWxzZSkKICAg
ICAsIG1faW5VbmRvUmVkbyhmYWxzZSkKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVk
KHRydWUpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
UXQuaAppbmRleCBhMTM0ZjVlYjZlN2Q0OTI2ZDQ0Mzk1NTEzNTYzODNmZWExOTI0YjJmLi43ODJj
ZGUzZDU0YmY2NGNjMWExNzRhNzM1ODQxZTVmM2IzYzVjNjdlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKKysrIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCkBAIC0xMTEsOSArMTExLDYg
QEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VkaXRpbmcoKSBjb25zdDsKIAotICAgIHZvaWQgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgYikgeyBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCA9IGI7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
Ym9vbCBiKSB7IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGI7IH0KLQogICAg
IHN0YXRpYyBib29sIGR1bXBFZGl0aW5nQ2FsbGJhY2tzOwogICAgIHN0YXRpYyBib29sIGFjY2Vw
dHNFZGl0aW5nOwogCkBAIC0xMjIsOCArMTE5LDYgQEAgcHJpdmF0ZToKICAgICBRV2ViUGFnZUFk
YXB0ZXIqIG1fcGFnZTsKICAgICBib29sIG1fZWRpdGluZzsKICAgICBib29sIG1faW5VbmRvUmVk
bzsgLy8gb3VyIHVuZG8gc3RhY2sgd29ya3MgZGlmZmVyZW50bHkgLSBkb24ndCByZS1lbnRlciEK
LSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIGJvb2wgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKaW5kZXggZDk4Nzg5Mjdm
MmY0OWI3MDk5YTY0ZDJjZjI1NDkzNzE2ZGEzMzY2NS4uYzRjNTRhOGQ2OTEyNjIyZWZhMWIzNDY3
ODBlZmQ5MTA1ZWY4MWM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MCw4ICs0MCwxMCBAQAogI2luY2x1ZGUg
PFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTG9jYWxpemVkU3Ry
aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1NldHRpbmdz
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VbmRvU3RlcC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNl
clR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Zpc2libGVTZWxl
Y3Rpb24uaD4KQEAgLTMwMiwxNyArMzA0LDE5IEBAIHZvaWQgV2ViRWRpdG9yQ2xpZW50Ojp3ZWJW
aWV3RGlkQ2hhbmdlU2VsZWN0aW9uKFdlYk5vdGlmaWNhdGlvbiogLypub3RpZmljYXRpb24qCiB7
ICBub3RJbXBsZW1lbnRlZCgpOyB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQodm9pZCkKLXsgCi0gICAgQk9PTCBlbmFibGVkID0gRkFMU0U7IAotICAg
IG1fd2ViVmlldy0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCZlbmFibGVkKTsKLSAgICByZXR1
cm4gISFlbmFibGVkOworeworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JD
bGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh2b2lkKQogewotICAgIEJP
T0wgZW5hYmxlZCA9IEZBTFNFOwotICAgIG1fd2ViVmlldy0+aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCZlbmFibGVkKTsKLSAgICByZXR1cm4gISFlbmFibGVkOworICAgIFBhZ2Uq
IHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQ2hhbmdl
U2VsZWN0ZWRSYW5nZShXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6
RUFmZmluaXR5LCBib29sKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCBkNjIxNDExNTIwODY1MWMz
ZDM2N2UyZTJhZDYwM2U4ZTUyOTgxZWVlLi4zYjQ1ZjdlNjhlMmE4OGI1MzkwZWNiMzI1Mjc3NzUw
NGQ4YWVmMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcApAQCAtMzY1LDcgKzM2NSw2IEBAIFdlYlZp
ZXc6OldlYlZpZXcoKQogICAgICwgbV9pc0JlaW5nRGVzdHJveWVkKGZhbHNlKQogICAgICwgbV9w
YWludENvdW50KDApCiAgICAgLCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnKGZhbHNlKQot
ICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2RpZENsb3Nl
KGZhbHNlKQogICAgICwgbV9pbklNRUNvbXBvc2l0aW9uKDApCiAgICAgLCBtX3Rvb2xUaXBId25k
KDApCkBAIC0zNzMsNyArMzcyLDYgQEAgV2ViVmlldzo6V2ViVmlldygpCiAgICAgLCBtX3RvcExl
dmVsUGFyZW50KDApCiAgICAgLCBtX2RlbGV0ZUJhY2tpbmdTdG9yZVRpbWVyQWN0aXZlKGZhbHNl
KQogICAgICwgbV90cmFuc3BhcmVudChmYWxzZSkKLSAgICAsIG1fc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fbGFzdFBhblgoMCkKICAgICAsIG1fbGFzdFBh
blkoMCkKICAgICAsIG1feE92ZXJwYW4oMCkKQEAgLTQwODIsMzIgKzQwODAsMzYgQEAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojp0eXBpbmdTdHlsZSgKIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgV2ViVmlldzo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCAKICAgICAg
ICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKQotICAgICAg
ICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpZiAobV9w
YWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSA9PSAhIWZsYWcpIHsK
KyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
ISFmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
YXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAg
ICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsK
LSAgICAqZW5hYmxlZCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID8gVFJVRSA6IEZBTFNF
OworICAgICplbmFibGVkID0gbV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KICAKIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCggCiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
ZmFsc2UpOworICAgIGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKSA9PSAhIWZsYWcpIHsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIC8vIFNl
dCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZl
LgorICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAg
ICByZXR1cm4gU19PSzsKIH0KICAgICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmll
dzo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCAKICAgICAgICAgLyogW3JldHZh
bF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewotICAgICplbmFibGVkID0gbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID8gVFJVRSA6IEZBTFNFOworICAgICplbmFibGVkID0gbV9w
YWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgPyBUUlVF
IDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAppbmRleCBjOTM3
MzQ2MmZlZjI4NDFlNTc3YzA2MDlkMDM4MmYxYjczNjA3YjZlLi5mY2I3ODI0ODQzMDgzY2VlM2Mw
ODM1OThkM2ExOGU5ZDdmYmM0ZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJW
aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCkBAIC0xMTEyLDggKzExMTIs
NiBAQCBwcm90ZWN0ZWQ6CiAgICAgYm9vbCBtX2lzQmVpbmdEZXN0cm95ZWQ7CiAgICAgdW5zaWdu
ZWQgbV9wYWludENvdW50OwogICAgIGJvb2wgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsK
LSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIGJvb2wgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9kaWRDbG9zZTsKICAgICBib29s
IG1faGFzQ3VzdG9tRHJvcFRhcmdldDsKICAgICB1bnNpZ25lZCBtX2luSU1FQ29tcG9zaXRpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50V2luQ0UuY3BwCmluZGV4IGI5ZjQ2OGY0MTU0MmJjY2QwOGJlNTExYzY3ODE0ODFmNzUz
YTNjYjIuLmZlMWFmMDRhMGVlYmQ4ODRlOWQ1MjdjMmViYjIwMzY1MDk0NWZjNTkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
V2luQ0UuY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRl
ICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRl
ICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAi
VW5kb1N0ZXAuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtMjA5LDE0ICsyMTAsMTggQEAg
dm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6cGFnZURlc3Ryb3llZCgpCiAKIGJvb2wgRWRpdG9yQ2xp
ZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVk
aXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2Ug
PSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFdpbkNFOjp0b2dnbGVDb250aW51b3Vz
U3BlbGxDaGVja2luZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBv
cnQvRWRpdG9yQ2xpZW50V3guY3BwIGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0Vk
aXRvckNsaWVudFd4LmNwcAppbmRleCA1ZWY2NGNkNGE5YzAxMzYzYzQ5OWU1N2ZjZDk3YWRkNWQ5
YzMxNWFhLi43MjZhZDBhM2Y4ODhhYzk1NjUxYzZhMzIyN2Q0MmYzYjM2OGUyYTdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0
aW5ncy5oIgogI2luY2x1ZGUgIldlYkZyYW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpAQCAtMTQ5LDE0ICsxNTAsMTYgQEAgYm9vbCBFZGl0
b3JDbGllbnRXeDo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqKQogCiBib29sIEVkaXRvckNsaWVu
dFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
KyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAog
Ym9vbCBFZGl0b3JDbGllbnRXeDo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDA0ZGIz
NGZhY2FkNTA3NWQ0NDMxYWQ4N2ZiZDU5YzRiNTA0OTFkNDkuLjE0ZmM2ZGQwYzQyYTg3MGJkZjll
ZDhlYTJhMGViYmMzMDgzOGE0ZjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgYWxsIHRoZSBjb2Rl
IHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmdzIGFzIHRoZXkgd2lsbCBiZSBtYW5hZ2Vk
IGZyb20KKyAgICAgICAgaW50ZXJuYWxzIGZyb20gbm93IG9uLgorCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5j
dGlvbnMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAg
KFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6Oldl
YktpdDo6RHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxh
Y2tCZXJyeS5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWUpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRTdG9wTG9hZGluZyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToK
KyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAg
ICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmlld0hvc3QpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRz
VG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1
bm5lckd0ay5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYlBhZ2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1
bm5lclF0Lmg6CisgICAgICAgIChUZXN0UnVubmVyUXQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwOgorCiAyMDEzLTAzLTA0ICBNaWtoYWlsIFBvemRueWFrb3YgIDxtaWtoYWlsLnBvemRu
eWFrb3ZAaW50ZWwuY29tPgogCiAgICAgICAgIFtXSzJdW0VGTF0gQWRkIGNhbGxiYWNrcyB0byB0
aGUgV0tWaWV3Q2xpZW50IHRvIGhhbmRsZSBXZWIgUHJvY2VzcyBjcmFzaCBhbmQgcmVsYXVuY2gK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggMjNiNzIzODJjOTk3ZWRkYzFmZmIz
NDkwOTljOWEzZDkwMWE2ZmQyNC4uMDU0YjE3MDYzMGQzMmJhMDYyMTUyMzUwZDAwMGJlMTQ2MTgx
YWNlOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE1MDYsMTYgKzE1MDYs
NiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfSAgICAKIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAg
IGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0
PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRy
b2xsZXItPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRl
eHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250
ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVu
YWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFy
Z3VtZW50Q291bnQgPCAxKQpAQCAtMTUyNiwxNiArMTUxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVm
IHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1z
dGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50
IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0g
ICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09i
amVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVu
dHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0K
IHN0YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwpAQCAtMjE1MCw5ICsyMTMwLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6
c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVn
aW5zRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0
UHJpbnRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdF
bmFibGVkIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAg
ICAgIHsgInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2Vy
aWFsaXplSFRUUExvYWRzIiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
LSAgICAgICAgeyAic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3BhdGlhbE5hdmln
YXRpb25FbmFibGVkIiwgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsIHNldFN0b3BQcm92
aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRUYWJLZXlD
eWNsZXNUaHJvdWdoRWxlbWVudHMiLCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHNDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IGNjYTQxZjc0ZmE0
NjgzZDE3YzU4NGJiMjg5ZDZjYTBmZDMzMjg2MjUuLmQ5ODQ3MDBmYjc4ZTc4YjE1ZThmNjYzZDM0
YThjZGI5ZDBlZmJjYzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEwMyw4ICsx
MDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2
b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJy
b3dzaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAg
dm9pZCBzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpOwogICAgIHZv
aWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDcxNjUyZGNk
MTIzOGExMzY0MzcyYjA5ODM1ODBiYzAyZDI4MzgxMDUuLjk1NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1
YzAyNDFiZWE3YmI1ZDg2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xNTEsNyArMTUxLDYgQEAgbmFtZXNwYWNlIEJs
YWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIER1bXBSZW5kZXJUcmVlKiBEdW1wUmVu
ZGVyVHJlZTo6c19jdXJyZW50SW5zdGFuY2UgPSAwOwotYm9vbCBEdW1wUmVuZGVyVHJlZTo6c19z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIGNy
ZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKQEAgLTI5NSw3ICsyOTQsNiBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhj
b25zdCBTdHJpbmcmIHVybCwgY29ucwogCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKICAgICBt
X2xvYWRGaW5pc2hlZCA9IGZhbHNlOwotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCA9IGZhbHNlOwogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7CiAgICAg
d2FpdEZvclBvbGljeSA9IGZhbHNlOwogICAgIHRlc3REb25lID0gZmFsc2U7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJy
eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNr
QmVycnkuaAppbmRleCBhMTNhZmIxMmQ4ZDUyMzgzMzU0N2YzM2MyNzA5MDQxZTAwYjc5ODM2Li4y
NjdjNGRjYWRmNmVkMDc2NTc2ZDdjZGJjZDAwYWRmMzlkY2UwOWMwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0Jl
cnJ5LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnRO
b2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwog
ICAgIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSos
IGludCBpbnNlcnRBY3Rpb24pOwogCi0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBl
bmFibGVkKSB7IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7IH0K
ICAgICBib29sIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVk
ZW50aWFsJik7CiAKICAgICAvLyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRm
b3JtTGF5b3V0VGVzdENsaWVudCBtZXRob2QKQEAgLTE0OCw3ICsxNDYsNiBAQCBwcml2YXRlOgog
CiAgICAgYm9vbCBtX2FjY2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7Ci0g
ICAgc3RhdGljIGJvb2wgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJv
b2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiB9OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCBh
YWU4NDM4OGE4YzJlMmIzMTQxZDY4MzM3ZDE4YTRhYmYxZDM0NWY2Li4yMTAyMGQ5ZDhmZTAzMDZk
ZjdhYzk3NDIyM2QwNGYzZTAwYzA1ZTljIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtMjYwLDE3ICsy
NjAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZmxhZykK
ICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2Uo
KS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChmbGFnKTsKIH0KIAot
dm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZmxhZykKLXsKLSAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50
SW5zdGFuY2UoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0K
LQotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFn
KQotewotICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQot
CiB2b2lkIFRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5
Y2xlcykKIHsKICAgICBpZiAoIW1haW5GcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgK
aW5kZXggYTQ0ZWNiZDc4MGRhNjFkOWJmZTdlOWM4MGU1MjFmNmIxYjkwNzVjOC4uZDRhNjAwYjgy
MGU5MzA3M2RiODk3NjFlYmE3MjkwYzExZmNkMGExNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFBy
b3h5LmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViS2l0OjpXZWJQbHVn
aW4qIGNyZWF0ZVBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVn
aW5QYXJhbXMmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJp
bmcmKTsKICAgICB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0
IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJik7CiAgICAgV2ViS2l0OjpXZWJVc2VyTWVkaWFD
bGllbnQqIHVzZXJNZWRpYUNsaWVudCgpOwogICAgIHZvaWQgcHJpbnRQYWdlKFdlYktpdDo6V2Vi
RnJhbWUqKTsKQEAgLTM2OCwxNCArMzY2LDYgQEAgcHVibGljOgogICAgICAgICBXZWJUZXN0UHJv
eHlCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgICAgICBCYXNlOjpkaWRTdG9wTG9hZGluZygp
OwogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6
OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIH0KICAgICB2aXJ0dWFs
IHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJL
aXQ6OldlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogICAgIHsKICAgICAgICAg
V2ViVGVzdFByb3h5QmFzZTo6c2hvd0NvbnRleHRNZW51KGZyYW1lLCBjb250ZXh0TWVudURhdGEp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCA0Nzk1MWVmYWMwYTBkODhkMGMzYzQ0NTBkN2I3
YWEzZDAyNjk2ZGU5Li41YzAyZjdjOTFmMGU0OGY1OGZkNTEyZWFlODZkZWY2YjkzN2M3MGMyIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9U
ZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMjA4LDggKzIwOCw2IEBAIFRlc3RSdW5uZXI6OlRl
c3RSdW5uZXIoVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMpCiAgICAgYmluZE1ldGhvZCgidGV4
dFN1cnJvdW5kaW5nTm9kZSIsICZUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKTsKICAg
ICBiaW5kTWV0aG9kKCJkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZGlzYWJs
ZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVBdXRvUmVzaXplTW9kZSIs
ICZUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXplTW9kZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmVGVzdFJ1bm5l
cjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJl
UG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBi
aW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50
ZXJMb2NrKTsKQEAgLTQxMCwxMiArNDA4LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAg
ICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwog
ICAgIG1fc2hvdWxkQmxvY2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBtX3dpbGxTZW5kUmVxdWVz
dFNob3VsZFJldHVybk51bGwgPSBmYWxzZTsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9IHRydWU7Ci0jaWZkZWYgV0lOMzIKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgPSB0cnVlOwotI2Vsc2UKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQgPSBmYWxzZTsKLSNlbmRpZgogICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9
IGZhbHNlOwogCiAgICAgbV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIoKTsKQEAgLTY3NCwxNiAr
NjY2LDYgQEAgYm9vbCBUZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNv
bnN0CiAgICAgcmV0dXJuIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UuaXNCb29sKCkgJiYgbV9pbnRl
cmNlcHRQb3N0TWVzc2FnZS50b0Jvb2xlYW4oKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjppc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwotfQotCi1ib29sIFRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3Vy
Y2VQcmlvcml0aWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQ
cmlvcml0aWVzOwpAQCAtMTQ5MCwyMCArMTQ3Miw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGV4dFN1
cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
CiAgICAgcmVzdWx0LT5zZXQoc3Vycm91bmRpbmdUZXh0LnRleHRDb250ZW50KCkudXRmOCgpKTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAg
ICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFs
dWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4g
MCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0
LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFBy
aW9yaXRpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKIHsKICAgICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSB0cnVlOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVz
dFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
VGVzdFJ1bm5lci5oCmluZGV4IDg4ZDhiMzcxNTU5MjkxMDcxN2ExZjg4ZTI1M2NlNWFmNWEyZGI4
OTcuLmZlYWRhODhmODIyYTcwNTJiNzVjMTdkMzcxYWI0YWYwMWZiYjAxMDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmgKQEAgLTExOCw4ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwb2xpY3lEZWxl
Z2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0OwogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGRO
b3RpZnlEb25lKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgp
IGNvbnN0OwotICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKLSAg
ICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogICAgIGJv
b2wgc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0OwogI2lmIEVOQUJMRV9OT1RJ
RklDQVRJT05TCiAgICAgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNh
dGlvblByZXNlbnRlcigpIGNvbnN0OwpAQCAtMjcwLDExICsyNjgsNiBAQCBwcml2YXRlOgogICAg
IC8vIGxlbmd0aCB0byByZXRyaWV2ZS4KICAgICB2b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gRW5hYmxlIG9yIGRp
c2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0g
ICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdHJhaWxpbmcgd2hp
dGVzcGFjZSBzZWxlY3Rpb24gb24gZG91YmxlIGNsaWNrLgotICAgIHZvaWQgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkBAIC02NzAsMTAgKzY2Myw2IEBAIHByaXZh
dGU6CiAKICAgICBib29sIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbDsKIAotICAg
IGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0KLSAgICBib29sIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLQogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VQ
cmlvcml0aWVzOwogCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1faHR0cEhlYWRlcnNUb0Ns
ZWFyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggODY4MTMzZmU0NzBmOTFhZWZjZWQx
ZmMxOTZiY2E4ZjcwZDMwZDA5NC4uY2M1MDc1MzRlMTZkOTg1OWEyMmM1N2RjMjFkNTRhYzViM2Uy
YWFkZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC05NzgsMTYgKzk3OCw2IEBAIHZv
aWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKQogICAgICAgICBtX2RlbGVnYXRl
LT5wcmludE1lc3NhZ2UoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKIH0K
IAotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17
Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2Vz
LT50ZXN0UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotfQot
CiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0
IFdlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogewogICAgIG1fdGVzdEludGVy
ZmFjZXMtPmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRNZW51RGF0YShjb250ZXh0TWVudURhdGEp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4
IDY5MDVjZGE2ZjdjZDE4YWE4ZTUxMGJmOTZiZDdkMzJkZTg3N2JlYTEuLmRkNjJmM2EyMTBmYjBm
MTFjYzc5NWFlZTA5OWZhZTg0NmNlMDc0M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE2OSwyMCArMTY5LDYgQEAgYm9vbCBXZWJWaWV3
SG9zdDo6c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJS
YW5nZSYgcmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJWaWV3SG9zdDo6aXNT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29s
IFdlYlZpZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotI2lm
IE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsK
LSNlbmRpZgotfQotCiBib29sIFdlYlZpZXdIb3N0OjpoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVu
dCgpCiB7CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1lLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBjMTZkNWZmNzhlNTZkMTU4ZTE1
NjJkMDZhMTZjNmRmMmM3OGYxMmY4Li4zN2UwMGMyODBhZDdhODMwN2E0M2ZkNmYyODg3ODFhNjE0
NjIyZDhmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgK
QEAgLTE0Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6Oldl
YlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZy
b20sIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSwg
Ym9vbCBzdGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlT
dHlsZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFu
Z2UmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAg
dmlydHVhbCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2
b2lkIHJ1bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6
V2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bk1vZGFsQ29uZmlybURpYWxvZyhXZWJL
aXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IGUzNzg1YjEw
NTI5NTIyYjFiMzNjYzQ3MzYxNDc4YWMwYjRiYmRiZDEuLmRkNjkzOWU1MDQyNGU5NjgyYjhjMmE4
MGUzYjVlMzg1NTUzMDU3YmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMzA2LDggKzMwNiw2IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRp
b24obWFpblZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChtYWluVmlldygpLCBmYWxz
ZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCks
IGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldExvYWRzU2l0ZUljb25z
SWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggODg3NTZkY2Q3MmU2
NzRmN2UwNmFjNTZmMDQzMTYyOTQ2Y2M2ZWUzMC4uZjhjZjNjZWU1NTY5YmQyMjA4ZTQyMTYzNjll
YWQ1OTkwOGE2NDk5MSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RS
dW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZs
LmNwcApAQCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5
KGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3
KCksIGZsYWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29sIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVk
KHZvaWQqKQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQp
CiAgICAgICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0
aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZp
ZXcoKSwgZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJs
ZWQoYm9vbCBmbGFnKQogewogICAgIGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93
aW5kb3dzX3NldChicm93c2VyLT5tYWluVmlldygpLCAhZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQy
YzhlZGRlMDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBk
YmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAg
LTUwMSw4ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFs
dWVzKCkKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZElu
Rm9jdXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJr
aXRfZ2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLSAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0
cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERlZmVyc0xvYWRpbmcod2Vi
VmlldywgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXpl
SFRUUExvYWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwCmluZGV4IGYxYzMwNjkyNzYyNmJmY2UyMTQyMjI2Nzk3ZDY5OGJhYjY3YmQ5NzYuLmY5
ZWJiMGE2YThkNTFlNGQ3YTYzZGU1YmVkZmY4OGYyZmU3ODU2NDcgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTMyMywxMSArMzIzLDYgQEAgdm9pZCBU
ZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5G
cmFtZSksIGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2FpdFRvRHVtcFdhdGNoZG9nRmly
ZWQodm9pZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdhdGNoZG9nKDApOwpAQCAtNDg1LDExICs0
ODAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFi
bGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2
aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA5YTIwMjJlMmRmMzc1NDAz
ZWY5MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZj
NTU0OWE4YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRl
clRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CkBAIC0xMjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBnVGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21l
SW5wdXRGaWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9k
ZUZvY3VzUmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hp
dGVsaXN0c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBkZmI5YTZlY2ZkNzRj
MzczMzZjMzA1MDQyYTYyYzk4MjEyYmM3MGMyLi43OWM4NGZlYWM3YTZlYmZiMWZhNzUxYjM1YzEz
ODgxZGVlY2NhZjA5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1
bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5t
bQpAQCAtNjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJv
b2wgd2luZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0
YXRlXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3
XSBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZsYWddOwotfQotCiBzdGF0aWMg
Y29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwog
CiBzdGF0aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChDRlJ1bkxvb3BUaW1lclJl
ZiB0aW1lciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVRdC5jcHAKaW5kZXggMjNmZDM1YzFjNmZiNWYxNzkzM2I2NTMyYmQ0Yzg3NDE3MDBlOGNk
Mi4uZGZhNjcyYjY3NGRlYzNjZTk3MDYyZjU4ZmVmY2ZjOTkzODAxYTA1ZiAxMDA3NTUKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTE5Miw4ICsxOTIsNiBA
QCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAgICAgbV9kcnQtPnRlc3RSdW5uZXIo
KS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVy
KCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0
UnVubmVyKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+
dGVzdFJ1bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsK
ICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKIAogICAg
IC8vIGdsb2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDYwYzUzYmIwMzY3NmIzZjU3ZWIyZTQ4
ZmQzYjI1YmM4YTMxNTU1M2IuLjY2ZGU1OTM5NzhmNzBjOThkYWEzNjZjM2RhMGRjZDY5OGMzNzJl
YmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzIwLDE2
ICs3MjAsNiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFT
dHJpbmcmIG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5nJgogICAgIG1fZHJ0LT53ZWJQYWdlKCkt
Pm1haW5GcmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3kobywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lclF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2Ry
dC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobV9k
cnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lclF0OjpleGVj
Q29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0
LT5wYWdlQWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5oCmluZGV4IGRkMDI2ZGUxYjA5YTQyMGYyYTgxMWY2OGFiZmIwMDZhMWJmMDQzZWYu
LmViYjIyOTQ0NGY4Y2ZlMWM5NDFmZTRjYmVmOGI3OWEzMjllNjZlZjQgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0xNzgsOCArMTc4LDYgQEAgcHVibGljIFFfU0xP
VFM6CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0Vmlld01vZGVN
ZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFt
ZSwgY29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5nKCkpOwogICAgIGJvb2wgaXNDb21tYW5k
RW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBib29sIGZpbmRTdHJpbmco
Y29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0JiBvcHRpb25BcnJheSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmNzQ3NmZhMTI2M2Rm
MWUwY2UyNjA2YTM4Mzc4NzNlZGE3OGNlZjViLi44OWZhOWY3YWZhMTYzNWY2MTI1ZDQ0YzllMTMy
NGVkYzE1ZTI5MTA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJl
ZS5jcHAKQEAgLTg5OSwxMCArODk5LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25z
aXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgV2ViQ29yZVRlc3RTdXBwb3J0Ojpy
ZXNldEludGVybmFsc09iamVjdChjb250ZXh0KTsKICAgICB9CiAKLSAgICBDT01QdHI8SVdlYlZp
ZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPlF1ZXJ5
SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKFRSVUUpOwotCiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4g
d2ViVmlld1ByaXZhdGUoUXVlcnksIHdlYlZpZXcpOwogICAgIGlmICghd2ViVmlld1ByaXZhdGUp
CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcAppbmRleCA4NDIzMjZjYmNmNTk1OGM5ZWQzNDcwYzBiMTEyNTM3ZTUzMDViYjgxLi5kODJk
ZjJlZTUzYzEwYWEwMTdhNDdhZGJhZDRhYzc3NWE2NDBiY2RiIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03MjMsMzIgKzcyMyw2IEBAIHZvaWQgVGVz
dFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCBmbGFnKQogICAgIDo6U2VuZE1lc3NhZ2Uod2Vi
Vmlld1dpbmRvdywgZmxhZyA/IFdNX1NFVEZPQ1VTIDogV01fS0lMTEZPQ1VTLCAoV1BBUkFNKTo6
R2V0RGVza3RvcFdpbmRvdygpLCAwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2Vi
VmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAg
IGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQ09NUHRyPElXZWJW
aWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRp
bmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcp
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0VkaXRpbmctPnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KIHN0YXRpYyBjb25z
dCBDRlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0
YXRpYyB2b2lkIENBTExCQUNLIHdhaXRVbnRpbERvbmVXYXRjaGRvZ0ZpcmVkKEhXTkQsIFVJTlQs
IFVJTlRfUFRSLCBEV09SRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rl
c3RSdW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3Bw
CmluZGV4IDk3NzUxMTM1MGVjZWJlZDBkOTUzMmZlNTA0OWZmNWZhYWY2ODczZWMuLjQxNjc4Mjdm
MWE3MGVmMWEzZDcyMjQ5NDQ0ZmU2YzM5MDFjNzdkMmUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
d3gvVGVzdFJ1bm5lcld4LmNwcApAQCAtMTUxLDExICsxNTEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6
OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVu
dAogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFdhaXRUb0R1bXAoYm9vbCB3YWl0VW50aWxEb25lKQogewogICAgIHN0YXRpYyBjb25zdCBp
bnQgdGltZW91dFNlY29uZHMgPSAxMDsKQEAgLTI5NCwxMSArMjg5LDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAg
IC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVt
ZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wg
Y2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJs
ZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQogewogICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgZm9yIERldmljZU9yaWVudGF0aW9uIGxheW91dCB0ZXN0cy4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBhMjY3NmViYzYwODI4M2YyNTQzZGY1ZTE4M2Y1M2RiZWQ3YTg3ODc0Li4xZmI3MWZhZjk0ZjE4
NGY1MjY1YmI4NjgxOGZmMzJkZjhjNGEyOGY4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMt
MDMtMDUgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAg
ICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3Jl
OjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
MDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBS
ZXBsYWNlIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBieQor
ICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBpbiB0ZXN0cy4KKworICAgICAgICBCZSBzdXJlIHRoYXQgdHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcmUg
c2V0IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5IGFyZQorICAgICAgICBtdXR1YWxseSBleGNs
dXNpdmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJs
ZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUt
Y3Itc3Bhbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVk
aXRhYmxlLmpzOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6
CisgICAgICAgIChpbml0U3BlbGxUZXN0KToKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sOgorICAgICAg
ICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sOgor
ICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOiBVbmZsYWcKKyAgICAgICAg
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVk
aXRhYmxlLmh0bWwKKyAgICAgICAgYXMgaXQgcGFzc2VzIG5vdy4KKwogMjAxMy0wMy0wNCAgQ2hy
aXN0aWFuIEJpZXNpbmdlciAgPGNiaWVzaW5nZXJAY2hyb21pdW0ub3JnPgogCiAgICAgICAgICh0
ZXN0cykgZmxleGJveC9yZXNvdXJjZXMuY3NzIHNob3VsZCB1c2UgdW5wcmVmaXhlZCBwcm9wZXJ0
aWVzLCBmb3IgZmlyZWZveApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGlu
Zy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAppbmRleCA3ZWIzMGQyMjExZDBjMGQ4MTli
ZWYyZjVlNzM2ODQ4MTk4MWRlZDY5Li5kMGY3ZDdhZjE1OGRhMjVjODc4NzZjODgzNmFmMDdiYWE3
NDZhYjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVk
aXRpbmctZGlzYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3Nt
YXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbApAQCAtNSw2ICs1LDcgQEAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQog
CiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCmluZGV4
IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhkNWNiNzZiN2FkYjE4
Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbApA
QCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9u
T2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4IDQwZTI0MTM4MjFl
OGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1YTViMDdmZjM5MzM0
NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKQEAgLTQsNyAr
NCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWlt
Zy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5NWE3OWRkYTZkNDQ2
NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2EzNzk5YzdmY2VmNjdl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBA
CiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFs
c2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hp
dGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYzOWQ1ZjZmMWVhYWY5
OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVjMWQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2Uu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlv
biBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250
ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCmluZGV4
IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLmU3YmRmZjVjZDI2MzMy
Nzg3ODZlNjJmNjgyMjE5OTA5YTk3MTZjMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Ny
aXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5q
cwpAQCAtNzgsNyArNzgsOCBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5kTW9kaWZ5KHRhcmdl
dElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5kb3cuc2VsZWN0ZWRC
eU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVzdFJ1bm5lci5zZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVybmFscy5zZXR0aW5n
cy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CitpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAKIHZhciBzaG91bGRT
ZWxlY3RlRmlyc3RXb3JkSW5saW5lID0gIjxzcGFuIGlkPSd0YXJnZXQnIGNvbnRlbnRFZGl0YWJs
ZT5zZWxlY3RtZTE8L3NwYW4+IGFuZCBub3Qgc2VsZWN0IHVzIjsKIHRlc3RXaXRoRG91YmxsZUNs
aWNrKHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUsICJzZWxlY3RtZTEiKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCmluZGV4IGNmODAzMzQx
ODg0M2NmMjBjNjY3MWU3Yzg0OTA3YjcwNzJkNDk1MjAuLjA5NGE1M2IyODk2ODhkODJkZTRkZTcz
NjdhOWM5NDMzNGY1NjI0OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxp
bmcvcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9y
ZXNvdXJjZXMvdXRpbC5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBpbml0U3BlbGxUZXN0
KHRlc3RFbGVtZW50SWQsIHRlc3RUZXh0LCB0ZXN0RnVuY3Rpb24pCiAgICAgdGVzdEZ1bmN0aW9u
Q2FsbGJhY2sgPSB0ZXN0RnVuY3Rpb247CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAg
dGVzdFJ1bm5lci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKLSAg
ICB0ZXN0UnVubmVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0
UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFs
c2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVk
KHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIp
OwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3RFbGVt
ZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVy
c2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYxMzUyY2Y5YTIzZWY2MzEyM2IxNmEz
Ni4uNDA2MDcxODEwZDAxYmI5OGU2ZTVmMTNjMzhkNjA5M2QzNmU3ZWFhOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3Jk
LXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCkBAIC0y
MSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21l
LiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xp
Y2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgot
ICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVl
KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0
TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0
aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0
aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgs
IHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxs
Y29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8g
RG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVz
cGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQu
b2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRl
c3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAyNDkyNzNkMmUwYWJh
YjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi45ZDI0OWZkN2YwZWZlZTI0M2JjNmIwZmIyOWU1
Y2VlNTk1NmVjNGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApAQCAtMjEsNyArMjEs
OCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0
aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlz
c3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVy
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwog
ICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5h
dGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJl
bnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0
SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcg
KzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBm
dW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93Lmdl
dFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhl
IG1pc3NwZWxsZWQgd29yZCB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5l
ci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwog
ICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5h
dGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJl
bnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0
SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWI5ODY5MTAzNzc0MWIzOThm
ZmM1YTY3NDMyZjJkZjE0MmNhMWE3OS4uZGIwNDdkMzI2OGU1YTU4YWJmMTdlMzZkZGYyZGE3MGZm
OTY5NjRjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM3OSw5ICszNzksNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1h
dXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRz
IGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwKIHBsdWdpbnMvZ2V0LXVybC10
aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlzYWxsb3cuaHRtbAogCi0jIFdl
YktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZAotZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5l
LWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5l
ZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eQogcHJpbnRpbmcvcGFnZS1ydWxl
LXNlbGVjdGlvbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191497</attachid>
            <date>2013-03-05 08:02:28 -0800</date>
            <delta_ts>2013-03-05 10:55:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305165834.patch</filename>
            <type>text/plain</type>
            <size>84068</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi43YzlhZjljYTkyYTAxNDQ3Njg1MWUyNDdjNDFlMTI0Y2Q1YjQ0Zjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOiBJbml0aWFs
aXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMuCisgICAgICAgICgtW1dl
YlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpdKToKKyAgICAgICAgKC1b
V2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdKToKKyAgICAgICAgKC1b
V2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICgtW1dl
YlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEpTQ19PQkpDX0FQSV9FTkFCTEVEIHNob3VsZCBi
ZSByZW1vdmVkIGZyb20gRmVhdHVyZURlZmluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MzdmYTkx
OTVlZWQ0YjhhN2E3NDA2OTZkYTYxNDdkNDIxOTQwMDE1Li4xY2ExYTVmNmViZTVkYWY0NjQxMjIw
YmM1YWZiZDQ4YWMyNTRjZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2Rl
IHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50
UXQpOgorCiAyMDEzLTAzLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0ZWQgYnVpbGQgZml4LiBBZGRzIGJhY2sgc29tZSBpbmNs
dWRlcyByZW1vdmVkIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGFkZTM4ZDI2ZGRkOTRjNzM1ZjIx
YzdkZTUxZDlmZjc4ZTAzNGIwMy4uYjAyN2VhYWRkYjFkMTVkYjIwNTYyY2E0Y2NkZDMyZDgyNzli
ZmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAg
ICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAg
ICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTMtMDMtMDMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBmaXggYXR0
ZW1wdCBhZnRlciByMTQ0NTQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZjZhMTk4YTQyNGU4
OGJhMDM1ZTc0ODZjMjBjMDFmNzc2OTMzNGM5Li4zYjhlNmJmZDY0OTcxMzc5YWNiZTc2ODgxZjkx
ZTYyYjRjNThhYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIw
MTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGlz
YWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24gbm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRl
IEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRl
eCAwMzI0ZTIxNWRiZWRhMGFjZmE0YjY0Y2E3MGJiMmM3MWMzM2Y3MzI3Li4zMjQzODcyMjA5NjZj
YzFlMDQ3NDFjM2FkNmRhZGQ1YTkzMGM3Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcg
dG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFu
ZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAy
MDEzLTAyLTI2ICBEbWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTWVyZ2VkIFRpcCBhbmQgRGVidWcgbG9nIGxldmVscyBmb3Igd2ViIGNvbnNvbGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBlNzk5MWVhZGNjMTQwMzA3ZmMwOTc2N2JlZmYyMTRh
NTNiZjdlYmFkLi5mNjM1OWUwYzcyZWYwZTc3MDQyYWJkOGIwNzY1ZmMyMGRhMWNlYzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE5NSw0ICsxOTUsNyBAQCB1bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCisjIHNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBhcmUgbXV0dWFsbHkKKyMgZXhjbHVzaXZlLCBtZWFuaW5nIHRoYXQgZW5hYmxpbmcgb25lIHdp
bGwgZGlzYWJsZSB0aGUgb3RoZXIuCiBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgaW5pdGlhbD10
cnVlCitzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApp
bmRleCBmYzE0Y2QwMWZlNjgyNWIyM2NlNGQwMTc3YWRjY2NiNDNjM2JlOGQxLi5lOTc0MWMwN2Zh
YjFlZGZjNDI5YTQzZGUyOTliZDE5NjBjMGM5ZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCkBAIC04Myw3ICs4Myw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZVRv
RE9NUmFuZ2VBZmZpbml0eVN0aWxsU2VsZWN0aW5nKFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFuZ2Us
IFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLCBpbnQgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3Rp
bmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2Rl
KiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQg
aW5zZXJ0QWN0aW9uKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKSA9IDA7CiAKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDUxNWY4ODI1MDRiNjQ2MDFl
ZmRjNmUxOWQyMzIwODlhYjJiODNlYS4uOWQ1MjcxYWU5MDA4ZThlMTJkZjQwYmM2Njg3ZGFmMjNi
ZWE2NWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25IYW5kbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oIgogCkBAIC02OSwxNSArNzAsMTggQEAgYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpz
aG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNv
cmUobV93ZWJQYWdlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0K
IAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVl
KQotICAgICAgICByZXR1cm4gbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3BlbGxDaGVja2luZyhib29sIGVuYWJsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAzOGM2NmRmZTg5
ZjkzZmE4OGUxOGQ1MDY4MDg0NTYxNjZjMDI2NzMzLi41ZjlhYzkwOGUyYzc5MWZiNTg1NzE4MjJh
MDMzZjMwMTY3Mzk2ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCkBAIC0xODYsOSArMTg2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBj
b25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQot
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYW5jZWxDb21wb3NpdGlvbk9uU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbihib29sIGlzU2VsZWN0aW9uRW1wdHkpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRleCA5
ODMwM2Y0ZjQ2NGRmMzIxYmI0OTRkMzM0YmUzYTg2MGJjNDgyMmY0Li4wODIxYjllNDNhMDU5OGE0
ZmM2ZThjMzRmOWFjNTExNzQzYjRlM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktl
eWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKQEAgLTk1LDE1ICs5NiwxOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmZyYW1lV2ls
bERldGFjaFBhZ2UoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogCiBib29sIEVkaXRvckNsaWVudElt
cGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xp
ZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAgcmV0
dXJuIHRydWU7CisjZW5kaWYKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgp
KQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CisgICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICBy
ZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKICNpZiBPUyhXSU5ET1dTKQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA5Y2ZkNmI5
YzcxYjU5NDNhOGU0ZjRjMTUyY2UwNTA1ZTViYWMwOGEyLi43MGNiODkxOWVjN2M3ZmZlMDAyY2My
NTU4OWI1MmY0YmU4NDhkZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCkBAIC01MTIsNiArNTEyLDExIEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChX
ZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAjZW5kaWYKIAogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NN
YXAgPSBhZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOworCisjaWYgT1MoV0lORE9XUykKKyAgICBt
X3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Cisg
ICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworI2VuZGlmCiB9CiAKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzhkMmU1Y2U2ZTk0Y2U0ZTExNDgzYWZmZWE5NzI5OWZi
ZjU1N2IxOC4uM2VmZDdjMjJjYjFiNTI4YTk2MmQyNDkzOGMwN2ZhMzg3ZDQwYmFhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMzgsMjggKzMzOCw2IEBAIGJvb2wgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuaXNFbmFibGVkKCk7CiB9CiAKLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BB
R0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNs
aWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBw
YWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkp
OwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JD
bGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0K
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChld2tGcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCmluZGV4IGQ4ZmYzZTU2ZmM5ZjhiMzZmOTQyYTgwNDZkYWRlNTA5MWRk
MmZhNWIuLmEwYzc4MjhjNGMxMGIzZjI5NzQ0NDhhNzAzZDA2NWM4ZTJiZjRhNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCkBAIC04MSw4ICs4MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9v
bCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFy
KiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRD
U1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFtZXNFbmFibGVkKGJvb2wpOwogCiAg
ICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3Bw
CmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBkZGY4YzZlMGJkM2YuLjJiZTMxYTlh
MDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcApAQCAtMjQzLDI4ICsy
NDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VEZXN0cm95ZWQoKQogICAgIGRlbGV0
ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVkaXRvckNsaWVudEVmbDo6c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdl
ID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEVmbDo6aXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdL
UHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjp0b2dn
bGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEsOCArMzYzLDYgQEAgdm9pZCBFZGl0
b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KikKIEVk
aXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQogICAgIDog
bV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3KQotICAgICwgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggM2MyYTI0
N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4uZDBkNWQzMDgxNTNjYmMyMDk0NTgz
MWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkgKzg0LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKik7CiAgICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwpAQCAtMTU3
LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3
OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotICAgIGJvb2wg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCBjZTQ5MzZmNzkyOTRmOWQ4MGI2NmMwNzgwYTZmZWMyNDgxYzAwN2QwLi41MmM3
ZWJiZjE2ODgyYWRhMWM0ZTQ0YzQ4NTNjYzg0ODU3ZTRjOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVuID0gZmFsc2U7CiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbiA9IHRydWU7Ci1i
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkZyYW1lTG9hZEV2ZW50
Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRoZW50aWNhdGlvbkNhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrID0gMDsK
IApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bGlu
a3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJuIHNfbGlua3NJbmNsdWRlZEluVGFi
Q2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0gICAgcmV0
dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogLyoqCiAgKiBnZXRG
cmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQpAQCAtNDUzLDE1ICs0
NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAgIGNvcmUod2ViVmlldyktPnNldERl
ZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29s
IGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmlldyk7Ci0KLSAgICBXZWJLaXQ6OkVk
aXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpFZGl0b3JDbGllbnQqPihj
b3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgY2xpZW50LT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggMDljZTcyMjY0NGY1MmIxMGM1ZjU1ZGQ4NmU4MDYyMjY0OTM1YmU0Ny4u
ODQ1ZjJiYjI1OTZmNDIxOGExYTQ5MjE1Nzc0YTcyYTQwNjZmNzM1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0
TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAgICBzdGF0aWMgYm9vbCBsaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgYm9vbCBzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSopOwogCkBAIC03OCw3ICs3Niw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBy
ZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50
X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQs
IGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJLaXRX
ZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0aWMgdm9pZCBmb3JjZVdlYlZpZXdQ
YWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5CkBAIC0xNDYsNyAr
MTQzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKICAg
ICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwotICAgIHN0YXRpYyBib29s
IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
aW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2OGJkNjAzNTg1Zi4uOWMwZmQ5NGFh
MTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2lu
Y2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwyMSArMzYxLDIwIEBAIHZvaWQgRWRp
dG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBF
ZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17
Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCiBib29sIEVk
aXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBj
b3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUo
bV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcgKzUwMSw2IEBAIEVkaXRvckNsaWVu
dDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgLCBtX3RleHRDaGVj
a2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtpdF9nZXRfdGV4dF9jaGVja2VyKCkp
KQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDNhN2VhZjE0YzcxYWY3NTc4ZDky
MjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5Y2JmZmJjZWYyMTdkODhkMDIyZTk4
YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1Ymxp
YyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
ZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93
ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRp
bmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRv
ckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAg
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4NTBmNTc4MWVmYjRjMjE4M2NlNzc0
NjMwLi43ODk3MjQxOGMyMDlmMjc4NzRjMTY3NjNhZTBhZGVmODkxMjI3ZTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBA
IC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVn
YWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hl
Y2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwxOCBAQCBib29sIFdlYkVkaXRvckNs
aWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKIAog
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAg
cmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBQYWdlKiBw
YWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBS
YW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMmMxZDZh
MzIxMjAzNTI3NzcwOWNlZGMzN2ZjYjQ2N2RmOGFhODhiNS4uZTdhM2FkOTdlNjg1NzEyMTI1OGZl
MTc1Yjk2NjhkMTVjOTYzMDJiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtNzg0LDYgKzc4NCwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNT
U0F0dHJpYnV0ZVNldHRlcnMoKQogICAgICAgICBbc2VsZiBfaW5qZWN0T3V0bG9va1F1aXJrc1Nj
cmlwdF07CiAgICAgfQogCisgICAgaWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIG9iamVjdEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdKSB7CisgICAg
ICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRd
OworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZygpLT5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICAgICAgX3ByaXZhdGUtPnBh
Z2UtPnNldHRpbmcoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKTsKKyAgICB9CisKICAgICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5G
cmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1lTmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3
OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3AgKnJ1bkxvb3AgPSBbTlNSdW5Mb29wIG1haW5S
dW5Mb29wXTsKQEAgLTI0NzEsMTQgKzI0NzcsMTYgQEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0
aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRp
bmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSAhPSBmbGFnKSB7CisgICAg
ICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVk
IGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3NlbGYgc2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiAtICh2b2lk
KXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQz
MCwxNyArNTQzOCwxNyBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJv
bUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgagogCiAtICh2b2lkKXNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykgewotICAgICAgICBfcHJpdmF0ZS0+c21h
cnRJbnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgIGlmIChfcHJp
dmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgIT0gZmxh
ZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNl
ckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKSBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAg
ICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXMgdGhleSBhcmUg
bXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkOiFmbGFnXTsKICAgICB9Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxm
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6ZmFsc2VdOwogfQogCiAtIChCT09M
KXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJpdmF0ZS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3Mo
KS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQpc2V0Q29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEuaAppbmRleCBhZGVhYmU3ZWUyY2ZhMjJjYmRjMjhlM2JhODMzNzhmNDYwM2Uw
MmUyLi4zNDdhYmE0NTc4NWYxODBlOGM5NzQ2Y2NjYjYyYTRlNjc4MGU5NGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBAIC0xNDYsOSArMTQ2LDYgQEAgcHJpdmF0
ZToKICAgICBCT09MIGhhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAgIE5TSW50ZWdlciBz
cGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkOwotICAgIEJPT0wgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLSAgICAgICAg
CiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZp
b3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRvd3M7CiAgICAgQk9PTCBkYXNoYm9hcmRC
ZWhhdmlvckFsd2F5c1NlbmRBY3RpdmVOdWxsRXZlbnRzVG9QbHVnSW5zOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXggZTI3NjZmMDFhMzViYzA3ZWVhYTQ4NmMy
NjU1YjRjMDFiYWVkOTdhNi4uYzY4MWYwOWJhNzIxNmQ4ZDIxNmU1OTc1MjZhZjg1ODFkMDAzZGU3
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC05NSwxMCAr
OTUsNiBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsZXIoV2ViVmll
dyogd2ViVmlldykKIAogICAgIHNob3VsZENsb3NlV2l0aFdpbmRvdyA9IG9iamNfY29sbGVjdGlu
Z0VuYWJsZWQoKTsKIAotICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkXQotICAgICAgICB8fCBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07Ci0KLQogICAg
IHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQrKzsKIAogI2lmIFVTRShESUNUQVRJT05fQUxURVJO
QVRJVkVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCA4YTRlMGVjYTg0MTVjNThhN2Y2Y2Iw
NzBmMzJlMDEyOTQxOTNmYzdiLi4wNDYzNmZiZGY5YmVkNmE2ZGUwOWE1OWM2OTYwNjBmYzY3NDNj
YzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtMzI2LDE4ICszMjYsNiBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChRV2Vi
UGFnZUFkYXB0ZXIqIGFkYQogICAgIGFkYXB0ZXItPnBhZ2UtPnNldHRpbmdzKCktPnNldEF1dGhv
ckFuZFVzZXJTdHlsZXNFbmFibGVkKHZhbHVlKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFFXZWJQYWdlQWRhcHRlciAqYWRh
cHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRpY19jYXN0PEVkaXRvckNsaWVudFF0Kj4o
YWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoZW5hYmxlZCk7Ci19Ci0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJv
b2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXIt
PnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChlbmFibGVkKTsKLX0KLQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpleGVjdXRl
Q29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiBhZGFwdGVyLCBjb25zdCBRU3RyaW5n
JiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBhZGFwdGVyLT5wYWdlLT5mb2N1
c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5h
bWUpLmV4ZWN1dGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDA5ODA5ZWY5NzYzMTcx
NGNmODllODJmM2JkZGU0MmFkYzBlYjQ2ZTAuLjkzZDA2ODNlOTMxNzY0YzFiY2ZhODI3ODRiODg4
ZGVkYjg4M2JlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTk0LDggKzk0LDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0
ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSk7CiAgICAgc3Rh
dGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5n
JiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFFXZWJQYWdlQWRhcHRlciosIGNv
bnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkpOwotICAgIHN0YXRp
YyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBib29s
IGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgUVZhcmlh
bnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKik7CiAgICAgc3RhdGljIFFWYXJp
YW50TGlzdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShRV2ViUGFnZUFkYXB0ZXIqLCBpbnQg
bG9jYXRpb24sIGludCBsZW5ndGgpOwogICAgIHN0YXRpYyB2b2lkIGNvbmZpcm1Db21wb3NpdGlv
bihRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBjaGFyKiB0ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5kZXggYWZjYzhkNjRl
ZmUwYTU0YmYxYTNiMGJiYzVlYzVhYTI0OTA4N2EwMy4uM2NmMDg3MDIwZWNlZjBmMzI1NjFmM2Iw
MjU4MzQ1MTMyNGE2YjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTMzMywxOCArMzMzLDI3IEBAIHZvaWQgRWRpdG9y
Q2xpZW50UXQ6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVudFF0OjpzbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFy
dEluc2VydERlbGV0ZSgpCiB7Ci0gICAgYm9vbCBjdXJyZW50ID0gbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQ7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhY3VycmVudDsKKyAg
ICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlmIChwYWdlKSB7CisgICAgICAgIHBh
Z2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghcGFnZS0+c2V0dGlu
Z3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkpOworICAgICAgICBwYWdlLT5zZXR0aW5n
cygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkpOworICAgIH0KIH0KIAogYm9vbCBF
ZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFBhZ2UqIHBh
Z2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRRdDo6dG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmcoKQpAQCAtNTQxLDggKzU1MCw2IEBAIEVkaXRvckNsaWVudFF0OjpFZGl0b3JDbGll
bnRRdChRV2ViUGFnZUFkYXB0ZXIqIHBhZ2VBZGFwdGVyKQogICAgIDogbV9wYWdlKHBhZ2VBZGFw
dGVyKQogICAgICwgbV9lZGl0aW5nKGZhbHNlKQogICAgICwgbV9pblVuZG9SZWRvKGZhbHNlKQot
ICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSkKLSAgICAsIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IGExMzRmNWViNmU3ZDQ5
MjZkNDQzOTU1MTM1NjM4M2ZlYTE5MjRiMmYuLjc4MmNkZTNkNTRiZjY0Y2MxYTE3NGE3MzU4NDFl
NWYzYjNjNWM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmgKQEAgLTExMSw5ICsxMTEsNiBAQCBwdWJsaWM6CiAKICAgICBib29sIGlz
RWRpdGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBiKSB7IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gYjsgfQotICAgIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGIpIHsgbV9zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkID0gYjsgfQotCiAgICAgc3RhdGljIGJvb2wgZHVtcEVkaXRpbmdD
YWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0c0VkaXRpbmc7CiAKQEAgLTEyMiw4ICsx
MTksNiBAQCBwcml2YXRlOgogICAgIFFXZWJQYWdlQWRhcHRlciogbV9wYWdlOwogICAgIGJvb2wg
bV9lZGl0aW5nOwogICAgIGJvb2wgbV9pblVuZG9SZWRvOyAvLyBvdXIgdW5kbyBzdGFjayB3b3Jr
cyBkaWZmZXJlbnRseSAtIGRvbid0IHJlLWVudGVyIQotICAgIGJvb2wgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7
CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50LmNwcAppbmRleCBkOTg3ODkyN2YyZjQ5YjcwOTlhNjRkMmNmMjU0OTM3MTZk
YTMzNjY1Li5jNGM1NGE4ZDY5MTI2MjJlZmExYjM0Njc4MGVmZDkxMDVlZjgxYzdhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5n
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Vu
ZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvci5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgpAQCAtMzAyLDE3ICszMDQs
MTkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndlYlZpZXdEaWRDaGFuZ2VTZWxlY3Rpb24oV2Vi
Tm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbioKIHsgIG5vdEltcGxlbWVudGVkKCk7IH0KIAog
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh2b2lkKQoteyAK
LSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsgCi0gICAgbV93ZWJWaWV3LT5zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7Cit7CisgICAgUGFn
ZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9PTCBlbmFibGVkID0gRkFMU0U7Ci0gICAg
bV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoJmVuYWJsZWQpOwot
ICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJh
bmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFQWZmaW5pdHksIGJvb2wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNkMzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUu
LjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0ZDhhZWYxOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmlldzo6V2ViVmlldygpCiAgICAgLCBtX2lz
QmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3BhaW50Q291bnQoMCkKICAgICAsIG1faGFz
U3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2UoZmFsc2UpCiAgICAgLCBtX2luSU1FQ29t
cG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQoMCkKQEAgLTM3Myw3ICszNzIsNiBAQCBX
ZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVs
ZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3RyYW5zcGFyZW50KGZh
bHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFuWSgwKQogICAgICwgbV94T3ZlcnBhbigw
KQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykK
IHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdz
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghIWZsYWcpOworICAgICAgICAvLyBTZXQg
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNs
dXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcp
OworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAgICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCAKICAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewotICAgICplbmFibGVkID0gbV9zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2Ut
PnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID8gVFJVRSA6IEZBTFNFOwog
ICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCAKICAgICAgICAgLyogW2luXSAq
LyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0g
ISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpCi0gICAg
ICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaWYgKG1fcGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID09ICEhZmxhZykg
eworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAgIAog
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQp
CiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBU
UlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19P
SzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgy
ZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25lZCBtX3BhaW50Q291bnQ7CiAgICAgYm9v
bCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIGJvb2wgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7
CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wgbV9oYXNDdXN0b21Ecm9wVGFyZ2V0Owog
ICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKaW5kZXggYjlm
NDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNhM2NiMi4uZmUxYWYwNGEwZWViZDg4NGU5
ZDUyN2MyZWJiMjAzNjUwOTQ1ZmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2b2lkIEVkaXRvckNsaWVudFdpbkNFOjpw
YWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
KyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAg
ICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRp
dG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCmluZGV4IDVl
ZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDljMzE1YWEuLjcyNmFkMGEzZjg4OGFjOTU2
NTFjNmEzMjI3ZDQyZjNiMzY4ZTJhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUg
Ik5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3Jt
S2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViRnJh
bWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJWaWV3Lmgi
CkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRvckNsaWVudFd4OjpzaG91bGREZWxldGVS
YW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBtX3BhZ2UtPnNl
dHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNs
aWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9wYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFd4Ojppc0Nv
bnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VM
b2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDRkYjM0ZmFjYWQ1MDc1ZDQ0MzFhZDg3ZmJkNTlj
NGI1MDQ5MWQ0OS4uMTRmYzZkZDBjNDJhODcwYmRmOWVkOGVhMmEwZWJiYzMwODM4YTRmMyAxMDA2
NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDU0IEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEu
Y29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRp
bmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIGNvZGUgcmVsYXRlZCB0byBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2V0dGluZ3MgYXMgdGhleSB3aWxsIGJlIG1hbmFnZWQgZnJvbQorICAgICAgICBpbnRlcm5hbHMg
ZnJvbSBub3cgb24uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChX
ZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5Lmg6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpX
ZWJUZXN0UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdlYlRlc3RS
dW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6
VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5j
cHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAg
IChXZWJWaWV3SG9zdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1
bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJU
cmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlZp
ZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1
bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0
aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaDoKKyAgICAgICAgKFRlc3RS
dW5uZXJRdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHA6CisKIDIwMTMtMDMtMDQgIE1p
a2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CiAKICAgICAg
ICAgW1dLMl1bRUZMXSBBZGQgY2FsbGJhY2tzIHRvIHRoZSBXS1ZpZXdDbGllbnQgdG8gaGFuZGxl
IFdlYiBQcm9jZXNzIGNyYXNoIGFuZCByZWxhdW5jaApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcAppbmRleCAyM2I3MjM4MmM5OTdlZGRjMWZmYjM0OTA5OWM5YTNkOTAxYTZmZDI0Li4wNTRi
MTcwNjMwZDMyYmEwNjIxNTIzNTBkMDAwYmUxNDYxODFhY2U5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcApAQCAtMTUwNiwxNiArMTUwNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJl
c2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9ICAgIAogCi1z
dGF0aWMgSlNWYWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1td
LCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQot
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0
UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0
UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1
ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
c2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFs
dWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCkBAIC0xNTI2
LDE2ICsxNTE2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlv
bkVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVy
ID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0
KSk7Ci0gICAgY29udHJvbGxlci0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChK
U1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0U3Rv
cFByb3Zpc2lvbmFsRnJhbWVMb2Fkc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50
Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlv
bikKIHsKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5l
cio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMTUwLDkgKzIxMzAsNyBA
QCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAg
ICB7ICJzZXRQbHVnaW5zRW5hYmxlZCIsIHNldFBsdWdpbnNFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0UHJpbnRpbmciLCBzZXRQcmludGluZ0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQiLCBzZXRQcml2YXRlQnJvd3Np
bmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCIsIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZXJpYWxpemVIVFRQTG9hZHMiLCBzZXRTZXJp
YWxpemVIVFRQTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQiLCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQiLCBzZXRTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTdG9wUHJv
dmlzaW9uYWxGcmFtZUxvYWRzIiwgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkc0NhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyIsIHNl
dFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgKaW5kZXggY2NhNDFmNzRmYTQ2ODNkMTdjNTg0YmIyODlkNmNhMGZkMzMy
ODYyNS4uZDk4NDcwMGZiNzhlNzhiMTVlOGY2NjNkMzRhOGNkYjlkMGVmYmNjMyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMTAzLDggKzEwMyw2IEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwotICAg
IHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICB2b2lk
IHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sKTsKICAgICB2b2lkIHNldFVzZURhc2hib2FyZENvbXBh
dGliaWxpdHlNb2RlKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJs
ZWQoYm9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9E
dW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNzE2NTJkY2QxMjM4YTEzNjQzNzJiMDk4MzU4MGJjMDJk
MjgzODEwNS4uOTU2NDQ0YmM3Zjg1NWFjYTllYWY0NjVjMDI0MWJlYTdiYjVkODZiOCAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAK
QEAgLTE1MSw3ICsxNTEsNiBAQCBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogRHVtcFJlbmRlclRyZWUqIER1bXBSZW5kZXJUcmVlOjpzX2N1cnJlbnRJbnN0YW5j
ZSA9IDA7Ci1ib29sIER1bXBSZW5kZXJUcmVlOjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgPSBmYWxzZTsKIAogc3RhdGljIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIGZp
bGVOYW1lKQogewpAQCAtMjk1LDcgKzI5NCw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnJlc2V0
VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zCiAK
ICAgICB0b3BMb2FkaW5nRnJhbWUgPSAwOwogICAgIG1fbG9hZEZpbmlzaGVkID0gZmFsc2U7Ci0g
ICAgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAgICAgbV9wb2xp
Y3lEZWxlZ2F0ZUVuYWJsZWQgPSBmYWxzZTsKICAgICB3YWl0Rm9yUG9saWN5ID0gZmFsc2U7CiAg
ICAgdGVzdERvbmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCmluZGV4IGExM2FmYjEyZDhk
NTIzODMzNTQ3ZjMzYzI3MDkwNDFlMDBiNzk4MzYuLjI2N2M0ZGNhZGY2ZWQwNzY1NzZkN2NkYmNk
MDBhZGYzOWRjZTA5YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaApAQCAtMTAyLDggKzEwMiw2IEBA
IHB1YmxpYzoKICAgICBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNv
cmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbik7CiAgICAgYm9vbCBzaG91bGRJbnNlcnRUZXh0
KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbik7CiAKLSAg
ICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpIHsgc19zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKIAogICAgIC8vIEJsYWNr
QmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5UGxhdGZvcm1MYXlvdXRUZXN0Q2xpZW50IG1ldGhv
ZApAQCAtMTQ4LDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fYWNjZXB0c0VkaXRp
bmc7CiAgICAgYm9vbCBtX2xvYWRGaW5pc2hlZDsKLSAgICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxl
ZDsKIH07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rl
c3RSdW5uZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
VGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCmluZGV4IGFhZTg0Mzg4YThjMmUyYjMxNDFkNjgzMzdk
MThhNGFiZjFkMzQ1ZjYuLjIxMDIwZDlkOGZlMDMwNmRmN2FjOTc0MjIzZDA0ZjNlMDBjMDVlOWMg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1
bm5lckJsYWNrQmVycnkuY3BwCkBAIC0yNjAsMTcgKzI2MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCBmbGFnKQogICAgIEJsYWNrQmVycnk6OldlYktpdDo6
RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPnNl
dFhTU0F1ZGl0b3JFbmFibGVkKGZsYWcpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIEJsYWNrQmVycnk6
OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZs
YWcpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wgY3ljbGVzKQogewogICAgIGlmICghbWFpbkZy
YW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAppbmRleCBhNDRlY2JkNzgwZGE2MWQ5YmZl
N2U5YzgwZTUyMWY2YjFiOTA3NWM4Li5kNGE2MDBiODIwZTkzMDczZGI4OTc2MWViYTcyOTBjMTFm
Y2QwYTE1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAtMTQ5LDggKzE0OSw2IEBA
IHByb3RlY3RlZDoKICAgICBXZWJLaXQ6OldlYlBsdWdpbiogY3JlYXRlUGx1Z2luKFdlYktpdDo6
V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYpOwogICAgIHZvaWQgc2V0
U3RhdHVzVGV4dChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZvaWQgZGlkU3RvcExv
YWRpbmcoKTsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2b2lkIHNob3dDb250
ZXh0TWVudShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURh
dGEmKTsKICAgICBXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlhQ2xpZW50KCk7
CiAgICAgdm9pZCBwcmludFBhZ2UoV2ViS2l0OjpXZWJGcmFtZSopOwpAQCAtMzY4LDE0ICszNjYs
NiBAQCBwdWJsaWM6CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5nKCk7
CiAgICAgICAgIEJhc2U6OmRpZFN0b3BMb2FkaW5nKCk7CiAgICAgfQotICAgIHZpcnR1YWwgYm9v
bCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi0gICAgewotICAgICAgICByZXR1cm4gV2Vi
VGVzdFByb3h5QmFzZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB9Ci0gICAg
dmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi0gICAgewot
ICAgICAgICByZXR1cm4gV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCk7Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoV2Vi
S2l0OjpXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJiBj
b250ZXh0TWVudURhdGEpCiAgICAgewogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29u
dGV4dE1lbnUoZnJhbWUsIGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmlu
ZGV4IDQ3OTUxZWZhYzBhMGQ4OGQwYzNjNDQ1MGQ3YjdhYTNkMDI2OTZkZTkuLjVjMDJmN2M5MWYw
ZTQ4ZjU4ZmQ1MTJlYWU4NmRlZjZiOTM3YzcwYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBA
IC0yMDgsOCArMjA4LDYgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihUZXN0SW50ZXJmYWNlcyog
aW50ZXJmYWNlcykKICAgICBiaW5kTWV0aG9kKCJ0ZXh0U3Vycm91bmRpbmdOb2RlIiwgJlRlc3RS
dW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUpOwogICAgIGJpbmRNZXRob2QoImRpc2FibGVBdXRv
UmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjpkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUpOwogICAgIGJp
bmRNZXRob2QoImVuYWJsZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6OmVuYWJsZUF1dG9S
ZXNpemVNb2RlKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQi
LCAmVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKLSAgICBiaW5kTWV0
aG9kKCJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldE1v
Y2tEZXZpY2VPcmllbnRhdGlvbiIsICZUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRp
b24pOwogICAgIGJpbmRNZXRob2QoImRpZEFjcXVpcmVQb2ludGVyTG9jayIsICZUZXN0UnVubmVy
OjpkaWRBY3F1aXJlUG9pbnRlckxvY2spOwogICAgIGJpbmRNZXRob2QoImRpZExvc2VQb2ludGVy
TG9jayIsICZUZXN0UnVubmVyOjpkaWRMb3NlUG9pbnRlckxvY2spOwpAQCAtNDEwLDEyICs0MDgs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkKICAgICBtX3Nob3VsZFN0YXlPblBhZ2VBZnRl
ckhhbmRsaW5nQmVmb3JlVW5sb2FkID0gZmFsc2U7CiAgICAgbV9zaG91bGRCbG9ja1JlZGlyZWN0
cyA9IGZhbHNlOwogICAgIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCA9IGZhbHNl
OwotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKLSNpZmRlZiBXSU4zMgot
ICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotICAg
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwotI2VuZGlmCiAgICAg
bV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzID0gZmFsc2U7CiAKICAgICBtX2h0dHBIZWFk
ZXJzVG9DbGVhci5jbGVhcigpOwpAQCAtNjc0LDE2ICs2NjYsNiBAQCBib29sIFRlc3RSdW5uZXI6
OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnRlcmNl
cHRQb3N0TWVzc2FnZS5pc0Jvb2woKSAmJiBtX2ludGVyY2VwdFBvc3RNZXNzYWdlLnRvQm9vbGVh
bigpOwogfQogCi1ib29sIFRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkg
Y29uc3QKLXsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLWJv
b2wgVGVzdFJ1bm5lcjo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotfQotCiBi
b29sIFRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBjb25zdAogewog
ICAgIHJldHVybiBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CkBAIC0xNDkwLDIwICsx
NDcyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICByZXN1bHQtPnNldChzdXJyb3Vu
ZGluZ1RleHQudGV4dENvbnRlbnQoKS51dGY4KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAm
JiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkID0gYXJndW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICByZXN1bHQtPnNldE51bGwo
KTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQp
Ci17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2wo
KSkKLSAgICAgICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYXJndW1lbnRz
WzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0UHJpb3JpdGllcyhjb25zdCBDcHBBcmd1bWVu
dExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fc2hvdWxkRHVt
cFJlc291cmNlUHJpb3JpdGllcyA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggODhkOGIz
NzE1NTkyOTEwNzE3YTFmODhlMjUzY2U1YWY1YTJkYjg5Ny4uZmVhZGE4OGY4MjJhNzA1MmI3NWMx
N2QzNzFhYjRhZjAxZmJiMDEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMTE4LDggKzExOCw2
IEBAIHB1YmxpYzoKICAgICBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3Q7
CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBjb25zdDsKICAgICBi
b29sIHNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VQcmlv
cml0aWVzKCkgY29uc3Q7CiAjaWYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICBXZWJLaXQ6Oldl
Yk5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CkBA
IC0yNzAsMTEgKzI2OCw2IEBAIHByaXZhdGU6CiAgICAgLy8gbGVuZ3RoIHRvIHJldHJpZXZlLgog
ICAgIHZvaWQgdGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50Kik7CiAKLSAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBzbWFydCBpbnNlcnQvZGVsZXRl
LiBUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4KLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KLSAgICAv
LyBFbmFibGUgb3IgZGlzYWJsZSB0cmFpbGluZyB3aGl0ZXNwYWNlIHNlbGVjdGlvbiBvbiBkb3Vi
bGUgY2xpY2suCi0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGVuYWJsZUF1dG9S
ZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IGRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAKQEAgLTY3MCwxMCArNjYzLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV93aWxsU2Vu
ZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsOwogCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKLQotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwot
CiAgICAgYm9vbCBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CiAKICAgICBzdGQ6OnNl
dDxzdGQ6OnN0cmluZz4gbV9odHRwSGVhZGVyc1RvQ2xlYXI7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5
LmNwcAppbmRleCA4NjgxMzNmZTQ3MGY5MWFlZmNlZDFmYzE5NmJjYThmNzBkMzBkMDk0Li5jYzUw
NzUzNGUxNmQ5ODU5YTIyYzU3ZGMyMWQ1NGFjNWIzZTJhYWRkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQ
cm94eS5jcHAKQEAgLTk3OCwxNiArOTc4LDYgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRT
dG9wTG9hZGluZygpCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgicG9zdFByb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCi1ib29sIFdlYlRlc3RQcm94eUJhc2U6
OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV90ZXN0SW50ZXJm
YWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotfQotCi1i
b29sIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
Ci17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci19Ci0KIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6
c2hvd0NvbnRleHRNZW51KFdlYkZyYW1lKiwgY29uc3QgV2ViQ29udGV4dE1lbnVEYXRhJiBjb250
ZXh0TWVudURhdGEpCiB7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+ZXZlbnRTZW5kZXIoKS0+c2V0
Q29udGV4dE1lbnVEYXRhKGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggNjkwNWNkYTZmN2NkMThhYThlNTEwYmY5
NmJkN2QzMmRlODc3YmVhMS4uZGQ2MmYzYTIxMGZiMGYxMWNjNzk1YWVlMDk5ZmFlODQ2Y2UwNzQz
YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApA
QCAtMTY5LDIwICsxNjksNiBAQCBib29sIFdlYlZpZXdIb3N0OjpzaG91bGRBcHBseVN0eWxlKGNv
bnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJiByYW5nZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVmlld0hvc3Q6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0jaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4g
dHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIGJvb2wgV2ViVmll
d0hvc3Q6OmhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCkKIHsKICAgICBpZiAobV9lZGl0Q29t
bWFuZE5hbWUuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCmluZGV4IGMxNmQ1ZmY3OGU1NmQxNThlMTU2MmQwNmExNmM2ZGYyYzc4ZjEyZjguLjM3
ZTAwYzI4MGFkN2E4MzA3YTQzZmQ2ZjI4ODc4MWE2MTQ2MjJkOGYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTQzLDggKzE0Myw2IEBAIGNsYXNz
IFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktp
dDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYgZnJvbSwgY29uc3QgV2ViS2l0OjpXZWJSYW5n
ZSYgdG8sIFdlYktpdDo6V2ViVGV4dEFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYp
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYpOwotICAgIHZpcnR1YWwgYm9vbCBp
c1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ3VycmVu
dEtleWJvYXJkRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWxBbGVydERpYWxvZyhX
ZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IGJvb2wgcnVuTW9kYWxDb25maXJtRGlhbG9nKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggZTM3ODViMTA1Mjk1MjJiMWIzM2NjNDczNjE0NzhhYzBi
NGJiZGJkMS4uZGQ2OTM5ZTUwNDI0ZTk2ODJiOGMyYTgwZTNiNWUzODU1NTMwNTdiYyAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBA
IC0zMDYsOCArMzA2LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0
c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRW
YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmlldygpLCAtMSk7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCht
YWluVmlldygpLCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldENTU0dy
aWRMYXlvdXRFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7
Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRp
bmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0
U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0
UnVubmVyRWZsLmNwcAppbmRleCA4ODc1NmRjZDcyZTY3NGY3ZTA2YWM1NmYwNDMxNjI5NDZjYzZl
ZTMwLi5mOGNmM2NlZTU1NjliZDIyMDhlNDIxNjM2OWVhZDU5OTA4YTY0OTkxIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0yNzIsMTEgKzI3Miw2IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChi
b29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19Ci0KIHN0YXRpYyBF
aW5hX0Jvb2wgd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAgICAgd2FpdFRvRHVt
cFdhdGNoZG9nID0gMDsKQEAgLTQyMSwxMSArNDE2LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJ
Y29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgZXdrX3NldHRpbmdzX2lj
b25fZGF0YWJhc2VfcGF0aF9zZXQoZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgZXdr
X3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KGJyb3dzZXItPm1haW5W
aWV3KCksICFmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwCmluZGV4IDVhMzU3NGY3MTIxM2I0NTYyNzE1ZDJjOGVkZGUwOTZiM2NhOGUwZDUuLmNlZTQ2
MWM1ODFkM2YxOTMyZTQxZDQ3NDY1NDRlZGJmNjQ2MGRiY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTAxLDggKzUwMSw2IEBAIHN0YXRpYyB2
b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKHRydWUpOwogICAgIHdl
YmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSgpLCAw
KTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHdlYlZpZXcsIHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyh3ZWJWaWV3LCBmYWxzZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggZjFjMzA2OTI3NjI2
YmZjZTIxNDIyMjY3OTdkNjk4YmFiNjdiZDk3Ni4uZjllYmIwYTZhOGQ1MWU0ZDdhNjNkZTViZWRm
Zjg4ZjJmZTc4NTY0NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcApAQCAtMzIzLDExICszMjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5
KGJvb2wgd2luZG93SXNLZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKSwgZmxhZyk7Ci19Ci0KIHN0YXRp
YyBnYm9vbGVhbiB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICBzZXRXYWl0
VG9EdW1wV2F0Y2hkb2coMCk7CkBAIC00ODUsMTEgKzQ4MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIHdlYmtpdF9pY29u
X2RhdGFiYXNlX3NldF9wYXRoKGRhdGFiYXNlLCAwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF93ZWJfdmlldyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCmluZGV4IDlhMjAyMmUyZGYzNzU0MDNlZjkxZjYzN2UwZDkwNjk3MTZlODU1NTgu
LmNiMTRhMTU3YTQ1ODc2YjE3YzRiZjRmMzAyZDJmNmM1NTQ5YThiNGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEyNzgsOCArMTI3OCw2IEBAIHN0
YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAg
ICAgICAgIGdUZXN0UnVubmVyLT5yZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAgfQogCi0g
ICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107
Ci0KICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3I6WUVTXTsKICAg
ICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzXTsKICAgICBbV2ViVmlldyBf
c2V0QWxsb3dzUm91bmRpbmdIYWNrczpOT107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0
UnVubmVyTWFjLm1tCmluZGV4IGRmYjlhNmVjZmQ3NGMzNzMzNmMzMDUwNDJhNjJjOTgyMTJiYzcw
YzIuLjc5Yzg0ZmVhYzdhNmViZmIxZmE3NTFiMzVjMTM4ODFkZWVjY2FmMDkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC02MzQsMTYgKzYzNCw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICBbW21h
aW5GcmFtZSB3ZWJWaWV3XSBfdXBkYXRlQWN0aXZlU3RhdGVdOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgW1ttYWlu
RnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZsYWddOwotfQotCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0
VG9EdW1wV2F0Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lkIHdhaXRVbnRpbERv
bmVXYXRjaGRvZ0ZpcmVkKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lkKiBpbmZvKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAyM2ZkMzVj
MWM2ZmI1ZjE3OTMzYjY1MzJiZDRjODc0MTcwMGU4Y2QyLi5kZmE2NzJiNjc0ZGVjM2NlOTcwNjJm
NThmZWZjZmM5OTM4MDFhMDVmIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcApAQCAtMTkyLDggKzE5Miw2IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0
aW5ncygpCiAKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCkt
PnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogCiAgICAgLy8gZ2xvYmFsU2V0dGluZ3MgbXVzdCBi
ZSByZXNldCBleHBsaWNpdGx5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAKaW5kZXggNjBjNTNiYjAzNjc2YjNmNTdlYjJlNDhmZDNiMjViYzhhMzE1NTUzYi4uNjZkZTU5
Mzk3OGY3MGM5OGRhYTM2NmMzZGEwZGNkNjk4YzM3MmViYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03MjAsMTYgKzcyMCw2IEBAIHZvaWQgVGVzdFJ1bm5l
clF0OjpzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgUVN0cmluZyYgb3JpZW50YXRpb24sIGNvbnN0
IFFTdHJpbmcmCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCktPnNldFNjcm9sbEJh
clBvbGljeShvLCBwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUp
OwotfQotCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxl
KTsKLX0KLQogdm9pZCBUZXN0UnVubmVyUXQ6OmV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5h
bWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUobV9kcnQtPnBhZ2VBZGFwdGVyKCksIG5hbWUsIHZh
bHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5kZXggZGQwMjZkZTFi
MDlhNDIwZjJhODExZjY4YWJmYjAwNmExYmYwNDNlZi4uZWJiMjI5NDQ0ZjhjZmUxYzk0MWZlNGNi
ZWY4Yjc5YTMyOWU2NmVmNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgK
QEAgLTE3OCw4ICsxNzgsNiBAQCBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldENhcmV0QnJv
d3NpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBRU3RyaW5n
JiBtb2RlKTsKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKLSAg
ICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9p
ZCBleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSA9
IFFTdHJpbmcoKSk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IFFTdHJpbmcmIG5h
bWUpIGNvbnN0OwogICAgIGJvb2wgZmluZFN0cmluZyhjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0
cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGY3NDc2ZmExMjYzZGYxZTBjZTI2MDZhMzgzNzg3M2VkYTc4Y2Vm
NWIuLjg5ZmE5ZjdhZmExNjM1ZjYxMjVkNDRjOWUxMzI0ZWRjMTVlMjkxMDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODk5LDEwICs4OTksNiBA
QCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmco
KQogICAgICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0KGNvbnRl
eHQpOwogICAgIH0KIAotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwot
ICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkp
Ci0gICAgICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoVFJVRSk7
Ci0KICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3UHJpdmF0ZShRdWVyeSwgd2Vi
Vmlldyk7CiAgICAgaWYgKCF3ZWJWaWV3UHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDg0MjMyNmNiY2Y1OTU4
YzllZDM0NzBjMGIxMTI1MzdlNTMwNWJiODEuLmQ4MmRmMmVlNTNjMTBhYTAxN2E0N2FkYmFkNGFj
Nzc1YTY0MGJjZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5j
cHAKQEAgLTcyMywzMiArNzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShi
b29sIGZsYWcpCiAgICAgOjpTZW5kTWVzc2FnZSh3ZWJWaWV3V2luZG93LCBmbGFnID8gV01fU0VU
Rk9DVVMgOiBXTV9LSUxMRk9DVVMsIChXUEFSQU0pOjpHZXREZXNrdG9wV2luZG93KCksIDApOwog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJh
bWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElX
ZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVy
eUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0Vk
aXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8gVFJVRSA6IEZBTFNFKTsK
LX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZB
SUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
T01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZp
ZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICB2aWV3RWRpdGluZy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnID8g
VFJVRSA6IEZBTFNFKTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1
bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgQ0FMTEJBQ0sgd2FpdFVu
dGlsRG9uZVdhdGNoZG9nRmlyZWQoSFdORCwgVUlOVCwgVUlOVF9QVFIsIERXT1JEKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKaW5kZXggOTc3NTExMzUwZWNlYmVkMGQ5
NTMyZmU1MDQ5ZmY1ZmFhZjY4NzNlYy4uNDE2NzgyN2YxYTcwZWYxYTNkNzIyNDk0NDRmZTZjMzkw
MWM3N2QyZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCkBAIC0x
NTEsMTEgKzE1MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICAvLyBGSVhNRTog
aW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2FpdFRvRHVtcChib29sIHdhaXRV
bnRpbERvbmUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCB0aW1lb3V0U2Vjb25kcyA9IDEwOwpA
QCAtMjk0LDExICsyODksNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNp
emUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQog
Ci12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVy
OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBh
bHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdh
bW1hLCBkb3VibGUgZ2FtbWEpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgRGV2aWNl
T3JpZW50YXRpb24gbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEyNjc2ZWJjNjA4MjgzZjI1NDNkZjVl
MTgzZjUzZGJlZDdhODc4NzQuLjFmYjcxZmFmOTRmMTg0ZjUyNjViYjg2ODE4ZmYzMmRmOGM0YTI4
ZjggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGVzdFJ1bm5lci5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGJ5CisgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluIHRlc3RzLgorCisgICAgICAg
IEJlIHN1cmUgdGhhdCB0cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFuZAorICAgICAgICBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFyZSBzZXQgdG8gb3Bwb3NpdGUgdmFsdWVzIGFz
IHRoZXkgYXJlCisgICAgICAgIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKworICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFj
ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanM6CisgICAgICAgICogZWRp
dGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKGluaXRTcGVsbFRlc3Qp
OgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC13aXRoLXVuZGVyc2NvcmVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6IFVuZmxhZworICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAorICAgICAgICBhcyBp
dCBwYXNzZXMgbm93LgorCiAyMDEzLTAzLTA0ICBDaHJpc3RpYW4gQmllc2luZ2VyICA8Y2JpZXNp
bmdlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgKHRlc3RzKSBmbGV4Ym94L3Jlc291cmNlcy5j
c3Mgc2hvdWxkIHVzZSB1bnByZWZpeGVkIHByb3BlcnRpZXMsIGZvciBmaXJlZm94CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC5odG1sCmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgxOTgxZGVkNjkuLmQw
ZjdkN2FmMTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1s
CkBAIC01LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkg
ewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
YmVzaWRlLWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJmYmZjNzQwYWZhMzVjMmQw
OGFjOTU3N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVmNTI3YWVlMzZjMGQ4ZmJi
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
YmVzaWRlLWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAg
dGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0
cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNo
Lmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWNyYXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4YWE4Mzc2OTM3N2M4Njg2
YWY4Zi4uYzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkzNjlhOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1j
cmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5u
ZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9
CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1s
CmluZGV4IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2Mzc1MDQuLmY3NGFhMjY1
Njc3NjU2MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFj
ZS1pbWctY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwKaW5kZXggODUz
MGZiYzUzMWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4M2ZiMWZhMWU1OGI1ZTc0
MTVlMmYzYWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbApAQCAtNCw3ICs0LDcg
QEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2Rv
dWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmly
c3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3MmFmZjJiMjVmYjcyMzU2
OTUwMzA5MDk1YzFjMmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2ODIyMTk5MDlhOTcxNmMy
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcworKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5s
aW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3ICs3OCw4IEBAIGZ1bmN0
aW9uIHRlc3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1MLCBleHBlY3RlZFRleHQp
CiAgICAgc2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5IiwgdG9MaXRlcmFsKGV4cGVj
dGVkVGV4dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCh0cnVlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGZhbHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUgPSAi
PHNwYW4gaWQ9J3RhcmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1lMTwvc3Bhbj4gYW5kIG5v
dCBzZWxlY3QgdXMiOwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxkU2VsZWN0ZUZpcnN0V29y
ZElubGluZSwgInNlbGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
cmVzb3VyY2VzL3V0aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2NjcxZTdjODQ5MDdiNzA3
MmQ0OTUyMC4uMDk0YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0ZjU2MjQ5NCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcworKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCkBAIC0yNyw4
ICsyNyw4IEBAIGZ1bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1lbnRJZCwgdGVzdFRleHQs
IHRlc3RGdW5jdGlvbikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9IHRlc3RGdW5jdGlvbjsK
ICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNldEFzeW5jaHJvbm91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRlc3RpbmF0aW9uID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0
aC11bmRlcnNjb3Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGlu
Zy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAppbmRleCBjYTU5MzVm
ZTAwMDVhNWEwNjEzNTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4MTBkMDFiYjk4ZTZlNWYx
M2MzOGQ2MDkzZDM2ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQt
d29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAgaW5pdFNwZWxsVGVz
dCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJp
bmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdp
dGhvdXQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICB2YXIgeCA9
IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0
TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRv
cCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7
CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3ICs1MCw4IEBAIGlu
aXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0
ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlv
bigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxs
ZWQgd29yZCB3aXRoIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICB2
YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24u
b2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9m
ZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdo
dCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQu
aHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNr
ZWQtd29yZC5odG1sCmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzkyN2EwOWMzZmM0NmNlMDI3
Y2YuLjlkMjQ5ZmQ3ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0ZWEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3Rp
bmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIp
OwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0cmFp
bGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAg
ICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlv
bi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJk
ZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIs
ICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdHJh
aWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAg
ICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlv
bi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVj
dGF0aW9ucwppbmRleCA1Yjk4NjkxMDM3NzQxYjM5OGZmYzVhNjc0MzJmMmRmMTQyY2ExYTc5Li5k
YjA0N2QzMjY4ZTVhNThhYmYxN2UzNmRkZjJkYTcwZmY5Njk2NGMwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc5LDkgKzM3OSw2IEBAIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0aC1lbWJlZGRl
ci5odG1sCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRk
RGlzYWxsb3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJlc291cmNlLWxvYWQtZGVs
ZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlv
dXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCi1lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFi
bGUuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cGFnZVByb3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191512</attachid>
            <date>2013-03-05 10:55:48 -0800</date>
            <delta_ts>2013-03-06 02:03:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130305195153.patch</filename>
            <type>text/plain</type>
            <size>84070</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uMThhY2NkNmU2MjY0MzNmOTY2ZTI5MjM1YzExNzYx
YjJmNmI3YjQ2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi5kOTg1ODIyNjA3OTAzYmEwYzMx
ZWViZGJmYmRlYjhmMzdlYjA5MTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTJjNjE2MzQ1NDgzMmE5YjYwZDhiYjI2OGI2Y2E3MmIz
MDc4MWI0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
My0wMy0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIHB1YmxpYy9X
ZWJWaWV3Q2xpZW50Lmg6CisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6IEluaXRpYWxpemUgcHJvcGVybHkg
dGhlc2Ugc2V0dGluZ3MKKyAgICAgICAgaW4gV2luZG93cyBhcyB0aGV5IGhhdmUgZGVmYXVsdCB2
YWx1ZXMgZGlmZmVyZW50IGZyb20gb3RoZXIgcGxhdGZvcm1zLgorCiAyMDEzLTAzLTA0ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGlu
ZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQwODA5MGFhZjZiM2U5MzNj
Nzk1MmYxNjY0MzM0ZTFjMzQ4Li43YTc2MGU0MTk3MzM5MTllMDExMDM1OGVjY2VjMmI1OGUxMjVl
OTJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDMtMDUgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0byBE
UlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50RWZsKToKKwog
MjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNvbWUgaW5jbHVkZXMgcmVt
b3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2FiNzlkMGZjZmFkN2E1NTgx
OTZhMTIyZTJiNmUuLjZhMjcxYjMwMzk2NGQxYzE5ZWY1YTM0YmQ3MmU3MjE3OGNiZTA0MDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNSAgTWFudWVsIFJlZ28g
Q2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9y
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBp
dCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgog
CiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJhYy53ZWJraXQub3JnL3Ix
NDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1MTM1NjJlMDIxYjJjNzUz
MDMzOWYwZDlhLi43YzlhZjljYTkyYTAxNDQ3Njg1MWUyNDdjNDFlMTI0Y2Q1YjQ0Zjk1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQu
bW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3
IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBOYW1lOl0pOiBJbml0aWFs
aXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMuCisgICAgICAgICgtW1dl
YlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpdKToKKyAgICAgICAgKC1b
V2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdKToKKyAgICAgICAgKC1b
V2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZp
ZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06CisgICAgICAgICgtW1dl
YlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgTGFzemxvIEdvbWJvcyAgPGwuZ29t
Ym9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEpTQ19PQkpDX0FQSV9FTkFCTEVEIHNob3VsZCBi
ZSByZW1vdmVkIGZyb20gRmVhdHVyZURlZmluZXMuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MzdmYTkx
OTVlZWQ0YjhhN2E3NDA2OTZkYTYxNDdkNDIxOTQwMDE1Li4xY2ExYTVmNmViZTVkYWY0NjQxMjIw
YmM1YWZiZDQ4YWMyNTRjZjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2Rl
IHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAq
IFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNs
aWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAg
ICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50
UXQpOgorCiAyMDEzLTAzLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0ZWQgYnVpbGQgZml4LiBBZGRzIGJhY2sgc29tZSBpbmNs
dWRlcyByZW1vdmVkIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGFkZTM4ZDI2ZGRkOTRjNzM1ZjIx
YzdkZTUxZDlmZjc4ZTAzNGIwMy4uYjAyN2VhYWRkYjFkMTVkYjIwNTYyY2E0Y2NkZDMyZDgyNzli
ZmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA1ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRp
dG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZp
ZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAg
ICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAg
ICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTMtMDMtMDMgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2luZG93cyBidWlsZCBmaXggYXR0
ZW1wdCBhZnRlciByMTQ0NTQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRleCA2ZjZhMTk4YTQyNGU4
OGJhMDM1ZTc0ODZjMjBjMDFmNzc2OTMzNGM5Li4zYjhlNmJmZDY0OTcxMzc5YWNiZTc2ODgxZjkx
ZTYyYjRjNThhYjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwor
KysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEz
LTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAg
ICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29y
ZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAg
ICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIw
MTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgRGlz
YWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24gbm9uLU1hYyBwb3J0cyBhbmQgZGVsZXRl
IEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwppbmRl
eCAwMzI0ZTIxNWRiZWRhMGFjZmE0YjY0Y2E3MGJiMmM3MWMzM2Y3MzI3Li4zMjQzODcyMjA5NjZj
YzFlMDQ3NDFjM2FkNmRhZGQ1YTkzMGM3Yjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3
IEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcg
dG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFu
ZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICog
V2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0
b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6
OkVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAy
MDEzLTAyLTI2ICBEbWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTWVyZ2VkIFRpcCBhbmQgRGVidWcgbG9nIGxldmVscyBmb3Igd2ViIGNvbnNvbGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBlNzk5MWVhZGNjMTQwMzA3ZmMwOTc2N2JlZmYyMTRh
NTNiZjdlYmFkLi5mNjM1OWUwYzcyZWYwZTc3MDQyYWJkOGIwNzY1ZmMyMGRhMWNlYzI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE5NSw0ICsxOTUsNyBAQCB1bmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQKIAogbG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlhbD1mYWxzZQogCisjIHNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBhcmUgbXV0dWFsbHkKKyMgZXhjbHVzaXZlLCBtZWFuaW5nIHRoYXQgZW5hYmxpbmcgb25lIHdp
bGwgZGlzYWJsZSB0aGUgb3RoZXIuCiBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgaW5pdGlhbD10
cnVlCitzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluaXRpYWw9ZmFsc2UKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApp
bmRleCBmYzE0Y2QwMWZlNjgyNWIyM2NlNGQwMTc3YWRjY2NiNDNjM2JlOGQxLi5lOTc0MWMwN2Zh
YjFlZGZjNDI5YTQzZGUyOTliZDE5NjBjMGM5ZWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCkBAIC04Myw3ICs4Myw2IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRET01SYW5nZVRv
RE9NUmFuZ2VBZmZpbml0eVN0aWxsU2VsZWN0aW5nKFdlYkNvcmU6OlJhbmdlKiBmcm9tUmFuZ2Us
IFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLCBpbnQgYWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3Rp
bmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2Rl
KiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKSA9IDA7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQg
aW5zZXJ0QWN0aW9uKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgZGlkUmVjZWl2ZUF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKSA9IDA7CiAKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1
cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDUxNWY4ODI1MDRiNjQ2MDFl
ZmRjNmUxOWQyMzIwODlhYjJiODNlYS4uOWQ1MjcxYWU5MDA4ZThlMTJkZjQwYmM2Njg3ZGFmMjNi
ZWE2NWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcApAQCAtMzMsNiAr
MzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25IYW5kbGVyLmgiCisjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKICNpbmNsdWRlICJXaW5kb3dzS2V5Ym9hcmRDb2Rl
cy5oIgogCkBAIC02OSwxNSArNzAsMTggQEAgYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojpz
aG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNv
cmUobV93ZWJQYWdlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAg
IHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0K
IAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVl
KQotICAgICAgICByZXR1cm4gbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xp
ZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3BlbGxDaGVja2luZyhib29sIGVuYWJsZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAzOGM2NmRmZTg5
ZjkzZmE4OGUxOGQ1MDY4MDg0NTYxNjZjMDI2NzMzLi41ZjlhYzkwOGUyYzc5MWZiNTg1NzE4MjJh
MDMzZjMwMTY3Mzk2ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Vmlld0NsaWVudC5oCkBAIC0xODYsOSArMTg2LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBj
b25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQot
CiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBkaWRDYW5jZWxDb21wb3NpdGlvbk9uU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVh
bCB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbihib29sIGlzU2VsZWN0aW9uRW1wdHkpIHsgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRleCA5
ODMwM2Y0ZjQ2NGRmMzIxYmI0OTRkMzM0YmUzYTg2MGJjNDgyMmY0Li4wODIxYjllNDNhMDU5OGE0
ZmM2ZThjMzRmOWFjNTExNzQzYjRlM2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktl
eWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90
SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKQEAgLTk1LDE1ICs5NiwxOSBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmZyYW1lV2ls
bERldGFjaFBhZ2UoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQogCiBib29sIEVkaXRvckNsaWVudElt
cGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xp
ZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKKyNpZiBPUyhXSU5ET1dTKQorICAgIHJldHVybiBmYWxzZTsKKyNlbHNlCiAgICAgcmV0
dXJuIHRydWU7CisjZW5kaWYKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgp
KQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CisgICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICBy
ZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKICNpZiBPUyhXSU5ET1dTKQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA5Y2ZkNmI5
YzcxYjU5NDNhOGU0ZjRjMTUyY2UwNTA1ZTViYWMwOGEyLi43MGNiODkxOWVjN2M3ZmZlMDAyY2My
NTU4OWI1MmY0YmU4NDhkZmI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuY3BwCkBAIC01MTIsNiArNTEyLDExIEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChX
ZWJWaWV3Q2xpZW50KiBjbGllbnQpCiAjZW5kaWYKIAogICAgIG1faW5zcGVjdG9yU2V0dGluZ3NN
YXAgPSBhZG9wdFB0cihuZXcgU2V0dGluZ3NNYXApOworCisjaWYgT1MoV0lORE9XUykKKyAgICBt
X3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Cisg
ICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworI2VuZGlmCiB9CiAKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzhkMmU1Y2U2ZTk0Y2U0ZTExNDgzYWZmZWE5NzI5OWZi
ZjU1N2IxOC4uM2VmZDdjMjJjYjFiNTI4YTk2MmQyNDkzOGMwN2ZhMzg3ZDQwYmFhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMzgsMjggKzMzOCw2IEBAIGJvb2wgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuaXNFbmFibGVkKCk7CiB9CiAKLXZv
aWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BB
R0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNs
aWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50
RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wg
ZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBw
YWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkp
OwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JD
bGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0K
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xheW91dChld2tGcmFtZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCmluZGV4IGQ4ZmYzZTU2ZmM5ZjhiMzZmOTQyYTgwNDZkYWRlNTA5MWRk
MmZhNWIuLmEwYzc4MjhjNGMxMGIzZjI5NzQ0NDhhNzAzZDA2NWM4ZTJiZjRhNWMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5oCkBAIC04MSw4ICs4MSw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgYm9v
bCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBjaGFy
KiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChjb25zdCBF
dmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRD
U1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVk
KTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFtZXNFbmFibGVkKGJvb2wpOwogCiAg
ICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3Bw
CmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBkZGY4YzZlMGJkM2YuLjJiZTMxYTlh
MDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcApAQCAtMjQzLDI4ICsy
NDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VEZXN0cm95ZWQoKQogICAgIGRlbGV0
ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVkaXRvckNsaWVudEVmbDo6c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdl
ID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEVmbDo6aXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdL
UHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjp0b2dn
bGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEsOCArMzYzLDYgQEAgdm9pZCBFZGl0
b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihLZXlib2FyZEV2ZW50KikKIEVk
aXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQogICAgIDog
bV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3KQotICAgICwgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKaW5kZXggM2MyYTI0
N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4uZDBkNWQzMDgxNTNjYmMyMDk0NTgz
MWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkgKzg0LDcgQEAgcHVibGljOgogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKik7CiAgICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpOwpAQCAtMTU3
LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBFdmFzX09iamVjdCAqbV92aWV3
OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotICAgIGJvb2wg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
LmNwcAppbmRleCBjZTQ5MzZmNzkyOTRmOWQ4MGI2NmMwNzgwYTZmZWMyNDgxYzAwN2QwLi41MmM3
ZWJiZjE2ODgyYWRhMWM0ZTQ0YzQ4NTNjYzg0ODU3ZTRjOGI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogYm9v
bCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVuID0gZmFsc2U7CiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbiA9IHRydWU7Ci1i
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkZyYW1lTG9hZEV2ZW50
Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2ZyYW1lTG9hZEV2ZW50Q2FsbGJh
Y2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRoZW50aWNhdGlvbkNhbGxiYWNr
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNhdGlvbkNhbGxiYWNrID0gMDsK
IApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6bGlu
a3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJuIHNfbGlua3NJbmNsdWRlZEluVGFi
Q2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi1ib29sIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0gICAgcmV0
dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogLyoqCiAgKiBnZXRG
cmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJGcmFtZQpAQCAtNDUzLDE1ICs0
NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyhX
ZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAgIGNvcmUod2ViVmlldyktPnNldERl
ZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29s
IGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2Vi
VmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmlldyk7Ci0KLSAgICBXZWJLaXQ6OkVk
aXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0OjpFZGl0b3JDbGllbnQqPihj
b3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgY2xpZW50LT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogewogICAgIGdf
cmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKaW5kZXggMDljZTcyMjY0NGY1MmIxMGM1ZjU1ZGQ4NmU4MDYyMjY0OTM1YmU0Ny4u
ODQ1ZjJiYjI1OTZmNDIxOGExYTQ5MjE1Nzc0YTcyYTQwNjZmNzM1ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgK
KysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgogCiAgICAgc3RhdGljIHZvaWQgc2V0
TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAgICBzdGF0aWMgYm9vbCBsaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgYm9vbCBzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBjbGVhck9wZW5lcihXZWJLaXRX
ZWJGcmFtZSopOwogCkBAIC03OCw3ICs3Niw2IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBy
ZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBjYWlyb19yZWN0YW5nbGVfaW50
X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJLaXRXZWJWaWV3KiwgZmxvYXQs
IGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0RGVmZXJzTG9hZGluZyhXZWJLaXRX
ZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0aWMgdm9pZCBmb3JjZVdlYlZpZXdQ
YWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nlc3NpYmlsaXR5CkBAIC0xNDYsNyAr
MTQzLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMgYm9vbCBzX2RydFJ1bjsKICAg
ICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluOwotICAgIHN0YXRpYyBib29s
IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAK
aW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2OGJkNjAzNTg1Zi4uOWMwZmQ5NGFh
MTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCkBAIC0zNyw2ICszNyw3
IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3RlYm9hcmRIZWxwZXIuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgog
I2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2lu
Y2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwyMSArMzYxLDIwIEBAIHZvaWQgRWRp
dG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBF
ZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17
Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCiBib29sIEVk
aXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBj
b3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5k
ZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUo
bV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0g
ICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcgKzUwMSw2IEBAIEVkaXRvckNsaWVu
dDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgLCBtX3RleHRDaGVj
a2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtpdF9nZXRfdGV4dF9jaGVja2VyKCkp
KQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0
ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDNhN2VhZjE0YzcxYWY3NTc4ZDky
MjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5Y2JmZmJjZWYyMTdkODhkMDIyZTk4
YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1Ymxp
YyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGRE
ZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBw
dWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93
ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRp
bmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRv
ckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAg
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4NTBmNTc4MWVmYjRjMjE4M2NlNzc0
NjMwLi43ODk3MjQxOGMyMDlmMjc4NzRjMTY3NjNhZTBhZGVmODkxMjI3ZTkzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBA
IC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVn
YWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hl
Y2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwxOCBAQCBib29sIFdlYkVkaXRvckNs
aWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKIAog
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAg
cmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBQYWdlKiBw
YWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0
cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBS
YW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMmMxZDZh
MzIxMjAzNTI3NzcwOWNlZGMzN2ZjYjQ2N2RmOGFhODhiNS4uNzM1MmE0MGU4MzM1ZTA4MTllNDdj
ZTU5OTZiZDU1NGFiMjM4MTIxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpA
QCAtNzg0LDYgKzc4NCwxMiBAQCBzdGF0aWMgYm9vbCBzaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNT
U0F0dHJpYnV0ZVNldHRlcnMoKQogICAgICAgICBbc2VsZiBfaW5qZWN0T3V0bG9va1F1aXJrc1Nj
cmlwdF07CiAgICAgfQogCisgICAgaWYgKFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVm
YXVsdHNdIG9iamVjdEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdKSB7CisgICAg
ICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFu
ZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRd
OworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7CisgICAgICAgIF9wcml2YXRlLT5w
YWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOworICAgIH0KKwogICAgIFtXZWJGcmFtZSBfY3JlYXRlTWFp
bkZyYW1lV2l0aFBhZ2U6X3ByaXZhdGUtPnBhZ2UgZnJhbWVOYW1lOmZyYW1lTmFtZSBmcmFtZVZp
ZXc6ZnJhbWVWaWV3XTsKIAogICAgIE5TUnVuTG9vcCAqcnVuTG9vcCA9IFtOU1J1bkxvb3AgbWFp
blJ1bkxvb3BdOwpAQCAtMjQ3MSwxNCArMjQ3NywxNiBAQCBzdGF0aWMgaW5saW5lIElNUCBnZXRN
ZXRob2QoaWQgbywgU0VMIHMpCiAKIC0gKHZvaWQpc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAgX3ByaXZhdGUtPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgPSBmbGFnOwotICAgIGlmIChmbGFnKQotICAgICAgICBbc2VsZiBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ6ZmFsc2VdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpICE9IGZsYWcpIHsKKyAg
ICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIC8vIFNldCBzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2VsZiBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ6IWZsYWddOworICAgIH0KIH0KIAogLSAoQk9PTClpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPnNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlLT5z
ZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIC0gKHZv
aWQpc2V0TWVtb3J5Q2FjaGVEZWxlZ2F0ZUNhbGxzRW5hYmxlZDooQk9PTCllbmFibGVkCkBAIC01
NDMwLDE3ICs1NDM4LDE3IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NG
cm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBqCiAKIC0gKHZvaWQpc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBpZiAoX3ByaXZhdGUt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAhPSBmbGFnKSB7Ci0gICAgICAgIF9wcml2YXRlLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBmbGFnOwotICAgICAgICBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07CisgICAgaWYgKF9w
cml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSAhPSBm
bGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOwor
ICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFy
ZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQ6IWZsYWddOwogICAgIH0KLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3Nl
bGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpmYWxzZV07CiB9CiAKIC0gKEJP
T0wpc21hcnRJbnNlcnREZWxldGVFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5n
cygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogLSAodm9pZClzZXRDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3RGF0YS5oCmluZGV4IGFkZWFiZTdlZTJjZmEyMmNiZGMyOGUzYmE4MzM3OGY0NjAz
ZTAyZTIuLjM0N2FiYTQ1Nzg1ZjE4MGU4Yzk3NDZjY2NiNjJhNGU2NzgwZTk0YzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAgLTE0Niw5ICsxNDYsNiBAQCBwcml2
YXRlOgogICAgIEJPT0wgaGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2Vy
IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogCi0gICAgQk9PTCBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQ7Ci0gICAgQk9PTCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotICAgICAg
ICAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAgICAgQk9PTCBkYXNoYm9hcmRCZWhh
dmlvckFsd2F5c1NlbmRNb3VzZUV2ZW50c1RvQWxsV2luZG93czsKICAgICBCT09MIGRhc2hib2Fy
ZEJlaGF2aW9yQWx3YXlzU2VuZEFjdGl2ZU51bGxFdmVudHNUb1BsdWdJbnM7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRleCBlMjc2NmYwMWEzNWJjMDdlZWFhNDg2
YzI2NTViNGMwMWJhZWQ5N2E2Li5jNjgxZjA5YmE3MjE2ZDhkMjE2ZTU5NzUyNmFmODU4MWQwMDNk
ZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KQEAgLTk1LDEw
ICs5NSw2IEBAIExheWVyRmx1c2hDb250cm9sbGVyOjpMYXllckZsdXNoQ29udHJvbGxlcihXZWJW
aWV3KiB3ZWJWaWV3KQogCiAgICAgc2hvdWxkQ2xvc2VXaXRoV2luZG93ID0gb2JqY19jb2xsZWN0
aW5nRW5hYmxlZCgpOwogCi0gICAgc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gIVtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWRdCi0gICAgICAgIHx8IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2Vy
RGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKLQotCiAg
ICAgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCsrOwogCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRF
Uk5BVElWRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4IDhhNGUwZWNhODQxNWM1OGE3ZjZj
YjA3MGYzMmUwMTI5NDE5M2ZjN2IuLjA0NjM2ZmJkZjliZWQ2YTZkZTA5YTU5YzY5NjA2MGZjNjc0
M2NjNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0zMjYsMTggKzMyNiw2IEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKFFX
ZWJQYWdlQWRhcHRlciogYWRhCiAgICAgYWRhcHRlci0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0QXV0
aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodmFsdWUpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyICph
ZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQq
PihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChlbmFibGVkKTsKLX0KLQotCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwg
Ym9vbCBlbmFibGVkKQotewotICAgIHN0YXRpY19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRl
ci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGVuYWJsZWQpOwotfQotCi0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1
dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqIGFkYXB0ZXIsIGNvbnN0IFFTdHJp
bmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIGFkYXB0ZXItPnBhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQo
bmFtZSkuZXhlY3V0ZSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKaW5kZXggMDk4MDllZjk3NjMx
NzE0Y2Y4OWU4MmYzYmRkZTQyYWRjMGViNDZlMC4uOTNkMDY4M2U5MzE3NjRjMWJjZmE4Mjc4NGI4
ODhkZWRiODgzYmU1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApAQCAtOTQsOCArOTQsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRh
cHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICBz
dGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJp
bmcmIG5hbWUpOwogICAgIHN0YXRpYyBib29sIGZpbmRTdHJpbmcoUVdlYlBhZ2VBZGFwdGVyKiwg
Y29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0JiBvcHRpb25BcnJheSk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFFXZWJQYWdlQWRhcHRlciosIGJv
b2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyBRVmFy
aWFudExpc3Qgc2VsZWN0ZWRSYW5nZShRV2ViUGFnZUFkYXB0ZXIqKTsKICAgICBzdGF0aWMgUVZh
cmlhbnRMaXN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKFFXZWJQYWdlQWRhcHRlciosIGlu
dCBsb2NhdGlvbiwgaW50IGxlbmd0aCk7CiAgICAgc3RhdGljIHZvaWQgY29uZmlybUNvbXBvc2l0
aW9uKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IGNoYXIqIHRleHQpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAppbmRleCBhZmNjOGQ2
NGVmZTBhNTRiZjFhM2IwYmJjNWVjNWFhMjQ5MDg3YTAzLi4zY2YwODcwMjBlY2VmMGYzMjU2MWYz
YjAyNTgzNDUxMzI0YTZiNGFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApAQCAtMzMzLDE4ICszMzMsMjcgQEAgdm9pZCBFZGl0
b3JDbGllbnRRdDo6cGFnZURlc3Ryb3llZCgpCiAKIGJvb2wgRWRpdG9yQ2xpZW50UXQ6OnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVF
bmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdlKQor
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNt
YXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAgICBib29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50Owor
ICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAg
cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0
aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7CisgICAgICAgIHBhZ2UtPnNldHRp
bmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSk7CisgICAgfQogfQogCiBib29s
IEVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewot
ICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgUGFnZSog
cGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3Bl
bGxDaGVja2luZygpCkBAIC01NDEsOCArNTUwLDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNs
aWVudFF0KFFXZWJQYWdlQWRhcHRlciogcGFnZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFk
YXB0ZXIpCiAgICAgLCBtX2VkaXRpbmcoZmFsc2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2Up
Ci0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdk
NDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTkyNGIyZi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0
MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuaApAQCAtMTExLDkgKzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
aXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChib29sIGIpIHsgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBiOyB9Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGlu
Z0NhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDgg
KzExOSw2IEBAIHByaXZhdGU6CiAgICAgUVdlYlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9v
bCBtX2VkaXRpbmc7CiAgICAgYm9vbCBtX2luVW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdv
cmtzIGRpZmZlcmVudGx5IC0gZG9uJ3QgcmUtZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGQ5ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5Mzcx
NmRhMzM2NjUuLmM0YzU0YThkNjkxMjYyMmVmYTFiMzQ2NzgwZWZkOTEwNWVmODFjN2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmNwcApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jh
bmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9y
Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMw
NCwxOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihX
ZWJOb3RpZmljYXRpb24qIC8qbm90aWZpY2F0aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQog
CiBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17
IAotICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNFOyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQ
YWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQodm9pZCkKIHsKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsKLSAg
ICBtX3dlYlZpZXctPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgmZW5hYmxlZCk7
Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBh
Z2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAog
Ym9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6
UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4v
V2ViVmlldy5jcHAKaW5kZXggZDYyMTQxMTUyMDg2NTFjM2QzNjdlMmUyYWQ2MDNlOGU1Mjk4MWVl
ZS4uM2I0NWY3ZTY4ZTJhODhiNTM5MGVjYjMyNTI3Nzc1MDRkOGFlZjE5NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAKQEAgLTM2NSw3ICszNjUsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1f
aXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKICAgICAsIG1fcGFpbnRDb3VudCgwKQogICAgICwgbV9o
YXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkKLSAgICAsIG1fc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9kaWRDbG9zZShmYWxzZSkKICAgICAsIG1faW5JTUVD
b21wb3NpdGlvbigwKQogICAgICwgbV90b29sVGlwSHduZCgwKQpAQCAtMzczLDcgKzM3Miw2IEBA
IFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwgbV90b3BMZXZlbFBhcmVudCgwKQogICAgICwgbV9k
ZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2ZShmYWxzZSkKICAgICAsIG1fdHJhbnNwYXJlbnQo
ZmFsc2UpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiAg
ICAgLCBtX2xhc3RQYW5YKDApCiAgICAgLCBtX2xhc3RQYW5ZKDApCiAgICAgLCBtX3hPdmVycGFu
KDApCkBAIC00MDgyLDMyICs0MDgwLDM2IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
Vmlldzo6dHlwaW5nU3R5bGUoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFn
KQogewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gISFmbGFnOwotICAgIGlmICht
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCkKLSAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGlu
Z3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIC8vIFNl
dCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4
Y2x1c2l2ZS4KKyAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghZmxh
Zyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBb
cmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgPyBUUlVFIDogRkFMU0U7
CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5d
ICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
PSAhIWZsYWc7Ci0gICAgaWYgKG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCkKLSAg
ICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpZiAobV9wYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgPT0gISFmbGFn
KSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCghIWZsYWcpOworICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAg
CiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxl
ZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA/
IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBT
X09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYzkzNzM0NjJmZWYyODQxZTU3N2MwNjA5ZDAz
ODJmMWI3MzYwN2I2ZS4uZmNiNzgyNDg0MzA4M2NlZTNjMDgzNTk4ZDNhMThlOWQ3ZmJjNGU5OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuaApAQCAtMTExMiw4ICsxMTEyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJv
b2wgbV9pc0JlaW5nRGVzdHJveWVkOwogICAgIHVuc2lnbmVkIG1fcGFpbnRDb3VudDsKICAgICBi
b29sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKICAgICBib29sIG1fZGlkQ2xvc2U7CiAgICAgYm9vbCBtX2hhc0N1c3RvbURyb3BUYXJnZXQ7
CiAgICAgdW5zaWduZWQgbV9pbklNRUNvbXBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAppbmRleCBi
OWY0NjhmNDE1NDJiY2NkMDhiZTUxMWM2NzgxNDgxZjc1M2EzY2IyLi5mZTFhZjA0YTBlZWJkODg0
ZTlkNTI3YzJlYmIyMDM2NTA5NDVmYzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNl
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcApAQCAtMjcsNiArMjcs
NyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAi
U2V0dGluZ3MuaCIKQEAgLTIwOSwxNCArMjEwLDE4IEBAIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6
OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjpzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnRXaW5DRTo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcCBi
L1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKaW5kZXgg
NWVmNjRjZDRhOWMwMTM2M2M0OTllNTdmY2Q5N2FkZDVkOWMzMTVhYS4uNzI2YWQwYTNmODg4YWM5
NTY1MWM2YTMyMjdkNDJmM2IzNjhlMmE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9X
ZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVk
ZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJG
cmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcu
aCIKQEAgLTE0OSwxNCArMTUwLDE2IEBAIGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNob3VsZERlbGV0
ZVJhbmdlKFJhbmdlKikKIAogYm9vbCBFZGl0b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIG1fcGFnZS0+
c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9y
Q2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6Omlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAwNGRiMzRmYWNhZDUwNzVkNDQzMWFkODdmYmQ1
OWM0YjUwNDkxZDQ5Li4xNGZjNmRkMGM0MmE4NzBiZGY5ZWQ4ZWEyYTBlYmJjMzA4MzhhNGYzIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTQgQEAKKzIwMTMtMDMtMDUgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0
dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFs
cyBmcm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RS
dW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAg
ICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRl
clRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVm
YXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9U
ZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRl
clRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2Vi
Vmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQv
RHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNl
dHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVz
dFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKwogMjAxMy0wMy0wNCAg
TWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4KIAogICAg
ICAgICBbV0syXVtFRkxdIEFkZCBjYWxsYmFja3MgdG8gdGhlIFdLVmlld0NsaWVudCB0byBoYW5k
bGUgV2ViIFByb2Nlc3MgY3Jhc2ggYW5kIHJlbGF1bmNoCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwCmluZGV4IDIzYjcyMzgyYzk5N2VkZGMxZmZiMzQ5MDk5YzlhM2Q5MDFhNmZkMjQuLjA1
NGIxNzA2MzBkMzJiYTA2MjE1MjM1MGQwMDBiZTE0NjE4MWFjZTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwCkBAIC0xNTA2LDE2ICsxNTA2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYg
cmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAgCiAK
LXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRz
W10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEp
Ci0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRl
c3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RH
ZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAgLTE1
MjYsMTYgKzE1MTYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xs
ZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmpl
Y3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRT
dG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpT
T2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1l
bnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0
aW9uKQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVu
bmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIxNTAsOSArMjEzMCw3
IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAg
ICAgIHsgInNldFBsdWdpbnNFbmFibGVkIiwgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRQcmludGluZyIsIHNldFByaW50aW5nQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsIHNldFByaXZhdGVCcm93
c2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIiwgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNlcmlhbGl6ZUhUVFBMb2FkcyIsIHNldFNl
cmlhbGl6ZUhUVFBMb2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCIsIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIsIHNldFNwYXRp
YWxOYXZpZ2F0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0b3BQ
cm92aXNpb25hbEZyYW1lTG9hZHMiLCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwg
c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuaAppbmRleCBjY2E0MWY3NGZhNDY4M2QxN2M1ODRiYjI4OWQ2Y2EwZmQz
MzI4NjI1Li5kOTg0NzAwZmI3OGU3OGIxNWU4ZjY2M2QzNGE4Y2RiOWQwZWZiY2MzIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0xMDMsOCArMTAzLDYgQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0g
ICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAgIHZv
aWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFiS2V5
Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29t
cGF0aWJpbGl0eU1vZGUoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5h
YmxlZChib29sIGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA3MTY1MmRjZDEyMzhhMTM2NDM3MmIwOTgzNTgwYmMw
MmQyODM4MTA1Li45NTY0NDRiYzdmODU1YWNhOWVhZjQ2NWMwMjQxYmVhN2JiNWQ4NmI4IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNw
cApAQCAtMTUxLDcgKzE1MSw2IEBAIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCiBEdW1wUmVuZGVyVHJlZSogRHVtcFJlbmRlclRyZWU6OnNfY3VycmVudEluc3Rh
bmNlID0gMDsKLWJvb2wgRHVtcFJlbmRlclRyZWU6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCA9IGZhbHNlOwogCiBzdGF0aWMgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYg
ZmlsZU5hbWUpCiB7CkBAIC0yOTUsNyArMjk0LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVz
ZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnMK
IAogICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxzZTsK
LSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3Bv
bGljeURlbGVnYXRlRW5hYmxlZCA9IGZhbHNlOwogICAgIHdhaXRGb3JQb2xpY3kgPSBmYWxzZTsK
ICAgICB0ZXN0RG9uZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKaW5kZXggYTEzYWZiMTJk
OGQ1MjM4MzM1NDdmMzNjMjcwOTA0MWUwMGI3OTgzNi4uMjY3YzRkY2FkZjZlZDA3NjU3NmQ3Y2Ri
Y2QwMGFkZjM5ZGNlMDljMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCkBAIC0xMDIsOCArMTAyLDYg
QEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2Vi
Q29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEluc2VydFRl
eHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKIAot
ICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1
cm4gc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBzX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgYm9vbCBkaWRSZWNlaXZlQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCiAgICAgLy8gQmxh
Y2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlQbGF0Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0
aG9kCkBAIC0xNDgsNyArMTQ2LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9hY2NlcHRzRWRp
dGluZzsKICAgICBib29sIG1fbG9hZEZpbmlzaGVkOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFi
bGVkOwogfTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
VGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggYWFlODQzODhhOGMyZTJiMzE0MWQ2ODMz
N2QxOGE0YWJmMWQzNDVmNi4uMjEwMjBkOWQ4ZmUwMzA2ZGY3YWM5NzQyMjNkMDRmM2UwMGMwNWU5
YyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0
UnVubmVyQmxhY2tCZXJyeS5jcHAKQEAgLTI2MCwxNyArMjYwLDYgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0
OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+
c2V0WFNTQXVkaXRvckVuYWJsZWQoZmxhZyk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQmxhY2tCZXJy
eTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBVTlVTRURfUEFSQU0o
ZmxhZyk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRU
YWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCBjeWNsZXMpCiB7CiAgICAgaWYgKCFtYWlu
RnJhbWUpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCmluZGV4IGE0NGVjYmQ3ODBkYTYxZDli
ZmU3ZTljODBlNTIxZjZiMWI5MDc1YzguLmQ0YTYwMGI4MjBlOTMwNzNkYjg5NzYxZWJhNzI5MGMx
MWZjZDBhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0xNDksOCArMTQ5LDYg
QEAgcHJvdGVjdGVkOgogICAgIFdlYktpdDo6V2ViUGx1Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0
OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CiAgICAgdm9pZCBz
ZXRTdGF0dXNUZXh0KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdm9pZCBkaWRTdG9w
TG9hZGluZygpOwotICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICBi
b29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZvaWQgc2hvd0Nv
bnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51
RGF0YSYpOwogICAgIFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQo
KTsKICAgICB2b2lkIHByaW50UGFnZShXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0zNjgsMTQgKzM2
Niw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmco
KTsKICAgICAgICAgQmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBi
b29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBX
ZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLSAgICB7
Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShX
ZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEm
IGNvbnRleHRNZW51RGF0YSkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3dD
b250ZXh0TWVudShmcmFtZSwgY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAK
aW5kZXggNDc5NTFlZmFjMGEwZDg4ZDBjM2M0NDUwZDdiN2FhM2QwMjY5NmRlOS4uNWMwMmY3Yzkx
ZjBlNDhmNThmZDUxMmVhZTg2ZGVmNmI5MzdjNzBjMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAK
QEAgLTIwOCw4ICsyMDgsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRlcmZhY2Vz
KiBpbnRlcmZhY2VzKQogICAgIGJpbmRNZXRob2QoInRleHRTdXJyb3VuZGluZ05vZGUiLCAmVGVz
dFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1
dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7CiAgICAg
YmluZE1ldGhvZCgiZW5hYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZW5hYmxlQXV0
b1Jlc2l6ZU1vZGUpOwotICAgIGJpbmRNZXRob2QoInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCIsICZUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwotICAgIGJpbmRN
ZXRob2QoInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0
TW9ja0RldmljZU9yaWVudGF0aW9uIiwgJlRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRh
dGlvbik7CiAgICAgYmluZE1ldGhvZCgiZGlkQWNxdWlyZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5u
ZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk7CiAgICAgYmluZE1ldGhvZCgiZGlkTG9zZVBvaW50
ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZExvc2VQb2ludGVyTG9jayk7CkBAIC00MTAsMTIgKzQw
OCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1fc2hvdWxkU3RheU9uUGFnZUFm
dGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBmYWxzZTsKICAgICBtX3Nob3VsZEJsb2NrUmVkaXJl
Y3RzID0gZmFsc2U7CiAgICAgbV93aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsID0gZmFs
c2U7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOwotI2lmZGVmIFdJTjMy
Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi0g
ICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKICAg
ICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0cEhl
YWRlcnNUb0NsZWFyLmNsZWFyKCk7CkBAIC02NzQsMTYgKzY2Niw2IEBAIGJvb2wgVGVzdFJ1bm5l
cjo6c2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2ludGVy
Y2VwdFBvc3RNZXNzYWdlLmlzQm9vbCgpICYmIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UudG9Cb29s
ZWFuKCk7CiB9CiAKLWJvb2wgVGVzdFJ1bm5lcjo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KSBjb25zdAotewotICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQot
Ym9vbCBUZXN0UnVubmVyOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25z
dAotewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0K
IGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0CiB7
CiAgICAgcmV0dXJuIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKQEAgLTE0OTAsMjAg
KzE0NzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0KHN1cnJv
dW5kaW5nVGV4dC50ZXh0Q29udGVudCgpLnV0ZjgoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAw
ICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3Vs
dCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9v
bCgpKQotICAgICAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBhcmd1bWVu
dHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lk
IFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaG91bGRE
dW1wUmVzb3VyY2VQcmlvcml0aWVzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCA4OGQ4
YjM3MTU1OTI5MTA3MTdhMWY4OGUyNTNjZTVhZjVhMmRiODk3Li5mZWFkYTg4ZjgyMmE3MDUyYjc1
YzE3ZDM3MWFiNGFmMDFmYmIwMTAzIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMTgsOCArMTE4
LDYgQEAgcHVibGljOgogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25z
dDsKICAgICBib29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0OwogICAg
IGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdDsKLSAgICBib29sIGlzU21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVBy
aW9yaXRpZXMoKSBjb25zdDsKICNpZiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgIFdlYktpdDo6
V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsK
QEAgLTI3MCwxMSArMjY4LDYgQEAgcHJpdmF0ZToKICAgICAvLyBsZW5ndGggdG8gcmV0cmlldmUu
CiAgICAgdm9pZCB0ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKIAotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9kZWxl
dGUuIFRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotICAg
IC8vIEVuYWJsZSBvciBkaXNhYmxlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugc2VsZWN0aW9uIG9uIGRv
dWJsZSBjbGljay4KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZW5hYmxlQXV0
b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZv
aWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKIApAQCAtNjcwLDEwICs2NjMsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dpbGxT
ZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGw7CiAKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkOwotCi0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7
Ci0KICAgICBib29sIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKIAogICAgIHN0ZDo6
c2V0PHN0ZDo6c3RyaW5nPiBtX2h0dHBIZWFkZXJzVG9DbGVhcjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJv
eHkuY3BwCmluZGV4IDg2ODEzM2ZlNDcwZjkxYWVmY2VkMWZjMTk2YmNhOGY3MGQzMGQwOTQuLmNj
NTA3NTM0ZTE2ZDk4NTlhMjJjNTdkYzIxZDU0YWM1YjNlMmFhZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVz
dFByb3h5LmNwcApAQCAtOTc4LDE2ICs5NzgsNiBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRp
ZFN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJwb3N0UHJv
Z3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKLWJvb2wgV2ViVGVzdFByb3h5QmFz
ZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRl
cmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci19Ci0K
LWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkKLXsKLSAgICByZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLX0KLQogdm9pZCBXZWJUZXN0UHJveHlCYXNl
OjpzaG93Q29udGV4dE1lbnUoV2ViRnJhbWUqLCBjb25zdCBXZWJDb250ZXh0TWVudURhdGEmIGNv
bnRleHRNZW51RGF0YSkKIHsKICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVudFNlbmRlcigpLT5z
ZXRDb250ZXh0TWVudURhdGEoY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCA2OTA1Y2RhNmY3Y2QxOGFhOGU1MTBi
Zjk2YmQ3ZDMyZGU4NzdiZWExLi5kZDYyZjNhMjEwZmIwZjExY2M3OTVhZWUwOTlmYWU4NDZjZTA3
NDNiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
CkBAIC0xNjksMjAgKzE2OSw2IEBAIGJvb2wgV2ViVmlld0hvc3Q6OnNob3VsZEFwcGx5U3R5bGUo
Y29uc3QgV2ViU3RyaW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdlCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKLWJvb2wgV2ViVmlld0hvc3Q6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXZWJWaWV3SG9zdDo6aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVy
biB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBXZWJW
aWV3SG9zdDo6aGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKQogewogICAgIGlmIChtX2VkaXRD
b21tYW5kTmFtZS5lbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmgKaW5kZXggYzE2ZDVmZjc4ZTU2ZDE1OGUxNTYyZDA2YTE2YzZkZjJjNzhmMTJmOC4u
MzdlMDBjMjgwYWQ3YTgzMDdhNDNmZDZmMjg4NzgxYTYxNDYyMmQ4ZiAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgY2xh
c3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2Vi
S2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0
ZWRSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiBmcm9tLCBjb25zdCBXZWJLaXQ6OldlYlJh
bmdlJiB0bywgV2ViS2l0OjpXZWJUZXh0QWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwog
ICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdl
Jik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmIHN0eWxlLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7Ci0gICAgdmlydHVhbCBib29s
IGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJy
ZW50S2V5Ym9hcmRFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbEFsZXJ0RGlhbG9n
KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZpcnR1
YWwgYm9vbCBydW5Nb2RhbENvbmZpcm1EaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdl
YktpdDo6V2ViU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBlMzc4NWIxMDUyOTUyMmIxYjMzY2M0NzM2MTQ3OGFj
MGI0YmJkYmQxLi5kZDY5MzllNTA0MjRlOTY4MmI4YzJhODBlM2I1ZTM4NTU1MzA1N2JjIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAK
QEAgLTMwNiw4ICszMDYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1
bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNl
dFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3KCksIC0xKTsKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KG1haW5WaWV3KCksIHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NT
R3JpZExheW91dEVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNl
KTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6c2V0RGVmZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0
dGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwCmluZGV4IDg4NzU2ZGNkNzJlNjc0ZjdlMDZhYzU2ZjA0MzE2Mjk0NmNj
NmVlMzAuLmY4Y2YzY2VlNTU2OWJkMjIwOGU0MjE2MzY5ZWFkNTk5MDhhNjQ5OTEgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTI3MiwxMSArMjcyLDYg
QEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sKQogICAgIG5vdEltcGxlbWVu
dGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogc3RhdGlj
IEVpbmFfQm9vbCB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICB3YWl0VG9E
dW1wV2F0Y2hkb2cgPSAwOwpAQCAtNDIxLDExICs0MTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICBld2tfc2V0dGluZ3Nf
aWNvbl9kYXRhYmFzZV9wYXRoX3NldChkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiB2b2lk
IFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBl
d2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQoYnJvd3Nlci0+bWFp
blZpZXcoKSwgIWZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1
bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJl
ZS5jcHAKaW5kZXggNWEzNTc0ZjcxMjEzYjQ1NjI3MTVkMmM4ZWRkZTA5NmIzY2E4ZTBkNS4uY2Vl
NDYxYzU4MWQzZjE5MzJlNDFkNDc0NjU0NGVkYmY2NDYwZGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01MDEsOCArNTAxLDYgQEAgc3RhdGlj
IHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4odHJ1ZSk7CiAgICAg
d2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgod2Via2l0X2dldF9pY29uX2RhdGFiYXNlKCks
IDApOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQod2ViVmlldywgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKHdlYlZpZXcsIGZhbHNlKTsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CiAKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCBmMWMzMDY5Mjc2
MjZiZmNlMjE0MjIyNjc5N2Q2OThiYWI2N2JkOTc2Li5mOWViYjBhNmE4ZDUxZTRkN2E2M2RlNWJl
ZGZmODhmMmZlNzg1NjQ3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVz
dFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJH
dGsuY3BwCkBAIC0zMjMsMTEgKzMyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNL
ZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3
ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFnKTsKLX0KLQogc3Rh
dGljIGdib29sZWFuIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHNldFdh
aXRUb0R1bXBXYXRjaGRvZygwKTsKQEAgLTQ4NSwxMSArNDgwLDYgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgd2Via2l0X2lj
b25fZGF0YWJhc2Vfc2V0X3BhdGgoZGF0YWJhc2UsIDApOwogfQogCi12b2lkIFRlc3RSdW5uZXI6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChmbGFnKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChi
b29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVf
Z2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0KaW5kZXggOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1
OC4uY2IxNGExNTdhNDU4NzZiMTdjNGJmNGYzMDJkMmY2YzU1NDlhOGI0YiAxMDA2NDQKLS0tIGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI3OCw4ICsxMjc4LDYgQEAg
c3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkK
ICAgICAgICAgZ1Rlc3RSdW5uZXItPnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB9CiAK
LSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6WUVT
XTsKLQogICAgIFtXZWJWaWV3IF9zZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwog
ICAgIFtXZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOwogICAgIFtXZWJWaWV3
IF9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzOk5PXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW0KaW5kZXggZGZiOWE2ZWNmZDc0YzM3MzM2YzMwNTA0MmE2MmM5ODIxMmJj
NzBjMi4uNzljODRmZWFjN2E2ZWJmYjFmYTc1MWIzNWMxMzg4MWRlZWNjYWYwOSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTYzNCwxNiArNjM0LDYgQEAg
dm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIFtb
bWFpbkZyYW1lIHdlYlZpZXddIF91cGRhdGVBY3RpdmVTdGF0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21h
aW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmxhZ107Ci19Ci0K
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDpmbGFnXTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdh
aXRUb0R1bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgd2FpdFVudGls
RG9uZVdhdGNoZG9nRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIsIHZvaWQqIGluZm8pCmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDIzZmQz
NWMxYzZmYjVmMTc5MzNiNjUzMmJkNGM4NzQxNzAwZThjZDIuLmRmYTY3MmI2NzRkZWMzY2U5NzA2
MmY1OGZlZmNmYzk5MzgwMWEwNWYgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwCkBAIC0xOTIsOCArMTkyLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNl
dHRpbmdzKCkKIAogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFi
bGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIo
KS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICAgICAvLyBnbG9iYWxTZXR0aW5ncyBtdXN0
IGJlIHJlc2V0IGV4cGxpY2l0bHkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0
LmNwcAppbmRleCA2MGM1M2JiMDM2NzZiM2Y1N2ViMmU0OGZkM2IyNWJjOGEzMTU1NTNiLi42NmRl
NTkzOTc4ZjcwYzk4ZGFhMzY2YzNkYTBkY2Q2OThjMzcyZWJhIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTcyMCwxNiArNzIwLDYgQEAgdm9pZCBUZXN0UnVu
bmVyUXQ6OnNldFNjcm9sbGJhclBvbGljeShjb25zdCBRU3RyaW5nJiBvcmllbnRhdGlvbiwgY29u
c3QgUVN0cmluZyYKICAgICBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0U2Nyb2xs
QmFyUG9saWN5KG8sIHApOwogfQogCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJs
ZSk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFi
bGUpOwotfQotCiB2b2lkIFRlc3RSdW5uZXJRdDo6ZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYg
bmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSwg
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCBkZDAyNmRl
MWIwOWE0MjBmMmE4MTFmNjhhYmZiMDA2YTFiZjA0M2VmLi5lYmIyMjk0NDRmOGNmZTFjOTQxZmU0
Y2JlZjhiNzlhMzI5ZTY2ZWY0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
aApAQCAtMTc4LDggKzE3OCw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJp
bmcmIG1vZGUpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwot
ICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2
b2lkIGV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVl
ID0gUVN0cmluZygpKTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYg
bmFtZSkgY29uc3Q7CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBR
U3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAKaW5kZXggZjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEzODM3ODczZWRhNzhj
ZWY1Yi4uODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEwNyAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04OTksMTAgKzg5OSw2
IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGlu
ZygpCiAgICAgICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5hbHNPYmplY3QoY29u
dGV4dCk7CiAgICAgfQogCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7
Ci0gICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcp
KSkKLSAgICAgICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChUUlVF
KTsKLQogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXdQcml2YXRlKFF1ZXJ5LCB3
ZWJWaWV3KTsKICAgICBpZiAoIXdlYlZpZXdQcml2YXRlKQogICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggODQyMzI2Y2JjZjU5
NThjOWVkMzQ3MGMwYjExMjUzN2U1MzA1YmI4MS4uZDgyZGYyZWU1M2MxMGFhMDE3YTQ3YWRiYWQ0
YWM3NzVhNjQwYmNkYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RS
dW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcApAQCAtNzIzLDMyICs3MjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5
KGJvb2wgZmxhZykKICAgICA6OlNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIGZsYWcgPyBXTV9T
RVRGT0NVUyA6IFdNX0tJTExGT0NVUywgKFdQQVJBTSk6OkdldERlc2t0b3BXaW5kb3coKSwgMCk7
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wg
ZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChm
cmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8
SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1
ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3
RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0Up
OwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAo
RkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2Vi
Vmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIHZpZXdFZGl0aW5nLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcg
PyBUUlVFIDogRkFMU0UpOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRv
RHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCBDQUxMQkFDSyB3YWl0
VW50aWxEb25lV2F0Y2hkb2dGaXJlZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCA5Nzc1MTEzNTBlY2ViZWQw
ZDk1MzJmZTUwNDlmZjVmYWFmNjg3M2VjLi40MTY3ODI3ZjFhNzBlZjFhM2Q3MjI0OTQ0NGZlNmMz
OTAxYzc3ZDJlIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAg
LTE1MSwxMSArMTUxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdp
bmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8vIEZJWE1F
OiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2Fp
dFVudGlsRG9uZSkKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHRpbWVvdXRTZWNvbmRzID0gMTA7
CkBAIC0yOTQsMTEgKzI4OSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVt
U2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9
CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5u
ZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91Ymxl
IGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRl
R2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBEZXZp
Y2VPcmllbnRhdGlvbiBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYTI2NzZlYmM2MDgyODNmMjU0M2Rm
NWUxODNmNTNkYmVkN2E4Nzg3NC4uMWZiNzFmYWY5NGYxODRmNTI2NWJiODY4MThmZjMyZGY4YzRh
MjhmOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA1ICBNYW51ZWwgUmVnbyBDYXNh
c25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAgICAg
ICAgQmUgc3VyZSB0aGF0IHRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXJlIHNldCB0byBvcHBvc2l0ZSB2YWx1ZXMg
YXMgdGhleSBhcmUKKyAgICAgICAgbXV0dWFsbHkgZXhjbHVzaXZlLgorCisgICAgICAgICogZWRp
dGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbDoKKyAgICAgICAg
KiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jh
c2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJs
ZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qczoKKyAgICAgICAgKiBl
ZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAoaW5pdFNwZWxsVGVz
dCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13
b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAgICAgIGFz
IGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDMtMDQgIENocmlzdGlhbiBCaWVzaW5nZXIgIDxjYmll
c2luZ2VyQGNocm9taXVtLm9yZz4KIAogICAgICAgICAodGVzdHMpIGZsZXhib3gvcmVzb3VyY2Vz
LmNzcyBzaG91bGQgdXNlIHVucHJlZml4ZWQgcHJvcGVydGllcywgZm9yIGZpcmVmb3gKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2Fi
bGVkLmh0bWwKaW5kZXggN2ViMzBkMjIxMWQwYzBkODE5YmVmMmY1ZTczNjg0ODE5ODFkZWQ2OS4u
ZDBmN2Q3YWYxNThkYTI1Yzg3ODc2Yzg4MzZhZjA3YmFhNzQ2YWI4OSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0
bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZWRpdGluZ1Rlc3Qo
KSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay1iZXNpZGUtY3Itc3Bhbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAppbmRleCA4Yjk4YmE3MmZiZmM3NDBhZmEzNWMy
ZDA4YWM5NTc3YWI2Yjk5ZTlhLi44ZDVjYjc2YjdhZGIxODc3ODQ1MWFlZWY1MjdhZWUzNmMwZDhm
YmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay1iZXNpZGUtY3Itc3Bhbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAg
ICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7Cisg
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOwogfQogCiBmdW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jh
c2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtY3Jhc2guaHRtbAppbmRleCA0MGUyNDEzODIxZThlODg0MDc5NzhhYTgzNzY5Mzc3Yzg2
ODZhZjhmLi5jOWI0NGU2YzY2ZjM5NWE1YjA3ZmYzOTMzNDQxMjYxZmE0OTM2OWE4IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1jcmFzaC5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
IH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0
bWwKaW5kZXggZjI4MGEyNmE3NjlhOTVhNzlkZGE2ZDQ0NjcxNjRkZmQ0NDYzNzUwNC4uZjc0YWEy
NjU2Nzc2NTYzNThhNzk1OTg2ZTNhMzc5OWM3ZmNlZjY3ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNw
YWNlLWltZy1jcmFzaC5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbAppbmRleCA4
NTMwZmJjNTMxYTQ1M2E2YWY1ZmJmMzlkNWY2ZjFlYWFmOThiN2RjLi43ZDgzZmIxZmExZTU4YjVl
NzQxNWUyZjNhZTFmMjk0ZGMyZGVlYzFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCkBAIC00LDcgKzQs
NyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMv
ZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1m
aXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwppbmRleCBlZTY1NWRjMDcyYWZmMmIyNWZiNzIz
NTY5NTAzMDkwOTVjMWMyZTM5Li5lN2JkZmY1Y2QyNjMzMjc4Nzg2ZTYyZjY4MjIxOTkwOWE5NzE2
YzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVz
dHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1p
bmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKQEAgLTc4LDcgKzc4LDggQEAgZnVu
Y3Rpb24gdGVzdFdpdGhDbGlja0FuZE1vZGlmeSh0YXJnZXRJbm5lckhUTUwsIGV4cGVjdGVkVGV4
dCkKICAgICBzaG91bGRCZSgid2luZG93LnNlbGVjdGVkQnlNb2RpZnkiLCB0b0xpdGVyYWwoZXhw
ZWN0ZWRUZXh0KSk7CiB9CiAKLXRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChmYWxzZSk7CitpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKHRydWUpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOwogCiB2YXIgc2hvdWxkU2VsZWN0ZUZpcnN0V29yZElubGluZSA9
ICI8c3BhbiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFibGU+c2VsZWN0bWUxPC9zcGFuPiBhbmQg
bm90IHNlbGVjdCB1cyI7CiB0ZXN0V2l0aERvdWJsbGVDbGljayhzaG91bGRTZWxlY3RlRmlyc3RX
b3JkSW5saW5lLCAic2VsZWN0bWUxIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBjZjgwMzM0MTg4NDNjZjIwYzY2NzFlN2M4NDkwN2I3
MDcyZDQ5NTIwLi4wOTRhNTNiMjg5Njg4ZDgyZGU0ZGU3MzY3YTljOTQzMzRmNTYyNDk0IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKQEAgLTI3
LDggKzI3LDggQEAgZnVuY3Rpb24gaW5pdFNwZWxsVGVzdCh0ZXN0RWxlbWVudElkLCB0ZXN0VGV4
dCwgdGVzdEZ1bmN0aW9uKQogICAgIHRlc3RGdW5jdGlvbkNhbGxiYWNrID0gdGVzdEZ1bmN0aW9u
OwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgIHRlc3RSdW5uZXIuc2V0QXN5bmNocm9u
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0cnVlKTsKICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsKICAgICB2YXIgZGVzdGluYXRpb24g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RWxlbWVudElkKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13
aXRoLXVuZGVyc2NvcmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCmluZGV4IGNhNTkz
NWZlMDAwNWE1YTA2MTM1MmNmOWEyM2VmNjMxMjNiMTZhMzYuLjQwNjA3MTgxMGQwMWJiOThlNmU1
ZjEzYzM4ZDYwOTNkMzZlN2VhYTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tl
ZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbApAQCAtMjEsNyArMjEsOCBAQCBpbml0U3BlbGxU
ZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUp
IHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQg
d2l0aG91dCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIHZhciB4
ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0
VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8g
MjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcgKzUwLDggQEAg
aW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9u
KHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3Bl
bGxlZCB3b3JkIHdpdGggdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAg
IHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlv
bi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQu
b2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVp
Z2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLmh0bWwKaW5kZXggMjQ5MjczZDJlMGFiYWI5ZDliY2VjOTI3YTA5YzNmYzQ2Y2Uw
MjdjZi4uOWQyNDlmZDdmMGVmZWUyNDNiYzZiMGZiMjllNWNlZTU5NTZlYzRlYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13
b3JkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3Vi
bGUtY2xpY2tlZC13b3JkLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVz
dGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAi
Iik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRy
YWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9u
Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwog
ICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0
aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3ICs1MCw4IEBAIGluaXRTcGVsbFRlc3Qo
ImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygp
IiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0
cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9u
Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwog
ICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0
aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDViOTg2OTEwMzc3NDFiMzk4ZmZjNWE2NzQzMmYyZGYxNDJjYTFhNzku
LmRiMDQ3ZDMyNjhlNWE1OGFiZjE3ZTM2ZGRmMmRhNzBmZjk2OTY0YzAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNzksOSArMzc5LDYgQEAgaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tYXV0aG9yaXphdGlvbi13aXRoLWVtYmVk
ZGVyLmh0bWwKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5h
ZGREaXNhbGxvd2VkVVJMCiBwbHVnaW5zL2dldC11cmwtdGhhdC10aGUtcmVzb3VyY2UtbG9hZC1k
ZWxlZ2F0ZS13aWxsLWRpc2FsbG93Lmh0bWwKIAotIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKLWVk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0
YWJsZS5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5wYWdlUHJvcGVydHkKIHByaW50aW5nL3BhZ2UtcnVsZS1zZWxlY3Rpb24uaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191692</attachid>
            <date>2013-03-06 02:03:59 -0800</date>
            <delta_ts>2013-03-07 01:18:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130306110004.patch</filename>
            <type>text/plain</type>
            <size>87158</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ0NjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDAxMDU5MzU5NGNlOTg4
ODhjNmExMjBhNGJlNTczNmQxNjExZTZmNy4uNjAxYzY4MmQ2ZDI2NWI2NjI5NTkzYjJjYWY5M2U4
MWE3MTQyOGE4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDEzLTAzLTA2ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuaW46IEFkZCBu
ZXcgc2V0dGluZyB3aXRoIGZhbHNlIGFzIGluaXRpYWwgdmFsdWUuCisKIDIwMTMtMDMtMDQgIFJv
Z2VyIEZvbmcgIDxyb2dlcl9mb25nQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBB
cHBsZVdpbiBidWlsZCBmaXguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwppbmRleCAyNGU2
OWQwZTcwMWRjN2NjMzc1ZWJjODk5MjljNzc0YjBjNmNiMzYxLi45MThmY2UzMWMwNTFjNGVhMzZj
MGEyYjJhYzU3MmY0NjJjYjQ2YmVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVy
cnkvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMCBAQAorMjAxMy0wMy0wNiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBBcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorCiAyMDEzLTAzLTA0ICBJcmlzIFd1ICA8c2h1d3VAcmlt
LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gVXBzdHJlYW0gc2VsZWN0aW9uIHN0YXJ0IGFu
aW1hdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggMDE2YmNkNTA5OWNhY2JhMjcx
ZmE0YzNkOGNhOWJjMWQxMjEzOTdmZS4uYTVjMTkxMWY1Y2ZjNmQ3MWE2OWY4ZWMzMjdlNGZhNGZl
YWE2ZWE4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAx
My0wMy0wNiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgUGFnZSBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAor
ICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFuZCB1cGRhdGUgQVBJIGFj
Y29yZGluZ2x5LgorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6IEFkZCBuZXcgQVBJ
IHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKKyAgICAgICAgYW5kIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MuCisgICAgICAgICogcHVibGljL1dlYlZp
ZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKyAgICAgICAg
KiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVu
dEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRv
ckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6IFVzZSBuZXcK
KyAgICAgICAgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKyAgICAgICAgKiBzcmMvV2ViU2V0
dGluZ3NJbXBsLmNwcDogSW1wbGVtZW50IG1ldGhvZHMgZXN0YWJsaXNoaW5nIHRoZSBwYWdlCisg
ICAgICAgIHNldHRpbmdzLgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAgICAgKFdlYlNldHRpbmdz
SW1wbCk6IEltcGxlbWVudCBuZXcgQVBJIHRvIG1hbmFnZSB0aGUgbmV3IHNldHRpbmdzLgorCiAy
MDEzLTAzLTA0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE0NDU2Mi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCBlOWZhMTQw
ODA5MGFhZjZiM2U5MzNjNzk1MmYxNjY0MzM0ZTFjMzQ4Li42NWQyMTYzNTljYzc3YWRkZmYxZDcx
M2YzYmVlZmY5YjVmZThhZWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIw
MTMtMDMtMDYgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNv
ZGUgcmVsYXRlZCB0byBEUlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcDoKKyAgICAgICAg
KiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaDoKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRp
dG9yQ2xpZW50RWZsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRFZmwpOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oOgorICAgICAgICAoRWRpdG9y
Q2xpZW50RWZsKToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQgYXR0ZW1wdGVkIGJ1aWxkIGZpeC4gQWRkcyBiYWNrIHNv
bWUgaW5jbHVkZXMgcmVtb3ZlZCBpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCmluZGV4IDBjMjk3MmQ5ZmVjM2Fi
NzlkMGZjZmFkN2E1NTgxOTZhMTIyZTJiNmUuLjFlYjJhZjI5ZTQ3MWZhZDcyZWI1NGU5YWYxMDZk
MjcwM2ExMDc5OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxMy0wMy0w
NiAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBB
ZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBh
Z2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQw
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBu
ZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICBSZW1vdmUgY29kZSByZWxh
dGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1vcmUuCisKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpFZGl0
b3JDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50KToKKwogMjAxMy0wMy0wMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0
aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgcm9sbG91dCBvZiBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL3IxNDQ1MzAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1YzAyOTAyZjRiYzRhMmE1
MTM1NjJlMDIxYjJjNzUzMDMzOWYwZDlhLi5lNjFkYzU5N2EwY2Q1YThkNjc4ZDI1OTBhOWYxOTkw
MzIyOWQ1NzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMtMDYg
IE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRk
IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdl
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3
IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAg
ICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3JvdXBO
YW1lOl0pOiBJbml0aWFsaXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVsdHMu
CisgICAgICAgICgtW1dlYlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpd
KToKKyAgICAgICAgKC1bV2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRd
KToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAgICog
V2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEubW06
CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgTGFzemxv
IEdvbWJvcyAgPGwuZ29tYm9zQHNhbXN1bmcuY29tPgogCiAgICAgICAgIEpTQ19PQkpDX0FQSV9F
TkFCTEVEIHNob3VsZCBiZSByZW1vdmVkIGZyb20gRmVhdHVyZURlZmluZXMuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxv
ZwppbmRleCA5MzdmYTkxOTVlZWQ0YjhhN2E3NDA2OTZkYTYxNDdkNDIxOTQwMDE1Li4wMjg4OTAy
OWU0ZTliNTFiN2ZiMGQwM2IyMjU0OTcwZGUxZWU5ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI1IEBACisyMDEzLTAzLTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNl
dHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAg
ICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9y
ZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNw
cDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVu
dFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAg
ICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEzLTAzLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBhdHRlbXB0ZWQgYnVpbGQgZml4LiBBZGRz
IGJhY2sgc29tZSBpbmNsdWRlcyByZW1vdmVkIGluCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggOGFkZTM4
ZDI2ZGRkOTRjNzM1ZjIxYzdkZTUxZDlmZjc4ZTAzNGIwMy4uMDYwMzkxYzg3YjE2MmE4ZTdlNDMw
ZmY0M2I3NTQwMTc0NjkyNjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisy
MDEzLTAzLTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2Vi
Q29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAg
ICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNwcDoK
KyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIwMTMt
MDMtMDMgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2luZG93
cyBidWlsZCBmaXggYXR0ZW1wdCBhZnRlciByMTQ0NTQ3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC93aW5jZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwppbmRl
eCA2ZjZhMTk4YTQyNGU4OGJhMDM1ZTc0ODZjMjBjMDFmNzc2OTMzNGM5Li44MTE3ZTQ0MjI1ODAw
YTBhMTYyZGYzZWVlMzZiYzBhMDQxYWUyNzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDEzLTAzLTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2Fs
aWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNl
dHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAg
ICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAg
ICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCk6CisKIDIwMTMtMDItMTEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgRGlzYWJsZSBkZWxldGUgYnV0dG9uIGNvbnRyb2xsZXIgb24gbm9uLU1hYyBw
b3J0cyBhbmQgZGVsZXRlIEVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZwppbmRleCAwMzI0ZTIxNWRiZWRhMGFjZmE0YjY0Y2E3MGJiMmM3MWMzM2Y3MzI3
Li5jNmM1MjllMTM3YTQzMmM3OGQ3MzExNGVlZWQyNDhiZTcxMTVlMTU3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDEzLTAzLTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
LgorCisgICAgICAgICogV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQpOgorCiAyMDEzLTAyLTI2ICBEbWl0cnkgWnZvcnlnaW4gIDx6dm9yeWdpbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgTWVyZ2VkIFRpcCBhbmQgRGVidWcgbG9nIGxldmVscyBmb3Ig
d2ViIGNvbnNvbGUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmlu
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgppbmRleCBlNzk5MWVhZGNjMTQwMzA3
ZmMwOTc2N2JlZmYyMTRhNTNiZjdlYmFkLi5mNjM1OWUwYzcyZWYwZTc3MDQyYWJkOGIwNzY1ZmMy
MGRhMWNlYzI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KQEAgLTE5NSw0ICsxOTUsNyBAQCB1
bmlmaWVkVGV4dENoZWNrZXJFbmFibGVkIGluaXRpYWw9ZGVmYXVsdFVuaWZpZWRUZXh0Q2hlY2tl
ckVuYWJsZWQKIAogbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgaW5pdGlh
bD1mYWxzZQogCisjIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcmUgbXV0dWFsbHkKKyMgZXhjbHVzaXZlLCBtZWFuaW5nIHRoYXQg
ZW5hYmxpbmcgb25lIHdpbGwgZGlzYWJsZSB0aGUgb3RoZXIuCiBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgaW5pdGlhbD10cnVlCitzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluaXRp
YWw9ZmFsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJl
bmRlclRyZWVDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRl
clRyZWVDbGllbnQuaAppbmRleCBmYzE0Y2QwMWZlNjgyNWIyM2NlNGQwMTc3YWRjY2NiNDNjM2Jl
OGQxLi5lOTc0MWMwN2ZhYjFlZGZjNDI5YTQzZGUyOTliZDE5NjBjMGM5ZWU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCkBA
IC04Myw3ICs4Myw2IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2Vs
ZWN0ZWRET01SYW5nZVRvRE9NUmFuZ2VBZmZpbml0eVN0aWxsU2VsZWN0aW5nKFdlYkNvcmU6OlJh
bmdlKiBmcm9tUmFuZ2UsIFdlYkNvcmU6OlJhbmdlKiB0b1JhbmdlLCBpbnQgYWZmaW5pdHksIGJv
b2wgc3RpbGxTZWxlY3RpbmcpID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0Tm9k
ZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKSA9IDA7
CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29y
ZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKSA9IDA7Ci0gICAgdmlydHVhbCBib29sIGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJv
b2wgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwm
KSA9IDA7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2JsYWNr
YmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKaW5kZXggZDUx
NWY4ODI1MDRiNjQ2MDFlZmRjNmUxOWQyMzIwODlhYjJiODNlYS4uOWQ1MjcxYWU5MDA4ZThlMTJk
ZjQwYmM2Njg3ZGFmMjNiZWE2NWEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5
LmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJTZWxlY3Rpb25IYW5kbGVyLmgiCisjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJQYWdlX3AuaCIKICNpbmNsdWRlICJXaW5k
b3dzS2V5Ym9hcmRDb2Rlcy5oIgogCkBAIC02OSwxNSArNzAsMTggQEAgYm9vbCBFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSogcmFuZ2UpCiAKIGJvb2wgRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gV2Vi
UGFnZVByaXZhdGU6OmNvcmUobV93ZWJQYWdlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmIChtX3dlYlBhZ2VQcml2YXRlLT5t
X2R1bXBSZW5kZXJUcmVlKQotICAgICAgICByZXR1cm4gbV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1w
UmVuZGVyVHJlZS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBh
Z2UpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBw
YWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAK
IHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3BlbGxDaGVja2luZyhib29sIGVu
YWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRp
bmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4
IGYxOTIwZDcxOTY0ODZlOTYxMjdlNDA0ZjQ0Yzc1NGJlZjBiNTc3YzUuLjEyNDZjNGM5NDgzMTJk
NDU0OTBkMzQ5MDFhOGIyMjVlNWI2Y2YxNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtMTQ3LDYgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0
Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NP
TU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQcmludEJhY2tncm91bmRzKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmVzcGVjdEltYWdlT3JpZW50YXRp
b24oYm9vbCkgPSAwOwpAQCAtMTU1LDYgKzE1Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd1BhaW50UmVjdHMoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93
UGxhdGZvcm1MYXllclRyZWUoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaHJpbmtz
U3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3Rh
bmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9D
T01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3Mo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVk
KGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGll
bnQuaAppbmRleCAzOGM2NmRmZTg5ZjkzZmE4OGUxOGQ1MDY4MDg0NTYxNjZjMDI2NzMzLi41Zjlh
YzkwOGUyYzc5MWZiNTg1NzE4MjJhMDMzZjMwMTY3Mzk2ZDE1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0xODYsOSArMTg2LDYgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJSYW5nZSYp
IHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25z
dCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KIAot
ICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIHsgcmV0dXJuIHRy
dWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgdmlydHVhbCB2b2lkIGRpZEJlZ2luRWRpdGluZygp
IHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDb21wb3NpdGlvbk9uU2VsZWN0aW9uQ2hh
bmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNlbGVjdGlvbihib29sIGlzU2Vs
ZWN0aW9uRW1wdHkpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RWRpdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcAppbmRleCA5ODMwM2Y0ZjQ2NGRmMzIxYmI0OTRkMzM0YmUzYTg2MGJjNDgy
MmY0Li45NWIxZWE2Y2EzOTllOWNlYjdhNDBhNDg5NmJhNTZkZjU0N2JjMDYyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcApAQCAtMzcsNiAr
MzcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNpbmNsdWRlICJLZXlib2FyZEV2
ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0
LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTk1LDE1ICs5NiwxNSBAQCB2b2lkIEVkaXRv
ckNsaWVudEltcGw6OmZyYW1lV2lsbERldGFjaFBhZ2UoV2ViQ29yZTo6RnJhbWUqIGZyYW1lKQog
CiBib29sIEVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0g
ICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNs
aWVudCgpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOworICAgIGlmIChtX3dlYlZpZXct
PnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAogYm9vbCBF
ZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewot
ICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5j
bGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CisgICAgaWYgKG1f
d2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRp
bmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICNpZiBPUyhXSU5ET1dT
KQogICAgIHJldHVybiB0cnVlOwogI2Vsc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDI2NGM3NTZhOGRiOWMwNjFlYzUwNzg3MDI4NDA2
NzAxNTAzZTA3YjcuLjY2ZWY1MWEzMzYxM2U5ZmMxOTQ5OTUxZGUzZmI1NzFkYjQ1NGYxZTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAt
NzYxLDQgKzc2MSwxNCBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Q29tcG9zaXRlZFNjcm9s
bGluZ0ZvckZyYW1lc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldENv
bXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdl
YlNldHRpbmdzSW1wbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVu
YWJsZWQpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChlbmFibGVkKTsKK30KKwordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNzJh
M2UzMTI3NDExMTUzMDhkMGEwNGFlYzUxNmMxYzVhNWVlYTgxYi4uYWQyYzkzZmNmZTlkZTBkN2Fj
ZjdhZWRkNTlmOGFiYTU5YWNjNjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmgKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVND
UklQVF9DT01NT04pOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29u
c3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZERpc3BsYXlDYXB0aW9ucyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvdWxkRGlzcGxheVN1YnRpdGxlcyhib29sKTsKQEAgLTE1MSw2ICsxNTIsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dQYWludFJlY3RzKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaG93UGxhdGZvcm1MYXllclRyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lk
IHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQ
VF9DT01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhi
b29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29s
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCmluZGV4IDM4ZDJlNWNlNmU5NGNlNGUxMTQ4M2Fm
ZmVhOTcyOTlmYmY1NTdiMTguLjNlZmQ3YzIyY2IxYjUyOGE5NjJkMjQ5MzhjMDdmYTM4N2Q0MGJh
YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcApAQCAtMzM4LDI4ICszMzgsNiBAQCBib29s
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09i
amVjdCogZXdrVmlldywgY29ucwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+
Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxlZCgp
OwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJU
X1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3Jl
OjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVk
aXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNs
aWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4o
ZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNs
aWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRv
ckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgZWRpdG9yQ2xpZW50LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJs
ZWQpOwotfQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lKQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdrRnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAppbmRleCBkOGZmM2U1NmZjOWY4YjM2Zjk0MmE4MDQ2
ZGFkZTUwOTFkZDJmYTViLi5hMGM3ODI4YzRjMTBiM2YyOTc0NDQ4YTcwM2QwNjVjOGUyYmY0YTVj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaApAQCAtODEsOCArODEsNiBAQCBwdWJsaWM6CiAgICAg
c3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywg
Y29uc3QgY2hhciogbmFtZSk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJs
ZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGlj
IHZvaWQgc2V0Q1NTUmVnaW9uc0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJv
b2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJv
b2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxlZChi
b29sKTsKIAogICAgIHN0YXRpYyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmNwcAppbmRleCBhNGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBiZDNm
Li4yYmUzMWE5YTA3NjNmZTNmYzg1MTI2OTk1MGZlOTU5YTllZjcwM2Y2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKQEAg
LTI0MywyOCArMjQzLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVkKCkK
ICAgICBkZWxldGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGllbnRF
Zmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwotfQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAg
ICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQYWdl
KiBjb3JlUGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3Jl
UGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5n
cygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRF
Zmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3Jl
UGFnZSA9IEVXS1ByaXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkK
KyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVu
dEVmbDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtMzcxLDggKzM2Myw2IEBA
IHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpoYW5kbGVJbnB1dE1ldGhvZEtleWRvd24oS2V5Ym9hcmRF
dmVudCopCiBFZGl0b3JDbGllbnRFZmw6OkVkaXRvckNsaWVudEVmbChFdmFzX09iamVjdCogdmll
dykKICAgICA6IG1faXNJblJlZG8oZmFsc2UpCiAgICAgLCBtX3ZpZXcodmlldykKLSAgICAsIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKLSAgICAsIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGZhbHNlKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCmlu
ZGV4IDNjMmEyNDdkZTQ3YTk3ZGZiMzQ0ZmJlMGNjNDllYjgyZTM2NjMwNDguLmQwZDVkMzA4MTUz
Y2JjMjA5NDU4MzFmYzE1MDQ5YTVmMTc0OGFhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5oCkBAIC04NCw5ICs4NCw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShSYW5nZSopOwogICAg
IHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3Bl
bGxDaGVja2luZygpOwogICAgIHZpcnR1YWwgYm9vbCBpc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQo
KTsKQEAgLTE1Nyw4ICsxNTUsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgRXZhc19PYmpl
Y3QgKm1fdmlldzsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
LSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogfTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ay5jcHAKaW5kZXggY2U0OTM2Zjc5Mjk0ZjlkODBiNjZjMDc4MGE2ZmVjMjQ4MWMw
MDdkMC4uNTJjN2ViYmYxNjg4MmFkYTFjNGU0NGM0ODUzY2M4NDg1N2U0YzhiNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCkBAIC04MSw3ICs4MSw2IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2RydFJ1biA9IGZhbHNlOwog
Ym9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW4g
PSB0cnVlOwotYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpGcmFt
ZUxvYWRFdmVudENhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19mcmFtZUxvYWRF
dmVudENhbGxiYWNrID0gMDsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6QXV0aGVudGljYXRp
b25DYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfYXV0aGVudGljYXRpb25DYWxs
YmFjayA9IDA7CiAKQEAgLTExMiwxNiArMTExLDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OmxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKQogICAgIHJldHVybiBzX2xpbmtzSW5j
bHVkZWRJblRhYkNoYWluOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgc19z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsKLX0KLQotYm9vbCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQot
ewotICAgIHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0KIC8q
KgogICogZ2V0RnJhbWVDaGlsZHJlbjoKICAqIEBmcmFtZTogYSAjV2ViS2l0V2ViRnJhbWUKQEAg
LTQ1MywxNSArNDQyLDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERlZmVy
c0xvYWRpbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBkZWYKICAgICBjb3JlKHdlYlZp
ZXcpLT5zZXREZWZlcnNMb2FkaW5nKGRlZmVycyk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldywgYm9vbCBlbmFibGVkKQotewotICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpKTsKLSAgICBnX3JldHVybl9pZl9mYWlsKHdlYlZpZXcpOwotCi0gICAg
V2ViS2l0OjpFZGl0b3JDbGllbnQqIGNsaWVudCA9IHN0YXRpY19jYXN0PFdlYktpdDo6RWRpdG9y
Q2xpZW50Kj4oY29yZSh3ZWJWaWV3KS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGNsaWVudC0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6Zm9yY2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
IHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oCmluZGV4IDA5Y2U3MjI2NDRmNTJiMTBjNWY1NWRkODZlODA2MjI2
NDkzNWJlNDcuLjg0NWYyYmIyNTk2ZjQyMThhMWE0OTIxNTc3NGE3MmE0MDY2ZjczNWUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0ay5oCkBAIC01MSw4ICs1MSw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRp
YyB2b2lkIHNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oYm9vbCk7CiAgICAgc3RhdGljIGJv
b2wgbGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgc3RhdGljIGJvb2wgc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogCiAgICAgc3RhdGljIHZvaWQgY2xlYXJPcGVu
ZXIoV2ViS2l0V2ViRnJhbWUqKTsKIApAQCAtNzgsNyArNzYsNiBAQCBwdWJsaWM6CiAgICAgc3Rh
dGljIHZvaWQgcmVjdGFuZ2xlRm9yU2VsZWN0aW9uKFdlYktpdFdlYkZyYW1lKiwgY2Fpcm9fcmVj
dGFuZ2xlX2ludF90Kik7CiAgICAgc3RhdGljIHZvaWQgc2NhbGVQYWdlQnkoV2ViS2l0V2ViVmll
dyosIGZsb2F0LCBmbG9hdCwgZmxvYXQpOwogICAgIHN0YXRpYyB2b2lkIHNldERlZmVyc0xvYWRp
bmcoV2ViS2l0V2ViVmlldyosIGJvb2wpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAgICAgc3RhdGljIHZvaWQgZm9y
Y2VXZWJWaWV3UGFpbnQoV2ViS2l0V2ViVmlldyopOwogCiAgICAgLy8gQWNjZXNzaWJpbGl0eQpA
QCAtMTQ2LDcgKzE0Myw2IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgc19k
cnRSdW47CiAgICAgc3RhdGljIGJvb2wgc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKLSAgICBz
dGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRHdGsuY3BwCmluZGV4IGY5NDQyOWU5Nzg1MDY3MWU0ODgxODZkOWZhMTkwNjhiZDYwMzU4NWYu
LjljMGZkOTRhYTE3MjkzNTI1ZWYxZjg1NGNiNzBhYjlmOTJhMmE2NzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcApAQCAt
MzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkSGVs
cGVyLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTdHlsZVByb3BlcnR5U2V0LmgiCiAjaW5jbHVkZSAiVW5kb1N0
ZXAuaCIKICNpbmNsdWRlICJXZWJLaXRET01CaW5kaW5nLmgiCkBAIC0zNjAsMjEgKzM2MSwyMCBA
QCB2b2lkIEVkaXRvckNsaWVudDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9
CiAKLXZvaWQgRWRpdG9yQ2xpZW50OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsKLX0K
LQogYm9vbCBFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAg
cmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFdlYkNvcmU6OlBhZ2UqIGNv
cmVQYWdlID0gY29yZShtX3dlYlZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAgIHJl
dHVybiB0cnVlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBh
Z2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCkt
PnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGll
bnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1MDEsNiBAQCBF
ZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgICwg
bV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRfZ2V0X3RleHRf
Y2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0gICAgLCBtX3Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAzYTdlYWYxNGM3
MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNiZmZiY2VmMjE3
ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBFZGl0b3JDbGll
bnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAgdmlydHVhbCBi
b29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51
b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xhc3MgRWRpdG9y
Q2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAgIFdlYktpdFdl
YlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1RyYW5zbGF0b3Ig
bV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3RyaW5nPiBtX3Bl
bmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUwZjU3ODFlZmI0
YzIxODNjZTc3NDYzMC4uNzg5NzI0MThjMjA5ZjI3ODc0YzE2NzYzYWUwYWRlZjg5MTIyN2U5MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRNTFRleHRBcmVh
RWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFnZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUv
UnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0eVNldC5oPgog
I2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTggQEAgYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVsZW1lbnQqIGVs
ZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
KQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07Cisg
ICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcg
cGFnZV07CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4g
cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQog
CiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHlsZVByb3BlcnR5U2V0
KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDJjMWQ2YTMyMTIwMzUyNzc3MDljZWRjMzdmY2I0NjdkZjhhYTg4YjUuLjczNTJhNDBlODMz
NWUwODE5ZTQ3Y2U1OTk2YmQ1NTRhYjIzODEyMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTc4NCw2ICs3ODQsMTIgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzcGVjdFBy
aW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkKICAgICAgICAgW3NlbGYgX2luamVjdE91dGxv
b2tRdWlya3NTY3JpcHRdOwogICAgIH0KIAorICAgIGlmIChbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVk
XSkgeworICAgICAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkXTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOworICAgICAgICBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCghc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICB9CisKICAgICBbV2ViRnJhbWUg
X2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1lTmFtZTpmcmFtZU5h
bWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3AgKnJ1bkxvb3AgPSBbTlNS
dW5Mb29wIG1haW5SdW5Mb29wXTsKQEAgLTI0NzEsMTQgKzI0NzcsMTYgQEAgc3RhdGljIGlubGlu
ZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRlLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3Nl
bGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBpZiAoX3ByaXZhdGUt
PnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSAhPSBm
bGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQgc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3Nl
bGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9CiB9CiAKIC0gKEJP
T0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2
YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0
ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwog
fQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5h
YmxlZApAQCAtNTQzMCwxNyArNTQzOCwxNyBAQCBzdGF0aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRv
ciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpTVmFsdWUgagogCiAt
ICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAgaWYg
KF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykgewotICAgICAgICBf
cHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAgICAgICAgW1tOU1Vz
ZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJpdmF0ZS0+c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOwor
ICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05TVXNlckRlZmF1bHRz
IHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygp
LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVF
bmFibGVkXTsKKyAgICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
YXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2VsZiBzZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOiFmbGFnXTsKICAgICB9Ci0gICAgaWYgKGZsYWcpCi0g
ICAgICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6ZmFsc2VdOwog
fQogCiAtIChCT09MKXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJp
dmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQp
c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBhZGVhYmU3ZWUyY2ZhMjJjYmRjMjhlM2Jh
ODMzNzhmNDYwM2UwMmUyLi4zNDdhYmE0NTc4NWYxODBlOGM5NzQ2Y2NjYjYyYTRlNjc4MGU5NGMw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBAIC0xNDYsOSArMTQ2
LDYgQEAgcHJpdmF0ZToKICAgICBCT09MIGhhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAg
IE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJPT0wgc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwotICAgIEJPT0wgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLSAgICAgICAgCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEJPT0wgZGFz
aGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRvd3M7CiAgICAgQk9P
TCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRBY3RpdmVOdWxsRXZlbnRzVG9QbHVnSW5zOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXggZTI3NjZmMDFhMzVi
YzA3ZWVhYTQ4NmMyNjU1YjRjMDFiYWVkOTdhNi4uYzY4MWYwOWJhNzIxNmQ4ZDIxNmU1OTc1MjZh
Zjg1ODFkMDAzZGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1t
CkBAIC05NSwxMCArOTUsNiBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRy
b2xsZXIoV2ViVmlldyogd2ViVmlldykKIAogICAgIHNob3VsZENsb3NlV2l0aFdpbmRvdyA9IG9i
amNfY29sbGVjdGluZ0VuYWJsZWQoKTsKIAotICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
ICFbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2Vi
U21hcnRJbnNlcnREZWxldGVFbmFibGVkXQotICAgICAgICB8fCBbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZF07Ci0KLQogICAgIHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQrKzsKIAogI2lmIFVTRShESUNU
QVRJT05fQUxURVJOQVRJVkVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3Jl
U3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRleCA4YTRlMGVjYTg0
MTVjNThhN2Y2Y2IwNzBmMzJlMDEyOTQxOTNmYzdiLi4wNDYzNmZiZGY5YmVkNmE2ZGUwOWE1OWM2
OTYwNjBmYzY3NDNjYzUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAtMzI2LDE4ICszMjYs
NiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRob3JBbmRVc2VyU3R5bGVz
RW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqIGFkYQogICAgIGFkYXB0ZXItPnBhZ2UtPnNldHRpbmdz
KCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHZhbHVlKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFFXZWJQYWdl
QWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRpY19jYXN0PEVkaXRv
ckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIg
KmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRR
dCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiBhZGFwdGVyLCBj
b25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBhZGFwdGVy
LT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigp
LT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDA5
ODA5ZWY5NzYzMTcxNGNmODllODJmM2JkZGU0MmFkYzBlYjQ2ZTAuLjkzZDA2ODNlOTMxNzY0YzFi
Y2ZhODI3ODRiODg4ZGVkYjg4M2JlNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTk0LDggKzk0
LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShR
V2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1
ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBj
b25zdCBRU3RyaW5nJiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFFXZWJQYWdl
QWRhcHRlciosIGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkp
OwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFk
YXB0ZXIqLCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKICAgICBz
dGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKik7CiAgICAg
c3RhdGljIFFWYXJpYW50TGlzdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShRV2ViUGFnZUFk
YXB0ZXIqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpOwogICAgIHN0YXRpYyB2b2lkIGNvbmZp
cm1Db21wb3NpdGlvbihRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBjaGFyKiB0ZXh0KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5k
ZXggYWZjYzhkNjRlZmUwYTU0YmYxYTNiMGJiYzVlYzVhYTI0OTA4N2EwMy4uM2NmMDg3MDIwZWNl
ZjBmMzI1NjFmM2IwMjU4MzQ1MTMyNGE2YjRhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTMzMywxOCArMzMzLDI3IEBA
IHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVu
dFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdz
KCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0
Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCiB7Ci0gICAgYm9vbCBjdXJyZW50ID0gbV9zbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAh
Y3VycmVudDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlmIChwYWdlKSB7
CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgh
cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkpOworICAgICAgICBw
YWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFwYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkpOworICAgIH0K
IH0KIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwor
ICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRRdDo6dG9nZ2xlQ29u
dGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTQxLDggKzU1MCw2IEBAIEVkaXRvckNsaWVudFF0
OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZUFkYXB0ZXIqIHBhZ2VBZGFwdGVyKQogICAgIDogbV9w
YWdlKHBhZ2VBZGFwdGVyKQogICAgICwgbV9lZGl0aW5nKGZhbHNlKQogICAgICwgbV9pblVuZG9S
ZWRvKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSkKLSAgICAs
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oIGIv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCmluZGV4IGEx
MzRmNWViNmU3ZDQ5MjZkNDQzOTU1MTM1NjM4M2ZlYTE5MjRiMmYuLjc4MmNkZTNkNTRiZjY0Y2Mx
YTE3NGE3MzU4NDFlNWYzYjNjNWM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTExMSw5ICsxMTEsNiBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoYm9vbCBiKSB7IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gYjsgfQot
ICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGIpIHsgbV9z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYjsgfQotCiAgICAgc3RhdGljIGJvb2wg
ZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0c0VkaXRpbmc7CiAK
QEAgLTEyMiw4ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFFXZWJQYWdlQWRhcHRlciogbV9wYWdl
OwogICAgIGJvb2wgbV9lZGl0aW5nOwogICAgIGJvb2wgbV9pblVuZG9SZWRvOyAvLyBvdXIgdW5k
byBzdGFjayB3b3JrcyBkaWZmZXJlbnRseSAtIGRvbid0IHJlLWVudGVyIQotICAgIGJvb2wgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJD
b3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkOTg3ODkyN2YyZjQ5YjcwOTlhNjRk
MmNmMjU0OTM3MTZkYTMzNjY1Li5jNGM1NGE4ZDY5MTI2MjJlZmExYjM0Njc4MGVmZDkxMDVlZjgx
YzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5jcHAKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8V2ViQ29yZS9LZXli
b2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3MuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyVHlwaW5nR2VzdHVy
ZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVjdGlvbi5oPgpAQCAt
MzAyLDE3ICszMDQsMTkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndlYlZpZXdEaWRDaGFuZ2VT
ZWxlY3Rpb24oV2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbioKIHsgIG5vdEltcGxlbWVu
dGVkKCk7IH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh2b2lkKQoteyAKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsgCi0gICAgbV93ZWJWaWV3LT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7
Cit7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9PTCBlbmFibGVkID0g
RkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
JmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fd2Vi
Vmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdl
KFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFQWZmaW5pdHksIGJv
b2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNkMzY3ZTJlMmFkNjAz
ZThlNTI5ODFlZWUuLjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0ZDhhZWYxOTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmlldzo6V2ViVmlldygp
CiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3BhaW50Q291bnQoMCkK
ICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0gICAgLCBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2UoZmFsc2UpCiAgICAg
LCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQoMCkKQEAgLTM3Myw3
ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2ZWxQYXJlbnQoMCkK
ICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3Ry
YW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFuWSgwKQogICAgICwg
bV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBX
ZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5dICov
IEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICEhZmxhZzsK
LSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3BhZ2UtPnNldHRpbmdz
KCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghIWZsYWcpOworICAg
ICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBt
dXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAgICAKIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCAKICAg
ICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewotICAgICplbmFibGVk
ID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJs
ZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID8gVFJV
RSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCAKICAgICAg
ICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAg
aWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
ID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09L
OwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJP
T0wqIGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAg
ICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5MzczNDYyZmVmMjg0MWU1
NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4MzU5OGQzYTE4ZTlk
N2ZiYzRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2IEBAIHByb3RlY3Rl
ZDoKICAgICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25lZCBtX3BhaW50Q291
bnQ7CiAgICAgYm9vbCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIGJvb2wgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wgbV9oYXNDdXN0b21E
cm9wVGFyZ2V0OwogICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3Bw
IGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5j
cHAKaW5kZXggYjlmNDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNhM2NiMi4uZmUxYWYw
NGEwZWViZDg4NGU5ZDUyN2MyZWJiMjAzNjUwOTQ1ZmM1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZl
bnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNp
bmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgog
I2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2b2lkIEVkaXRvckNs
aWVudFdpbkNFOjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJl
dHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3Mo
KS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V2lu
Q0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+
cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5n
KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGll
bnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3gu
Y3BwCmluZGV4IDVlZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDljMzE1YWEuLjcyNmFk
MGEzZjg4OGFjOTU2NTFjNmEzMjI3ZDQyZjNiMzY4ZTJhN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5j
bHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRl
ICJXZWJWaWV3LmgiCkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRvckNsaWVudFd4Ojpz
aG91bGREZWxldGVSYW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBi
b29sIEVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQog
ewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlmICghbV9w
YWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3Mo
KS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNs
aWVudFd4Ojppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDRkYjM0ZmFjYWQ1MDc1ZDQ0
MzFhZDg3ZmJkNTljNGI1MDQ5MWQ0OS4uZDMzOTQzYzRkNmRkNDc2MDgwOTVhZmI0YTUwMTk0OTA3
NDhjNjRhOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAzLTA2ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIGNvZGUgcmVsYXRlZCB0byBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgc2V0dGluZ3MgYXMgdGhleSB3aWxsIGJlIG1hbmFnZWQgZnJvbQorICAgICAg
ICBpbnRlcm5hbHMgZnJvbSBub3cgb24uCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHA6
CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVu
ZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5Lmg6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6CisgICAgICAgIChXZWJU
ZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcDoKKyAgICAg
ICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgorICAgICAgICAoV2Vi
VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5u
ZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlRlc3RQcm94eS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0
Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
OjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRW
YWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAg
IChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViUGFn
ZTo6cmVzZXRTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5l
clF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaDoKKyAg
ICAgICAgKFRlc3RSdW5uZXJRdCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVm
b3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHA6CisKIDIw
MTMtMDMtMDQgIE1pa2hhaWwgUG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5j
b20+CiAKICAgICAgICAgW1dLMl1bRUZMXSBBZGQgY2FsbGJhY2tzIHRvIHRoZSBXS1ZpZXdDbGll
bnQgdG8gaGFuZGxlIFdlYiBQcm9jZXNzIGNyYXNoIGFuZCByZWxhdW5jaApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmNwcAppbmRleCAyM2I3MjM4MmM5OTdlZGRjMWZmYjM0OTA5OWM5YTNkOTAx
YTZmZDI0Li4wNTRiMTcwNjMwZDMyYmEwNjIxNTIzNTBkMDAwYmUxNDYxODFhY2U5IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcApAQCAtMTUwNiwxNiArMTUwNiw2IEBAIHN0YXRpYyBK
U1ZhbHVlUmVmIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9ICAgIAogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50
Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+
KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRz
WzBdKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBz
dGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRDb3VudCA8
IDEpCkBAIC0xNTI2LDE2ICsxNTE2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVl
UmVmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRS
ZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVy
KiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0
ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFs
dWVSZWYgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKIHsKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nh
c3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMTUw
LDkgKzIxMzAsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlv
bnMoKQogICAgICAgICB7ICJzZXRQbHVnaW5zRW5hYmxlZCIsIHNldFBsdWdpbnNFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0UHJpbnRpbmciLCBzZXRQcmludGluZ0NhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQiLCBzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTZXJpYWxpemVIVFRQTG9h
ZHMiLCBzZXRTZXJpYWxpemVIVFRQTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQiLCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQi
LCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzIiwgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVM
b2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFRhYktleUN5Y2xlc1Rocm91Z2hF
bGVtZW50cyIsIHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50c0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKaW5kZXggY2NhNDFmNzRmYTQ2ODNkMTdjNTg0YmIy
ODlkNmNhMGZkMzMyODYyNS4uZDk4NDcwMGZiNzhlNzhiMTVlOGY2NjNkMzRhOGNkYjlkMGVmYmNj
MyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaApAQCAtMTAzLDggKzEwMyw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldFBsdWdpbnNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UG9wdXBC
bG9ja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
KGJvb2wpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
KTsKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sKTsKICAgICB2b2lkIHNldFVzZURh
c2hib2FyZENvbXBhdGliaWxpdHlNb2RlKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5
bGVTaGVldEVuYWJsZWQoYm9vbCBmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNzE2NTJkY2QxMjM4YTEzNjQzNzJi
MDk4MzU4MGJjMDJkMjgzODEwNS4uOTU2NDQ0YmM3Zjg1NWFjYTllYWY0NjVjMDI0MWJlYTdiYjVk
ODZiOCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHAKQEAgLTE1MSw3ICsxNTEsNiBAQCBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogRHVtcFJlbmRlclRyZWUqIER1bXBSZW5kZXJUcmVlOjpzX2N1
cnJlbnRJbnN0YW5jZSA9IDA7Ci1ib29sIER1bXBSZW5kZXJUcmVlOjpzX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKIAogc3RhdGljIHZvaWQgY3JlYXRlRmlsZShjb25z
dCBTdHJpbmcmIGZpbGVOYW1lKQogewpAQCAtMjk1LDcgKzI5NCw2IEBAIHZvaWQgRHVtcFJlbmRl
clRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zCiAKICAgICB0b3BMb2FkaW5nRnJhbWUgPSAwOwogICAgIG1fbG9hZEZpbmlzaGVk
ID0gZmFsc2U7Ci0gICAgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7
CiAgICAgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQgPSBmYWxzZTsKICAgICB3YWl0Rm9yUG9saWN5
ID0gZmFsc2U7CiAgICAgdGVzdERvbmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCmluZGV4
IGExM2FmYjEyZDhkNTIzODMzNTQ3ZjMzYzI3MDkwNDFlMDBiNzk4MzYuLjI2N2M0ZGNhZGY2ZWQw
NzY1NzZkN2NkYmNkMDBhZGYzOWRjZTA5YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaApAQCAtMTAy
LDggKzEwMiw2IEBAIHB1YmxpYzoKICAgICBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29yZTo6
Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbik7CiAgICAgYm9vbCBzaG91
bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFj
dGlvbik7CiAKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsgfQotICAgIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpIHsgc19z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKIAog
ICAgIC8vIEJsYWNrQmVycnk6OlBsYXRmb3JtOjpCbGFja0JlcnJ5UGxhdGZvcm1MYXlvdXRUZXN0
Q2xpZW50IG1ldGhvZApAQCAtMTQ4LDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1f
YWNjZXB0c0VkaXRpbmc7CiAgICAgYm9vbCBtX2xvYWRGaW5pc2hlZDsKLSAgICBzdGF0aWMgYm9v
bCBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURl
bGVnYXRlRW5hYmxlZDsKIH07CiB9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCmluZGV4IGFhZTg0Mzg4YThjMmUy
YjMxNDFkNjgzMzdkMThhNGFiZjFkMzQ1ZjYuLjIxMDIwZDlkOGZlMDMwNmRmN2FjOTc0MjIzZDA0
ZjNlMDBjMDVlOWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
VGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNr
YmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwCkBAIC0yNjAsMTcgKzI2MCw2IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0WFNTQXVkaXRvckVuYWJsZWQoYm9vbCBmbGFnKQogICAgIEJsYWNrQmVy
cnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNl
dHRpbmdzKCktPnNldFhTU0F1ZGl0b3JFbmFibGVkKGZsYWcpOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAg
IEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCi12b2lkIFRlc3RS
dW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgVU5V
U0VEX1BBUkFNKGZsYWcpOwotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wgY3ljbGVzKQogewogICAg
IGlmICghbWFpbkZyYW1lKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAppbmRleCBhNDRlY2Jk
NzgwZGE2MWQ5YmZlN2U5YzgwZTUyMWY2YjFiOTA3NWM4Li5kNGE2MDBiODIwZTkzMDczZGI4OTc2
MWViYTcyOTBjMTFmY2QwYTE1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAtMTQ5
LDggKzE0OSw2IEBAIHByb3RlY3RlZDoKICAgICBXZWJLaXQ6OldlYlBsdWdpbiogY3JlYXRlUGx1
Z2luKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYpOwog
ICAgIHZvaWQgc2V0U3RhdHVzVGV4dChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZv
aWQgZGlkU3RvcExvYWRpbmcoKTsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2
b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJD
b250ZXh0TWVudURhdGEmKTsKICAgICBXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudCogdXNlck1l
ZGlhQ2xpZW50KCk7CiAgICAgdm9pZCBwcmludFBhZ2UoV2ViS2l0OjpXZWJGcmFtZSopOwpAQCAt
MzY4LDE0ICszNjYsNiBAQCBwdWJsaWM6CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0
b3BMb2FkaW5nKCk7CiAgICAgICAgIEJhc2U6OmRpZFN0b3BMb2FkaW5nKCk7CiAgICAgfQotICAg
IHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi0gICAgewotICAgICAg
ICByZXR1cm4gV2ViVGVzdFByb3h5QmFzZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsK
LSAgICB9Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpCi0gICAgewotICAgICAgICByZXR1cm4gV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29u
dGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4
dE1lbnVEYXRhJiBjb250ZXh0TWVudURhdGEpCiAgICAgewogICAgICAgICBXZWJUZXN0UHJveHlC
YXNlOjpzaG93Q29udGV4dE1lbnUoZnJhbWUsIGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IDQ3OTUxZWZhYzBhMGQ4OGQwYzNjNDQ1MGQ3YjdhYTNkMDI2OTZkZTku
LjVjMDJmN2M5MWYwZTQ4ZjU4ZmQ1MTJlYWU4NmRlZjZiOTM3YzcwYzIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RS
dW5uZXIuY3BwCkBAIC0yMDgsOCArMjA4LDYgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihUZXN0
SW50ZXJmYWNlcyogaW50ZXJmYWNlcykKICAgICBiaW5kTWV0aG9kKCJ0ZXh0U3Vycm91bmRpbmdO
b2RlIiwgJlRlc3RSdW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUpOwogICAgIGJpbmRNZXRob2Qo
ImRpc2FibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjpkaXNhYmxlQXV0b1Jlc2l6ZU1v
ZGUpOwogICAgIGJpbmRNZXRob2QoImVuYWJsZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6
OmVuYWJsZUF1dG9SZXNpemVNb2RlKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsK
LSAgICBiaW5kTWV0aG9kKCJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIiwgJlRl
c3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOwogICAgIGJpbmRN
ZXRob2QoInNldE1vY2tEZXZpY2VPcmllbnRhdGlvbiIsICZUZXN0UnVubmVyOjpzZXRNb2NrRGV2
aWNlT3JpZW50YXRpb24pOwogICAgIGJpbmRNZXRob2QoImRpZEFjcXVpcmVQb2ludGVyTG9jayIs
ICZUZXN0UnVubmVyOjpkaWRBY3F1aXJlUG9pbnRlckxvY2spOwogICAgIGJpbmRNZXRob2QoImRp
ZExvc2VQb2ludGVyTG9jayIsICZUZXN0UnVubmVyOjpkaWRMb3NlUG9pbnRlckxvY2spOwpAQCAt
NDEwLDEyICs0MDgsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnJlc2V0KCkKICAgICBtX3Nob3VsZFN0
YXlPblBhZ2VBZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkID0gZmFsc2U7CiAgICAgbV9zaG91bGRC
bG9ja1JlZGlyZWN0cyA9IGZhbHNlOwogICAgIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJu
TnVsbCA9IGZhbHNlOwotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKLSNp
ZmRlZiBXSU4zMgotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7
Ci0jZWxzZQotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwot
I2VuZGlmCiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzID0gZmFsc2U7CiAKICAg
ICBtX2h0dHBIZWFkZXJzVG9DbGVhci5jbGVhcigpOwpAQCAtNjc0LDE2ICs2NjYsNiBAQCBib29s
IFRlc3RSdW5uZXI6OnNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3QKICAgICByZXR1
cm4gbV9pbnRlcmNlcHRQb3N0TWVzc2FnZS5pc0Jvb2woKSAmJiBtX2ludGVyY2VwdFBvc3RNZXNz
YWdlLnRvQm9vbGVhbigpOwogfQogCi1ib29sIFRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQ7Ci19Ci0KLWJvb2wgVGVzdFJ1bm5lcjo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOwotfQotCiBib29sIFRlc3RSdW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMo
KSBjb25zdAogewogICAgIHJldHVybiBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CkBA
IC0xNDkwLDIwICsxNDcyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2Rl
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICByZXN1bHQt
PnNldChzdXJyb3VuZGluZ1RleHQudGV4dENvbnRlbnQoKS51dGY4KCkpOwogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMu
c2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gYXJndW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICByZXN1
bHQtPnNldE51bGwoKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50
c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
ID0gYXJndW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsK
LX0KLQogdm9pZCBUZXN0UnVubmVyOjpkdW1wUmVzb3VyY2VSZXF1ZXN0UHJpb3JpdGllcyhjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAg
IG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgK
aW5kZXggODhkOGIzNzE1NTkyOTEwNzE3YTFmODhlMjUzY2U1YWY1YTJkYjg5Ny4uZmVhZGE4OGY4
MjJhNzA1MmI3NWMxN2QzNzFhYjRhZjAxZmJiMDEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAt
MTE4LDggKzExOCw2IEBAIHB1YmxpYzoKICAgICBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNz
aXZlKCkgY29uc3Q7CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBj
b25zdDsKICAgICBib29sIHNob3VsZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3Q7Ci0gICAg
Ym9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGREdW1w
UmVzb3VyY2VQcmlvcml0aWVzKCkgY29uc3Q7CiAjaWYgRU5BQkxFX05PVElGSUNBVElPTlMKICAg
ICBXZWJLaXQ6OldlYk5vdGlmaWNhdGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVy
KCkgY29uc3Q7CkBAIC0yNzAsMTEgKzI2OCw2IEBAIHByaXZhdGU6CiAgICAgLy8gbGVuZ3RoIHRv
IHJldHJpZXZlLgogICAgIHZvaWQgdGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKLSAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBzbWFydCBp
bnNlcnQvZGVsZXRlLiBUaGlzIGlzIGVuYWJsZWQgYnkgZGVmYXVsdC4KLSAgICB2b2lkIHNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7Ci0KLSAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSB0cmFpbGluZyB3aGl0ZXNwYWNlIHNlbGVj
dGlvbiBvbiBkb3VibGUgY2xpY2suCi0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lk
IGVuYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKICAgICB2b2lkIGRpc2FibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAKQEAgLTY3MCwxMCArNjYzLDYgQEAgcHJpdmF0ZToKIAogICAgIGJv
b2wgbV93aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsOwogCi0gICAgYm9vbCBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLQotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotCiAgICAgYm9vbCBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CiAK
ICAgICBzdGQ6OnNldDxzdGQ6OnN0cmluZz4gbV9odHRwSGVhZGVyc1RvQ2xlYXI7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
UHJveHkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcAppbmRleCA4NjgxMzNmZTQ3MGY5MWFlZmNlZDFmYzE5NmJjYThmNzBk
MzBkMDk0Li5jYzUwNzUzNGUxNmQ5ODU5YTIyYzU3ZGMyMWQ1NGFjNWIzZTJhYWRkIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0
UHJveHkuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1dlYlRlc3RQcm94eS5jcHAKQEAgLTk3OCwxNiArOTc4LDYgQEAgdm9pZCBXZWJUZXN0UHJv
eHlCYXNlOjpkaWRTdG9wTG9hZGluZygpCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2Fn
ZSgicG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCi1ib29sIFdlYlRl
c3RQcm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4g
bV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwotfQotCi1ib29sIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIo
KS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci19Ci0KIHZvaWQgV2ViVGVz
dFByb3h5QmFzZTo6c2hvd0NvbnRleHRNZW51KFdlYkZyYW1lKiwgY29uc3QgV2ViQ29udGV4dE1l
bnVEYXRhJiBjb250ZXh0TWVudURhdGEpCiB7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+ZXZlbnRT
ZW5kZXIoKS0+c2V0Q29udGV4dE1lbnVEYXRhKGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggNjkwNWNkYTZmN2Nk
MThhYThlNTEwYmY5NmJkN2QzMmRlODc3YmVhMS4uZGQ2MmYzYTIxMGZiMGYxMWNjNzk1YWVlMDk5
ZmFlODQ2Y2UwNzQzYiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZp
ZXdIb3N0LmNwcApAQCAtMTY5LDIwICsxNjksNiBAQCBib29sIFdlYlZpZXdIb3N0OjpzaG91bGRB
cHBseVN0eWxlKGNvbnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJiByYW5nZQog
ICAgIHJldHVybiB0cnVlOwogfQogCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVmlld0hvc3Q6
OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0jaWYgT1MoV0lORE9XUykK
LSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0K
IGJvb2wgV2ViVmlld0hvc3Q6OmhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCkKIHsKICAgICBp
ZiAobV9lZGl0Q29tbWFuZE5hbWUuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5oCmluZGV4IGMxNmQ1ZmY3OGU1NmQxNThlMTU2MmQwNmExNmM2ZGYy
Yzc4ZjEyZjguLjM3ZTAwYzI4MGFkN2E4MzA3YTQzZmQ2ZjI4ODc4MWE2MTQ2MjJkOGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTQzLDggKzE0
Myw2IEBAIGNsYXNzIFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwg
cHVibGljIFdlYktpdDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCBib29sIHNob3VsZENo
YW5nZVNlbGVjdGVkUmFuZ2UoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYgZnJvbSwgY29uc3QgV2Vi
S2l0OjpXZWJSYW5nZSYgdG8sIFdlYktpdDo6V2ViVGV4dEFmZmluaXR5LCBib29sIHN0aWxsU2Vs
ZWN0aW5nKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViS2l0
OjpXZWJSYW5nZSYpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdl
YktpdDo6V2ViU3RyaW5nJiBzdHlsZSwgY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYpOwotICAgIHZp
cnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wg
aGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWxB
bGVydERpYWxvZyhXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsK
ICAgICB2aXJ0dWFsIGJvb2wgcnVuTW9kYWxDb25maXJtRGlhbG9nKFdlYktpdDo6V2ViRnJhbWUq
LCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggZTM3ODViMTA1Mjk1MjJiMWIzM2Nj
NDczNjE0NzhhYzBiNGJiZGJkMS4uZGQ2OTM5ZTUwNDI0ZTk2ODJiOGMyYTgwZTNiNWUzODU1NTMw
NTdiYyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVl
Q2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwCkBAIC0zMDYsOCArMzA2LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0RWZsOjpzZXRWYWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmlldygp
LCAtMSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZChtYWluVmlldygpLCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldENTU0dyaWRMYXlvdXRFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmll
dygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAg
IER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdl
TG9hZGluZ1NldHRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAppbmRleCA4ODc1NmRjZDcyZTY3NGY3ZTA2YWM1NmYw
NDMxNjI5NDZjYzZlZTMwLi5mOGNmM2NlZTU1NjliZDIyMDhlNDIxNjM2OWVhZDU5OTA4YTY0OTkx
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0yNzIs
MTEgKzI3Miw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19
Ci0KIHN0YXRpYyBFaW5hX0Jvb2wgd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAg
ICAgd2FpdFRvRHVtcFdhdGNoZG9nID0gMDsKQEAgLTQyMSwxMSArNDE2LDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgZXdr
X3NldHRpbmdzX2ljb25fZGF0YWJhc2VfcGF0aF9zZXQoZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRh
KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsK
LX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcp
CiB7CiAgICAgZXdrX3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KGJy
b3dzZXItPm1haW5WaWV3KCksICFmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVt
cFJlbmRlclRyZWUuY3BwCmluZGV4IDVhMzU3NGY3MTIxM2I0NTYyNzE1ZDJjOGVkZGUwOTZiM2Nh
OGUwZDUuLmNlZTQ2MWM1ODFkM2YxOTMyZTQxZDQ3NDY1NDRlZGJmNjQ2MGRiY2EgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTAxLDggKzUwMSw2
IEBAIHN0YXRpYyB2b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKHRy
dWUpOwogICAgIHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKHdlYmtpdF9nZXRfaWNvbl9k
YXRhYmFzZSgpLCAwKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHdlYlZpZXcsIHRydWUpOwogICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyh3ZWJWaWV3LCBmYWxzZSk7
CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFs
c2UpOwogCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0
ay5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXgg
ZjFjMzA2OTI3NjI2YmZjZTIxNDIyMjY3OTdkNjk4YmFiNjdiZDk3Ni4uZjllYmIwYTZhOGQ1MWU0
ZDdhNjNkZTViZWRmZjg4ZjJmZTc4NTY0NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9U
ZXN0UnVubmVyR3RrLmNwcApAQCAtMzIzLDExICszMjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQod2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKSwgZmxhZyk7
Ci19Ci0KIHN0YXRpYyBnYm9vbGVhbiB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsK
ICAgICBzZXRXYWl0VG9EdW1wV2F0Y2hkb2coMCk7CkBAIC00ODUsMTEgKzQ4MCw2IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAg
IHdlYmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKGRhdGFiYXNlLCAwKTsKIH0KIAotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2lu
Z0VuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRf
d2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCmluZGV4IDlhMjAyMmUyZGYzNzU0MDNlZjkxZjYzN2UwZDkw
Njk3MTZlODU1NTguLmNiMTRhMTU3YTQ1ODc2YjE3YzRiZjRmMzAyZDJmNmM1NTQ5YThiNGIgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEyNzgsOCAr
MTI3OCw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3Jl
VGVzdGluZygpCiAgICAgICAgIGdUZXN0UnVubmVyLT5yZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7
CiAgICAgfQogCi0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkOllFU107Ci0KICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29s
b3I6WUVTXTsKICAgICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzXTsKICAg
ICBbV2ViVmlldyBfc2V0QWxsb3dzUm91bmRpbmdIYWNrczpOT107CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCmluZGV4IGRmYjlhNmVjZmQ3NGMzNzMzNmMzMDUwNDJh
NjJjOTgyMTJiYzcwYzIuLjc5Yzg0ZmVhYzdhNmViZmIxZmE3NTFiMzVjMTM4ODFkZWVjY2FmMDkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC02MzQsMTYg
KzYzNCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tl
eSkKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBfdXBkYXRlQWN0aXZlU3RhdGVdOwogfQogCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17
Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZs
YWddOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYm9vbCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJ
bnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lk
IHdhaXRVbnRpbERvbmVXYXRjaGRvZ0ZpcmVkKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lk
KiBpbmZvKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApp
bmRleCAyM2ZkMzVjMWM2ZmI1ZjE3OTMzYjY1MzJiZDRjODc0MTcwMGU4Y2QyLi5kZmE2NzJiNjc0
ZGVjM2NlOTcwNjJmNThmZWZjZmM5OTM4MDFhMDVmIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcApAQCAtMTkyLDggKzE5Miw2IEBAIHZvaWQgV2ViUGFn
ZTo6cmVzZXRTZXR0aW5ncygpCiAKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRDYXJldEJy
b3dzaW5nRW5hYmxlZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0QXV0aG9y
QW5kVXNlclN0eWxlc0VuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCkt
PnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50
ZXN0UnVubmVyKCktPnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogCiAgICAgLy8gZ2xvYmFsU2V0
dGluZ3MgbXVzdCBiZSByZXNldCBleHBsaWNpdGx5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rl
c3RSdW5uZXJRdC5jcHAKaW5kZXggNjBjNTNiYjAzNjc2YjNmNTdlYjJlNDhmZDNiMjViYzhhMzE1
NTUzYi4uNjZkZTU5Mzk3OGY3MGM5OGRhYTM2NmMzZGEwZGNkNjk4YzM3MmViYSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03MjAsMTYgKzcyMCw2IEBAIHZv
aWQgVGVzdFJ1bm5lclF0OjpzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgUVN0cmluZyYgb3JpZW50
YXRpb24sIGNvbnN0IFFTdHJpbmcmCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCkt
PnNldFNjcm9sbEJhclBvbGljeShvLCBwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRl
cigpLCBlbmFibGUpOwotfQotCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0
ZXIoKSwgZW5hYmxlKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyUXQ6OmV4ZWNDb21tYW5kKGNvbnN0
IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUobV9kcnQtPnBhZ2VBZGFwdGVy
KCksIG5hbWUsIHZhbHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rl
c3RSdW5uZXJRdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5k
ZXggZGQwMjZkZTFiMDlhNDIwZjJhODExZjY4YWJmYjAwNmExYmYwNDNlZi4uZWJiMjI5NDQ0Zjhj
ZmUxYzk0MWZlNGNiZWY4Yjc5YTMyOWU2NmVmNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmgKQEAgLTE3OCw4ICsxNzgsNiBAQCBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lk
IHNldENhcmV0QnJvd3NpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShj
b25zdCBRU3RyaW5nJiBtb2RlKTsKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChib29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCk7CiAgICAgdm9pZCBleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3Ry
aW5nJiB2YWx1ZSA9IFFTdHJpbmcoKSk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0
IFFTdHJpbmcmIG5hbWUpIGNvbnN0OwogICAgIGJvb2wgZmluZFN0cmluZyhjb25zdCBRU3RyaW5n
JiwgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IGY3NDc2ZmExMjYzZGYxZTBjZTI2MDZhMzgz
Nzg3M2VkYTc4Y2VmNWIuLjg5ZmE5ZjdhZmExNjM1ZjYxMjVkNDRjOWUxMzI0ZWRjMTVlMjkxMDcg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODk5
LDEwICs4OTksNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJl
Zm9yZVRlc3RpbmcoKQogICAgICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxz
T2JqZWN0KGNvbnRleHQpOwogICAgIH0KIAotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZp
ZXdFZGl0aW5nOwotICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZp
ZXdFZGl0aW5nKSkpCi0gICAgICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoVFJVRSk7Ci0KICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3UHJpdmF0
ZShRdWVyeSwgd2ViVmlldyk7CiAgICAgaWYgKCF3ZWJWaWV3UHJpdmF0ZSkKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDg0
MjMyNmNiY2Y1OTU4YzllZDM0NzBjMGIxMTI1MzdlNTMwNWJiODEuLmQ4MmRmMmVlNTNjMTBhYTAx
N2E0N2FkYmFkNGFjNzc1YTY0MGJjZGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9UZXN0UnVubmVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVz
dFJ1bm5lcldpbi5jcHAKQEAgLTcyMywzMiArNzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRX
aW5kb3dJc0tleShib29sIGZsYWcpCiAgICAgOjpTZW5kTWVzc2FnZSh3ZWJWaWV3V2luZG93LCBm
bGFnID8gV01fU0VURk9DVVMgOiBXTV9LSUxMRk9DVVMsIChXUEFSQU0pOjpHZXREZXNrdG9wV2lu
ZG93KCksIDApOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGZsYWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlm
IChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3
ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8gVFJV
RSA6IEZBTFNFKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7
Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1
cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAo
RkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmbGFnID8gVFJVRSA6IEZBTFNFKTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVy
dmFsIHdhaXRUb0R1bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgQ0FM
TEJBQ0sgd2FpdFVudGlsRG9uZVdhdGNoZG9nRmlyZWQoSFdORCwgVUlOVCwgVUlOVF9QVFIsIERX
T1JEKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKaW5kZXggOTc3NTEx
MzUwZWNlYmVkMGQ5NTMyZmU1MDQ5ZmY1ZmFhZjY4NzNlYy4uNDE2NzgyN2YxYTcwZWYxYTNkNzIy
NDk0NDRmZTZjMzkwMWM3N2QyZSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
VGVzdFJ1bm5lcld4LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwCkBAIC0xNTEsMTEgKzE1MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNL
ZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2FpdFRvRHVt
cChib29sIHdhaXRVbnRpbERvbmUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCB0aW1lb3V0U2Vj
b25kcyA9IDEwOwpAQCAtMjk0LDExICsyODksNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENh
Y2hlTWF4aW11bVNpemUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAgICAgLy8gRklYTUU6IGlt
cGxlbWVudAogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9p
ZCBUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxw
aGEsIGRvdWJsZSBhbHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wg
Y2FuUHJvdmlkZUdhbW1hLCBkb3VibGUgZ2FtbWEpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVu
dCBmb3IgRGV2aWNlT3JpZW50YXRpb24gbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGEyNjc2ZWJjNjA4
MjgzZjI1NDNkZjVlMTgzZjUzZGJlZDdhODc4NzQuLmM2OWQwMDAwOWI1M2RmYmIzMmMzNWVlYjJk
YzgzZTE1ZTAwMDk1NzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMy0wNiAgTWFudWVs
IFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGJ5CisgICAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluIHRlc3Rz
LgorCisgICAgICAgIEJlIHN1cmUgdGhhdCB0cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFuZAor
ICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFyZSBzZXQgdG8gb3Bwb3Np
dGUgdmFsdWVzIGFzIHRoZXkgYXJlCisgICAgICAgIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKworICAg
ICAgICAqIGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWw6
CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFz
aC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3Bh
Y2UtaW1nLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10
ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanM6Cisg
ICAgICAgICogZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKGlu
aXRTcGVsbFRlc3QpOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWw6CisgICAgICAgICogcGxh
dGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFVuZmxhZworICAgICAgICBlZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAor
ICAgICAgICBhcyBpdCBwYXNzZXMgbm93LgorCiAyMDEzLTAzLTA0ICBDaHJpc3RpYW4gQmllc2lu
Z2VyICA8Y2JpZXNpbmdlckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgKHRlc3RzKSBmbGV4Ym94
L3Jlc291cmNlcy5jc3Mgc2hvdWxkIHVzZSB1bnByZWZpeGVkIHByb3BlcnRpZXMsIGZvciBmaXJl
Zm94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRp
bmctZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRp
dGluZy1kaXNhYmxlZC5odG1sCmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgx
OTgxZGVkNjkuLmQwZjdkN2FmMTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1k
aXNhYmxlZC5odG1sCkBAIC01LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVk
aXRpbmdUZXN0KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJmYmZj
NzQwYWZhMzVjMmQwOGFjOTU3N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVmNTI3
YWVlMzZjMGQ4ZmJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQsNyBA
QAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZh
bHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4YWE4
Mzc2OTM3N2M4Njg2YWY4Zi4uYzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkzNjlh
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0g
ICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
KyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWlt
Zy1jcmFzaC5odG1sCmluZGV4IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2Mzc1
MDQuLmY3NGFhMjY1Njc3NjU2MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1n
LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1
ZSk7CiAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0
bWwKaW5kZXggODUzMGZiYzUzMWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4M2Zi
MWZhMWU1OGI1ZTc0MTVlMmYzYWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbApA
QCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9u
T2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Ny
aXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5q
cyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGlj
ay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3MmFm
ZjJiMjVmYjcyMzU2OTUwMzA5MDk1YzFjMmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2ODIy
MTk5MDlhOTcxNmMyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJs
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91
YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3ICs3
OCw4IEBAIGZ1bmN0aW9uIHRlc3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1MLCBl
eHBlY3RlZFRleHQpCiAgICAgc2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5IiwgdG9M
aXRlcmFsKGV4cGVjdGVkVGV4dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJzdFdv
cmRJbmxpbmUgPSAiPHNwYW4gaWQ9J3RhcmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1lMTwv
c3Bhbj4gYW5kIG5vdCBzZWxlY3QgdXMiOwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxkU2Vs
ZWN0ZUZpcnN0V29yZElubGluZSwgInNlbGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2Njcx
ZTdjODQ5MDdiNzA3MmQ0OTUyMC4uMDk0YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0ZjU2
MjQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMv
dXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGls
LmpzCkBAIC0yNyw4ICsyNyw4IEBAIGZ1bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1lbnRJ
ZCwgdGVzdFRleHQsIHRlc3RGdW5jdGlvbikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9IHRl
c3RGdW5jdGlvbjsKICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRl
c3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlj
a2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbApp
bmRleCBjYTU5MzVmZTAwMDVhNWEwNjEzNTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4MTBk
MDFiYjk4ZTZlNWYxM2MzOGQ2MDkzZDM2ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNj
b3Jlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91
YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAg
aW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9u
KHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3Bl
bGxlZCB3b3JkIHdpdGhvdXQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5l
ci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsK
ICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGlu
YXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFy
ZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNl
dEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3
ICs1MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIs
ICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sg
dGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0
cnVlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsg
ZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zm
c2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9u
Lm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1j
bGlja2VkLXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
ZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzkyN2Ew
OWMzZmM0NmNlMDI3Y2YuLjlkMjQ5ZmQ3ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0ZWEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVs
bFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUp
IHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQg
d2l0aG91dCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBk
ZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExl
ZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0
U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHRO
b2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3
b3JkIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBk
ZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExl
ZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1Yjk4NjkxMDM3NzQxYjM5OGZmYzVhNjc0MzJmMmRm
MTQyY2ExYTc5Li5kYjA0N2QzMjY4ZTVhNThhYmYxN2UzNmRkZjJkYTcwZmY5Njk2NGMwIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc5LDkgKzM3OSw2
IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24t
d2l0aC1lbWJlZGRlci5odG1sCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENv
bnRyb2xsZXIuYWRkRGlzYWxsb3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJlc291
cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkCi1lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVByb3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0
bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>191944</attachid>
            <date>2013-03-07 01:19:10 -0800</date>
            <delta_ts>2013-03-07 12:06:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130307101513.patch</filename>
            <type>text/plain</type>
            <size>84821</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uYTg5ZGM0MGVjYjA0MWQ0MWU5Y2I5MzQzNGJkYjc4
NDFhNTYxN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLmZkNWU4OWM4
YmQ0NzBkODk2MGUyNDMxNzBiNzU5ZGExYzE4MTM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjEwYzgzNTQ1YTNhOWFhYzg0MmQzNjRiNzljYTJlZDBh
NGE2MjY4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOiBSZW1vdmUgQVBJIHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVF
bmFibGVkCisgICAgICAgIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRo
ZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20gcGFnZQorICAgICAgICBzZXR0aW5ncyBmcm9tIG5vdyBv
bi4KKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDMtMDcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2aWEgV2ViS2l0
IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGRiZTZjZmQ2MWQzZTE5NmUwYzc3YmZjY2QzNGVlYzEyOWE0NWJhNWUuLjU5NTQz
NzRkOTJiY2VmOGIxY2MzNTA4MDdiOGRkMDkyMTZhYzczMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OkVkaXRv
ckNsaWVudEVmbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6
CisgICAgICAgIChFZGl0b3JDbGllbnRFZmwpOgorCiAyMDEzLTAzLTA2ICBLcnp5c3p0b2YgQ3pl
Y2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1pc3NpbmcgaW1wbGVt
ZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwgYW5kIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRFZmwgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzZjhiNTRhMWYyOWZmMDliYWJi
ZTk1M2M0ZmZiMzhhMDY2NDIzZTdmLi40MGU3MTMyODExMzRkODlmOWRjMmEwNTg0NjkzNjgwNTkx
Y2ZkNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNl
dHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0
byBEUlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTMtMDMtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggNWRhMDJhMzkyNzc1YTFjNDI5NWJkMjc4YTE0YTU4OWNiM2NkNDI2
NS4uOGRjYjY2NDE3M2JkYTdjMjQyYzQ2N2MxYjIwNDk4OWVkYjlkMmNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFz
ICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNl
cnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKTogSW5pdGlhbGl6ZQorICAg
ICAgICBzZXR0aW5ncyBmcm9tIE5TVXNlckRlZmF1bHRzLgorICAgICAgICAoLVtXZWJWaWV3IHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlZpZXcg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJp
dmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRGVmYXVsdCBtb3VzZSBjdXJzb3IgYmVoYXZpb3Igc2hvdWxkIGJlIGF1
dG8taGlkZSBmb3IgZnVsbCBzY3JlZW4gdmlkZW8gd2l0aCBjdXN0b20gY29udHJvbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggOTFmOTk5MDU2NWM5Y2Y4MmMwZmVmMzAxMWExN2YyZDMxY2MwZmM5Zi4uYzYz
N2MzNTZjZjdlNWUyMjI3ODM0ZGVmMjYwYWJiNzVmNTMwNGRkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JD
bGllbnRRdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAg
ICAgICAgKEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRo
SWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCA4YWRlMzhkMjZkZGQ5NGM3MzVmMjFjN2RlNTFkOWZmNzhl
MDM0YjAzLi5jMWYxZDA5ZWEyNWUxOGE1NDE2ZWE2NmY4MzIwM2RhMDFkMzk1ODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6
CisgICAgICAgIChXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6
CisgICAgICAgIChXZWJWaWV3KToKKwogMjAxMy0wMy0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIx
NDQ1NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmExOThhNDI0ZTg4YmEwMzVlNzQ4NmMy
MGMwMWY3NzY5MzM0YzkuLjZkYjhhOWMzMjQ2YWE2NzdiMGJlYWIwNzBlYWY2MDhmYTI0YmJiYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMDcgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5D
RTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKwogMjAxMy0wMi0xMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxlIGRlbGV0ZSBi
dXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFuZCBkZWxldGUgRWRpdG9yQ2xpZW50
OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDAzMjRlMjE1ZGJl
ZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLmQxZDA1YmVmYjBhNTk2MmRhYWZlZWQwZGU5
MTAwOTRlNTFkMzYwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMt
MDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDItMjYgIERt
aXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJnZWQg
VGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29uc29sZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhkNjQ4NGYzZDZlZDYyYzFjOGUwZi4u
ODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4NDQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZh
dWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CiAjZWxzZQogc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFDX09TX1gpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKKyNlbHNlCitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmFsc2U7Cisj
ZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYK
KyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGU3OTkxZWFk
Y2MxNDAzMDdmYzA5NzY3YmVmZjIxNGE1M2JmN2ViYWQuLmEyMTdjYTFlNDU4N2U4NzI3YTdkZGVj
MmZhNzVmNzI1YTYwNjk3MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTk1LDQgKzE5
NSw3IEBAIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZAogCiBsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUK
KyMgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIGFyZSBtdXR1YWxseQorIyBleGNsdXNpdmUsIG1lYW5pbmcgdGhhdCBlbmFibGluZyBv
bmUgd2lsbCBkaXNhYmxlIHRoZSBvdGhlci4KK3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0
aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJl
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNs
aWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1YjIzY2U0ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5
NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJkMTk2MGMwYzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcg
KzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZERP
TVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3RpbGxTZWxlY3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZy
b21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2UsIGludCBhZmZpbml0eSwgYm9vbCBzdGls
bFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNv
cmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5n
ZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRS
ZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsK
IAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBkNTE1Zjg4MjUw
NGI2NDYwMWVmZGM2ZTE5ZDIzMjA4OWFiMmI4M2VhLi45ZDUyNzFhZTkwMDhlOGUxMmRmNDBiYzY2
ODdkYWYyM2JlYTY1YTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5
Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNlbGVjdGlvbkhhbmRsZXIuaCIKKyNpbmNsdWRlICJT
ZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBhZ2VfcC5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXli
b2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3MCwxOCBAQCBib29sIEVkaXRvckNsaWVudEJsYWNr
QmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKiByYW5nZSkKIAogYm9vbCBFZGl0b3JDbGll
bnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxl
bWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJp
dmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUpCi0gICAgICAgIHJldHVybiBtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJU
cmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFibGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IGU0
NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4NTMxOWQ2
OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1
ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0cmluZyYg
c3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBi
b29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZp
cnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJldHVybiB0
cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25FbXB0eSkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3Bw
CmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5NGQzMzRiZTNhODYwYmM0ODIyZjQuLjk1YjFlYTZj
YTM5OWU5Y2ViN2E0MGE0ODk2YmE1NmRmNTQ3YmMwNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5j
bHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRl
ICJTZXR0aW5ncy5oIgpAQCAtOTUsMTUgKzk2LDE1IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6
ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpCiAKIGJvb2wgRWRpdG9y
Q2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJW
aWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7CisgICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAg
ICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpOwogICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIEVkaXRvckNsaWVudElt
cGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2Vi
Vmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJldHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICBpZiAobV93ZWJWaWV3LT5wYWdl
KCkpCisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogI2lmIE9TKFdJTkRPV1MpCiAgICAgcmV0dXJu
IHRydWU7CiAjZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzIwZmY5ZjA0OTRl
MjcxNzgyMDk3ZTQzODE5YjYxNzBkMzhmNjg1Yi4uNTIxNWNlNjBjNWM4NGJhNjlhNzgzYWQ3MzA1
YmE1OGU5Y2I3NjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMjMsMjggKzMy
Myw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSku
aXNFbmFibGVkKCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQot
ICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlm
ICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4o
cGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3Jj
ZUxheW91dChFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xh
eW91dChld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDk1ODg4MTFmYWQ4Y2I1
MDkwNjVjNDRlM2I3Njk3ZDRlYjYzODIzNTAuLjMxMWQ5YTAyOWE5YWVhMDJhNjIzMzBiYTM3NjJj
OTUwYTZlYzc3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04MCw4ICs4MCw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRDU1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFt
ZXNFbmFibGVkKGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBk
ZGY4YzZlMGJkM2YuLjJiZTMxYTlhMDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcApAQCAtMjQzLDI4ICsyNDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VE
ZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVk
aXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFi
bGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAg
ICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVk
aXRvckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6
OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAo
IWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5z
ZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEs
OCArMzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93
bihLZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3
KQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4u
ZDBkNWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkg
Kzg0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAg
IHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNr
aW5nRW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYw
ZmFjMGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVu
ID0gZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVk
SW5UYWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
X2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpB
dXRoZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50
aWNhdGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJu
IHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAg
IGNvcmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmll
dyk7Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAg
Y2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlk
ZWRjYWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQz
YjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAg
ICBzdGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMg
Ym9vbCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUq
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShX
ZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0
aWMgdm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nl
c3NpYmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNo
YWluOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
IH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2
OGJkNjAzNTg1Zi4uOWMwZmQ5NGFhMTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNs
dWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwy
MSArMzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxl
dGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBl
bmFibGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcg
KzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtp
dF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykK
LSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4
IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5
Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNz
IEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBj
bGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5n
VHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4
NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi43ODk3MjQxOGMyMDlmMjc4NzRjMTY3NjNhZTBhZGVm
ODkxMjI3ZTkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwx
OCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1M
RWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNzY2ZjlkNGViNDY0ZGJiMWJmMWQwN2ZmOWNhMmRlZjRkZjljZDMxNi4u
MTBjZTg1ZTJkMzFkNjMyZGFlYTU4YmE5NWRkMTc2NjUwZTZmNjIyNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzgzLDYgKzc4MywxMiBAQCBzdGF0aWMgYm9vbCBzaG91
bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKQogICAgICAgICBbc2VsZiBf
aW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdF07CiAgICAgfQogCisgICAgaWYgKFtbTlNVc2VyRGVm
YXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJTbWFydEluc2VydERl
bGV0ZUVuYWJsZWRdKSB7CisgICAgICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0g
W1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3Mo
KS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7
CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCFzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOworICAgIH0KKwogICAg
IFtXZWJGcmFtZSBfY3JlYXRlTWFpbkZyYW1lV2l0aFBhZ2U6X3ByaXZhdGUtPnBhZ2UgZnJhbWVO
YW1lOmZyYW1lTmFtZSBmcmFtZVZpZXc6ZnJhbWVWaWV3XTsKIAogICAgIE5TUnVuTG9vcCAqcnVu
TG9vcCA9IFtOU1J1bkxvb3AgbWFpblJ1bkxvb3BdOwpAQCAtMjQ3MCwxNCArMjQ3NiwxNiBAQCBz
dGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCiAKIC0gKHZvaWQpc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAgX3ByaXZhdGUt
PnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmbGFnOwotICAgIGlmIChmbGFnKQot
ICAgICAgICBbc2VsZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmFsc2VdOworICAgIGlm
IChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpICE9IGZsYWcpIHsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIC8vIFNldCBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgor
ICAgICAgICBbc2VsZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6IWZsYWddOworICAgIH0K
IH0KIAogLSAoQk9PTClpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKIHsKLSAgICBy
ZXR1cm4gX3ByaXZhdGUtPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgcmV0
dXJuIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiB9CiAKIC0gKHZvaWQpc2V0TWVtb3J5Q2FjaGVEZWxlZ2F0ZUNhbGxzRW5hYmxl
ZDooQk9PTCllbmFibGVkCkBAIC01NDI5LDE3ICs1NDM3LDE3IEBAIHN0YXRpYyBOU0FwcGxlRXZl
bnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNW
YWx1ZSBqCiAKIC0gKHZvaWQpc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOihCT09MKWZsYWcK
IHsKLSAgICBpZiAoX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAhPSBmbGFnKSB7
Ci0gICAgICAgIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBmbGFnOwotICAg
ICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2
YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZF07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0
aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIFtbTlNV
c2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnBhZ2Ut
PnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGZvcktleTpXZWJTbWFydElu
c2VydERlbGV0ZUVuYWJsZWRdOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIFtzZWxm
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6IWZsYWddOwogICAgIH0KLSAgICBp
ZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpmYWxzZV07CiB9CiAKIC0gKEJPT0wpc21hcnRJbnNlcnREZWxldGVFbmFibGVkCiB7Ci0gICAg
cmV0dXJuIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgcmV0dXJuIF9w
cml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0K
IAogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxhZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IGFkZWFiZTdlZTJjZmEy
MmNiZGMyOGUzYmE4MzM3OGY0NjAzZTAyZTIuLjM0N2FiYTQ1Nzg1ZjE4MGU4Yzk3NDZjY2NiNjJh
NGU2NzgwZTk0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
d0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKQEAg
LTE0Niw5ICsxNDYsNiBAQCBwcml2YXRlOgogICAgIEJPT0wgaGFzU3BlbGxDaGVja2VyRG9jdW1l
bnRUYWc7CiAgICAgTlNJbnRlZ2VyIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogCi0gICAgQk9P
TCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgQk9PTCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkOwotICAgICAgICAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NVUFBPUlQpCiAg
ICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRNb3VzZUV2ZW50c1RvQWxsV2luZG93
czsKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZEFjdGl2ZU51bGxFdmVudHNU
b1BsdWdJbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQppbmRleCBl
Mjc2NmYwMWEzNWJjMDdlZWFhNDg2YzI2NTViNGMwMWJhZWQ5N2E2Li5jNjgxZjA5YmE3MjE2ZDhk
MjE2ZTU5NzUyNmFmODU4MWQwMDNkZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0KQEAgLTk1LDEwICs5NSw2IEBAIExheWVyRmx1c2hDb250cm9sbGVyOjpMYXll
ckZsdXNoQ29udHJvbGxlcihXZWJWaWV3KiB3ZWJWaWV3KQogCiAgICAgc2hvdWxkQ2xvc2VXaXRo
V2luZG93ID0gb2JqY19jb2xsZWN0aW5nRW5hYmxlZCgpOwogCi0gICAgc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkID0gIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVj
dEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdCi0gICAgICAgIHx8IFtbTlNVc2Vy
RGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkXTsKLQotCiAgICAgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3VudCsrOwogCiAj
aWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCmluZGV4
IDU5ZjM3MTA4MjBhZDMxNzczZjRkMTMyZjdlYzRkYjMyZTdmMzNmOWQuLjI0MDM0ZjZiMjhmYTUx
ZThmOWQ2MDk1NjE3YzA5MDg4ODFjMTAxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCkBAIC0z
MjYsMTggKzMyNiw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFbmFibGVkKFFXZWJQYWdlQWRhcHRlciogYWRhCiAgICAgYWRhcHRlci0+cGFn
ZS0+c2V0dGluZ3MoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodmFsdWUpOwogfQog
Ci12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3RhdGlj
X2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSktPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCi12b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQ
YWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRpY19jYXN0PEVk
aXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KIHZvaWQgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIq
IGFkYXB0ZXIsIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewog
ICAgIGFkYXB0ZXItPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUo
KS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuZXhlY3V0ZSh2YWx1ZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0Lmgg
Yi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
LmgKaW5kZXggNzBmZjg1ZTcwN2NmZDA5ZGQ4MGI5YmYzYTdjY2RhNTNlM2EzNWM0Yi4uNjdhMDQz
NmQ4Y2U5ZmZmNjEwZTgyOTc1MjMzODIxODliYTdlM2U2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaApA
QCAtOTQsOCArOTQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZXhlY3V0ZUNvcmVDb21t
YW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFT
dHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKFFXZWJQYWdl
QWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUpOwogICAgIHN0YXRpYyBib29sIGZpbmRTdHJp
bmcoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0JiBv
cHRpb25BcnJheSk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJs
ZWQpOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3Qgc2VsZWN0ZWRSYW5nZShRV2ViUGFnZUFkYXB0
ZXIqKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdl
KFFXZWJQYWdlQWRhcHRlciosIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCk7CiAgICAgc3RhdGlj
IHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IGNoYXIqIHRl
eHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmNwcAppbmRleCBhZmNjOGQ2NGVmZTBhNTRiZjFhM2IwYmJjNWVjNWFhMjQ5MDg3YTAzLi4z
Y2YwODcwMjBlY2VmMGYzMjU2MWYzYjAyNTgzNDUxMzI0YTZiNGFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApAQCAtMzMzLDE4
ICszMzMsMjcgQEAgdm9pZCBFZGl0b3JDbGllbnRRdDo6cGFnZURlc3Ryb3llZCgpCiAKIGJvb2wg
RWRpdG9yQ2xpZW50UXQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBh
Z2U7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRp
dG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAgICBib29sIGN1cnJl
bnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAg
aWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7
CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KSk7CisgICAgfQogfQogCiBib29sIEVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2Up
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0
Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEsOCArNTUwLDYgQEAgRWRp
dG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRlciogcGFnZUFkYXB0ZXIp
CiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRpbmcoZmFsc2UpCiAgICAg
LCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0
cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogewog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0
LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTkyNGIyZi4uNzgyY2Rl
M2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTExLDkgKzExMSw2IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJv
b2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBiOyB9Ci0KICAgICBz
dGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRz
RWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUVdlYlBhZ2VBZGFw
dGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9vbCBtX2luVW5kb1JlZG87
IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9uJ3QgcmUtZW50ZXIhCi0g
ICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGQ5ODc4OTI3ZjJm
NDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmM0YzU0YThkNjkxMjYyMmVmYTFiMzQ2Nzgw
ZWZkOTEwNWVmODFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBw
b3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1
cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmlu
Z3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJU
eXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0
aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2ViVmll
d0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90aWZpY2F0aW9uKgogeyAg
bm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNFOyAKLSAgICBt
X3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJu
ICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAg
aWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGlu
Z3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xp
ZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodm9pZCkKIHsKLSAgICBCT09M
IGVuYWJsZWQgPSBGQUxTRTsKLSAgICBtX3dlYlZpZXctPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKKyAgICBQYWdlKiBw
YWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZENoYW5nZVNl
bGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdlYkNvcmU6OkVB
ZmZpbml0eSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZDYyMTQxMTUyMDg2NTFjM2Qz
NjdlMmUyYWQ2MDNlOGU1Mjk4MWVlZS4uM2I0NWY3ZTY4ZTJhODhiNTM5MGVjYjMyNTI3Nzc1MDRk
OGFlZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTM2NSw3ICszNjUsNiBAQCBXZWJWaWV3
OjpXZWJWaWV3KCkKICAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKICAgICAsIG1fcGFp
bnRDb3VudCgwKQogICAgICwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhmYWxzZSkKLSAg
ICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9kaWRDbG9zZShm
YWxzZSkKICAgICAsIG1faW5JTUVDb21wb3NpdGlvbigwKQogICAgICwgbV90b29sVGlwSHduZCgw
KQpAQCAtMzczLDcgKzM3Miw2IEBAIFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwgbV90b3BMZXZl
bFBhcmVudCgwKQogICAgICwgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2ZShmYWxzZSkK
ICAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RQYW5YKDApCiAgICAgLCBtX2xhc3RQYW5Z
KDApCiAgICAgLCBtX3hPdmVycGFuKDApCkBAIC00MDgyLDMyICs0MDgwLDM2IEBAIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dHlwaW5nU3R5bGUoCiBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIFdlYlZpZXc6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAgICAgICAg
IC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gISFmbGFnOwotICAgIGlmIChtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCkKLSAgICAgICAg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaWYgKG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgPT0gISFmbGFnKSB7Cisg
ICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCEh
ZmxhZyk7CisgICAgICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFz
IHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAg
IAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7Ci0g
ICAgKmVuYWJsZWQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsK
KyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgCiBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1fc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZh
bHNlKTsKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghIWZsYWcpOworICAgICAgICAvLyBTZXQg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KyAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAg
cmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6
OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2YWxd
W291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID8gVFJVRSA6
IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYzkzNzM0
NjJmZWYyODQxZTU3N2MwNjA5ZDAzODJmMWI3MzYwN2I2ZS4uZmNiNzgyNDg0MzA4M2NlZTNjMDgz
NTk4ZDNhMThlOWQ3ZmJjNGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmll
dy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTExMiw4ICsxMTEyLDYg
QEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkOwogICAgIHVuc2lnbmVk
IG1fcGFpbnRDb3VudDsKICAgICBib29sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7Ci0g
ICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fZGlkQ2xvc2U7CiAgICAgYm9vbCBt
X2hhc0N1c3RvbURyb3BUYXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pbklNRUNvbXBvc2l0aW9uOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudFdpbkNFLmNwcAppbmRleCBiOWY0NjhmNDE1NDJiY2NkMDhiZTUxMWM2NzgxNDgxZjc1M2Ez
Y2IyLi5mZTFhZjA0YTBlZWJkODg0ZTlkNTI3YzJlYmIyMDM2NTA5NDVmYzU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdp
bkNFLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
S2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlVu
ZG9TdGVwLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIwOSwxNCArMjEwLDE4IEBAIHZv
aWQgRWRpdG9yQ2xpZW50V2luQ0U6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVu
dFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2Uo
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdl
LT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0
b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0g
bV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6dG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0
b3JDbGllbnRXeC5jcHAKaW5kZXggNWVmNjRjZDRhOWMwMTM2M2M0OTllNTdmY2Q5N2FkZDVkOWMz
MTVhYS4uNzI2YWQwYTNmODg4YWM5NTY1MWM2YTMyMjdkNDJmM2IzNjhlMmE3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNsdWRlICJQYWdl
LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVkZSAiU2V0dGlu
Z3MuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYlZpZXcuaCIKQEAgLTE0OSwxNCArMTUwLDE2IEBAIGJvb2wgRWRpdG9y
Q2xpZW50V3g6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikKIAogYm9vbCBFZGl0b3JDbGllbnRX
eDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJv
b2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNmRkMzhi
Nzk5ZTQ2ZGRkNjY0NDk1NzgzNDNmMzQ0Yzg4MmI2M2M3Li44YWQ4Njc3YWE3ZTY5MjJjMTM0ZjA3
NDM2YTFkMTdhM2M4ZGZkYzI4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTQgQEAKKzIwMTMtMDMtMDcgIE1hbnVlbCBSZWdvIENh
c2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29kZSBy
ZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBm
cm9tCisgICAgICAgIGludGVybmFscyBmcm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rp
b25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChU
ZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5k
ZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJL
aXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNr
QmVycnkuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAg
ICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAg
ICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1Rv
Q29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5u
ZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9x
dC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5u
ZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVz
dFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4
LmNwcDoKKwogMjAxMy0wMy0wNiAgSnVsaWUgUGFyZW50ICA8anBhcmVudEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgRGFzaGJvYXJkIGNsZWFudXA6IE1vdmUgYWxsIGRhc2hib2FyZCB1aSByZWxh
dGVkIGNvZGUgaW50byB1aS5qcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXgg
N2QzZTg1ZTAwNzQzYzI0ZTEyN2FkMmMxZWZiYTY2MzRjNjdkZWQzNi4uZGFlY2NhZmU2ZGRlNWFl
Y2FmM2U0YTRjZjA2YmQ2MmY3YmUzODQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5j
cHAKQEAgLTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByZXNldFBhZ2VWaXNp
YmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmCiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfSAgICAKIAotc3RhdGljIEpTVmFs
dWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNv
bnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXpl
X3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJl
ZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29u
dHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChK
U1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVybiBKU1Zh
bHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0
b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwg
SlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1
bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNl
cHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMTUyNiwxNiArMTUxNiw2
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVm
IGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwg
Y29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewot
ICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNv
bnRyb2xsZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoSlNWYWx1ZVRvQm9v
bGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92aXNpb25h
bEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVu
Y3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25z
dCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAg
VGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVj
dEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjEzOCw5ICsyMTE4LDcgQEAgSlNTdGF0aWNG
dW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0UGx1
Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRzIiwgc2V0U2VyaWFsaXplSFRUUExv
YWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIiwgc2V0U3BhdGlhbE5hdmlnYXRpb25F
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3RvcFByb3Zpc2lvbmFsRnJh
bWVMb2FkcyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMiLCBzZXRUYWJLZXlDeWNs
ZXNUaHJvdWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5oCmluZGV4IDRmMzcwYzMzOWM3Y2ZhOThlODlmMzQwMDI5MjM3YjFiNDg1NGYxZGIuLjE3ZmI0
MDhkYjlmODg0MDAyNWY2YWI5MTc0N2JjYThlNzRiMzlhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQbHVnaW5z
RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdo
RWxlbWVudHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9k
ZShib29sIGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZmxh
Zyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5k
ZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRy
ZWUuY3BwCmluZGV4IDcxNjUyZGNkMTIzOGExMzY0MzcyYjA5ODM1ODBiYzAyZDI4MzgxMDUuLjk1
NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1ZDg2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xNTEsNyAr
MTUxLDYgQEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIER1
bXBSZW5kZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19jdXJyZW50SW5zdGFuY2UgPSAwOwotYm9v
bCBEdW1wUmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFs
c2U7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsK
QEAgLTI5NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVu
dFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVybCwgY29ucwogCiAgICAgdG9wTG9h
ZGluZ0ZyYW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hlZCA9IGZhbHNlOwotICAgIHNfc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogICAgIG1fcG9saWN5RGVsZWdhdGVF
bmFibGVkID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGljeSA9IGZhbHNlOwogICAgIHRlc3REb25l
ID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1
bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRleCBhMTNhZmIxMmQ4ZDUyMzgzMzU0N2Yz
M2MyNzA5MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVkMDc2NTc2ZDdjZGJjZDAwYWRmMzlkY2Uw
OWMwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5k
ZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
RHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSos
IGludCBpbnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogCi0gICAgYm9vbCBpc1Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBzX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKICAgICAvLyBCbGFja0JlcnJ5OjpQbGF0
Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENsaWVudCBtZXRob2QKQEAgLTE0OCw3
ICsxNDYsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2FjY2VwdHNFZGl0aW5nOwogICAgIGJv
b2wgbV9sb2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJvb2wgc19zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiB9OwogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxh
Y2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJC
bGFja0JlcnJ5LmNwcAppbmRleCA2NDVhZTc5Njg4MWYzYTQxZjBiYzk3Mzc4MzkyOTIwOWU0Mzcw
NWRjLi5iZDJmMDM0NTc1OGYwM2FmYTE5NjI1YTQzNDQyYjY0ZmQ0NjgyZDUwIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0
b3JFbmFibGVkKGJvb2wgZmxhZykKICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJU
cmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRYU1NBdWRpdG9y
RW5hYmxlZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1
bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xlc1Ro
cm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBpZiAoIW1haW5GcmFtZSkKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dl
YlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9w
dWJsaWMvV2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNiZDc4MGRhNjFkOWJmZTdlOWM4MGU1MjFm
NmIxYjkwNzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3NjFlYmE3MjkwYzExZmNkMGExNSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViVGVzdFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1
bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcm90ZWN0ZWQ6
CiAgICAgV2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwg
Y29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQo
Y29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Ci0g
ICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIGJvb2wgaXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoV2Vi
S2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJik7CiAgICAg
V2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRpYUNsaWVudCgpOwogICAgIHZvaWQg
cHJpbnRQYWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAgLTM2OCwxNCArMzY2LDYgQEAgcHVibGlj
OgogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgICAgICBC
YXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJh
c2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
OwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2ViRnJh
bWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVE
YXRhKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hvd0NvbnRleHRNZW51KGZy
YW1lLCBjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAyYWQzNDMw
YjgyNzY4ZDdkZDAwMjdmNDhhZjhmMDY3MTI3YjY3ODI0Li42MmI2ZjY5NTU4NDUyODU5NDc0YTVh
YWFhYjk0YTFkYWUyZjI4N2E3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMjA3LDggKzIw
Nyw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMp
CiAgICAgYmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5nTm9kZSIsICZUZXN0UnVubmVyOjp0ZXh0
U3Vycm91bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9kKCJkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUi
LCAmVGVzdFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0aG9kKCJl
bmFibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXplTW9kZSk7
Ci0gICAgYmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgJlRlc3RSdW5u
ZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2aWNlT3Jp
ZW50YXRpb24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBi
aW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkQWNxdWly
ZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2siLCAmVGVz
dFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAgLTQwOSwxMiArNDA3LDYgQEAgdm9pZCBU
ZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0Jl
Zm9yZVVubG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQmxvY2tSZWRpcmVjdHMgPSBmYWxzZTsK
ICAgICBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwgPSBmYWxzZTsKLSAgICBtX3Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZkZWYgV0lOMzIKLSAgICBtX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOwotI2Vsc2UKLSAgICBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLSNlbmRpZgogICAgIG1fc2hvdWxkRHVt
cFJlc291cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAgICAgbV9odHRwSGVhZGVyc1RvQ2xlYXIu
Y2xlYXIoKTsKQEAgLTY3MywxNiArNjY1LDYgQEAgYm9vbCBUZXN0UnVubmVyOjpzaG91bGRJbnRl
cmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW50ZXJjZXB0UG9zdE1lc3Nh
Z2UuaXNCb29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVzc2FnZS50b0Jvb2xlYW4oKTsKIH0KIAot
Ym9vbCBUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0Ci17Ci0g
ICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotfQotCi1ib29sIFRlc3RSdW5u
ZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogYm9vbCBUZXN0UnVu
bmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpAQCAtMTQ2NSwyMCArMTQ0Nyw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVudExpc3Qm
IGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5zZXQoc3Vycm91bmRpbmdUZXh0LnRl
eHRDb250ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlh
bnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRz
WzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGFyZ3Vt
ZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZv
aWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlm
IChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAg
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5i
b29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6
ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3Nob3VsZER1bXBSZXNvdXJjZVBy
aW9yaXRpZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDI1ZTdmZTg0NTg5YjdkODE3
MWZjNjE5YjA5NTg5Y2QxMTkxNjA4YjEuLjFiMGM2ZDQ5MWRkYjUyZmM4ODE0NjBhZDk5OTk3OTMy
ODlkOGZkYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTExOCw4ICsxMTgsNiBAQCBwdWJsaWM6
CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0OwogICAgIGJvb2wg
cG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRJ
bnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNv
bnN0OwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAgICAgV2ViS2l0OjpXZWJOb3RpZmljYXRp
b25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwpAQCAtMjY5LDExICsy
NjcsNiBAQCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0byByZXRyaWV2ZS4KICAgICB2b2lkIHRl
eHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwog
Ci0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhpcyBpcyBl
bmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCi0gICAgLy8gRW5hYmxlIG9y
IGRpc2FibGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxlY3Rpb24gb24gZG91YmxlIGNsaWNrLgot
ICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZShj
b25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNhYmxlQXV0
b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkBAIC02
NjgsMTAgKzY2MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fd2lsbFNlbmRSZXF1ZXN0U2hv
dWxkUmV0dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0K
LSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLQogICAgIGJvb2wg
bV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwogCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJp
bmc+IG1faHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXgg
ODY4MTMzZmU0NzBmOTFhZWZjZWQxZmMxOTZiY2E4ZjcwZDMwZDA5NC4uY2M1MDc1MzRlMTZkOTg1
OWEyMmM1N2RjMjFkNTRhYzViM2UyYWFkZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBA
IC05NzgsMTYgKzk3OCw2IEBAIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmco
KQogICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoInBvc3RQcm9ncmVzc0ZpbmlzaGVk
Tm90aWZpY2F0aW9uXG4iKTsKIH0KIAotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RS
dW5uZXIoKS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJUZXN0
UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAgIHJl
dHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0
TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRh
KQogewogICAgIG1fdGVzdEludGVyZmFjZXMtPmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRNZW51
RGF0YShjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViVmlld0hvc3QuY3BwCmluZGV4IDg3NmU1M2YzMTc3ZDU0MGYwYWQzZDg3MzYxOWZhYjE1NTll
NjAzN2IuLmE3YWZmNjVkYjZjM2Q0YWU2ZTI0YTg5YjBmYzExNmNhMGU2NTQxMzcgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE3MCwyMCAr
MTcwLDYgQEAgYm9vbCBXZWJWaWV3SG9zdDo6c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJp
bmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYgcmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAot
Ym9vbCBXZWJWaWV3SG9zdDo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJl
dHVybiB0cnVlOwotfQotCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKQotewotI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxz
ZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBib29sIFdlYlZpZXdIb3N0OjpoYW5k
bGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpCiB7CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1lLmVt
cHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRl
eCBmZjJlZGE3ZmZlZWY4ZjY3NTljZTRhOTM2YmRkMjlkN2JkNGFhOGM5Li40YTM0ZjM4YTJlMzNj
MDc0ZjEwN2YwMGVjOWY3YzkwNGVhMjk1NGE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3SG9z
dCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1l
Q2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNvbnN0
IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20sIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBXZWJL
aXQ6OldlYlRleHRBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVhbCBi
b29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5bGUs
IGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2FyZEV2
ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpXZWJG
cmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bk1v
ZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwCmluZGV4IGY4N2VlYjA3MDY0NmY1OTAxN2JhNjgwODRjZDc2ZDJkMGE2ZDEzOTYuLjYx
MjdjOWQ2MjkyNGIxZDg0Y2MwYjdiOGJjNTM1NjExODA1MWNjYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMzE1LDggKzMx
NSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3Rl
bnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlvbk1l
c3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFpblZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXcoKSwg
dHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5h
YmxlZChtYWluVmlldygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCht
YWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZl
cnNMb2FkaW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5WaWV3
KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhU
VFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVz
dFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5j
cHAKaW5kZXggZTY1YjVhMjU5ZTJjMTI1ZGEyN2NjOTAwMWNlN2I0MThmMzYwOTNkNS4uYTk5YTNi
NWVkYzc2ODdiNDJmNDIxMjg4OTVkYThkYTdmMzVjMWU3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAot
dm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQot
ewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29sIHdh
aXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRvZyA9
IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNl
X3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIGV3a192aWV3X3NldHRp
bmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChicm93c2VyLT5tYWluVmlldygpLCAhZmxh
Zyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1
YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhlZGRlMDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNmMTkz
MmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUwMSw4ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNldERl
ZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNvbl9k
YXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6
OnNldERlZmVyc0xvYWRpbmcod2ViVmlldywgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDQyY2U2NzI2ZDg4M2U5MzdlZWE1YmU4
YzBmNjRiZDJlMDdmMWM4YzQuLmNkMTA0NGQwZDIzMzFlMmE0YTFlYzc3ZThkNDJmOTcyN2ZhYWRh
NjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTMy
MywxMSArMzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRv
d0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJfZnJh
bWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSksIGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4g
d2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdhdGNo
ZG9nKDApOwpAQCAtNDg1LDExICs0ODAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRh
YmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9z
ZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQot
CiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsK
ICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXco
bWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVu
ZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpp
bmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1N2E0
NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0OWE4YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9pZCBy
ZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBnVGVz
dFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFpbkZy
YW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAgW1dl
YlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZpZXcg
X3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93c1Jv
dW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5t
bQppbmRleCBiMjMyNmEyNmIzNDlhMDgzYmE3OThhOGM3Yjk1YWRhOWRmMDVlMzY2Li5iMzFjOWFk
NzI3YjJlNjZmN2ZlN2I1Y2ExZDY4ZGJiNGU0N2JmZTY5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RSdW5u
ZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUgd2Vi
Vmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZp
ZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
OmZsYWddOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNo
ZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hkb2dG
aXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjNmZDM1YzFjNmZiNWYxNzkz
M2I2NTMyYmQ0Yzg3NDE3MDBlOGNkMi4uZGZhNjcyYjY3NGRlYzNjZTk3MDYyZjU4ZmVmY2ZjOTkz
ODAxYTA1ZiAxMDA3NTUKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5j
cHAKQEAgLTE5Miw4ICsxOTIsNiBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAg
ICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwog
ICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRy
dWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZlcnNM
b2FkaW5nKGZhbHNlKTsKIAogICAgIC8vIGdsb2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQgZXhw
bGljaXRseS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJR
dC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IGU1
ZTgyNDMwZTE3ZGUyOTYxNzkzMzVkNGU2NTU4NWQxYjRjNzI5YzAuLjYzODlhMGRlZmE3N2UyYTIz
YjE2ODVjYjcxNDAyN2QyZmI1NmZkYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1
bm5lclF0LmNwcApAQCAtNzIwLDE2ICs3MjAsNiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2Ny
b2xsYmFyUG9saWN5KGNvbnN0IFFTdHJpbmcmIG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5nJgog
ICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3kobywg
cCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQotdm9p
ZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBl
bmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KIHZv
aWQgVGVzdFJ1bm5lclF0OjpleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNv
cmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IDY1YmJiODJhMmNiNDEzZTcyMTk3
MzhiZmE3ZTU4MzA3Y2JjY2RjMGUuLjk5MDdhMmU1MzcyZjg4OWJhZWEyM2RjM2EwNTg0ZTc2MjZl
OTZjMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0xNzgsOCAr
MTc4LDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwog
ICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSk7Ci0g
ICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0NvbW1h
bmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5nKCkp
OwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsK
ICAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0JiBv
cHRpb25BcnJheSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAppbmRleCBmNzQ3NmZhMTI2M2RmMWUwY2UyNjA2YTM4Mzc4NzNlZGE3OGNlZjViLi44OWZhOWY3
YWZhMTYzNWY2MTI1ZDQ0YzllMTMyNGVkYzE1ZTI5MTA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTg5OSwxMCArODk5LDYgQEAgc3RhdGljIHZv
aWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAg
V2ViQ29yZVRlc3RTdXBwb3J0OjpyZXNldEludGVybmFsc09iamVjdChjb250ZXh0KTsKICAgICB9
CiAKLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoU1VD
Q0VFREVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICB2
aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFRSVUUpOwotCiAgICAgQ09N
UHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlld1ByaXZhdGUoUXVlcnksIHdlYlZpZXcpOwogICAg
IGlmICghd2ViVmlld1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCA2NjQ4YzNlZTE1ZGQ0YTU2ZWUwYjQ1YjIx
ZTA4N2ZhODY0NGU2OWYyLi5kZDRkODczMWRmZWU0ODNkZmUwZTliODcxNTJmYTY0M2M2ZGEwYzc5
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03MjMs
MzIgKzcyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCBmbGFnKQog
ICAgIDo6U2VuZE1lc3NhZ2Uod2ViVmlld1dpbmRvdywgZmxhZyA/IFdNX1NFVEZPQ1VTIDogV01f
S0lMTEZPQ1VTLCAoV1BBUkFNKTo6R2V0RGVza3RvcFdpbmRvdygpLCAwKTsKIH0KIAotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAg
IENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3
KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRp
bmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2Uo
JnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcp
Ci17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJhbWUt
PndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElXZWJW
aWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUlu
dGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0VkaXRp
bmctPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxT
RSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hkb2dJ
bnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lkIENBTExCQUNLIHdhaXRVbnRpbERvbmVXYXRj
aGRvZ0ZpcmVkKEhXTkQsIFVJTlQsIFVJTlRfUFRSLCBEV09SRCkKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS93eC9UZXN0UnVubmVyV3guY3BwCmluZGV4IDQ3NTNjMjljYTU0ZjZhZWUxYTlkY2E5MTNkOWI1
MWVkNTAxYTlhMWUuLmY0YmI5NGEwZTNkMjk2Y2FmN2MwODZjMWRmYzk3N2JjYzY2ZTY5OTQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcApAQCAtMTUxLDExICsxNTEs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAg
ICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAot
fQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFdhaXRUb0R1bXAoYm9vbCB3YWl0VW50aWxEb25lKQog
ewogICAgIHN0YXRpYyBjb25zdCBpbnQgdGltZW91dFNlY29uZHMgPSAxMDsKQEAgLTI4OCwxMSAr
MjgzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVk
IGxvbmcgbG9uZyBzaXplKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsK
LSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0Rl
dmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wg
Y2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91Ymxl
IGdhbW1hKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIERldmljZU9yaWVudGF0aW9u
IGxheW91dCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNjI1YmZlOWZmOWE5NWZmYTAxMDM2ZGRiZTNlOWI4ZjMw
OGY3YTY0Li40ZDc3NTFjYWMyN2JmZTU0N2U2Mjg4MTg2Nzk1ZTgyYTBiYTYxMzgxIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzEgQEAKKzIwMTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdv
QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBieQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbiB0ZXN0cy4KKworICAgICAgICBCZSBzdXJlIHRo
YXQgdHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcmUgc2V0IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5IGFyZQor
ICAgICAgICBtdXR1YWxseSBleGNsdXNpdmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5n
L3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5l
LWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxp
bmcvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChpbml0U3BlbGxUZXN0KToKKyAgICAgICAg
KiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRl
cnNjb3Jlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zOiBVbmZsYWcKKyAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5l
LWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAgYXMgaXQgcGFzc2VzIG5v
dy4KKwogMjAxMy0wMy0wNiAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAK
ICAgICAgICAgQm94LXNoYWRvdyBkaXNwbGF5ZWQgaW1wcm9wZXJseSB3aXRoIGJvcmRlci1yYWRp
dXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRp
bmctZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRp
dGluZy1kaXNhYmxlZC5odG1sCmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgx
OTgxZGVkNjkuLmQwZjdkN2FmMTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1k
aXNhYmxlZC5odG1sCkBAIC01LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVk
aXRpbmdUZXN0KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJmYmZj
NzQwYWZhMzVjMmQwOGFjOTU3N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVmNTI3
YWVlMzZjMGQ4ZmJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQsNyBA
QAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZh
bHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4YWE4
Mzc2OTM3N2M4Njg2YWY4Zi4uYzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkzNjlh
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0g
ICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
KyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWlt
Zy1jcmFzaC5odG1sCmluZGV4IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2Mzc1
MDQuLmY3NGFhMjY1Njc3NjU2MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1n
LWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1
ZSk7CiAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0
bWwKaW5kZXggODUzMGZiYzUzMWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4M2Zi
MWZhMWU1OGI1ZTc0MTVlMmYzYWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbApA
QCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9u
T2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2Ny
aXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5q
cyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGlj
ay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3MmFm
ZjJiMjVmYjcyMzU2OTUwMzA5MDk1YzFjMmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2ODIy
MTk5MDlhOTcxNmMyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJs
ZS5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91
YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3ICs3
OCw4IEBAIGZ1bmN0aW9uIHRlc3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1MLCBl
eHBlY3RlZFRleHQpCiAgICAgc2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5IiwgdG9M
aXRlcmFsKGV4cGVjdGVkVGV4dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJzdFdv
cmRJbmxpbmUgPSAiPHNwYW4gaWQ9J3RhcmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1lMTwv
c3Bhbj4gYW5kIG5vdCBzZWxlY3QgdXMiOwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxkU2Vs
ZWN0ZUZpcnN0V29yZElubGluZSwgInNlbGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2Njcx
ZTdjODQ5MDdiNzA3MmQ0OTUyMC4uMDk0YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0ZjU2
MjQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMv
dXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGls
LmpzCkBAIC0yNyw4ICsyNyw4IEBAIGZ1bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1lbnRJ
ZCwgdGVzdFRleHQsIHRlc3RGdW5jdGlvbikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9IHRl
c3RGdW5jdGlvbjsKICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNl
dEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRl
c3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlj
a2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbApp
bmRleCBjYTU5MzVmZTAwMDVhNWEwNjEzNTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4MTBk
MDFiYjk4ZTZlNWYxM2MzOGQ2MDkzZDM2ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNj
b3Jlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91
YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAg
aW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9u
KHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3Bl
bGxlZCB3b3JkIHdpdGhvdXQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5l
ci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsK
ICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGlu
YXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFy
ZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNl
dEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3
ICs1MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIs
ICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sg
dGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRl
c3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0
cnVlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsg
ZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zm
c2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9u
Lm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1j
bGlja2VkLXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
ZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzkyN2Ew
OWMzZmM0NmNlMDI3Y2YuLjlkMjQ5ZmQ3ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0ZWEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91Ymxl
LWNsaWNrZWQtd29yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3Bl
bGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVs
bFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUp
IHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0
cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQg
d2l0aG91dCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBk
ZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExl
ZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0
U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHRO
b2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCku
dG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3
b3JkIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBk
ZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExl
ZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwog
ICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZWExNzZmNGNjZmFmYjhiMmQ4MTYxNzRlMGUxNDdj
MzAwZjYwNzhmLi5mYjBiOGI1Y2ZkNjI1OTg3Y2U4ZmJjZTdkYzlmZjUzYmU4NzkxOTcxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc1LDkgKzM3NSw2
IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24t
d2l0aC1lbWJlZGRlci5odG1sCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENv
bnRyb2xsZXIuYWRkRGlzYWxsb3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJlc291
cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkCi1lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIucGFnZVByb3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0
bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192064</attachid>
            <date>2013-03-07 12:15:47 -0800</date>
            <delta_ts>2013-03-07 23:47:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130307211150.patch</filename>
            <type>text/plain</type>
            <size>84765</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uYTg5ZGM0MGVjYjA0MWQ0MWU5Y2I5MzQzNGJkYjc4
NDFhNTYxN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLmZkNWU4OWM4
YmQ0NzBkODk2MGUyNDMxNzBiNzU5ZGExYzE4MTM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjEwYzgzNTQ1YTNhOWFhYzg0MmQzNjRiNzljYTJlZDBh
NGE2MjY4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOiBSZW1vdmUgQVBJIHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVF
bmFibGVkCisgICAgICAgIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRo
ZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20gcGFnZQorICAgICAgICBzZXR0aW5ncyBmcm9tIG5vdyBv
bi4KKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDMtMDcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2aWEgV2ViS2l0
IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGRiZTZjZmQ2MWQzZTE5NmUwYzc3YmZjY2QzNGVlYzEyOWE0NWJhNWUuLjU5NTQz
NzRkOTJiY2VmOGIxY2MzNTA4MDdiOGRkMDkyMTZhYzczMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OkVkaXRv
ckNsaWVudEVmbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6
CisgICAgICAgIChFZGl0b3JDbGllbnRFZmwpOgorCiAyMDEzLTAzLTA2ICBLcnp5c3p0b2YgQ3pl
Y2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1pc3NpbmcgaW1wbGVt
ZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwgYW5kIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRFZmwgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzZjhiNTRhMWYyOWZmMDliYWJi
ZTk1M2M0ZmZiMzhhMDY2NDIzZTdmLi40MGU3MTMyODExMzRkODlmOWRjMmEwNTg0NjkzNjgwNTkx
Y2ZkNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNl
dHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0
byBEUlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTMtMDMtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggNWRhMDJhMzkyNzc1YTFjNDI5NWJkMjc4YTE0YTU4OWNiM2NkNDI2
NS4uOGRjYjY2NDE3M2JkYTdjMjQyYzQ2N2MxYjIwNDk4OWVkYjlkMmNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFz
ICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNl
cnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKTogSW5pdGlhbGl6ZQorICAg
ICAgICBzZXR0aW5ncyBmcm9tIE5TVXNlckRlZmF1bHRzLgorICAgICAgICAoLVtXZWJWaWV3IHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlZpZXcg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJp
dmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRGVmYXVsdCBtb3VzZSBjdXJzb3IgYmVoYXZpb3Igc2hvdWxkIGJlIGF1
dG8taGlkZSBmb3IgZnVsbCBzY3JlZW4gdmlkZW8gd2l0aCBjdXN0b20gY29udHJvbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggOTFmOTk5MDU2NWM5Y2Y4MmMwZmVmMzAxMWExN2YyZDMxY2MwZmM5Zi4uYzYz
N2MzNTZjZjdlNWUyMjI3ODM0ZGVmMjYwYWJiNzVmNTMwNGRkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JD
bGllbnRRdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAg
ICAgICAgKEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRo
SWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCA4YWRlMzhkMjZkZGQ5NGM3MzVmMjFjN2RlNTFkOWZmNzhl
MDM0YjAzLi5jMWYxZDA5ZWEyNWUxOGE1NDE2ZWE2NmY4MzIwM2RhMDFkMzk1ODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6
CisgICAgICAgIChXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6
CisgICAgICAgIChXZWJWaWV3KToKKwogMjAxMy0wMy0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIx
NDQ1NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmExOThhNDI0ZTg4YmEwMzVlNzQ4NmMy
MGMwMWY3NzY5MzM0YzkuLjZkYjhhOWMzMjQ2YWE2NzdiMGJlYWIwNzBlYWY2MDhmYTI0YmJiYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMDcgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5D
RTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKwogMjAxMy0wMi0xMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxlIGRlbGV0ZSBi
dXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFuZCBkZWxldGUgRWRpdG9yQ2xpZW50
OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDAzMjRlMjE1ZGJl
ZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLmQxZDA1YmVmYjBhNTk2MmRhYWZlZWQwZGU5
MTAwOTRlNTFkMzYwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMt
MDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDItMjYgIERt
aXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJnZWQg
VGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29uc29sZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhkNjQ4NGYzZDZlZDYyYzFjOGUwZi4u
ODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4NDQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZh
dWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CiAjZWxzZQogc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFDX09TX1gpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKKyNlbHNlCitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmFsc2U7Cisj
ZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYK
KyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGU3OTkxZWFk
Y2MxNDAzMDdmYzA5NzY3YmVmZjIxNGE1M2JmN2ViYWQuLmJlNTlmMTcxMjE2ODE1NGJlOTU1ODg1
YjYxNmRlYWY5MjRlNDk3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTk1LDQgKzE5
NSw1IEBAIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZAogCiBsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUK
K3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1
YjIzY2U0ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJk
MTk2MGMwYzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVt
cFJlbmRlclRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1
bXBSZW5kZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3Rp
bGxTZWxlY3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRv
UmFuZ2UsIGludCBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSos
IGludCBpbnNlcnRBY3Rpb24pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4
dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCBkNTE1Zjg4MjUwNGI2NDYwMWVmZGM2ZTE5ZDIzMjA4OWFiMmI4
M2VhLi45ZDUyNzFhZTkwMDhlOGUxMmRmNDBiYzY2ODdkYWYyM2JlYTY1YTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNl
bGVjdGlvbkhhbmRsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VfcC5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3
MCwxOCBAQCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKiByYW5nZSkKIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAg
aWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUpCi0gICAgICAgIHJldHVybiBt
X3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFi
bGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IGU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4
NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4NTMxOWQ2OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4
MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0
aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Vs
ZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25FbXB0eSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5
NGQzMzRiZTNhODYwYmM0ODIyZjQuLjY0MWJiZDA3NmYxMjRiMWRlMmYyNTIwYmE2ZTIwOWY3YTQ1
NzhjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtOTUsMjAgKzk2
LDE2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3Jl
OjpGcmFtZSogZnJhbWUpCiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Cisg
ICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdl
KCktPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKTsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKKyAgICBpZiAo
bV93ZWJWaWV3LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNob3VsZFNwZWxsY2hl
Y2tCeURlZmF1bHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzIwZmY5ZjA0OTRl
MjcxNzgyMDk3ZTQzODE5YjYxNzBkMzhmNjg1Yi4uNTIxNWNlNjBjNWM4NGJhNjlhNzgzYWQ3MzA1
YmE1OGU5Y2I3NjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMjMsMjggKzMy
Myw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSku
aXNFbmFibGVkKCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQot
ICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlm
ICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4o
cGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3Jj
ZUxheW91dChFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xh
eW91dChld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDk1ODg4MTFmYWQ4Y2I1
MDkwNjVjNDRlM2I3Njk3ZDRlYjYzODIzNTAuLjMxMWQ5YTAyOWE5YWVhMDJhNjIzMzBiYTM3NjJj
OTUwYTZlYzc3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04MCw4ICs4MCw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRDU1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFt
ZXNFbmFibGVkKGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBk
ZGY4YzZlMGJkM2YuLjJiZTMxYTlhMDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcApAQCAtMjQzLDI4ICsyNDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VE
ZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVk
aXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFi
bGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAg
ICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVk
aXRvckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6
OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAo
IWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5z
ZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEs
OCArMzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93
bihLZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3
KQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4u
ZDBkNWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkg
Kzg0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAg
IHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNr
aW5nRW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYw
ZmFjMGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVu
ID0gZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVk
SW5UYWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
X2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpB
dXRoZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50
aWNhdGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJu
IHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAg
IGNvcmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmll
dyk7Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAg
Y2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlk
ZWRjYWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQz
YjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAg
ICBzdGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMg
Ym9vbCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUq
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShX
ZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0
aWMgdm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nl
c3NpYmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNo
YWluOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
IH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2
OGJkNjAzNTg1Zi4uOWMwZmQ5NGFhMTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNs
dWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwy
MSArMzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxl
dGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBl
bmFibGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcg
KzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtp
dF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykK
LSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4
IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5
Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNz
IEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBj
bGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5n
VHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4
NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi4yNzUxZGIzNmMyMmMwOTIyMDMyZDQ0MjMyOGI1ZDFm
YzgyMGM2MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwx
OCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1M
RWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHls
ZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDc2NmY5ZDRlYjQ2NGRiYjFiZjFkMDdmZjljYTJkZWY0ZGY5Y2QzMTYu
LjEwY2U4NWUyZDMxZDYzMmRhZWE1OGJhOTVkZDE3NjY1MGU2ZjYyMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTc4Myw2ICs3ODMsMTIgQEAgc3RhdGljIGJvb2wgc2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkKICAgICAgICAgW3NlbGYg
X2luamVjdE91dGxvb2tRdWlya3NTY3JpcHRdOwogICAgIH0KIAorICAgIGlmIChbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkXSkgeworICAgICAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21h
cnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdz
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCghc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICB9CisKICAg
ICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1l
TmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3AgKnJ1
bkxvb3AgPSBbTlNSdW5Mb29wIG1haW5SdW5Mb29wXTsKQEAgLTI0NzAsMTQgKzI0NzYsMTYgQEAg
c3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRl
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykK
LSAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBp
ZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KyAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9
CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAg
cmV0dXJuIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJl
dHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJs
ZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQyOSwxNyArNTQzNywxNyBAQCBzdGF0aWMgTlNBcHBsZUV2
ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFn
CiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykg
ewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAg
ICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJp
dmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0
ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0
dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdl
LT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JLZXk6V2ViU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2Vs
ZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOiFmbGFnXTsKICAgICB9Ci0gICAg
aWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ6ZmFsc2VdOwogfQogCiAtIChCT09MKXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogewotICAg
IHJldHVybiBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIHJldHVybiBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9
CiAKIC0gKHZvaWQpc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBhZGVhYmU3ZWUyY2Zh
MjJjYmRjMjhlM2JhODMzNzhmNDYwM2UwMmUyLi4zNDdhYmE0NTc4NWYxODBlOGM5NzQ2Y2NjYjYy
YTRlNjc4MGU5NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBA
IC0xNDYsOSArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBCT09MIGhhc1NwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJP
T0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIEJPT0wgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKLSAgICAgICAgCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQog
ICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRv
d3M7CiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRBY3RpdmVOdWxsRXZlbnRz
VG9QbHVnSW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXgg
ZTI3NjZmMDFhMzViYzA3ZWVhYTQ4NmMyNjU1YjRjMDFiYWVkOTdhNi4uYzY4MWYwOWJhNzIxNmQ4
ZDIxNmU1OTc1MjZhZjg1ODFkMDAzZGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCkBAIC05NSwxMCArOTUsNiBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5
ZXJGbHVzaENvbnRyb2xsZXIoV2ViVmlldyogd2ViVmlldykKIAogICAgIHNob3VsZENsb3NlV2l0
aFdpbmRvdyA9IG9iamNfY29sbGVjdGluZ0VuYWJsZWQoKTsKIAotICAgIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCA9ICFbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmpl
Y3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXQotICAgICAgICB8fCBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZF07Ci0KLQogICAgIHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQrKzsKIAog
I2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRl
eCA1OWYzNzEwODIwYWQzMTc3M2Y0ZDEzMmY3ZWM0ZGIzMmU3ZjMzZjlkLi4yNDAzNGY2YjI4ZmE1
MWU4ZjlkNjA5NTYxN2MwOTA4ODgxYzEwMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAt
MzI2LDE4ICszMjYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqIGFkYQogICAgIGFkYXB0ZXItPnBh
Z2UtPnNldHRpbmdzKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHZhbHVlKTsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRp
Y19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2Vi
UGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxF
ZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVy
KiBhZGFwdGVyLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBhZGFwdGVyLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oCmluZGV4IDcwZmY4NWU3MDdjZmQwOWRkODBiOWJmM2E3Y2NkYTUzZTNhMzVjNGIuLjY3YTA0
MzZkOGNlOWZmZjYxMGU4Mjk3NTIzMzgyMTg5YmE3ZTNlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTk0LDggKzk0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29t
bWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBmaW5kU3Ry
aW5nKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFi
bGVkKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFw
dGVyKik7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5n
ZShRV2ViUGFnZUFkYXB0ZXIqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpOwogICAgIHN0YXRp
YyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBjaGFyKiB0
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAKaW5kZXggYWZjYzhkNjRlZmUwYTU0YmYxYTNiMGJiYzVlYzVhYTI0OTA4N2EwMy4u
M2NmMDg3MDIwZWNlZjBmMzI1NjFmM2IwMjU4MzQ1MTMyNGE2YjRhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTMzMywx
OCArMzMzLDI3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29s
IEVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVy
biBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5w
YWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCiB7Ci0gICAgYm9vbCBjdXJy
ZW50ID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgPSAhY3VycmVudDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAg
IGlmIChwYWdlKSB7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkp
OworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkpOworICAgIH0KIH0KIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRR
dDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTQxLDggKzU1MCw2IEBAIEVk
aXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZUFkYXB0ZXIqIHBhZ2VBZGFwdGVy
KQogICAgIDogbV9wYWdlKHBhZ2VBZGFwdGVyKQogICAgICwgbV9lZGl0aW5nKGZhbHNlKQogICAg
ICwgbV9pblVuZG9SZWRvKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5oCmluZGV4IGExMzRmNWViNmU3ZDQ5MjZkNDQzOTU1MTM1NjM4M2ZlYTE5MjRiMmYuLjc4MmNk
ZTNkNTRiZjY0Y2MxYTE3NGE3MzU4NDFlNWYzYjNjNWM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTExMSw5ICsxMTEsNiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBiKSB7IG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkID0gYjsgfQotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGIpIHsgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYjsgfQotCiAgICAg
c3RhdGljIGJvb2wgZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0
c0VkaXRpbmc7CiAKQEAgLTEyMiw4ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFFXZWJQYWdlQWRh
cHRlciogbV9wYWdlOwogICAgIGJvb2wgbV9lZGl0aW5nOwogICAgIGJvb2wgbV9pblVuZG9SZWRv
OyAvLyBvdXIgdW5kbyBzdGFjayB3b3JrcyBkaWZmZXJlbnRseSAtIGRvbid0IHJlLWVudGVyIQot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkOTg3ODkyN2Yy
ZjQ5YjcwOTlhNjRkMmNmMjU0OTM3MTZkYTMzNjY1Li5jNGM1NGE4ZDY5MTI2MjJlZmExYjM0Njc4
MGVmZDkxMDVlZjgxYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVj
dGlvbi5oPgpAQCAtMzAyLDE3ICszMDQsMTkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb24oV2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbioKIHsg
IG5vdEltcGxlbWVudGVkKCk7IH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh2b2lkKQoteyAKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsgCi0gICAg
bV93ZWJWaWV3LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVy
biAhIWVuYWJsZWQ7Cit7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9P
TCBlbmFibGVkID0gRkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSog
cGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpF
QWZmaW5pdHksIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNk
MzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUuLjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0
ZDhhZWYxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmll
dzo6V2ViVmlldygpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3Bh
aW50Q291bnQoMCkKICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2Uo
ZmFsc2UpCiAgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQo
MCkKQEAgLTM3Myw3ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2
ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2Up
CiAgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFu
WSgwKQogICAgICwgbV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAg
ICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3Bh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgewor
ICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgh
IWZsYWcpOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAg
ICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewot
ICAgICplbmFibGVkID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7
CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCAKICAgICAgICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUu
CisgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAg
IHJldHVybiBTX09LOwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3
Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFs
XVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUg
OiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5Mzcz
NDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4
MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25l
ZCBtX3BhaW50Q291bnQ7CiAgICAgYm9vbCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wg
bV9oYXNDdXN0b21Ecm9wVGFyZ2V0OwogICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAKaW5kZXggYjlmNDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNh
M2NiMi4uZmUxYWYwNGEwZWViZDg4NGU5ZDUyN2MyZWJiMjAzNjUwOTQ1ZmM1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJV
bmRvU3RlcC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2
b2lkIEVkaXRvckNsaWVudFdpbkNFOjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9
IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNT
cGVsbENoZWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCmluZGV4IDVlZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDlj
MzE1YWEuLjcyNmFkMGEzZjg4OGFjOTU2NTFjNmEzMjI3ZDQyZjNiMzY4ZTJhN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRv
ckNsaWVudFd4OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50
V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBi
b29sIEVkaXRvckNsaWVudFd4Ojppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDZkZDM4
Yjc5OWU0NmRkZDY2NDQ5NTc4MzQzZjM0NGM4ODJiNjNjNy4uOGFkODY3N2FhN2U2OTIyYzEzNGYw
NzQzNmExZDE3YTNjOGRmZGMyOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIGNvZGUg
cmVsYXRlZCB0byBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MgYXMgdGhleSB3aWxsIGJlIG1hbmFnZWQg
ZnJvbQorICAgICAgICBpbnRlcm5hbHMgZnJvbSBub3cgb24uCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0
aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAo
VGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFj
a0JlcnJ5Lmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNU
b0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVu
bmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
cXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVu
bmVyUXQuaDoKKyAgICAgICAgKFRlc3RSdW5uZXJRdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lz
dGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rl
c3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHA6CisKIDIwMTMtMDMtMDYgIEp1bGllIFBhcmVudCAgPGpwYXJlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIERhc2hib2FyZCBjbGVhbnVwOiBNb3ZlIGFsbCBkYXNoYm9hcmQgdWkgcmVs
YXRlZCBjb2RlIGludG8gdWkuanMuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IDdkM2U4NWUwMDc0M2MyNGUxMjdhZDJjMWVmYmE2NjM0YzY3ZGVkMzYuLmRhZWNjYWZlNmRkZTVh
ZWNhZjNlNGE0Y2YwNmJkNjJmN2JlMzg0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC0xNTA2LDE2ICsxNTA2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlz
aWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZgogICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAgCiAKLXN0YXRpYyBKU1Zh
bHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNv
bnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRo
aXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
SlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAgLTE1MjYsMTYgKzE1MTYs
NiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsK
LSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBj
b250cm9sbGVyLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEpTVmFsdWVUb0Jv
b2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9u
YWxGcmFtZUxvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmpl
Y3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIxMzgsOSArMjExOCw3IEBAIEpTU3RhdGlj
RnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFBs
dWdpbnNFbmFibGVkIiwgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRQcmludGluZyIsIHNldFByaW50aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIiwgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldFNlcmlhbGl6ZUhUVFBMb2FkcyIsIHNldFNlcmlhbGl6ZUhUVFBM
b2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCIsIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIsIHNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0b3BQcm92aXNpb25hbEZy
YW1lTG9hZHMiLCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwgc2V0VGFiS2V5Q3lj
bGVzVGhyb3VnaEVsZW1lbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaAppbmRleCA0ZjM3MGMzMzljN2NmYTk4ZTg5ZjM0MDAyOTIzN2IxYjQ4NTRmMWRiLi4xN2Zi
NDA4ZGI5Zjg4NDAwMjVmNmFiOTE3NDdiY2E4ZTc0YjM5YWZkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCkBAIC0xMDMsOCArMTAzLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGx1Z2lu
c0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3Vn
aEVsZW1lbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1v
ZGUoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJU
cmVlLmNwcAppbmRleCA3MTY1MmRjZDEyMzhhMTM2NDM3MmIwOTgzNTgwYmMwMmQyODM4MTA1Li45
NTY0NDRiYzdmODU1YWNhOWVhZjQ2NWMwMjQxYmVhN2JiNWQ4NmI4IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTUxLDcg
KzE1MSw2IEBAIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBE
dW1wUmVuZGVyVHJlZSogRHVtcFJlbmRlclRyZWU6OnNfY3VycmVudEluc3RhbmNlID0gMDsKLWJv
b2wgRHVtcFJlbmRlclRyZWU6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZh
bHNlOwogCiBzdGF0aWMgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7
CkBAIC0yOTUsNyArMjk0LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnMKIAogICAgIHRvcExv
YWRpbmdGcmFtZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxzZTsKLSAgICBzX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3BvbGljeURlbGVnYXRl
RW5hYmxlZCA9IGZhbHNlOwogICAgIHdhaXRGb3JQb2xpY3kgPSBmYWxzZTsKICAgICB0ZXN0RG9u
ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9E
dW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKaW5kZXggYTEzYWZiMTJkOGQ1MjM4MzM1NDdm
MzNjMjcwOTA0MWUwMGI3OTgzNi4uMjY3YzRkY2FkZjZlZDA3NjU3NmQ3Y2RiY2QwMGFkZjM5ZGNl
MDljMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZUJsYWNrQmVycnkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgog
ICAgIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2Uq
LCBpbnQgaW5zZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKIAotICAgIGJvb2wgaXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gc19zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCiAgICAgLy8gQmxhY2tCZXJyeTo6UGxh
dGZvcm06OkJsYWNrQmVycnlQbGF0Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0aG9kCkBAIC0xNDgs
NyArMTQ2LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9hY2NlcHRzRWRpdGluZzsKICAgICBi
b29sIG1fbG9hZEZpbmlzaGVkOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogfTsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAKaW5kZXggNjQ1YWU3OTY4ODFmM2E0MWYwYmM5NzM3ODM5MjkyMDllNDM3
MDVkYy4uYmQyZjAzNDU3NThmMDNhZmExOTYyNWE0MzQ0MmI2NGZkNDY4MmQ1MCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tC
ZXJyeS5jcHAKQEAgLTI2MCwxNyArMjYwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRYU1NBdWRp
dG9yRW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVy
VHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRv
ckVuYWJsZWQoZmxhZyk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpE
dW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmxhZyk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBVTlVTRURfUEFSQU0oZmxhZyk7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNU
aHJvdWdoRWxlbWVudHMoYm9vbCBjeWNsZXMpCiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3RQcm94eS5oCmluZGV4IGE0NGVjYmQ3ODBkYTYxZDliZmU3ZTljODBlNTIx
ZjZiMWI5MDc1YzguLmQ0YTYwMGI4MjBlOTMwNzNkYjg5NzYxZWJhNzI5MGMxMWZjZDBhMTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0xNDksOCArMTQ5LDYgQEAgcHJvdGVjdGVk
OgogICAgIFdlYktpdDo6V2ViUGx1Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSos
IGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0
KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdm9pZCBkaWRTdG9wTG9hZGluZygpOwot
ICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdl
YktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYpOwogICAg
IFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQoKTsKICAgICB2b2lk
IHByaW50UGFnZShXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0zNjgsMTQgKzM2Niw2IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICAgICAg
QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlC
YXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkZy
YW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51
RGF0YSkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShm
cmFtZSwgY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggMmFkMzQz
MGI4Mjc2OGQ3ZGQwMDI3ZjQ4YWY4ZjA2NzEyN2I2NzgyNC4uNjJiNmY2OTU1ODQ1Mjg1OTQ3NGE1
YWFhYWI5NGExZGFlMmYyODdhNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIwNyw4ICsy
MDcsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2Vz
KQogICAgIGJpbmRNZXRob2QoInRleHRTdXJyb3VuZGluZ05vZGUiLCAmVGVzdFJ1bm5lcjo6dGV4
dFN1cnJvdW5kaW5nTm9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1dG9SZXNpemVNb2Rl
IiwgJlRlc3RSdW5uZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7CiAgICAgYmluZE1ldGhvZCgi
ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUp
OwotICAgIGJpbmRNZXRob2QoInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsICZUZXN0UnVu
bmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwotICAgIGJpbmRNZXRob2QoInNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9y
aWVudGF0aW9uIiwgJlRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAg
YmluZE1ldGhvZCgiZGlkQWNxdWlyZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk7CiAgICAgYmluZE1ldGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJlRl
c3RSdW5uZXI6OmRpZExvc2VQb2ludGVyTG9jayk7CkBAIC00MDksMTIgKzQwNyw2IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdC
ZWZvcmVVbmxvYWQgPSBmYWxzZTsKICAgICBtX3Nob3VsZEJsb2NrUmVkaXJlY3RzID0gZmFsc2U7
CiAgICAgbV93aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsID0gZmFsc2U7Ci0gICAgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOwotI2lmZGVmIFdJTjMyCi0gICAgbV9zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi0gICAgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKICAgICBtX3Nob3VsZER1
bXBSZXNvdXJjZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0cEhlYWRlcnNUb0NsZWFy
LmNsZWFyKCk7CkBAIC02NzMsMTYgKzY2NSw2IEBAIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkSW50
ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2ludGVyY2VwdFBvc3RNZXNz
YWdlLmlzQm9vbCgpICYmIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UudG9Cb29sZWFuKCk7CiB9CiAK
LWJvb2wgVGVzdFJ1bm5lcjo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotYm9vbCBUZXN0UnVu
bmVyOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0KIGJvb2wgVGVzdFJ1
bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKQEAgLTE0NjUsMjAgKzE0NDcsNiBAQCB2
b2lkIFRlc3RSdW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0KHN1cnJvdW5kaW5nVGV4dC50
ZXh0Q29udGVudCgpLnV0ZjgoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50
c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBhcmd1
bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAg
ICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUu
Ym9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQ
cmlvcml0aWVzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCAyNWU3ZmU4NDU4OWI3ZDgx
NzFmYzYxOWIwOTU4OWNkMTE5MTYwOGIxLi4xYjBjNmQ0OTFkZGI1MmZjODgxNDYwYWQ5OTk5Nzkz
Mjg5ZDhmZGMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMTgsOCArMTE4LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25zdDsKICAgICBib29s
IHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxk
SW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdDsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBj
b25zdDsKICNpZiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgIFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKQEAgLTI2OSwxMSAr
MjY3LDYgQEAgcHJpdmF0ZToKICAgICAvLyBsZW5ndGggdG8gcmV0cmlldmUuCiAgICAgdm9pZCB0
ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
IAotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9kZWxldGUuIFRoaXMgaXMg
ZW5hYmxlZCBieSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotICAgIC8vIEVuYWJsZSBv
ciBkaXNhYmxlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljay4K
LSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1
dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAt
NjY4LDEwICs2NjEsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dpbGxTZW5kUmVxdWVzdFNo
b3VsZFJldHVybk51bGw7CiAKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwot
Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0KICAgICBib29s
IG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKIAogICAgIHN0ZDo6c2V0PHN0ZDo6c3Ry
aW5nPiBtX2h0dHBIZWFkZXJzVG9DbGVhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCmluZGV4
IDg2ODEzM2ZlNDcwZjkxYWVmY2VkMWZjMTk2YmNhOGY3MGQzMGQwOTQuLmNjNTA3NTM0ZTE2ZDk4
NTlhMjJjNTdkYzIxZDU0YWM1YjNlMmFhZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcApA
QCAtOTc4LDE2ICs5NzgsNiBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5n
KCkKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJwb3N0UHJvZ3Jlc3NGaW5pc2hl
ZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci19Ci0KLWJvb2wgV2ViVGVz
dFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICBy
ZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLX0KLQogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29udGV4
dE1lbnUoV2ViRnJhbWUqLCBjb25zdCBXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0
YSkKIHsKICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVudFNlbmRlcigpLT5zZXRDb250ZXh0TWVu
dURhdGEoY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcAppbmRleCA4NzZlNTNmMzE3N2Q1NDBmMGFkM2Q4NzM2MTlmYWIxNTU5
ZTYwMzdiLi5hN2FmZjY1ZGI2YzNkNGFlNmUyNGE4OWIwZmMxMTZjYTBlNjU0MTM3IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNzAsMjAg
KzE3MCw2IEBAIGJvb2wgV2ViVmlld0hvc3Q6OnNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgV2ViVmlld0hvc3Q6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXZWJWaWV3SG9zdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCkKLXsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBXZWJWaWV3SG9zdDo6aGFu
ZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKQogewogICAgIGlmIChtX2VkaXRDb21tYW5kTmFtZS5l
bXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5k
ZXggZmYyZWRhN2ZmZWVmOGY2NzU5Y2U0YTkzNmJkZDI5ZDdiZDRhYThjOS4uNGEzNGYzOGEyZTMz
YzA3NGYxMDdmMDBlYzlmN2M5MDRlYTI5NTRhOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgY2xhc3MgV2ViVmlld0hv
c3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFt
ZUNsaWVudCwKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShjb25z
dCBXZWJLaXQ6OldlYlJhbmdlJiBmcm9tLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiB0bywgV2Vi
S2l0OjpXZWJUZXh0QWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHN0eWxl
LCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRF
dmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKFdlYktpdDo6V2Vi
RnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBydW5N
b2RhbENvbmZpcm1EaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcAppbmRleCBmODdlZWIwNzA2NDZmNTkwMTdiYTY4MDg0Y2Q3NmQyZDBhNmQxMzk2Li42
MTI3YzlkNjI5MjRiMWQ4NGNjMGI3YjhiYzUzNTYxMTgwNTFjY2MxIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTMxNSw4ICsz
MTUsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25N
ZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3KCksIC0xKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1haW5WaWV3KCks
IHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91dEVu
YWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVm
ZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmll
dygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVI
VFRQTG9hZHMoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwu
Y3BwCmluZGV4IGU2NWI1YTI1OWUyYzEyNWRhMjdjYzkwMDFjZTdiNDE4ZjM2MDkzZDUuLmE5OWEz
YjVlZGM3Njg3YjQyZjQyMTI4ODk1ZGE4ZGE3ZjM1YzFlN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTI3MiwxMSArMjcyLDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogc3RhdGljIEVpbmFfQm9vbCB3
YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICB3YWl0VG9EdW1wV2F0Y2hkb2cg
PSAwOwpAQCAtNDIxLDExICs0MTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFz
ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFz
ZV9wYXRoX3NldChkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBld2tfdmlld19zZXR0
aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgIWZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NWEzNTc0ZjcxMjEzYjQ1NjI3MTVkMmM4ZWRkZTA5NmIzY2E4ZTBkNS4uY2VlNDYxYzU4MWQzZjE5
MzJlNDFkNDc0NjU0NGVkYmY2NDYwZGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC01MDEsOCArNTAxLDYgQEAgc3RhdGljIHZvaWQgcmVzZXRE
ZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4odHJ1ZSk7CiAgICAgd2Via2l0X2ljb25f
ZGF0YWJhc2Vfc2V0X3BhdGgod2Via2l0X2dldF9pY29uX2RhdGFiYXNlKCksIDApOwotICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQod2ViVmlldywgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXREZWZlcnNMb2FkaW5nKHdlYlZpZXcsIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCA0MmNlNjcyNmQ4ODNlOTM3ZWVhNWJl
OGMwZjY0YmQyZTA3ZjFjOGM0Li5jZDEwNDRkMGQyMzMxZTJhNGExZWM3N2U4ZDQyZjk3MjdmYWFk
YTY2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0z
MjMsMTEgKzMyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJraXRfd2ViX2Zy
YW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFnKTsKLX0KLQogc3RhdGljIGdib29sZWFu
IHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHNldFdhaXRUb0R1bXBXYXRj
aGRvZygwKTsKQEAgLTQ4NSwxMSArNDgwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJY29uRGF0
YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vf
c2V0X3BhdGgoZGF0YWJhc2UsIDApOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0K
LQogdm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7
CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3
KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
aW5kZXggOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OC4uY2IxNGExNTdh
NDU4NzZiMTdjNGJmNGYzMDJkMmY2YzU1NDlhOGI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI3OCw4ICsxMjc4LDYgQEAgc3RhdGljIHZvaWQg
cmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgZ1Rl
c3RSdW5uZXItPnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB9CiAKLSAgICBbW21haW5G
cmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6WUVTXTsKLQogICAgIFtX
ZWJWaWV3IF9zZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwogICAgIFtXZWJWaWV3
IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOwogICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NS
b3VuZGluZ0hhY2tzOk5PXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW0KaW5kZXggYjIzMjZhMjZiMzQ5YTA4M2JhNzk4YThjN2I5NWFkYTlkZjA1ZTM2Ni4uYjMxYzlh
ZDcyN2IyZTY2ZjdmZTdiNWNhMWQ2OGRiYjRlNDdiZmU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTYzNCwxNiArNjM0LDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIFtbbWFpbkZyYW1lIHdl
YlZpZXddIF91cGRhdGVBY3RpdmVTdGF0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJW
aWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpmbGFnXTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1bXBXYXRj
aGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgd2FpdFVudGlsRG9uZVdhdGNoZG9n
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIsIHZvaWQqIGluZm8pCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDIzZmQzNWMxYzZmYjVmMTc5
MzNiNjUzMmJkNGM4NzQxNzAwZThjZDIuLmRmYTY3MmI2NzRkZWMzY2U5NzA2MmY1OGZlZmNmYzk5
MzgwMWEwNWYgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCkBAIC0xOTIsOCArMTkyLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKIAog
ICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsK
ICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0
cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0RGVmZXJz
TG9hZGluZyhmYWxzZSk7CiAKICAgICAvLyBnbG9iYWxTZXR0aW5ncyBtdXN0IGJlIHJlc2V0IGV4
cGxpY2l0bHkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBl
NWU4MjQzMGUxN2RlMjk2MTc5MzM1ZDRlNjU1ODVkMWI0YzcyOWMwLi42Mzg5YTBkZWZhNzdlMmEy
M2IxNjg1Y2I3MTQwMjdkMmZiNTZmZGExIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5jcHAKQEAgLTcyMCwxNiArNzIwLDYgQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNj
cm9sbGJhclBvbGljeShjb25zdCBRU3RyaW5nJiBvcmllbnRhdGlvbiwgY29uc3QgUVN0cmluZyYK
ICAgICBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0U2Nyb2xsQmFyUG9saWN5KG8s
IHApOwogfQogCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KLXZv
aWQgVGVzdFJ1bm5lclF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUpOwotfQotCiB2
b2lkIFRlc3RSdW5uZXJRdDo6ZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3Qg
UVN0cmluZyYgdmFsdWUpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVD
b3JlQ29tbWFuZEJ5TmFtZShtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSwgdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCA2NWJiYjgyYTJjYjQxM2U3MjE5
NzM4YmZhN2U1ODMwN2NiY2NkYzBlLi45OTA3YTJlNTM3MmY4ODliYWVhMjNkYzNhMDU4NGU3NjI2
ZTk2YzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTc4LDgg
KzE3OCw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpOwot
ICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2b2lkIGV4ZWNDb21t
YW5kKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlID0gUVN0cmluZygp
KTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7
CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggZjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEzODM3ODczZWRhNzhjZWY1Yi4uODlmYTlm
N2FmYTE2MzVmNjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04OTksMTAgKzg5OSw2IEBAIHN0YXRpYyB2
b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAg
IFdlYkNvcmVUZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5hbHNPYmplY3QoY29udGV4dCk7CiAgICAg
fQogCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKFNV
Q0NFRURFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAg
dmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChUUlVFKTsKLQogICAgIENP
TVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXdQcml2YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKICAg
ICBpZiAoIXdlYlZpZXdQcml2YXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggNjY0OGMzZWUxNWRkNGE1NmVlMGI0NWIy
MWUwODdmYTg2NDRlNjlmMi4uZGQ0ZDg3MzFkZmVlNDgzZGZlMGU5Yjg3MTUyZmE2NDNjNmRhMGM3
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzIz
LDMyICs3MjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgZmxhZykK
ICAgICA6OlNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIGZsYWcgPyBXTV9TRVRGT0NVUyA6IFdN
X0tJTExGT0NVUywgKFdQQVJBTSk6OkdldERlc2t0b3BXaW5kb3coKSwgMCk7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmll
dygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0
aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNl
KCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCi12b2lk
IFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFn
KQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1l
LT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2Vi
Vmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJ
bnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0
aW5nLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFM
U0UpOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9n
SW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCBDQUxMQkFDSyB3YWl0VW50aWxEb25lV2F0
Y2hkb2dGaXJlZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQpCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCA0NzUzYzI5Y2E1NGY2YWVlMWE5ZGNhOTEzZDli
NTFlZDUwMWE5YTFlLi5mNGJiOTRhMGUzZDI5NmNhZjdjMDg2YzFkZmM5NzdiY2M2NmU2OTk0IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTE1MSwxMSArMTUx
LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
LX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkK
IHsKICAgICBzdGF0aWMgY29uc3QgaW50IHRpbWVvdXRTZWNvbmRzID0gMTA7CkBAIC0yODgsMTEg
KzI4Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tE
ZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29s
IGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJs
ZSBnYW1tYSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBEZXZpY2VPcmllbnRhdGlv
biBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTYyNWJmZTlmZjlhOTVmZmEwMTAzNmRkYmUzZTliOGYz
MDhmN2E2NC4uNGQ3NzUxY2FjMjdiZmU1NDdlNjI4ODE4Njc5NWU4MmEwYmE2MTM4MSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVn
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAgICAgICAgQmUgc3VyZSB0
aGF0IHRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgYXJlIHNldCB0byBvcHBvc2l0ZSB2YWx1ZXMgYXMgdGhleSBhcmUK
KyAgICAgICAgbXV0dWFsbHkgZXhjbHVzaXZlLgorCisgICAgICAgICogZWRpdGluZy9kZWxldGlu
Zy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWw6CisgICAgICAgICogZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGlu
ZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qczoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxs
aW5nL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAoaW5pdFNwZWxsVGVzdCk6CisgICAgICAg
ICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5k
ZXJzY29yZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJs
ZS1jbGlja2VkLXdvcmQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0
aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGlu
ZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAgICAgIGFzIGl0IHBhc3NlcyBu
b3cuCisKIDIwMTMtMDMtMDYgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgog
CiAgICAgICAgIEJveC1zaGFkb3cgZGlzcGxheWVkIGltcHJvcGVybHkgd2l0aCBib3JkZXItcmFk
aXVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0
aW5nLWRpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVk
aXRpbmctZGlzYWJsZWQuaHRtbAppbmRleCA3ZWIzMGQyMjExZDBjMGQ4MTliZWYyZjVlNzM2ODQ4
MTk4MWRlZDY5Li5kMGY3ZDdhZjE1OGRhMjVjODc4NzZjODgzNmFmMDdiYWE3NDZhYjg5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJs
ZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmct
ZGlzYWJsZWQuaHRtbApAQCAtNSw2ICs1LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewog
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBl
ZGl0aW5nVGVzdCgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCmluZGV4IDhiOThiYTcyZmJm
Yzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhkNWNiNzZiN2FkYjE4Nzc4NDUxYWVlZjUy
N2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbApAQCAtNCw3ICs0LDcg
QEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hp
dGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4IDQwZTI0MTM4MjFlOGU4ODQwNzk3OGFh
ODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1YTViMDdmZjM5MzM0NDEyNjFmYTQ5MzY5
YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwot
ICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7
CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1p
bWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5NWE3OWRkYTZkNDQ2NzE2NGRmZDQ0NjM3
NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2EzNzk5YzdmY2VmNjdlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWlt
Zy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNs
aWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0
ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRy
dWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5o
dG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYzOWQ1ZjZmMWVhYWY5OGI3ZGMuLjdkODNm
YjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVjMWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwK
QEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBnZXRQb3NpdGlv
bk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Nj
cmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUu
anMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xp
Y2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCmluZGV4IGVlNjU1ZGMwNzJh
ZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLmU3YmRmZjVjZDI2MzMyNzg3ODZlNjJmNjgy
MjE5OTA5YTk3MTZjMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFi
bGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2Rv
dWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwpAQCAtNzgsNyAr
NzgsOCBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5kTW9kaWZ5KHRhcmdldElubmVySFRNTCwg
ZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5kb3cuc2VsZWN0ZWRCeU1vZGlmeSIsIHRv
TGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CitpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAKIHZhciBzaG91bGRTZWxlY3RlRmlyc3RX
b3JkSW5saW5lID0gIjxzcGFuIGlkPSd0YXJnZXQnIGNvbnRlbnRFZGl0YWJsZT5zZWxlY3RtZTE8
L3NwYW4+IGFuZCBub3Qgc2VsZWN0IHVzIjsKIHRlc3RXaXRoRG91YmxsZUNsaWNrKHNob3VsZFNl
bGVjdGVGaXJzdFdvcmRJbmxpbmUsICJzZWxlY3RtZTEiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCmluZGV4IGNmODAzMzQxODg0M2NmMjBjNjY3
MWU3Yzg0OTA3YjcwNzJkNDk1MjAuLjA5NGE1M2IyODk2ODhkODJkZTRkZTczNjdhOWM5NDMzNGY1
NjI0OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2Vz
L3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRp
bC5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBpbml0U3BlbGxUZXN0KHRlc3RFbGVtZW50
SWQsIHRlc3RUZXh0LCB0ZXN0RnVuY3Rpb24pCiAgICAgdGVzdEZ1bmN0aW9uQ2FsbGJhY2sgPSB0
ZXN0RnVuY3Rpb247CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAgICAgdGVzdFJ1bm5lci5z
ZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVy
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVyLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkKHRydWUpOwogICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndpbiIpOwogICAgIHZhciBk
ZXN0aW5hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3RFbGVtZW50SWQpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwK
aW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYxMzUyY2Y5YTIzZWY2MzEyM2IxNmEzNi4uNDA2MDcxODEw
ZDAxYmI5OGU2ZTVmMTNjMzhkNjA5M2QzNmU3ZWFhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJz
Y29yZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRv
dWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCkBAIC0yMSw3ICsyMSw4IEBA
IGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlv
bih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3Nw
ZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5u
ZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3Rp
bmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBh
cmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDks
NyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4i
LCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRv
dy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNr
IHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0
ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCAr
IGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9m
ZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlv
bi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUt
Y2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAyNDkyNzNkMmUwYWJhYjlkOWJjZWM5Mjdh
MDljM2ZjNDZjZTAyN2NmLi45ZDI0OWZkN2YwZWZlZTI0M2JjNmIwZmIyOWU1Y2VlNTk1NmVjNGVh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJs
ZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApAQCAtMjEsNyArMjEsOCBAQCBpbml0U3Bl
bGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2Rl
KSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9T
dHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3Jk
IHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIHZhciB4ID0g
ZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRM
ZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9w
ICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsK
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5p
dFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBmdW5jdGlvbih0ZXh0
Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigp
LnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQg
d29yZCB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0g
ZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRM
ZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9w
ICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsK
ICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWVhMTc2ZjRjY2ZhZmI4YjJkODE2MTc0ZTBlMTQ3
YzMwMGY2MDc4Zi4uZmIwYjhiNWNmZDYyNTk4N2NlOGZiY2U3ZGM5ZmY1M2JlODc5MTk3MSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTM3NSw5ICszNzUs
NiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9u
LXdpdGgtZW1iZWRkZXIuaHRtbAogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RD
b250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwKIHBsdWdpbnMvZ2V0LXVybC10aGF0LXRoZS1yZXNv
dXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlzYWxsb3cuaHRtbAogCi0jIFdlYktpdFRlc3RSdW5u
ZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZAotZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3Qt
Y29udGVudGVkaXRhYmxlLmh0bWwKLQogIyBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRl
c3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eQogcHJpbnRpbmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5o
dG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192163</attachid>
            <date>2013-03-07 23:47:33 -0800</date>
            <delta_ts>2013-03-08 13:27:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130308084336.patch</filename>
            <type>text/plain</type>
            <size>97484</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uYTg5ZGM0MGVjYjA0MWQ0MWU5Y2I5MzQzNGJkYjc4
NDFhNTYxN2Q3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLmZkNWU4OWM4
YmQ0NzBkODk2MGUyNDMxNzBiNzU5ZGExYzE4MTM5ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjEwYzgzNTQ1YTNhOWFhYzg0MmQzNjRiNzljYTJlZDBh
NGE2MjY4NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOiBSZW1vdmUgQVBJIHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVF
bmFibGVkCisgICAgICAgIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRo
ZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20gcGFnZQorICAgICAgICBzZXR0aW5ncyBmcm9tIG5vdyBv
bi4KKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDMtMDcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2aWEgV2ViS2l0
IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGRiZTZjZmQ2MWQzZTE5NmUwYzc3YmZjY2QzNGVlYzEyOWE0NWJhNWUuLjU5NTQz
NzRkOTJiY2VmOGIxY2MzNTA4MDdiOGRkMDkyMTZhYzczMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OkVkaXRv
ckNsaWVudEVmbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6
CisgICAgICAgIChFZGl0b3JDbGllbnRFZmwpOgorCiAyMDEzLTAzLTA2ICBLcnp5c3p0b2YgQ3pl
Y2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1pc3NpbmcgaW1wbGVt
ZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwgYW5kIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRFZmwgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzZjhiNTRhMWYyOWZmMDliYWJi
ZTk1M2M0ZmZiMzhhMDY2NDIzZTdmLi40MGU3MTMyODExMzRkODlmOWRjMmEwNTg0NjkzNjgwNTkx
Y2ZkNWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNl
dHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0
byBEUlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTMtMDMtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggNWRhMDJhMzkyNzc1YTFjNDI5NWJkMjc4YTE0YTU4OWNiM2NkNDI2
NS4uOGRjYjY2NDE3M2JkYTdjMjQyYzQ2N2MxYjIwNDk4OWVkYjlkMmNjNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFz
ICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNl
cnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKTogSW5pdGlhbGl6ZQorICAg
ICAgICBzZXR0aW5ncyBmcm9tIE5TVXNlckRlZmF1bHRzLgorICAgICAgICAoLVtXZWJWaWV3IHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlZpZXcg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJp
dmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRGVmYXVsdCBtb3VzZSBjdXJzb3IgYmVoYXZpb3Igc2hvdWxkIGJlIGF1
dG8taGlkZSBmb3IgZnVsbCBzY3JlZW4gdmlkZW8gd2l0aCBjdXN0b20gY29udHJvbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggOTFmOTk5MDU2NWM5Y2Y4MmMwZmVmMzAxMWExN2YyZDMxY2MwZmM5Zi4uYzYz
N2MzNTZjZjdlNWUyMjI3ODM0ZGVmMjYwYWJiNzVmNTMwNGRkOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMy0wMy0wNyAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JD
bGllbnRRdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAg
ICAgICAgKEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRo
SWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCA4YWRlMzhkMjZkZGQ5NGM3MzVmMjFjN2RlNTFkOWZmNzhl
MDM0YjAzLi5jMWYxZDA5ZWEyNWUxOGE1NDE2ZWE2NmY4MzIwM2RhMDFkMzk1ODZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDcgIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6
CisgICAgICAgIChXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6
CisgICAgICAgIChXZWJWaWV3KToKKwogMjAxMy0wMy0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIx
NDQ1NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmExOThhNDI0ZTg4YmEwMzVlNzQ4NmMy
MGMwMWY3NzY5MzM0YzkuLjZkYjhhOWMzMjQ2YWE2NzdiMGJlYWIwNzBlYWY2MDhmYTI0YmJiYjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMDcgIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5D
RTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKwogMjAxMy0wMi0xMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxlIGRlbGV0ZSBi
dXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFuZCBkZWxldGUgRWRpdG9yQ2xpZW50
OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDAzMjRlMjE1ZGJl
ZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLmQxZDA1YmVmYjBhNTk2MmRhYWZlZWQwZGU5
MTAwOTRlNTFkMzYwZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMt
MDcgIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDItMjYgIERt
aXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJnZWQg
VGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29uc29sZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhkNjQ4NGYzZDZlZDYyYzFjOGUwZi4u
ODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4NDQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZh
dWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CiAjZWxzZQogc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFDX09TX1gpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKKyNlbHNlCitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmFsc2U7Cisj
ZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYK
KyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGU3OTkxZWFk
Y2MxNDAzMDdmYzA5NzY3YmVmZjIxNGE1M2JmN2ViYWQuLmJlNTlmMTcxMjE2ODE1NGJlOTU1ODg1
YjYxNmRlYWY5MjRlNDk3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTk1LDQgKzE5
NSw1IEBAIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZAogCiBsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUK
K3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1
YjIzY2U0ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJk
MTk2MGMwYzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVt
cFJlbmRlclRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1
bXBSZW5kZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3Rp
bGxTZWxlY3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRv
UmFuZ2UsIGludCBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSos
IGludCBpbnNlcnRBY3Rpb24pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4
dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCBkNTE1Zjg4MjUwNGI2NDYwMWVmZGM2ZTE5ZDIzMjA4OWFiMmI4
M2VhLi45ZDUyNzFhZTkwMDhlOGUxMmRmNDBiYzY2ODdkYWYyM2JlYTY1YTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNl
bGVjdGlvbkhhbmRsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VfcC5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3
MCwxOCBAQCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKiByYW5nZSkKIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAg
aWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUpCi0gICAgICAgIHJldHVybiBt
X3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFi
bGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IGU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4
NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4NTMxOWQ2OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4
MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0
aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Vs
ZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25FbXB0eSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5
NGQzMzRiZTNhODYwYmM0ODIyZjQuLjY0MWJiZDA3NmYxMjRiMWRlMmYyNTIwYmE2ZTIwOWY3YTQ1
NzhjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtOTUsMjAgKzk2
LDE2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3Jl
OjpGcmFtZSogZnJhbWUpCiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Cisg
ICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdl
KCktPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKTsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKKyAgICBpZiAo
bV93ZWJWaWV3LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNob3VsZFNwZWxsY2hl
Y2tCeURlZmF1bHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzIwZmY5ZjA0OTRl
MjcxNzgyMDk3ZTQzODE5YjYxNzBkMzhmNjg1Yi4uNTIxNWNlNjBjNWM4NGJhNjlhNzgzYWQ3MzA1
YmE1OGU5Y2I3NjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMjMsMjggKzMy
Myw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSku
aXNFbmFibGVkKCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQot
ICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlm
ICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4o
cGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3Jj
ZUxheW91dChFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xh
eW91dChld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDk1ODg4MTFmYWQ4Y2I1
MDkwNjVjNDRlM2I3Njk3ZDRlYjYzODIzNTAuLjMxMWQ5YTAyOWE5YWVhMDJhNjIzMzBiYTM3NjJj
OTUwYTZlYzc3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04MCw4ICs4MCw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRDU1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFt
ZXNFbmFibGVkKGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBk
ZGY4YzZlMGJkM2YuLjJiZTMxYTlhMDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcApAQCAtMjQzLDI4ICsyNDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VE
ZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVk
aXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFi
bGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAg
ICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVk
aXRvckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6
OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAo
IWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5z
ZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEs
OCArMzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93
bihLZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3
KQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4u
ZDBkNWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkg
Kzg0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAg
IHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNr
aW5nRW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYw
ZmFjMGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVu
ID0gZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVk
SW5UYWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
X2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpB
dXRoZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50
aWNhdGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJu
IHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAg
IGNvcmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmll
dyk7Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAg
Y2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlk
ZWRjYWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQz
YjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAg
ICBzdGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMg
Ym9vbCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUq
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShX
ZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0
aWMgdm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nl
c3NpYmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNo
YWluOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
IH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2
OGJkNjAzNTg1Zi4uOWMwZmQ5NGFhMTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNs
dWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwy
MSArMzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxl
dGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBl
bmFibGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcg
KzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtp
dF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykK
LSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4
IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5
Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNz
IEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBj
bGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5n
VHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4
NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi4yNzUxZGIzNmMyMmMwOTIyMDMyZDQ0MjMyOGI1ZDFm
YzgyMGM2MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwx
OCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1M
RWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHls
ZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDc2NmY5ZDRlYjQ2NGRiYjFiZjFkMDdmZjljYTJkZWY0ZGY5Y2QzMTYu
LjEwY2U4NWUyZDMxZDYzMmRhZWE1OGJhOTVkZDE3NjY1MGU2ZjYyMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTc4Myw2ICs3ODMsMTIgQEAgc3RhdGljIGJvb2wgc2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkKICAgICAgICAgW3NlbGYg
X2luamVjdE91dGxvb2tRdWlya3NTY3JpcHRdOwogICAgIH0KIAorICAgIGlmIChbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkXSkgeworICAgICAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21h
cnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdz
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCghc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICB9CisKICAg
ICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1l
TmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3AgKnJ1
bkxvb3AgPSBbTlNSdW5Mb29wIG1haW5SdW5Mb29wXTsKQEAgLTI0NzAsMTQgKzI0NzYsMTYgQEAg
c3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRl
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykK
LSAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBp
ZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KyAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9
CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAg
cmV0dXJuIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJl
dHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJs
ZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQyOSwxNyArNTQzNywxNyBAQCBzdGF0aWMgTlNBcHBsZUV2
ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFn
CiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykg
ewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAg
ICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJp
dmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0
ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0
dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdl
LT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JLZXk6V2ViU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2Vs
ZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOiFmbGFnXTsKICAgICB9Ci0gICAg
aWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ6ZmFsc2VdOwogfQogCiAtIChCT09MKXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogewotICAg
IHJldHVybiBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIHJldHVybiBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9
CiAKIC0gKHZvaWQpc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBhZGVhYmU3ZWUyY2Zh
MjJjYmRjMjhlM2JhODMzNzhmNDYwM2UwMmUyLi4zNDdhYmE0NTc4NWYxODBlOGM5NzQ2Y2NjYjYy
YTRlNjc4MGU5NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBA
IC0xNDYsOSArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBCT09MIGhhc1NwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJP
T0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIEJPT0wgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKLSAgICAgICAgCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQog
ICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRv
d3M7CiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRBY3RpdmVOdWxsRXZlbnRz
VG9QbHVnSW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXgg
ZTI3NjZmMDFhMzViYzA3ZWVhYTQ4NmMyNjU1YjRjMDFiYWVkOTdhNi4uYzY4MWYwOWJhNzIxNmQ4
ZDIxNmU1OTc1MjZhZjg1ODFkMDAzZGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCkBAIC05NSwxMCArOTUsNiBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5
ZXJGbHVzaENvbnRyb2xsZXIoV2ViVmlldyogd2ViVmlldykKIAogICAgIHNob3VsZENsb3NlV2l0
aFdpbmRvdyA9IG9iamNfY29sbGVjdGluZ0VuYWJsZWQoKTsKIAotICAgIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCA9ICFbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmpl
Y3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXQotICAgICAgICB8fCBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZF07Ci0KLQogICAgIHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQrKzsKIAog
I2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRl
eCA1OWYzNzEwODIwYWQzMTc3M2Y0ZDEzMmY3ZWM0ZGIzMmU3ZjMzZjlkLi4yNDAzNGY2YjI4ZmE1
MWU4ZjlkNjA5NTYxN2MwOTA4ODgxYzEwMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAt
MzI2LDE4ICszMjYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqIGFkYQogICAgIGFkYXB0ZXItPnBh
Z2UtPnNldHRpbmdzKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHZhbHVlKTsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRp
Y19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2Vi
UGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxF
ZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVy
KiBhZGFwdGVyLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBhZGFwdGVyLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oCmluZGV4IDcwZmY4NWU3MDdjZmQwOWRkODBiOWJmM2E3Y2NkYTUzZTNhMzVjNGIuLjY3YTA0
MzZkOGNlOWZmZjYxMGU4Mjk3NTIzMzgyMTg5YmE3ZTNlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTk0LDggKzk0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29t
bWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBmaW5kU3Ry
aW5nKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFi
bGVkKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFw
dGVyKik7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5n
ZShRV2ViUGFnZUFkYXB0ZXIqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpOwogICAgIHN0YXRp
YyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBjaGFyKiB0
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAKaW5kZXggYWZjYzhkNjRlZmUwYTU0YmYxYTNiMGJiYzVlYzVhYTI0OTA4N2EwMy4u
M2NmMDg3MDIwZWNlZjBmMzI1NjFmM2IwMjU4MzQ1MTMyNGE2YjRhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTMzMywx
OCArMzMzLDI3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29s
IEVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVy
biBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5w
YWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCiB7Ci0gICAgYm9vbCBjdXJy
ZW50ID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgPSAhY3VycmVudDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAg
IGlmIChwYWdlKSB7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkp
OworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkpOworICAgIH0KIH0KIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRR
dDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTQxLDggKzU1MCw2IEBAIEVk
aXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZUFkYXB0ZXIqIHBhZ2VBZGFwdGVy
KQogICAgIDogbV9wYWdlKHBhZ2VBZGFwdGVyKQogICAgICwgbV9lZGl0aW5nKGZhbHNlKQogICAg
ICwgbV9pblVuZG9SZWRvKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5oCmluZGV4IGExMzRmNWViNmU3ZDQ5MjZkNDQzOTU1MTM1NjM4M2ZlYTE5MjRiMmYuLjc4MmNk
ZTNkNTRiZjY0Y2MxYTE3NGE3MzU4NDFlNWYzYjNjNWM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTExMSw5ICsxMTEsNiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBiKSB7IG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkID0gYjsgfQotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGIpIHsgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYjsgfQotCiAgICAg
c3RhdGljIGJvb2wgZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0
c0VkaXRpbmc7CiAKQEAgLTEyMiw4ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFFXZWJQYWdlQWRh
cHRlciogbV9wYWdlOwogICAgIGJvb2wgbV9lZGl0aW5nOwogICAgIGJvb2wgbV9pblVuZG9SZWRv
OyAvLyBvdXIgdW5kbyBzdGFjayB3b3JrcyBkaWZmZXJlbnRseSAtIGRvbid0IHJlLWVudGVyIQot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkOTg3ODkyN2Yy
ZjQ5YjcwOTlhNjRkMmNmMjU0OTM3MTZkYTMzNjY1Li5jNGM1NGE4ZDY5MTI2MjJlZmExYjM0Njc4
MGVmZDkxMDVlZjgxYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVj
dGlvbi5oPgpAQCAtMzAyLDE3ICszMDQsMTkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb24oV2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbioKIHsg
IG5vdEltcGxlbWVudGVkKCk7IH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh2b2lkKQoteyAKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsgCi0gICAg
bV93ZWJWaWV3LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVy
biAhIWVuYWJsZWQ7Cit7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9P
TCBlbmFibGVkID0gRkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSog
cGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpF
QWZmaW5pdHksIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNk
MzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUuLjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0
ZDhhZWYxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmll
dzo6V2ViVmlldygpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3Bh
aW50Q291bnQoMCkKICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2Uo
ZmFsc2UpCiAgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQo
MCkKQEAgLTM3Myw3ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2
ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2Up
CiAgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFu
WSgwKQogICAgICwgbV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAg
ICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3Bh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgewor
ICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgh
IWZsYWcpOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAg
ICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewot
ICAgICplbmFibGVkID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7
CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCAKICAgICAgICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUu
CisgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAg
IHJldHVybiBTX09LOwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3
Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFs
XVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUg
OiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5Mzcz
NDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4
MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25l
ZCBtX3BhaW50Q291bnQ7CiAgICAgYm9vbCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wg
bV9oYXNDdXN0b21Ecm9wVGFyZ2V0OwogICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAKaW5kZXggYjlmNDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNh
M2NiMi4uZmUxYWYwNGEwZWViZDg4NGU5ZDUyN2MyZWJiMjAzNjUwOTQ1ZmM1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJV
bmRvU3RlcC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2
b2lkIEVkaXRvckNsaWVudFdpbkNFOjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9
IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNT
cGVsbENoZWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCmluZGV4IDVlZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDlj
MzE1YWEuLjcyNmFkMGEzZjg4OGFjOTU2NTFjNmEzMjI3ZDQyZjNiMzY4ZTJhN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRv
ckNsaWVudFd4OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50
V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBi
b29sIEVkaXRvckNsaWVudFd4Ojppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDZkZDM4
Yjc5OWU0NmRkZDY2NDQ5NTc4MzQzZjM0NGM4ODJiNjNjNy4uOGFkODY3N2FhN2U2OTIyYzEzNGYw
NzQzNmExZDE3YTNjOGRmZGMyOCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIGNvZGUg
cmVsYXRlZCB0byBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MgYXMgdGhleSB3aWxsIGJlIG1hbmFnZWQg
ZnJvbQorICAgICAgICBpbnRlcm5hbHMgZnJvbSBub3cgb24uCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0
aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAo
VGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFj
a0JlcnJ5Lmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0RGVmYXVsdHNU
b0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVu
bmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW06CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
cXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVu
bmVyUXQuaDoKKyAgICAgICAgKFRlc3RSdW5uZXJRdCk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lz
dGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rl
c3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJX
eC5jcHA6CisKIDIwMTMtMDMtMDYgIEp1bGllIFBhcmVudCAgPGpwYXJlbnRAY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIERhc2hib2FyZCBjbGVhbnVwOiBNb3ZlIGFsbCBkYXNoYm9hcmQgdWkgcmVs
YXRlZCBjb2RlIGludG8gdWkuanMuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCmluZGV4
IDdkM2U4NWUwMDc0M2MyNGUxMjdhZDJjMWVmYmE2NjM0YzY3ZGVkMzYuLmRhZWNjYWZlNmRkZTVh
ZWNhZjNlNGE0Y2YwNmJkNjJmN2JlMzg0NjUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
Y3BwCkBAIC0xNTA2LDE2ICsxNTA2LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgcmVzZXRQYWdlVmlz
aWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZgogICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAgCiAKLXN0YXRpYyBKU1Zh
bHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBj
b250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJl
dHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNv
bnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRo
aXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
SlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNW
YWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAgLTE1MjYsMTYgKzE1MTYs
NiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVm
aW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsK
LSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBj
b250cm9sbGVyLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEpTVmFsdWVUb0Jv
b2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRTdG9wUHJvdmlzaW9u
YWxGcmFtZUxvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1
bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29u
c3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAg
IFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmpl
Y3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIxMzgsOSArMjExOCw3IEBAIEpTU3RhdGlj
RnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldFBs
dWdpbnNFbmFibGVkIiwgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRQcmludGluZyIsIHNldFByaW50aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIiwgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrLCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRl
IH0sCiAgICAgICAgIHsgInNldFNlcmlhbGl6ZUhUVFBMb2FkcyIsIHNldFNlcmlhbGl6ZUhUVFBM
b2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlB
dHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCIsIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAg
ICAgIHsgInNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIsIHNldFNwYXRpYWxOYXZpZ2F0aW9u
RW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0b3BQcm92aXNpb25hbEZy
YW1lTG9hZHMiLCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzIiwgc2V0VGFiS2V5Q3lj
bGVzVGhyb3VnaEVsZW1lbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuaAppbmRleCA0ZjM3MGMzMzljN2NmYTk4ZTg5ZjM0MDAyOTIzN2IxYjQ4NTRmMWRiLi4xN2Zi
NDA4ZGI5Zjg4NDAwMjVmNmFiOTE3NDdiY2E4ZTc0YjM5YWZkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5oCkBAIC0xMDMsOCArMTAzLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0UGx1Z2lu
c0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFiS2V5Q3ljbGVzVGhyb3Vn
aEVsZW1lbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJkQ29tcGF0aWJpbGl0eU1v
ZGUoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sIGZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJU
cmVlLmNwcAppbmRleCA3MTY1MmRjZDEyMzhhMTM2NDM3MmIwOTgzNTgwYmMwMmQyODM4MTA1Li45
NTY0NDRiYzdmODU1YWNhOWVhZjQ2NWMwMjQxYmVhN2JiNWQ4NmI4IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtMTUxLDcg
KzE1MSw2IEBAIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBE
dW1wUmVuZGVyVHJlZSogRHVtcFJlbmRlclRyZWU6OnNfY3VycmVudEluc3RhbmNlID0gMDsKLWJv
b2wgRHVtcFJlbmRlclRyZWU6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZh
bHNlOwogCiBzdGF0aWMgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmluZyYgZmlsZU5hbWUpCiB7
CkBAIC0yOTUsNyArMjk0LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3Rl
bnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNvbnMKIAogICAgIHRvcExv
YWRpbmdGcmFtZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxzZTsKLSAgICBzX3NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKICAgICBtX3BvbGljeURlbGVnYXRl
RW5hYmxlZCA9IGZhbHNlOwogICAgIHdhaXRGb3JQb2xpY3kgPSBmYWxzZTsKICAgICB0ZXN0RG9u
ZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9E
dW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKaW5kZXggYTEzYWZiMTJkOGQ1MjM4MzM1NDdm
MzNjMjcwOTA0MWUwMGI3OTgzNi4uMjY3YzRkY2FkZjZlZDA3NjU3NmQ3Y2RiY2QwMGFkZjM5ZGNl
MDljMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZUJsYWNrQmVycnkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCkBAIC0xMDIsOCArMTAyLDYgQEAgcHVibGljOgog
ICAgIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwgV2ViQ29yZTo6UmFuZ2Uq
LCBpbnQgaW5zZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEluc2VydFRleHQoY29uc3QgU3Ry
aW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKIAotICAgIGJvb2wgaXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyByZXR1cm4gc19zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCiAgICAgLy8gQmxhY2tCZXJyeTo6UGxh
dGZvcm06OkJsYWNrQmVycnlQbGF0Zm9ybUxheW91dFRlc3RDbGllbnQgbWV0aG9kCkBAIC0xNDgs
NyArMTQ2LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9hY2NlcHRzRWRpdGluZzsKICAgICBi
b29sIG1fbG9hZEZpbmlzaGVkOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkOwogfTsKIH0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJs
YWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVy
QmxhY2tCZXJyeS5jcHAKaW5kZXggNjQ1YWU3OTY4ODFmM2E0MWYwYmM5NzM3ODM5MjkyMDllNDM3
MDVkYy4uYmQyZjAzNDU3NThmMDNhZmExOTYyNWE0MzQ0MmI2NGZkNDY4MmQ1MCAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tC
ZXJyeS5jcHAKQEAgLTI2MCwxNyArMjYwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRYU1NBdWRp
dG9yRW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVy
VHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c2V0WFNTQXVkaXRv
ckVuYWJsZWQoZmxhZyk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQmxhY2tCZXJyeTo6V2ViS2l0OjpE
dW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmxhZyk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBVTlVTRURfUEFSQU0oZmxhZyk7Ci0gICAg
bm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNU
aHJvdWdoRWxlbWVudHMoYm9vbCBjeWNsZXMpCiB7CiAgICAgaWYgKCFtYWluRnJhbWUpCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9X
ZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
cHVibGljL1dlYlRlc3RQcm94eS5oCmluZGV4IGE0NGVjYmQ3ODBkYTYxZDliZmU3ZTljODBlNTIx
ZjZiMWI5MDc1YzguLmQ0YTYwMGI4MjBlOTMwNzNkYjg5NzYxZWJhNzI5MGMxMWZjZDBhMTUgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGlj
L1dlYlRlc3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0xNDksOCArMTQ5LDYgQEAgcHJvdGVjdGVk
OgogICAgIFdlYktpdDo6V2ViUGx1Z2luKiBjcmVhdGVQbHVnaW4oV2ViS2l0OjpXZWJGcmFtZSos
IGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CiAgICAgdm9pZCBzZXRTdGF0dXNUZXh0
KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdm9pZCBkaWRTdG9wTG9hZGluZygpOwot
ICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZvaWQgc2hvd0NvbnRleHRNZW51KFdl
YktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYpOwogICAg
IFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGllbnQoKTsKICAgICB2b2lk
IHByaW50UGFnZShXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0zNjgsMTQgKzM2Niw2IEBAIHB1Ymxp
YzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICAgICAg
QmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICB9Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlC
YXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIH0KLSAgICB2aXJ0dWFsIGJv
b2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJl
dHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVudShXZWJLaXQ6OldlYkZy
YW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51
RGF0YSkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShm
cmFtZSwgY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKaW5kZXggMmFkMzQz
MGI4Mjc2OGQ3ZGQwMDI3ZjQ4YWY4ZjA2NzEyN2I2NzgyNC4uNjJiNmY2OTU1ODQ1Mjg1OTQ3NGE1
YWFhYWI5NGExZGFlMmYyODdhNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKQEAgLTIwNyw4ICsy
MDcsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRlcmZhY2VzKiBpbnRlcmZhY2Vz
KQogICAgIGJpbmRNZXRob2QoInRleHRTdXJyb3VuZGluZ05vZGUiLCAmVGVzdFJ1bm5lcjo6dGV4
dFN1cnJvdW5kaW5nTm9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUF1dG9SZXNpemVNb2Rl
IiwgJlRlc3RSdW5uZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7CiAgICAgYmluZE1ldGhvZCgi
ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZW5hYmxlQXV0b1Jlc2l6ZU1vZGUp
OwotICAgIGJpbmRNZXRob2QoInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCIsICZUZXN0UnVu
bmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwotICAgIGJpbmRNZXRob2QoInNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCAmVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgic2V0TW9ja0RldmljZU9y
aWVudGF0aW9uIiwgJlRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbik7CiAgICAg
YmluZE1ldGhvZCgiZGlkQWNxdWlyZVBvaW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZEFjcXVp
cmVQb2ludGVyTG9jayk7CiAgICAgYmluZE1ldGhvZCgiZGlkTG9zZVBvaW50ZXJMb2NrIiwgJlRl
c3RSdW5uZXI6OmRpZExvc2VQb2ludGVyTG9jayk7CkBAIC00MDksMTIgKzQwNyw2IEBAIHZvaWQg
VGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1fc2hvdWxkU3RheU9uUGFnZUFmdGVySGFuZGxpbmdC
ZWZvcmVVbmxvYWQgPSBmYWxzZTsKICAgICBtX3Nob3VsZEJsb2NrUmVkaXJlY3RzID0gZmFsc2U7
CiAgICAgbV93aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsID0gZmFsc2U7Ci0gICAgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOwotI2lmZGVmIFdJTjMyCi0gICAgbV9zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gdHJ1ZTsKLSNlbHNlCi0gICAgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYKICAgICBtX3Nob3VsZER1
bXBSZXNvdXJjZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0cEhlYWRlcnNUb0NsZWFy
LmNsZWFyKCk7CkBAIC02NzMsMTYgKzY2NSw2IEBAIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkSW50
ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2ludGVyY2VwdFBvc3RNZXNz
YWdlLmlzQm9vbCgpICYmIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UudG9Cb29sZWFuKCk7CiB9CiAK
LWJvb2wgVGVzdFJ1bm5lcjo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdAotewot
ICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotYm9vbCBUZXN0UnVu
bmVyOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdAotewotICAgIHJl
dHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19Ci0KIGJvb2wgVGVzdFJ1
bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0CiB7CiAgICAgcmV0dXJu
IG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKQEAgLTE0NjUsMjAgKzE0NDcsNiBAQCB2
b2lkIFRlc3RSdW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0KHN1cnJvdW5kaW5nVGV4dC50
ZXh0Q29udGVudCgpLnV0ZjgoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50
c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBhcmd1
bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBp
ZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAg
ICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUu
Ym9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaG91bGREdW1wUmVzb3VyY2VQ
cmlvcml0aWVzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCAyNWU3ZmU4NDU4OWI3ZDgx
NzFmYzYxOWIwOTU4OWNkMTE5MTYwOGIxLi4xYjBjNmQ0OTFkZGI1MmZjODgxNDYwYWQ5OTk5Nzkz
Mjg5ZDhmZGMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMTgsOCArMTE4LDYgQEAgcHVibGlj
OgogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBjb25zdDsKICAgICBib29s
IHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxk
SW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdDsKLSAgICBib29sIGlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBj
b25zdDsKICNpZiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgIFdlYktpdDo6V2ViTm90aWZpY2F0
aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25zdDsKQEAgLTI2OSwxMSAr
MjY3LDYgQEAgcHJpdmF0ZToKICAgICAvLyBsZW5ndGggdG8gcmV0cmlldmUuCiAgICAgdm9pZCB0
ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsK
IAotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9kZWxldGUuIFRoaXMgaXMg
ZW5hYmxlZCBieSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQotICAgIC8vIEVuYWJsZSBv
ciBkaXNhYmxlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugc2VsZWN0aW9uIG9uIGRvdWJsZSBjbGljay4K
LSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZW5hYmxlQXV0b1Jlc2l6ZU1vZGUo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZGlzYWJsZUF1
dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIApAQCAt
NjY4LDEwICs2NjEsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dpbGxTZW5kUmVxdWVzdFNo
b3VsZFJldHVybk51bGw7CiAKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwot
Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0KICAgICBib29s
IG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKIAogICAgIHN0ZDo6c2V0PHN0ZDo6c3Ry
aW5nPiBtX2h0dHBIZWFkZXJzVG9DbGVhcjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCmluZGV4
IDg2ODEzM2ZlNDcwZjkxYWVmY2VkMWZjMTk2YmNhOGY3MGQzMGQwOTQuLmNjNTA3NTM0ZTE2ZDk4
NTlhMjJjNTdkYzIxZDU0YWM1YjNlMmFhZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcApA
QCAtOTc4LDE2ICs5NzgsNiBAQCB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5n
KCkKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNzYWdlKCJwb3N0UHJvZ3Jlc3NGaW5pc2hl
ZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci19Ci0KLWJvb2wgV2ViVGVz
dFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICBy
ZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLX0KLQogdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29udGV4
dE1lbnUoV2ViRnJhbWUqLCBjb25zdCBXZWJDb250ZXh0TWVudURhdGEmIGNvbnRleHRNZW51RGF0
YSkKIHsKICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVudFNlbmRlcigpLT5zZXRDb250ZXh0TWVu
dURhdGEoY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlZpZXdIb3N0LmNwcAppbmRleCA4NzZlNTNmMzE3N2Q1NDBmMGFkM2Q4NzM2MTlmYWIxNTU5
ZTYwMzdiLi5hN2FmZjY1ZGI2YzNkNGFlNmUyNGE4OWIwZmMxMTZjYTBlNjU0MTM3IDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCkBAIC0xNzAsMjAg
KzE3MCw2IEBAIGJvb2wgV2ViVmlld0hvc3Q6OnNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdlCiAgICAgcmV0dXJuIHRydWU7CiB9CiAK
LWJvb2wgV2ViVmlld0hvc3Q6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICBy
ZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXZWJWaWV3SG9zdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCkKLXsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vs
c2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogYm9vbCBXZWJWaWV3SG9zdDo6aGFu
ZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKQogewogICAgIGlmIChtX2VkaXRDb21tYW5kTmFtZS5l
bXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKaW5k
ZXggZmYyZWRhN2ZmZWVmOGY2NzU5Y2U0YTkzNmJkZDI5ZDdiZDRhYThjOS4uNGEzNGYzOGEyZTMz
YzA3NGYxMDdmMDBlYzlmN2M5MDRlYTI5NTRhOSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xNDMsOCArMTQzLDYgQEAgY2xhc3MgV2ViVmlld0hv
c3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFt
ZUNsaWVudCwKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQ2hhbmdlU2VsZWN0ZWRSYW5nZShjb25z
dCBXZWJLaXQ6OldlYlJhbmdlJiBmcm9tLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiB0bywgV2Vi
S2l0OjpXZWJUZXh0QWZmaW5pdHksIGJvb2wgc3RpbGxTZWxlY3RpbmcpOwogICAgIHZpcnR1YWwg
Ym9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7CiAgICAgdmly
dHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmIHN0eWxl
LCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7Ci0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7Ci0gICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgYm9vbCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRF
dmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKFdlYktpdDo6V2Vi
RnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZpcnR1YWwgYm9vbCBydW5N
b2RhbENvbmZpcm1EaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcAppbmRleCBmODdlZWIwNzA2NDZmNTkwMTdiYTY4MDg0Y2Q3NmQyZDBhNmQxMzk2Li42
MTI3YzlkNjI5MjRiMWQ4NGNjMGI3YjhiYzUzNTYxMTgwNTFjY2MxIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTMxNSw4ICsz
MTUsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0
ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFZhbGlkYXRpb25N
ZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3KCksIC0xKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKG1haW5WaWV3KCks
IHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0Q1NTR3JpZExheW91dEVu
YWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVm
ZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1hZ2VMb2FkaW5nU2V0dGluZyhtYWluVmll
dygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZXJpYWxpemVI
VFRQTG9hZHMoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rl
c3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwu
Y3BwCmluZGV4IGU2NWI1YTI1OWUyYzEyNWRhMjdjYzkwMDFjZTdiNDE4ZjM2MDkzZDUuLmE5OWEz
YjVlZGM3Njg3YjQyZjQyMTI4ODk1ZGE4ZGE3ZjM1YzFlN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTI3MiwxMSArMjcyLDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogc3RhdGljIEVpbmFfQm9vbCB3
YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICB3YWl0VG9EdW1wV2F0Y2hkb2cg
PSAwOwpAQCAtNDIxLDExICs0MTYsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFz
ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICBld2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFz
ZV9wYXRoX3NldChkYXRhYmFzZVBhdGgudXRmOCgpLmRhdGEoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6
OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBld2tfdmlld19zZXR0
aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQoYnJvd3Nlci0+bWFpblZpZXcoKSwgIWZs
YWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXgg
NWEzNTc0ZjcxMjEzYjQ1NjI3MTVkMmM4ZWRkZTA5NmIzY2E4ZTBkNS4uY2VlNDYxYzU4MWQzZjE5
MzJlNDFkNDc0NjU0NGVkYmY2NDYwZGJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
RHVtcFJlbmRlclRyZWUuY3BwCkBAIC01MDEsOCArNTAxLDYgQEAgc3RhdGljIHZvaWQgcmVzZXRE
ZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4odHJ1ZSk7CiAgICAgd2Via2l0X2ljb25f
ZGF0YWJhc2Vfc2V0X3BhdGgod2Via2l0X2dldF9pY29uX2RhdGFiYXNlKCksIDApOwotICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQod2ViVmlldywgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzZXREZWZlcnNMb2FkaW5nKHdlYlZpZXcsIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRHdGs6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CiAKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRleCA0MmNlNjcyNmQ4ODNlOTM3ZWVhNWJl
OGMwZjY0YmQyZTA3ZjFjOGM0Li5jZDEwNDRkMGQyMzMxZTJhNGExZWM3N2U4ZDQyZjk3MjdmYWFk
YTY2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0z
MjMsMTEgKzMyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJraXRfd2ViX2Zy
YW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFnKTsKLX0KLQogc3RhdGljIGdib29sZWFu
IHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHNldFdhaXRUb0R1bXBXYXRj
aGRvZygwKTsKQEAgLTQ4NSwxMSArNDgwLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJY29uRGF0
YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vf
c2V0X3BhdGgoZGF0YWJhc2UsIDApOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0K
LQogdm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7
CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3
KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJl
bmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0K
aW5kZXggOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBkOTA2OTcxNmU4NTU1OC4uY2IxNGExNTdh
NDU4NzZiMTdjNGJmNGYzMDJkMmY2YzU1NDlhOGI0YiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI3OCw4ICsxMjc4LDYgQEAgc3RhdGljIHZvaWQg
cmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgZ1Rl
c3RSdW5uZXItPnJlbW92ZUNocm9tZUlucHV0RmllbGQoKTsKICAgICB9CiAKLSAgICBbW21haW5G
cmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6WUVTXTsKLQogICAgIFtX
ZWJWaWV3IF9zZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdDb2xvcjpZRVNdOwogICAgIFtXZWJWaWV3
IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOwogICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NS
b3VuZGluZ0hhY2tzOk5PXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9U
ZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMu
bW0KaW5kZXggYjIzMjZhMjZiMzQ5YTA4M2JhNzk4YThjN2I5NWFkYTlkZjA1ZTM2Ni4uYjMxYzlh
ZDcyN2IyZTY2ZjdmZTdiNWNhMWQ2OGRiYjRlNDdiZmU2OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTYzNCwxNiArNjM0LDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIFtbbWFpbkZyYW1lIHdl
YlZpZXddIF91cGRhdGVBY3RpdmVTdGF0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJW
aWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KLXZvaWQgVGVzdFJ1
bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpmbGFnXTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1bXBXYXRj
aGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgd2FpdFVudGlsRG9uZVdhdGNoZG9n
RmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIsIHZvaWQqIGluZm8pCmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCmluZGV4IDIzZmQzNWMxYzZmYjVmMTc5
MzNiNjUzMmJkNGM4NzQxNzAwZThjZDIuLmRmYTY3MmI2NzRkZWMzY2U5NzA2MmY1OGZlZmNmYzk5
MzgwMWEwNWYgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJU
cmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQu
Y3BwCkBAIC0xOTIsOCArMTkyLDYgQEAgdm9pZCBXZWJQYWdlOjpyZXNldFNldHRpbmdzKCkKIAog
ICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldENhcmV0QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsK
ICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0
cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0RGVmZXJz
TG9hZGluZyhmYWxzZSk7CiAKICAgICAvLyBnbG9iYWxTZXR0aW5ncyBtdXN0IGJlIHJlc2V0IGV4
cGxpY2l0bHkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVy
UXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAppbmRleCBl
NWU4MjQzMGUxN2RlMjk2MTc5MzM1ZDRlNjU1ODVkMWI0YzcyOWMwLi42Mzg5YTBkZWZhNzdlMmEy
M2IxNjg1Y2I3MTQwMjdkMmZiNTZmZGExIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RS
dW5uZXJRdC5jcHAKQEAgLTcyMCwxNiArNzIwLDYgQEAgdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNj
cm9sbGJhclBvbGljeShjb25zdCBRU3RyaW5nJiBvcmllbnRhdGlvbiwgY29uc3QgUVN0cmluZyYK
ICAgICBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUoKS0+c2V0U2Nyb2xsQmFyUG9saWN5KG8s
IHApOwogfQogCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KLXZv
aWQgVGVzdFJ1bm5lclF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wg
ZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUpOwotfQotCiB2
b2lkIFRlc3RSdW5uZXJRdDo6ZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3Qg
UVN0cmluZyYgdmFsdWUpCiB7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVD
b3JlQ29tbWFuZEJ5TmFtZShtX2RydC0+cGFnZUFkYXB0ZXIoKSwgbmFtZSwgdmFsdWUpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmggYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCA2NWJiYjgyYTJjYjQxM2U3MjE5
NzM4YmZhN2U1ODMwN2NiY2NkYzBlLi45OTA3YTJlNTM3MmY4ODliYWVhMjNkYzNhMDU4NGU3NjI2
ZTk2YzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApAQCAtMTc4LDgg
KzE3OCw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsK
ICAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJpbmcmIG1vZGUpOwot
ICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2b2lkIGV4ZWNDb21t
YW5kKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlID0gUVN0cmluZygp
KTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7
CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggZjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEzODM3ODczZWRhNzhjZWY1Yi4uODlmYTlm
N2FmYTE2MzVmNjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04OTksMTAgKzg5OSw2IEBAIHN0YXRpYyB2
b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAgICAgICAg
IFdlYkNvcmVUZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5hbHNPYmplY3QoY29udGV4dCk7CiAgICAg
fQogCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKFNV
Q0NFRURFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAg
dmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChUUlVFKTsKLQogICAgIENP
TVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXdQcml2YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKICAg
ICBpZiAoIXdlYlZpZXdQcml2YXRlKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggNjY0OGMzZWUxNWRkNGE1NmVlMGI0NWIy
MWUwODdmYTg2NDRlNjlmMi4uZGQ0ZDg3MzFkZmVlNDgzZGZlMGU5Yjg3MTUyZmE2NDNjNmRhMGM3
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcApAQCAtNzIz
LDMyICs3MjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgZmxhZykK
ICAgICA6OlNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIGZsYWcgPyBXTV9TRVRGT0NVUyA6IFdN
X0tJTExGT0NVUywgKFdQQVJBTSk6OkdldERlc2t0b3BXaW5kb3coKSwgMCk7CiB9CiAKLXZvaWQg
VGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFtZS0+d2ViVmll
dygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0
aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNl
KCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCi12b2lk
IFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFn
KQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1l
LT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2Vi
Vmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJ
bnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0
aW5nLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcgPyBUUlVFIDogRkFM
U0UpOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9n
SW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCBDQUxMQkFDSyB3YWl0VW50aWxEb25lV2F0
Y2hkb2dGaXJlZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQpCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCA0NzUzYzI5Y2E1NGY2YWVlMWE5ZGNhOTEzZDli
NTFlZDUwMWE5YTFlLi5mNGJiOTRhMGUzZDI5NmNhZjdjMDg2YzFkZmM5NzdiY2M2NmU2OTk0IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKQEAgLTE1MSwxMSArMTUx
LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQog
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQK
LX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKGJvb2wgd2FpdFVudGlsRG9uZSkK
IHsKICAgICBzdGF0aWMgY29uc3QgaW50IHRpbWVvdXRTZWNvbmRzID0gMTA7CkBAIC0yODgsMTEg
KzI4Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25l
ZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17
Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tE
ZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwgZG91YmxlIGFscGhhLCBib29s
IGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJs
ZSBnYW1tYSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZvciBEZXZpY2VPcmllbnRhdGlv
biBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTYyNWJmZTlmZjlhOTVmZmEwMTAzNmRkYmUzZTliOGYz
MDhmN2E2NC4uNDY0NWU5YzRiYjJjMmE4ZDE4OWUxMDA3ZGI5ZDZkZTY5OWFlMDVhZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQ5IEBACisyMDEzLTAzLTA3ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVn
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisKKyAgICAgICAgQmUgc3VyZSB0
aGF0IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcmUgc2V0IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5IGFyZQor
ICAgICAgICBtdXR1YWxseSBleGNsdXNpdmUuCisKKyAgICAgICAgU2V0IHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbiBzb21lCisg
ICAgICAgIHRlc3RzIGFzIHRoZSBkZWZhdWx0IHZhbHVlcyBpbiBDaHJvbWl1bSBpcyBkaWZmZXJl
bnQgdG8gb3RoZXIgcG9ydHMgYW5kCisgICAgICAgIHRoZXNlIHRlc3Qgd2VyZSBmYWlsaW5nLgor
CisgICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAzLmh0bWw6CisgICAg
ICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDA0Lmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9wYXN0ZWJvYXJkLzQ5NDQ3NzAtMi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFz
dGVib2FyZC9kcmFnLWRyb3AtbGlzdC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVi
b2FyZC9zbWFydC1kcmFnLWRyb3AuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQv
c21hcnQtcGFzdGUtMDAxLmh0bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0
LXBhc3RlLTAwMi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0
ZS0wMDMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNS5odG1s
OgorICAgICAgICAqIGVkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDcuaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4Lmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL3N1YmZyYW1lLWRyYWduZHJvcC0xLmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1p
bWctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qczoKKyAgICAg
ICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAoaW5pdFNw
ZWxsVGVzdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2
ZW50cy9vbmRyYWdlbnRlci5odG1sOgorICAgICAgICAqIGZhc3QvbGlzdHMvZHJhZy1pbnRvLW1h
cmtlci5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOgorCiAy
MDEzLTAzLTA2ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBCb3gtc2hhZG93IGRpc3BsYXllZCBpbXByb3Blcmx5IHdpdGggYm9yZGVyLXJhZGl1cy4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLTAwMy5o
dG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAzLmh0bWwK
aW5kZXggODJjYTM3MzcxZmFjOTY4Y2RhMmE4MjZmYjY1ZGM4MjE4NDliOTJhZC4uYzMxYjM1ZWNk
YTQ0Njg2ZjU2OTc2MDc2YWYzOTdmNTM3ZDVlMTEyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAzLmh0bWwKQEAgLTEsNiArMSwxMCBAQAog
PHNjcmlwdD4KIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgdGVzdFJ1bm5lci5kdW1wRWRp
dGluZ0NhbGxiYWNrcygpOworaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK30K
IDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBsYW5ndWFnZT0iSmF2YVNjcmlw
dCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiA8cD5UaGlzIHRlc3RzIGRlbGV0
aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIHdvcmQgZ3JhbnVsYXJpdHkuICBUbyBydW4g
aXQgbWFudWFsbHksIGRvdWJsZSBjbGljayBvbiAnYmFyJyBhbmQgaGl0IGRlbGV0ZS4gIFlvdSBz
aG91bGQgc2VlICdmb28gYmF6Jy48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVs
ZXRpbmcvc21hcnQtZGVsZXRlLTAwNC5odG1sCmluZGV4IDExN2U1YjhlNGYyOThlYjFmOTYzNjky
ZDRlNDcwODZiMjMzOTI1MWEuLjFmMTkyMzQyOWY1ZDkwNjU2NzFlZDUxNjM2MmFiYzRiMTY3YmEw
YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRl
LTAwNC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRl
LTAwNC5odG1sCkBAIC0xLDYgKzEsMTAgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgIHRlc3RSdW5uZXIuZHVtcEVkaXRpbmdDYWxsYmFja3MoKTsKK2lmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Cit9CiA8L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS4uL2Vk
aXRpbmcuanMgbGFuZ3VhZ2U9IkphdmFTY3JpcHQiIHR5cGU9InRleHQvSmF2YVNjcmlwdCIgPjwv
c2NyaXB0PgogPHA+VGhpcyB0ZXN0cyBkZWxldGluZyBhIHNlbGVjdGlvbiBjcmVhdGVkIHdpdGgg
YSB3b3JkIGdyYW51bGFyaXR5LiAgVG8gcnVuIGl0IG1hbnVhbGx5LCBkb3VibGUgY2xpY2sgb24g
J2JhcicgYW5kIGhpdCBmb3J3YXJkIGRlbGV0ZS4gIFlvdSBzaG91bGQgc2VlICdmb28gYmF6Jy48
L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRp
bmctZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRp
dGluZy1kaXNhYmxlZC5odG1sCmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgx
OTgxZGVkNjkuLmQwZjdkN2FmMTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxl
ZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1k
aXNhYmxlZC5odG1sCkBAIC01LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVk
aXRpbmdUZXN0KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJk
LzQ5NDQ3NzAtMi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkLzQ5NDQ3NzAt
Mi5odG1sCmluZGV4IGFmY2VlNzZlM2Q3YjE3OGFhZmRkYWRjNGQyMWUyZjUyNTZmODNmNmUuLjI5
Yjc1OGNjNDU3MGRjM2ZlZTUzYmVkYmE2ZjQzNjA1MTNjZDNlYWQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC80OTQ0NzcwLTIuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3Bhc3RlYm9hcmQvNDk0NDc3MC0yLmh0bWwKQEAgLTUsNiArNSwxMSBAQAogPGRp
diBjb250ZW50ZWRpdGFibGU9InRydWUiIGlkPSJwYXN0ZSI+eHg8L2Rpdj4KIAogPHNjcmlwdD4K
K2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Cit9CisKIHZhciBjb3B5ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvcHkiKTsKIGRvdWJsZUNsaWNrKGNvcHkub2Zmc2V0TGVm
dCwgY29weS5vZmZzZXRUb3ApOwogZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkNvcHkiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9kcmFnLWRyb3AtbGlzdC5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwKaW5k
ZXggMTVhOTEyYjBmMDUyYzNmYWVjN2YxYjcwYzgxY2M1ZTE0ZGFhMDY0Ny4uMjY5ZmE4YjBkODBl
NjI5N2UyODcxMDcxYmYxOTFiZWZlYzRmMzg1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9wYXN0ZWJvYXJkL2RyYWctZHJvcC1saXN0Lmh0bWwKQEAgLTksNiArOSwxMSBAQAogPHVs
IGlkPSJjb25zb2xlIj48L3VsPgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9kdW1wLWFz
LW1hcmt1cC5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUp
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKTsKK30KKwogZnVuY3Rpb24gbG9nKHN0cikgewogICAgIHZhciBsaSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CiAgICAgbGkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvZHJhZy1kcm9wLW1vZGlmaWVzLXBhZ2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS5odG1sCmluZGV4IDQ3YzcxMTVmN2Ix
OWRiMjljNzcxODg5NDRiYzU5ZDkxMWE2N2JkOTQuLjk0YmQ4NTBiNzViYTlhMmRlYmIyMjc4ZmJh
MWQ0MzdiODhjYjg4YTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9kcmFnLWRyb3AtbW9kaWZpZXMtcGFnZS5odG1sCkBAIC0yLDYgKzIsMTEgQEAK
IDxoZWFkPgogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
Cit9CisKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewogICAKICAgICBpZiAoIXdpbmRvdy50ZXN0
UnVubmVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0
LWRyYWctZHJvcC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LWRy
YWctZHJvcC5odG1sCmluZGV4IDIxMzA0NWRkZDkyMWRlNjk4YTgzMzVjZmI3Nzg3OWRjOTdkMDZj
ODMuLjVlMmM2OTYxNGM2MjkzYTNhZDJmMWNlZjY2YjM4MGU0OTc5NmJkZTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1kcmFnLWRyb3AuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtZHJhZy1kcm9wLmh0bWwKQEAg
LTIsNiArMiwxMSBAQAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0uLi9lZGl0aW5nLmpzIHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+CiA8c2NyaXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKK30KKwogZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CiAgIAogICAgIGlm
ICghd2luZG93LmV2ZW50U2VuZGVyKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0
ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMS5odG1sCmluZGV4IDQ2MWI4Njk0MGI2YjRjOTk5ZmM2NTQw
MGM0MDQzYzY0NjBkMGJjYjYuLjk5MTAwZWIyMmMxNjI3YWZjMTM0YWEwMmI2ZDQyNTQ4YTdkMTZi
MGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0
ZS0wMDEuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFz
dGUtMDAxLmh0bWwKQEAgLTQwLDYgKzQwLDEwIEBAIHRlc3QKIDwvZGl2PgogPHNjcmlwdCBzcmM9
Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0
cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChmYWxzZSk7Cit9CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIGRvdWJs
ZUNsaWNrQXRTZWxlY3Rpb25TdGFydCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMi5odG1sCmluZGV4IGJjM2NkN2I3MWU2OGIyYjFkZTE1
ZDFmNDc0NTE4YzI2YzNjMmZhYzQuLmY1MTczNzU3OTFhY2ZjNjRmZTk2MjE1N2M5OTkxZDBkMWZl
YmRhMWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1w
YXN0ZS0wMDIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQt
cGFzdGUtMDAyLmh0bWwKQEAgLTQwLDYgKzQwLDEwIEBAIHRlc3QKIDwvZGl2PgogPHNjcmlwdCBz
cmM9Ii4uL2VkaXRpbmcuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmYWxzZSk7Cit9CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewogICAgIHZh
ciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwMy5odG1sCmluZGV4IDZl
NWE2MDllMzIyYmNiZjdjZDFjYzNjNDk3NjU1ZDMxZjE0YjI5MDkuLmI2NjJlN2Y3NGMxYTE3OTM4
MTgyMjExOTIxMmJmYTc3OGUwM2Y3ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
cGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDAzLmh0bWwKQEAgLTQxLDYgKzQxLDEwIEBAIHRlc3Qg
dGVzdAogPC9kaXY+CiA8c2NyaXB0IHNyYz0iLi4vZWRpdGluZy5qcyI+PC9zY3JpcHQ+CiA8c2Ny
aXB0PgoraWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK30KIAogZnVuY3Rpb24g
ZWRpdGluZ1Rlc3QoKSB7CiAgICAgZG91YmxlQ2xpY2tBdFNlbGVjdGlvblN0YXJ0KCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA0Lmh0bWwK
aW5kZXggZjY1MTUxNTZhYjllMWZmYzE5YmMzZGY5NWNlZTI5ODUzM2NjM2M3MC4uYmViMWQ3MDZk
OTY3YjA0NTkzZjZmZDVkYjA1ZDVkMGQ5MjdmNmNhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0wMDQuaHRtbApAQCAtNDAsNiArNDAsMTAg
QEAgdGVzdCB0ZXN0CiA8L2Rpdj4KIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworfQogCiBm
dW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICBkb3VibGVDbGlja0F0U2VsZWN0aW9uU3RhcnQo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0
ZS0wMDUuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9zbWFydC1wYXN0ZS0w
MDUuaHRtbAppbmRleCA3OTkwNDdiNDUwYzE1MjYxZmQ5ZWExMjYxMTJhODQzMzczYzJiMGQ3Li45
ZWU5Y2E4NTRlZmI3YjhkMGJmNjRhODAyYjljOWFiMTE4NjIwYjA1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA1Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwNS5odG1sCkBAIC00MSw2
ICs0MSwxMCBAQCB0ZXN0CiA8L2Rpdj4KIDxzY3JpcHQgc3JjPSIuLi9lZGl0aW5nLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworfQog
CiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3Rlc3QnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9zbWFydC1wYXN0ZS0wMDcuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVi
b2FyZC9zbWFydC1wYXN0ZS0wMDcuaHRtbAppbmRleCA4YjdkZTlkNTJhOTAxZTY3YWI0ZTQ5Nzlk
Y2Y4ODlkMDY3ODQzYWFiLi40YWZmMjNkZmFlY2NlZTIxMWFjYjZjNTc1M2E2OGNlNmE5ZTUyMmQ5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUt
MDA3Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3Rl
LTAwNy5odG1sCkBAIC0xOSw2ICsxOSwxMCBAQAogPHNjcmlwdCBzcmM9Li4vZWRpdGluZy5qcyBs
YW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2NyaXB0IiA+PC9zY3JpcHQ+CiAK
IDxzY3JpcHQ+CitpZiAod2luZG93LmludGVybmFscykgeworICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworfQogCiBmdW5j
dGlvbiBlZGl0aW5nVGVzdCgpIHsKICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ3Rlc3QnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9zbWFydC1wYXN0ZS0wMDguaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9z
bWFydC1wYXN0ZS0wMDguaHRtbAppbmRleCAzN2UxMDQ4MmZjNTVhOThiNWI1YmE1MDg4MDliNGM0
YzM5ZmI0YWRiLi4zNzliMDk4MTJlNGE3ZTY4NWVkMzg4MjE2ZjUzMmM4NTYzOGQxZTJkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvc21hcnQtcGFzdGUtMDA4Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL3NtYXJ0LXBhc3RlLTAwOC5o
dG1sCkBAIC0xLDYgKzEsMTEgQEAKIDxzY3JpcHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAg
ICAgIHRlc3RSdW5uZXIuZHVtcEVkaXRpbmdDYWxsYmFja3MoKTsKKworaWYgKHdpbmRvdy5pbnRl
cm5hbHMpIHsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKTsKK30KIDwvc2NyaXB0PgogPHA+VGhlcmUgd2FzIGEgYnVnIGlu
IHBhc3RlJ3Mgc21hcnQgcmVwbGFjZSB3aGl0ZXNwYWNlIGhhbmRsaW5nLiAgSW4gc29tZSBjYXNl
cywgaXQgdXNlZCBpbmZvcm1hdGlvbiBnYXRoZXJlZCBhdCB0aGUgc3RhcnQgb2YgdGhlIHNlbGVj
dGlvbiBiZWluZyBwYXN0ZWQgaW50byB0byBkZWNpZGUgd2hldGhlciBvciBub3QgYSBzcGFjZSBu
ZWVkZWQgdG8gYmUgYWRkZWQgdG8gdGhlIGVuZCBvZiB0aGUgaW5jb21pbmcgY29udGVudC48L3A+
CiA8cD5BIHNtYXJ0IHBhc3RlIGlzIHBlcmZvcm1lZCBpbnRvIGEgc2VsZWN0aW9uIHN0YXJ0aW5n
IGluIG9uZSBibG9jayBhbmQgZW5kaW5nIGluIGFub3RoZXIuICBTcGFjZXMgc2hvdWxkIHN1cnJv
dW5kIHRoZSBwYXN0ZWQgd29yZC48L3A+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvc3ViZnJhbWUtZHJhZ25kcm9wLTEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9zdWJmcmFtZS1kcmFnbmRyb3AtMS5odG1sCmluZGV4IDY0OTRlMGQxNzA4
YzZlZjJhYzg2MzRhYjczNzc1N2JhNDJkNTY1YjMuLjZjMjM5MDc0ZjUzNzY3Y2E2OTcwNTBmNzQ4
YjUxM2U1YmE3ZGJlNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9zdWJmcmFtZS1kcmFnbmRyb3AtMS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFz
dGVib2FyZC9zdWJmcmFtZS1kcmFnbmRyb3AtMS5odG1sCkBAIC0xLDcgKzEsMTIgQEAKIDxzY3Jp
cHQ+CiBpZiAod2luZG93LnRlc3RSdW5uZXIpCiAgICAgIHRlc3RSdW5uZXIuZHVtcEVkaXRpbmdD
YWxsYmFja3MoKTsKLSAgICAgCisKK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7
Cit9CisKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdmFyIGZyYW1lID0gZnJhbWVzWzBdOwog
ICAgIHZhciBkb2MgPSBmcmFtZS5kb2N1bWVudDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCmlu
ZGV4IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhkNWNiNzZiN2Fk
YjE4Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRt
bApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0
aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4IDQwZTI0MTM4
MjFlOGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1YTViMDdmZjM5
MzM0NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKQEAgLTQs
NyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
LWltZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5NWE3OWRkYTZk
NDQ2NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2EzNzk5YzdmY2Vm
NjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAgLTQsNyArNCw3
IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
ZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2st
d2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYzOWQ1ZjZmMWVh
YWY5OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVjMWQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3Bh
Y2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5j
dGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQt
dGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCmlu
ZGV4IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLmU3YmRmZjVjZDI2
MzMyNzg3ODZlNjJmNjgyMjE5OTA5YTk3MTZjMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFz
dC1jb250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJs
ZS5qcwpAQCAtNzgsNyArNzgsOCBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5kTW9kaWZ5KHRh
cmdldElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5kb3cuc2VsZWN0
ZWRCeU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVzdFJ1bm5lci5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVybmFscy5zZXR0
aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CitpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAKIHZhciBzaG91
bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lID0gIjxzcGFuIGlkPSd0YXJnZXQnIGNvbnRlbnRFZGl0
YWJsZT5zZWxlY3RtZTE8L3NwYW4+IGFuZCBub3Qgc2VsZWN0IHVzIjsKIHRlc3RXaXRoRG91Ymxs
ZUNsaWNrKHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUsICJzZWxlY3RtZTEiKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCmluZGV4IGNmODAz
MzQxODg0M2NmMjBjNjY3MWU3Yzg0OTA3YjcwNzJkNDk1MjAuLjA5NGE1M2IyODk2ODhkODJkZTRk
ZTczNjdhOWM5NDMzNGY1NjI0OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3Bl
bGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBpbml0U3BlbGxU
ZXN0KHRlc3RFbGVtZW50SWQsIHRlc3RUZXh0LCB0ZXN0RnVuY3Rpb24pCiAgICAgdGVzdEZ1bmN0
aW9uQ2FsbGJhY2sgPSB0ZXN0RnVuY3Rpb247CiAgICAganNUZXN0SXNBc3luYyA9IHRydWU7CiAg
ICAgdGVzdFJ1bm5lci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0cnVlKTsK
LSAgICB0ZXN0UnVubmVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICB0
ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZmFsc2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNrZXJFbmFi
bGVkKHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZpb3IoIndp
biIpOwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRlc3RF
bGVtZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVu
ZGVyc2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYxMzUyY2Y5YTIzZWY2MzEyM2Ix
NmEzNi4uNDA2MDcxODEwZDAxYmI5OGU2ZTVmMTNjMzhkNjA5M2QzNmU3ZWFhOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13
b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCkBA
IC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBo
b21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUt
Y2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNl
LgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxz
ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0
cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zm
c2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3Rp
bmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBk
ZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3
ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAg
Ly8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJhaWxpbmcgd2hp
dGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJl
bnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9
IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRU
b3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAyNDkyNzNkMmUw
YWJhYjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi45ZDI0OWZkN2YwZWZlZTI0M2JjNmIwZmIy
OWU1Y2VlNTk1NmVjNGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApAQCAtMjEsNyAr
MjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1
bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUg
bWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVu
bmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
OwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0
aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zm
c2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKQEAgLTQ5
LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4i
LCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93
LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sg
dGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUp
OwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQgKyBkZXN0
aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zm
c2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uZHJhZ2VudGVyLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9vbmRyYWdlbnRlci5odG1sCmluZGV4IDQ1OTk4MzM4NDE3MWVlMDc0
ZDUzMzMzNGZjOWRkNzkwNzM0ZTY3MjEuLjFkMDY3NzlmYWVhMmNlYWI5YmE2N2E5MWJlNDJhMzA4
MGJkNWYyOTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL29uZHJhZ2VudGVy
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvb25kcmFnZW50ZXIuaHRtbApAQCAt
MTIsNiArMTIsMTEgQEAgZnVuY3Rpb24gZHJhZ0VudGVyKGRpdikKIDxkaXYgaWQ9ImRyYWdUYXJn
ZXQiIGNsYXNzPSJkcmFnVGFyZ2V0IiBvbmRyYWdlbnRlcj0iZHJhZ0VudGVyKHRoaXMpOyIgc3R5
bGU9IndpZHRoOiAzMDBweDsgaGVpZ2h0OiAzMDBweDsgYm9yZGVyOiAxcHggc29saWQgZ3JheTsi
Ij48L2Rpdj4KIDxwPlRoaXMgYXV0b21hdGVkIGxheW91dCB0ZXN0IGNoZWNrcyB0byBzZWUgdGhh
dCBvbmRyYWdlbnRlciBldmVudHMgYXJlIGJlaW5nIHNlbnQuPC9wPgogPHNjcmlwdD4KK2lmICh3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Cit9CisKIGZ1bmN0aW9uIHJ1blRlc3QoKQog
ewogICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2xpc3RzL2RyYWctaW50by1tYXJrZXIuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvbGlzdHMv
ZHJhZy1pbnRvLW1hcmtlci5odG1sCmluZGV4IDI4MTNlN2QxODhjN2I3ZmU4ODUxYTQ4YWVmM2I1
NTA4MDk4ZGY0ODIuLjI0NzQ5MDQ2NDRhYmU2OTFkZGIwMmQyZTNjYjNjOGRjYzkzYjAxMzAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbGlzdHMvZHJhZy1pbnRvLW1hcmtlci5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvbGlzdHMvZHJhZy1pbnRvLW1hcmtlci5odG1sCkBAIC01LDYg
KzUsMTAgQEAKIDxwPlRoaXMgaXMgYW4gYXV0b21hdGVkIHRlc3QgZm9yIGVsZW1lbnRBdFBvaW50
IGZvciBwb2ludHMgb3ZlciBwb3NpdGlvbjpvdXRzaWRlIGxpc3QgbWFya2Vycy4gIFRoZSBkaWN0
aW9uYXJ5IHJldHVybmVkIGJ5IGVsZW1lbnRBdFBvaW50IHNob3VsZCBjb250YWluIHRoZSBsaXN0
IGl0ZW0gYXMgdGhlIERPTU5vZGUsIG5vdCB0aGUgbGlzdCwgZm9yIHBvaW50cyBvdmVyIHBvc2l0
aW9uOm91dHNpZGUgbGlzdCBtYXJrZXJzLiAgZWxlbWVudEF0UG9pbnQgaXMgdXNlZCB0byBkZXRl
cm1pbmUgdGhlIGRyYWcgb3BlcmF0aW9uIHRoYXQgd2lsbCBvY2N1ciB3aGVuIHNvbWV0aGluZyBp
cyBkcm9wcGVkIG92ZXIgYSBnaXZlbiBwb2ludC4gIFNvLCB0aGlzIHRlc3QgZHJhZ3MgYSBiaXQg
b2YgdGV4dCBvdmVyIHRoZSBsaXN0IG1hcmtlciBhbmQgZHJvcHMgaXQuICBJdCBzaG91bGQgYmUg
cGFzdGVkIGludG8gdGhlIGxpc3QgaXRlbSwgd2hpY2ggaXMgY29udGVudGVkaXRhYmxlLjwvcD4K
IAogPHNjcmlwdD4KK2lmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Cit9CiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKQEAgLTQ2LDQg
KzUwLDQgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKIHJ1blRlc3QoKTsKIDwvc2NyaXB0PgogCi08
L2JvZHk+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorPC9ib2R5PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZWExNzZmNGNjZmFmYjhiMmQ4MTYx
NzRlMGUxNDdjMzAwZjYwNzhmLi5mYjBiOGI1Y2ZkNjI1OTg3Y2U4ZmJjZTdkYzlmZjUzYmU4Nzkx
OTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc1
LDkgKzM3NSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhv
cml6YXRpb24td2l0aC1lbWJlZGRlci5odG1sCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5
b3V0VGVzdENvbnRyb2xsZXIuYWRkRGlzYWxsb3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQt
dGhlLXJlc291cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0
VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkCi1lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmly
c3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMg
bGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2Vs
ZWN0aW9uLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192278</attachid>
            <date>2013-03-08 13:28:05 -0800</date>
            <delta_ts>2013-03-08 14:28:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130308222407.patch</filename>
            <type>text/plain</type>
            <size>85872</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uMTUyMTUxZmM0Zjg4ZDEwYWQ5YmExNDllOWNhZmEw
NmE2NWNkOTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLjQzM2ZjZjlm
OGM1ZWFlYjNhNTIzY2U4MDEyYjE0YTg4MGYyMDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjBmZDM2MTAzYmYwOWViMjlhNjlmYzA2ZDFlMjZiOTk1
NzM3ZWQwM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBwdWJsaWMv
V2ViVmlld0NsaWVudC5oOiBSZW1vdmUgQVBJIHJlbGF0ZWQgdG8gc21hcnRJbnNlcnREZWxldGVF
bmFibGVkCisgICAgICAgIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRo
ZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20gcGFnZQorICAgICAgICBzZXR0aW5ncyBmcm9tIG5vdyBv
bi4KKyAgICAgICAgKiBzcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6
OkVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OkVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDMtMDcgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW2Nocm9taXVtXSBleHBvc2UgVXNlckdlc3R1cmVUb2tlbiB2aWEgV2ViS2l0
IEFQSSBzbyBQUEFQSSBwbHVnaW5zIGNhbiBjb3JyZWN0bHkgY29uc3VtZSBpdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGRiZTZjZmQ2MWQzZTE5NmUwYzc3YmZjY2QzNGVlYzEyOWE0NWJhNWUuLjQ5NjYz
ZGJlODI5NDAwYWYwNTE5MmNlZjQ3Mzc1NzdmMzliNmQxMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNCBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRF
ZmwuY3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmw6OkVkaXRv
ckNsaWVudEVmbCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmg6
CisgICAgICAgIChFZGl0b3JDbGllbnRFZmwpOgorCiAyMDEzLTAzLTA2ICBLcnp5c3p0b2YgQ3pl
Y2ggIDxrLmN6ZWNoQHNhbXN1bmcuY29tPgogCiAgICAgICAgIFtFRkxdIE1pc3NpbmcgaW1wbGVt
ZW50YXRpb24gb2YgQWNjZXNzaWJpbGl0eUNvbnRyb2xsZXJFZmwgYW5kIEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnRFZmwgZmlsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwppbmRleCAzZjhiNTRhMWYyOWZmMDliYWJi
ZTk1M2M0ZmZiMzhhMDY2NDIzZTdmLi5iZDQxYTlhMzA5NThhZDUyNmQ0MzlmMTAxYmNmM2YyZjk5
ZDcxOGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDggIE1h
bnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNl
dHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgUmVtb3ZlIGNvZGUgcmVsYXRlZCB0
byBEUlQgYXMgaXQgaXMgbm90IG5lZWRlZCBhbnltb3JlLgorCisgICAgICAgICogV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0ayk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6RWRpdG9yQ2xp
ZW50KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaDoKKyAgICAg
ICAgKEVkaXRvckNsaWVudCk6CisKIDIwMTMtMDMtMDYgIEJlbmphbWluIFBvdWxhaW4gIDxiZW5q
YW1pbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZWxlbWVudERvZXNBdXRvQ29tcGxldGVGb3JFbGVtZW50V2l0aElkCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggNWRhMDJhMzkyNzc1YTFjNDI5NWJkMjc4YTE0YTU4OWNiM2NkNDI2
NS4uYTcxMGVmMmE4MWQ1MGRlMzRiODZmNzk2ODVhNmMxMjQ3YzAyMDhkZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFz
ICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNl
cnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tOgorICAg
ICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgor
ICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfY29tbW9u
SW5pdGlhbGl6YXRpb25XaXRoRnJhbWVOYW1lOmdyb3VwTmFtZTpdKTogSW5pdGlhbGl6ZQorICAg
ICAgICBzZXR0aW5ncyBmcm9tIE5TVXNlckRlZmF1bHRzLgorICAgICAgICAoLVtXZWJWaWV3IHNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dlYlZpZXcg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXSk6CisgICAgICAgICgtW1dlYlZpZXcg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IHNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF0pOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEuaDoK
KyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLm1tOgorICAgICAgICAoLVtXZWJWaWV3UHJp
dmF0ZSBpbml0XSk6CisKIDIwMTMtMDMtMDQgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5j
b20+CiAKICAgICAgICAgRGVmYXVsdCBtb3VzZSBjdXJzb3IgYmVoYXZpb3Igc2hvdWxkIGJlIGF1
dG8taGlkZSBmb3IgZnVsbCBzY3JlZW4gdmlkZW8gd2l0aCBjdXN0b20gY29udHJvbHMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFu
Z2VMb2cKaW5kZXggOTFmOTk5MDU2NWM5Y2Y4MmMwZmVmMzAxMWExN2YyZDMxY2MwZmM5Zi4uMTli
YzdmMDdmYzhjYmU5MGMzZTk3ZWIwNTY3ZDc0NDlkMjI2NDNmZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9xdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29A
aWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKwor
ICAgICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFu
eW1vcmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAg
ICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpFZGl0b3JD
bGllbnRRdCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaDoKKyAg
ICAgICAgKEVkaXRvckNsaWVudFF0KToKKwogMjAxMy0wMy0wNiAgQmVuamFtaW4gUG91bGFpbiAg
PGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9Db21wbGV0ZUZvckVsZW1lbnRXaXRo
SWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwppbmRleCA4YWRlMzhkMjZkZGQ5NGM3MzVmMjFjN2RlNTFkOWZmNzhl
MDM0YjAzLi40ZDkxY2IzNjhkY2YwMDI2NDE4ODU5YThlYjIxZWNmYjE2ZGM2NGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW4v
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fz
bm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6V2ViVmlldyk6
CisgICAgICAgIChXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3Lmg6
CisgICAgICAgIChXZWJWaWV3KToKKwogMjAxMy0wMy0wMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FA
d2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5kb3dzIGJ1aWxkIGZpeCBhdHRlbXB0IGFmdGVyIHIx
NDQ1NDcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmExOThhNDI0ZTg4YmEwMzVlNzQ4NmMy
MGMwMWY3NzY5MzM0YzkuLjBlNjI3MjI2NzUxZTQ3NWJiNjg0ZTY0N2RhMDU3MmZjNzNiNDAwOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMtMDggIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRp
bmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRXaW5D
RTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKwogMjAxMy0wMi0xMSAgUnlv
c3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBEaXNhYmxlIGRlbGV0ZSBi
dXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFuZCBkZWxldGUgRWRpdG9yQ2xpZW50
OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3d4
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCmluZGV4IDAzMjRlMjE1ZGJl
ZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLjAzODcxNTU1YmFkZTM2ODMyODE2OGUzZDYz
MjI0MzlhYjVjOGViZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTMtMDMt
MDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJLaXRTdXBwb3J0
L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFd4Ojpz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50
V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDItMjYgIERt
aXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9yZz4KIAogICAgICAgICBNZXJnZWQg
VGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29uc29sZS4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhkNjQ4NGYzZDZlZDYyYzFjOGUwZi4u
ODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4NDQ1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZh
dWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7CiAjZWxzZQogc3RhdGljIGNvbnN0
IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IGZhbHNlOwogI2VuZGlm
CisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFDX09TX1gpCitzdGF0aWMgY29uc3Qg
Ym9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKKyNlbHNlCitzdGF0
aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmFsc2U7Cisj
ZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29s
IGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYK
KyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGluZ3M6OlNldHRpbmdzKFBhZ2UqIHBh
Z2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmluCmluZGV4IGU3OTkxZWFk
Y2MxNDAzMDdmYzA5NzY3YmVmZjIxNGE1M2JmN2ViYWQuLmJlNTlmMTcxMjE2ODE1NGJlOTU1ODg1
YjYxNmRlYWY5MjRlNDk3MWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgpAQCAtMTk1LDQgKzE5
NSw1IEBAIHVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0VW5pZmllZFRl
eHRDaGVja2VyRW5hYmxlZAogCiBsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZCBpbml0aWFsPWZhbHNlCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUK
K3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9i
bGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1
YjIzY2U0ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJk
MTk2MGMwYzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVt
cFJlbmRlclRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1
bXBSZW5kZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3Rp
bGxTZWxlY3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRv
UmFuZ2UsIGludCBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1
YWwgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSos
IGludCBpbnNlcnRBY3Rpb24pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4
dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29u
c3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNw
cCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcAppbmRleCBkNTE1Zjg4MjUwNGI2NDYwMWVmZGM2ZTE5ZDIzMjA4OWFiMmI4
M2VhLi45ZDUyNzFhZTkwMDhlOGUxMmRmNDBiYzY2ODdkYWYyM2JlYTY1YTMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50Qmxh
Y2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAi
UGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNl
bGVjdGlvbkhhbmRsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VfcC5oIgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3
MCwxOCBAQCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKiByYW5nZSkKIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAg
aWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRyZWUpCi0gICAgICAgIHJldHVybiBt
X3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBh
Z2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFi
bGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViVmlld0NsaWVudC5oCmluZGV4IGU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4
NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4NTMxOWQ2OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4
MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdl
KGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91
bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyBy
ZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQg
ZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0
aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2Vs
ZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25FbXB0eSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5
NGQzMzRiZTNhODYwYmM0ODIyZjQuLjY0MWJiZDA3NmYxMjRiMWRlMmYyNTIwYmE2ZTIwOWY3YTQ1
NzhjYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVu
dEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2lu
Y2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2lu
Y2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtOTUsMjAgKzk2
LDE2IEBAIHZvaWQgRWRpdG9yQ2xpZW50SW1wbDo6ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3Jl
OjpGcmFtZSogZnJhbWUpCiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Cisg
ICAgaWYgKG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdl
KCktPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAgIHJldHVybiB0
cnVlOwogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKTsKLSNpZiBPUyhXSU5ET1dTKQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKKyAgICBpZiAo
bV93ZWJWaWV3LT5wYWdlKCkpCisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHJldHVybiBm
YWxzZTsKLSNlbmRpZgogfQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNob3VsZFNwZWxsY2hl
Y2tCeURlZmF1bHQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKaW5kZXggMzIwZmY5ZjA0OTRl
MjcxNzgyMDk3ZTQzODE5YjYxNzBkMzhmNjg1Yi4uNTIxNWNlNjBjNWM4NGJhNjlhNzgzYWQ3MzA1
YmE1OGU5Y2I3NjAyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCkBAIC0zMjMsMjggKzMy
Myw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjppc0NvbW1hbmRFbmFibGVkKGNv
bnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zCiAgICAgcmV0dXJuIHBhZ2UtPmZvY3VzQ29u
dHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSku
aXNFbmFibGVkKCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VUX09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQot
ICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4ocGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlm
ICghZWRpdG9yQ2xpZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBEUlRfU1VQUFJUX1BBR0VfR0VU
X09SX1JFVFVSTihld2tWaWV3LCBwYWdlKTsKLQotICAgIFdlYkNvcmU6OkVkaXRvckNsaWVudEVm
bCogZWRpdG9yQ2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKj4o
cGFnZS0+ZWRpdG9yQ2xpZW50KCkpOwotICAgIGlmICghZWRpdG9yQ2xpZW50KQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBlZGl0b3JDbGllbnQtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpmb3Jj
ZUxheW91dChFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7CiAgICAgZXdrX2ZyYW1lX2ZvcmNlX2xh
eW91dChld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCmluZGV4IDk1ODg4MTFmYWQ4Y2I1
MDkwNjVjNDRlM2I3Njk3ZDRlYjYzODIzNTAuLjMxMWQ5YTAyOWE5YWVhMDJhNjIzMzBiYTM3NjJj
OTUwYTZlYzc3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oCkBAIC04MCw4ICs4MCw2IEBAIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBjb25zdCBjaGFyKiBuYW1lKTsKICAgICBzdGF0aWMgdm9pZCBzZXRDU1NHcmlk
TGF5b3V0RW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsK
ICAgICBzdGF0aWMgdm9pZCBzZXRDU1NSZWdpb25zRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3Rh
dGljIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVjdCog
ZXdrVmlldywgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgdm9pZCBzZXRTZWFtbGVzc0lGcmFt
ZXNFbmFibGVkKGJvb2wpOwogCiAgICAgc3RhdGljIHZvaWQgZm9yY2VMYXlvdXQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuY3BwCmluZGV4IGE0YzlmZDEzNWU5NzJlNGZiNTM0NDRiYjAxNTBk
ZGY4YzZlMGJkM2YuLjJiZTMxYTlhMDc2M2ZlM2ZjODUxMjY5OTUwZmU5NTlhOWVmNzAzZjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVm
bC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmNwcApAQCAtMjQzLDI4ICsyNDMsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OnBhZ2VE
ZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudEVmbDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwotfQotCiBib29sIEVk
aXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotICAgIGlmIChlbmFi
bGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAgIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAg
ICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVk
aXRvckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAg
ICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6
OlBhZ2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAo
IWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5z
ZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQg
RWRpdG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEs
OCArMzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93
bihLZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNf
T2JqZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3
KQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwg
bV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4u
ZDBkNWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkg
Kzg0LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJh
bmdlKik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAg
IHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9v
bCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNr
aW5nRW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAg
ICBFdmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYw
ZmFjMGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVu
ID0gZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVk
SW5UYWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
X2ZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpB
dXRoZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50
aWNhdGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJu
IHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQot
Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRX
ZWJGcmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0
azo6c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAg
IGNvcmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChX
RUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmll
dyk7Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2Vi
S2l0OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAg
Y2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlk
ZWRjYWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQz
YjhiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgog
CiAgICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAg
ICBzdGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMg
Ym9vbCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9p
ZCBjbGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1Ymxp
YzoKICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUq
LCBjYWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShX
ZWJLaXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0
RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0
aWMgdm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nl
c3NpYmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0
aWMgYm9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNo
YWluOwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
IH07CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2
OGJkNjAzNTg1Zi4uOWMwZmQ5NGFhMTcyOTM1MjVlZjFmODU0Y2I3MGFiOWY5MmEyYTY3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRH
dGsuY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBh
c3RlYm9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNp
bmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNs
dWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwy
MSArMzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxl
dGUgdGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBl
bmFibGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVlTW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQ
YWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lk
IEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcg
KzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRpdG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xpZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtp
dF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2VuZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykK
LSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBi
L1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4
IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFlMTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5
Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNz
IEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAg
IHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAg
ICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9v
bCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZv
aWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBj
bGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAg
ICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5n
VHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFuc2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpT
dHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1hbmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
bWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4
NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi4yNzUxZGIzNmMyMmMwOTIyMDMyZDQ0MjMyOGI1ZDFm
YzgyMGM2MzRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQv
V2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9I
VE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2ViQXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9Q
YWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3Bl
cnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwx
OCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1M
RWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0gW21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3dlYlZp
ZXcgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c2hvdWxkQXBwbHlTdHlsZShTdHls
ZVByb3BlcnR5U2V0KiBzdHlsZSwgUmFuZ2UqIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJWaWV3Lm1tCmluZGV4IDc2NmY5ZDRlYjQ2NGRiYjFiZjFkMDdmZjljYTJkZWY0ZGY5Y2QzMTYu
LjEwY2U4NWUyZDMxZDYzMmRhZWE1OGJhOTVkZDE3NjY1MGU2ZjYyMjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTc4Myw2ICs3ODMsMTIgQEAgc3RhdGljIGJvb2wgc2hv
dWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRyaWJ1dGVTZXR0ZXJzKCkKICAgICAgICAgW3NlbGYg
X2luamVjdE91dGxvb2tRdWlya3NTY3JpcHRdOwogICAgIH0KIAorICAgIGlmIChbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkXSkgeworICAgICAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21h
cnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdz
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChzbWFydEluc2VydERlbGV0ZUVuYWJsZWQp
OworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCghc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICB9CisKICAg
ICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZyYW1l
TmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3AgKnJ1
bkxvb3AgPSBbTlNSdW5Mb29wIG1haW5SdW5Mb29wXTsKQEAgLTI0NzAsMTQgKzI0NzYsMTYgQEAg
c3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2YXRl
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxhZykK
LSAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAgICBp
ZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICAvLyBTZXQg
c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4K
KyAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFmbGFnXTsKKyAgICB9
CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCiB7Ci0gICAg
cmV0dXJuIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIHJl
dHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdhdGVDYWxsc0VuYWJs
ZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQyOSwxNyArNTQzNywxNyBAQCBzdGF0aWMgTlNBcHBsZUV2
ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBleGVjLCBKU0M6OkpT
VmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDooQk9PTClmbGFn
CiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgIT0gZmxhZykg
ewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZmxhZzsKLSAg
ICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gc2V0Qm9vbDpfcHJp
dmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0
ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+c2V0
dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOworICAgICAgICBbW05T
VXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5wYWdl
LT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JLZXk6V2ViU21hcnRJ
bnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgLy8gU2V0IHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhjbHVzaXZlLgorICAgICAgICBbc2Vs
ZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOiFmbGFnXTsKICAgICB9Ci0gICAg
aWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ6ZmFsc2VdOwogfQogCiAtIChCT09MKXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAogewotICAg
IHJldHVybiBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIHJldHVybiBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9
CiAKIC0gKHZvaWQpc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaCBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaAppbmRleCBhZGVhYmU3ZWUyY2Zh
MjJjYmRjMjhlM2JhODMzNzhmNDYwM2UwMmUyLi4zNDdhYmE0NTc4NWYxODBlOGM5NzQ2Y2NjYjYy
YTRlNjc4MGU5NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCkBA
IC0xNDYsOSArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBCT09MIGhhc1NwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJP
T0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIEJPT0wgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZDsKLSAgICAgICAgCiAjaWYgRU5BQkxFKERBU0hCT0FSRF9TVVBQT1JUKQog
ICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kTW91c2VFdmVudHNUb0FsbFdpbmRv
d3M7CiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRBY3RpdmVOdWxsRXZlbnRz
VG9QbHVnSW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KaW5kZXgg
ZTI3NjZmMDFhMzViYzA3ZWVhYTQ4NmMyNjU1YjRjMDFiYWVkOTdhNi4uYzY4MWYwOWJhNzIxNmQ4
ZDIxNmU1OTc1MjZhZjg1ODFkMDAzZGU3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLm1tCkBAIC05NSwxMCArOTUsNiBAQCBMYXllckZsdXNoQ29udHJvbGxlcjo6TGF5
ZXJGbHVzaENvbnRyb2xsZXIoV2ViVmlldyogd2ViVmlldykKIAogICAgIHNob3VsZENsb3NlV2l0
aFdpbmRvdyA9IG9iamNfY29sbGVjdGluZ0VuYWJsZWQoKTsKIAotICAgIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCA9ICFbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmpl
Y3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXQotICAgICAgICB8fCBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZF07Ci0KLQogICAgIHBsdWdpbkRhdGFiYXNlQ2xpZW50Q291bnQrKzsKIAog
I2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAppbmRl
eCA1OWYzNzEwODIwYWQzMTc3M2Y0ZDEzMmY3ZWM0ZGIzMmU3ZjMzZjlkLi4yNDAzNGY2YjI4ZmE1
MWU4ZjlkNjA5NTYxN2MwOTA4ODgxYzEwMTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0
L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcApAQCAt
MzI2LDE4ICszMjYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqIGFkYQogICAgIGFkYXB0ZXItPnBh
Z2UtPnNldHRpbmdzKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHZhbHVlKTsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRp
Y19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2Vi
UGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxF
ZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCiB2b2lkIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydFF0OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVy
KiBhZGFwdGVyLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsK
ICAgICBhZGFwdGVyLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUodmFsdWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oCmluZGV4IDcwZmY4NWU3MDdjZmQwOWRkODBiOWJmM2E3Y2NkYTUzZTNhMzVjNGIuLjY3YTA0
MzZkOGNlOWZmZjYxMGU4Mjk3NTIzMzgyMTg5YmE3ZTNlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgK
QEAgLTk0LDggKzk0LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29t
bWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBR
U3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKICAgICBzdGF0aWMgYm9vbCBmaW5kU3Ry
aW5nKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmLCBjb25zdCBRU3RyaW5nTGlzdCYg
b3B0aW9uQXJyYXkpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFi
bGVkKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVjdGVkUmFuZ2UoUVdlYlBhZ2VBZGFw
dGVyKik7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5n
ZShRV2ViUGFnZUFkYXB0ZXIqLCBpbnQgbG9jYXRpb24sIGludCBsZW5ndGgpOwogICAgIHN0YXRp
YyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBjaGFyKiB0
ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGll
bnRRdC5jcHAKaW5kZXggYWZjYzhkNjRlZmUwYTU0YmYxYTNiMGJiYzVlYzVhYTI0OTA4N2EwMy4u
M2NmMDg3MDIwZWNlZjBmMzI1NjFmM2IwMjU4MzQ1MTMyNGE2YjRhYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTMzMywx
OCArMzMzLDI3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29s
IEVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVy
biBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5w
YWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFF0Ojp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgpCiB7Ci0gICAgYm9vbCBjdXJy
ZW50ID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgPSAhY3VycmVudDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAg
IGlmIChwYWdlKSB7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkp
OworICAgICAgICBwYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkpOworICAgIH0KIH0KIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRR
dDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTQxLDggKzU1MCw2IEBAIEVk
aXRvckNsaWVudFF0OjpFZGl0b3JDbGllbnRRdChRV2ViUGFnZUFkYXB0ZXIqIHBhZ2VBZGFwdGVy
KQogICAgIDogbV9wYWdlKHBhZ2VBZGFwdGVyKQogICAgICwgbV9lZGl0aW5nKGZhbHNlKQogICAg
ICwgbV9pblVuZG9SZWRvKGZhbHNlKQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSkKLSAgICAsIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSkKIHsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5oCmluZGV4IGExMzRmNWViNmU3ZDQ5MjZkNDQzOTU1MTM1NjM4M2ZlYTE5MjRiMmYuLjc4MmNk
ZTNkNTRiZjY0Y2MxYTE3NGE3MzU4NDFlNWYzYjNjNWM2N2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKQEAgLTExMSw5ICsxMTEsNiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzRWRpdGluZygpIGNvbnN0OwogCi0gICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBiKSB7IG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkID0gYjsgfQotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGIpIHsgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYjsgfQotCiAgICAg
c3RhdGljIGJvb2wgZHVtcEVkaXRpbmdDYWxsYmFja3M7CiAgICAgc3RhdGljIGJvb2wgYWNjZXB0
c0VkaXRpbmc7CiAKQEAgLTEyMiw4ICsxMTksNiBAQCBwcml2YXRlOgogICAgIFFXZWJQYWdlQWRh
cHRlciogbV9wYWdlOwogICAgIGJvb2wgbV9lZGl0aW5nOwogICAgIGJvb2wgbV9pblVuZG9SZWRv
OyAvLyBvdXIgdW5kbyBzdGFjayB3b3JrcyBkaWZmZXJlbnRseSAtIGRvbid0IHJlLWVudGVyIQot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktp
dC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAppbmRleCBkOTg3ODkyN2Yy
ZjQ5YjcwOTlhNjRkMmNmMjU0OTM3MTZkYTMzNjY1Li5jNGM1NGE4ZDY5MTI2MjJlZmExYjM0Njc4
MGVmZDkxMDVlZjgxYzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTQwLDggKzQwLDEwIEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgorI2luY2x1ZGUgPFdl
YkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5nZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1VuZG9TdGVwLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2Vy
VHlwaW5nR2VzdHVyZUluZGljYXRvci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVmlzaWJsZVNlbGVj
dGlvbi5oPgpAQCAtMzAyLDE3ICszMDQsMTkgQEAgdm9pZCBXZWJFZGl0b3JDbGllbnQ6OndlYlZp
ZXdEaWRDaGFuZ2VTZWxlY3Rpb24oV2ViTm90aWZpY2F0aW9uKiAvKm5vdGlmaWNhdGlvbioKIHsg
IG5vdEltcGxlbWVudGVkKCk7IH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh2b2lkKQoteyAKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsgCi0gICAg
bV93ZWJWaWV3LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVy
biAhIWVuYWJsZWQ7Cit7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9P
TCBlbmFibGVkID0gRkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSog
cGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VT
ZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpF
QWZmaW5pdHksIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNk
MzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUuLjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0
ZDhhZWYxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmll
dzo6V2ViVmlldygpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3Bh
aW50Q291bnQoMCkKICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2Uo
ZmFsc2UpCiAgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQo
MCkKQEAgLTM3Myw3ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2
ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2Up
CiAgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFu
WSgwKQogICAgICwgbV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAg
ICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAg
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3Bh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgewor
ICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgh
IWZsYWcpOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAg
ICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewot
ICAgICplbmFibGVkID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7
CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCAKICAgICAgICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0
IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUu
CisgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAg
IHJldHVybiBTX09LOwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3
Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFs
XVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3Bh
Z2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUg
OiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5Mzcz
NDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4
MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25l
ZCBtX3BhaW50Q291bnQ7CiAgICAgYm9vbCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwot
ICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wg
bV9oYXNDdXN0b21Ecm9wVGFyZ2V0OwogICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xp
ZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRXaW5DRS5jcHAKaW5kZXggYjlmNDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNh
M2NiMi4uZmUxYWYwNGEwZWViZDg4NGU5ZDUyN2MyZWJiMjAzNjUwOTQ1ZmM1OSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRX
aW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUg
IktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJV
bmRvU3RlcC5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2
b2lkIEVkaXRvckNsaWVudFdpbkNFOjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGll
bnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRl
ZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRp
dG9yQ2xpZW50V2luQ0U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9
IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNT
cGVsbENoZWNraW5nKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9y
dC9FZGl0b3JDbGllbnRXeC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRp
dG9yQ2xpZW50V3guY3BwCmluZGV4IDVlZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDlj
MzE1YWEuLjcyNmFkMGEzZjg4OGFjOTU2NTFjNmEzMjI3ZDQyZjNiMzY4ZTJhN2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAt
MzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFn
ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRp
bmdzLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJWaWV3LmgiCkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRv
ckNsaWVudFd4OjpzaG91bGREZWxldGVSYW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50
V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFd4Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFn
ZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiBi
b29sIEVkaXRvckNsaWVudFd4Ojppc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgpCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDZkZDM4
Yjc5OWU0NmRkZDY2NDQ5NTc4MzQzZjM0NGM4ODJiNjNjNy4uMWQxMzNjMjQzZTM2OGM0ZTg1ZGJi
YzRlY2YwMjUzNmYyMWQzZjE3ZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlcyBhbGwgdGhlIGNvZGUg
cmVsYXRlZCB0byBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MgYXMgdGhleSB3aWxsIGJlIG1hbmFnZWQg
ZnJvbQorICAgICAgICBpbnRlcm5hbHMgZnJvbSBub3cgb24uCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0
aW9ucyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAo
VGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVu
ZGVyVHJlZS5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEdW1wUmVuZGVyVHJlZTo6cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmcp
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFj
a0JlcnJ5Lmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZSk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5Lmg6Cisg
ICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJUZXN0UHJveHk6OmRpZFN0b3BMb2FkaW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVy
LmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OlRlc3RSdW5uZXI6OlRlc3RSdW5uZXIpOgor
ICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6cmVzZXQpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaDoKKyAgICAg
ICAgKFRlc3RSdW5uZXIpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlByZWZlcmVuY2VzOjphcHBseVRvKTogU2V0IGRlZmF1bHQgdmFsdWVzIGZvcgorICAgICAgICBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQgc2V0dGluZ3MgYXMKKyAgICAgICAgQ2hyb21pdW0gRFJUIGRlZmF1bHQgdmFsdWVzIGFyZSBk
aWZmZXJlbnQgZnJvbSBDaHJvbWl1bSBicm93c2VyLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHA6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0Lmg6CisgICAgICAgIChXZWJWaWV3SG9zdCk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFs
dWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHA6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAg
KHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMv
RHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0
ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVy
TWFjLm1tOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViUGFnZTo6cmVzZXRTZXR0aW5ncyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuaDoKKyAgICAgICAgKFRlc3RSdW5uZXJRdCk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0
V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3d4L1Rlc3RSdW5uZXJXeC5jcHA6CisKIDIwMTMtMDMtMDYgIEp1bGllIFBhcmVudCAgPGpwYXJl
bnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIERhc2hib2FyZCBjbGVhbnVwOiBNb3ZlIGFsbCBk
YXNoYm9hcmQgdWkgcmVsYXRlZCBjb2RlIGludG8gdWkuanMuCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCmluZGV4IDdkM2U4NWUwMDc0M2MyNGUxMjdhZDJjMWVmYmE2NjM0YzY3ZGVkMzYu
LmRhZWNjYWZlNmRkZTVhZWNhZjNlNGE0Y2YwNmJkNjJmN2JlMzg0NjUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL1Rlc3RSdW5uZXIuY3BwCkBAIC0xNTA2LDE2ICsxNTA2LDYgQEAgc3RhdGljIEpTVmFsdWVS
ZWYgcmVzZXRQYWdlVmlzaWJpbGl0eUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZgogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0gICAg
CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8
IDEpCi0gICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAg
IFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmpl
Y3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsK
LSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBK
U1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250
ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2Jq
ZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwg
SlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKQEAg
LTE1MjYsMTYgKzE1MTYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRBdXRvbWF0aWNMaW5rRGV0
ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LAogICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250
ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKLXsKLSAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCi0gICAgICAgIHJldHVy
biBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLQotICAgIFRlc3RSdW5uZXIqIGNvbnRy
b2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNP
YmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBz
ZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0
UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIxMzgsOSArMjEx
OCw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAg
ICAgICAgIHsgInNldFBsdWdpbnNFbmFibGVkIiwgc2V0UGx1Z2luc0VuYWJsZWRDYWxsYmFjaywg
a0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERl
bGV0ZSB9LAogICAgICAgICB7ICJzZXRQcmludGluZyIsIHNldFByaW50aW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCIsIHNldFByaXZhdGVC
cm93c2luZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkIiwgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRy
aWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNlcmlhbGl6ZUhUVFBMb2FkcyIsIHNl
dFNlcmlhbGl6ZUhUVFBMb2Fkc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCIsIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZCIsIHNldFNw
YXRpYWxOYXZpZ2F0aW9uRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFN0
b3BQcm92aXNpb25hbEZyYW1lTG9hZHMiLCBzZXRTdG9wUHJvdmlzaW9uYWxGcmFtZUxvYWRzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRz
Iiwgc2V0VGFiS2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAppbmRleCA0ZjM3MGMzMzljN2NmYTk4ZTg5ZjM0MDAyOTIzN2Ix
YjQ4NTRmMWRiLi4xN2ZiNDA4ZGI5Zjg4NDAwMjVmNmFiOTE3NDdiY2E4ZTc0YjM5YWZkIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCkBAIC0xMDMsOCArMTAzLDYgQEAgcHVibGljOgogICAg
IHZvaWQgc2V0UGx1Z2luc0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5n
RW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQoYm9vbCk7
Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAg
IHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VGFi
S2V5Q3ljbGVzVGhyb3VnaEVsZW1lbnRzKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlRGFzaGJvYXJk
Q29tcGF0aWJpbGl0eU1vZGUoYm9vbCBmbGFnKTsKICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0
RW5hYmxlZChib29sIGZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA3MTY1MmRjZDEyMzhhMTM2NDM3MmIwOTgzNTgw
YmMwMmQyODM4MTA1Li45NTY0NDRiYzdmODU1YWNhOWVhZjQ2NWMwMjQxYmVhN2JiNWQ4NmI4IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVl
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVl
LmNwcApAQCAtMTUxLDcgKzE1MSw2IEBAIG5hbWVzcGFjZSBCbGFja0JlcnJ5IHsKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBEdW1wUmVuZGVyVHJlZSogRHVtcFJlbmRlclRyZWU6OnNfY3VycmVudElu
c3RhbmNlID0gMDsKLWJvb2wgRHVtcFJlbmRlclRyZWU6OnNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCA9IGZhbHNlOwogCiBzdGF0aWMgdm9pZCBjcmVhdGVGaWxlKGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUpCiB7CkBAIC0yOTUsNyArMjk0LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZTo6
cmVzZXRUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnMKIAogICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CiAgICAgbV9sb2FkRmluaXNoZWQgPSBmYWxz
ZTsKLSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKICAgICBt
X3BvbGljeURlbGVnYXRlRW5hYmxlZCA9IGZhbHNlOwogICAgIHdhaXRGb3JQb2xpY3kgPSBmYWxz
ZTsKICAgICB0ZXN0RG9uZSA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKaW5kZXggYTEzYWZi
MTJkOGQ1MjM4MzM1NDdmMzNjMjcwOTA0MWUwMGI3OTgzNi4uMjY3YzRkY2FkZjZlZDA3NjU3NmQ3
Y2RiY2QwMGFkZjM5ZGNlMDljMCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCkBAIC0xMDIsOCArMTAy
LDYgQEAgcHVibGljOgogICAgIGJvb2wgc2hvdWxkSW5zZXJ0Tm9kZShXZWJDb3JlOjpOb2RlKiwg
V2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsKICAgICBib29sIHNob3VsZEluc2Vy
dFRleHQoY29uc3QgU3RyaW5nJiwgV2ViQ29yZTo6UmFuZ2UqLCBpbnQgaW5zZXJ0QWN0aW9uKTsK
IAotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgeyBy
ZXR1cm4gc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOyB9Ci0gICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBzX3NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgYm9vbCBkaWRSZWNlaXZl
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2ViQ29yZTo6Q3JlZGVudGlhbCYpOwogCiAgICAgLy8g
QmxhY2tCZXJyeTo6UGxhdGZvcm06OkJsYWNrQmVycnlQbGF0Zm9ybUxheW91dFRlc3RDbGllbnQg
bWV0aG9kCkBAIC0xNDgsNyArMTQ2LDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9hY2NlcHRz
RWRpdGluZzsKICAgICBib29sIG1fbG9hZEZpbmlzaGVkOwotICAgIHN0YXRpYyBib29sIHNfc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fcG9saWN5RGVsZWdhdGVF
bmFibGVkOwogfTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2ti
ZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKaW5kZXggNjQ1YWU3OTY4ODFmM2E0MWYwYmM5
NzM3ODM5MjkyMDllNDM3MDVkYy4uYmQyZjAzNDU3NThmMDNhZmExOTYyNWE0MzQ0MmI2NGZkNDY4
MmQ1MCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVu
bmVyQmxhY2tCZXJyeS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9U
ZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAKQEAgLTI2MCwxNyArMjYwLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRYU1NBdWRpdG9yRW5hYmxlZChib29sIGZsYWcpCiAgICAgQmxhY2tCZXJyeTo6V2Vi
S2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnBhZ2UoKS0+c2V0dGluZ3Mo
KS0+c2V0WFNTQXVkaXRvckVuYWJsZWQoZmxhZyk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQmxhY2tC
ZXJyeTo6V2ViS2l0OjpEdW1wUmVuZGVyVHJlZTo6Y3VycmVudEluc3RhbmNlKCktPnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBVTlVTRURfUEFS
QU0oZmxhZyk7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpz
ZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCBjeWNsZXMpCiB7CiAgICAgaWYgKCFt
YWluRnJhbWUpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCmluZGV4IGE0NGVjYmQ3ODBkYTYx
ZDliZmU3ZTljODBlNTIxZjZiMWI5MDc1YzguLmQ0YTYwMGI4MjBlOTMwNzNkYjg5NzYxZWJhNzI5
MGMxMWZjZDBhMTUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rl
c3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oCkBAIC0xNDksOCArMTQ5
LDYgQEAgcHJvdGVjdGVkOgogICAgIFdlYktpdDo6V2ViUGx1Z2luKiBjcmVhdGVQbHVnaW4oV2Vi
S2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViUGx1Z2luUGFyYW1zJik7CiAgICAgdm9p
ZCBzZXRTdGF0dXNUZXh0KGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdm9pZCBkaWRT
dG9wTG9hZGluZygpOwotICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAg
ICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZvaWQgc2hv
d0NvbnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRN
ZW51RGF0YSYpOwogICAgIFdlYktpdDo6V2ViVXNlck1lZGlhQ2xpZW50KiB1c2VyTWVkaWFDbGll
bnQoKTsKICAgICB2b2lkIHByaW50UGFnZShXZWJLaXQ6OldlYkZyYW1lKik7CkBAIC0zNjgsMTQg
KzM2Niw2IEBAIHB1YmxpYzoKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRp
bmcoKTsKICAgICAgICAgQmFzZTo6ZGlkU3RvcExvYWRpbmcoKTsKICAgICB9Ci0gICAgdmlydHVh
bCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLSAgICB7Ci0gICAgICAgIHJldHVy
biBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIH0K
LSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKLSAgICB9CiAgICAgdmlydHVhbCB2b2lkIHNob3dDb250ZXh0TWVu
dShXZWJLaXQ6OldlYkZyYW1lKiBmcmFtZSwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURh
dGEmIGNvbnRleHRNZW51RGF0YSkKICAgICB7CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OnNo
b3dDb250ZXh0TWVudShmcmFtZSwgY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5j
cHAKaW5kZXggMmFkMzQzMGI4Mjc2OGQ3ZGQwMDI3ZjQ4YWY4ZjA2NzEyN2I2NzgyNC4uNjJiNmY2
OTU1ODQ1Mjg1OTQ3NGE1YWFhYWI5NGExZGFlMmYyODdhNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5j
cHAKQEAgLTIwNyw4ICsyMDcsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKFRlc3RJbnRlcmZh
Y2VzKiBpbnRlcmZhY2VzKQogICAgIGJpbmRNZXRob2QoInRleHRTdXJyb3VuZGluZ05vZGUiLCAm
VGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZSk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJs
ZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6OmRpc2FibGVBdXRvUmVzaXplTW9kZSk7CiAg
ICAgYmluZE1ldGhvZCgiZW5hYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZW5hYmxl
QXV0b1Jlc2l6ZU1vZGUpOwotICAgIGJpbmRNZXRob2QoInNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCIsICZUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOwotICAgIGJp
bmRNZXRob2QoInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCAmVGVzdFJ1bm5l
cjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgi
c2V0TW9ja0RldmljZU9yaWVudGF0aW9uIiwgJlRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmll
bnRhdGlvbik7CiAgICAgYmluZE1ldGhvZCgiZGlkQWNxdWlyZVBvaW50ZXJMb2NrIiwgJlRlc3RS
dW5uZXI6OmRpZEFjcXVpcmVQb2ludGVyTG9jayk7CiAgICAgYmluZE1ldGhvZCgiZGlkTG9zZVBv
aW50ZXJMb2NrIiwgJlRlc3RSdW5uZXI6OmRpZExvc2VQb2ludGVyTG9jayk7CkBAIC00MDksMTIg
KzQwNyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6cmVzZXQoKQogICAgIG1fc2hvdWxkU3RheU9uUGFn
ZUFmdGVySGFuZGxpbmdCZWZvcmVVbmxvYWQgPSBmYWxzZTsKICAgICBtX3Nob3VsZEJsb2NrUmVk
aXJlY3RzID0gZmFsc2U7CiAgICAgbV93aWxsU2VuZFJlcXVlc3RTaG91bGRSZXR1cm5OdWxsID0g
ZmFsc2U7Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOwotI2lmZGVmIFdJ
TjMyCi0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gdHJ1ZTsKLSNlbHNl
Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7Ci0jZW5kaWYK
ICAgICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSBmYWxzZTsKIAogICAgIG1faHR0
cEhlYWRlcnNUb0NsZWFyLmNsZWFyKCk7CkBAIC02NzMsMTYgKzY2NSw2IEBAIGJvb2wgVGVzdFJ1
bm5lcjo6c2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdAogICAgIHJldHVybiBtX2lu
dGVyY2VwdFBvc3RNZXNzYWdlLmlzQm9vbCgpICYmIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UudG9C
b29sZWFuKCk7CiB9CiAKLWJvb2wgVGVzdFJ1bm5lcjo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0K
LQotYm9vbCBUZXN0UnVubmVyOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBj
b25zdAotewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci19
Ci0KIGJvb2wgVGVzdFJ1bm5lcjo6c2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0
CiB7CiAgICAgcmV0dXJuIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKQEAgLTE0NjUs
MjAgKzE0NDcsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnRleHRTdXJyb3VuZGluZ05vZGUoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbgogICAgIHJlc3VsdC0+c2V0KHN1
cnJvdW5kaW5nVGV4dC50ZXh0Q29udGVudCgpLnV0ZjgoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJn
dW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkg
PiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAgICAgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQgPSBhcmd1bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0
TnVsbCgpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlz
Qm9vbCgpKQotICAgICAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBhcmd1
bWVudHNbMF0udmFsdWUuYm9vbFZhbHVlOwotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotfQotCiB2
b2lkIFRlc3RSdW5uZXI6OmR1bXBSZXNvdXJjZVJlcXVlc3RQcmlvcml0aWVzKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCiB7CiAgICAgbV9zaG91
bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAppbmRleCAy
NWU3ZmU4NDU4OWI3ZDgxNzFmYzYxOWIwOTU4OWNkMTE5MTYwOGIxLi4xYjBjNmQ0OTFkZGI1MmZj
ODgxNDYwYWQ5OTk5NzkzMjg5ZDhmZGMyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCkBAIC0xMTgsOCAr
MTE4LDYgQEAgcHVibGljOgogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVJc1Blcm1pc3NpdmUoKSBj
b25zdDsKICAgICBib29sIHBvbGljeURlbGVnYXRlU2hvdWxkTm90aWZ5RG9uZSgpIGNvbnN0Owog
ICAgIGJvb2wgc2hvdWxkSW50ZXJjZXB0UG9zdE1lc3NhZ2UoKSBjb25zdDsKLSAgICBib29sIGlz
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdDsKICAgICBib29sIHNob3VsZER1bXBSZXNvdXJj
ZVByaW9yaXRpZXMoKSBjb25zdDsKICNpZiBFTkFCTEVfTk9USUZJQ0FUSU9OUwogICAgIFdlYktp
dDo6V2ViTm90aWZpY2F0aW9uUHJlc2VudGVyKiBub3RpZmljYXRpb25QcmVzZW50ZXIoKSBjb25z
dDsKQEAgLTI2OSwxMSArMjY3LDYgQEAgcHJpdmF0ZToKICAgICAvLyBsZW5ndGggdG8gcmV0cmll
dmUuCiAgICAgdm9pZCB0ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKIAotICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHNtYXJ0IGluc2VydC9k
ZWxldGUuIFRoaXMgaXMgZW5hYmxlZCBieSBkZWZhdWx0LgotICAgIHZvaWQgc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLQot
ICAgIC8vIEVuYWJsZSBvciBkaXNhYmxlIHRyYWlsaW5nIHdoaXRlc3BhY2Ugc2VsZWN0aW9uIG9u
IGRvdWJsZSBjbGljay4KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgZW5hYmxl
QXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAg
IHZvaWQgZGlzYWJsZUF1dG9SZXNpemVNb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKIApAQCAtNjY4LDEwICs2NjEsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX3dp
bGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGw7CiAKLSAgICBib29sIG1fc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkOwotCi0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ7Ci0KICAgICBib29sIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllczsKIAogICAgIHN0
ZDo6c2V0PHN0ZDo6c3RyaW5nPiBtX2h0dHBIZWFkZXJzVG9DbGVhcjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2Vz
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAppbmRleCAzMWQzYTRiNDEwYThjNTNhNjQ4YzdjMDhlZjBhZGY2MmNkNzBi
MDViLi4zMTE0ZmJkYTk3ZTkzZTgxOTE1ZWU2NjM1ZjhkOWViOGMwODdlNThmIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJl
bmNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0yMjEsNiArMjIxLDEyIEBAIHZvaWQgV2ViUHJlZmVy
ZW5jZXM6OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0VmlzdWFs
V29yZE1vdmVtZW50RW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldFBhc3N3b3JkRWNo
b0VuYWJsZWQoZmFsc2UpOwogICAgIHNldHRpbmdzLT5zZXRBcHBseURldmljZVNjYWxlRmFjdG9y
SW5Db21wb3NpdG9yKHRydWUpOworICAgIHNldHRpbmdzLT5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQodHJ1ZSk7CisjaWZkZWYgV0lOMzIKKyAgICBzZXR0aW5ncy0+c2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyNlbHNlCisgICAgc2V0dGluZ3MtPnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworI2VuZGlmCiB9CiAKIH0KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RQcm94eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3Ny
Yy9XZWJUZXN0UHJveHkuY3BwCmluZGV4IDg2ODEzM2ZlNDcwZjkxYWVmY2VkMWZjMTk2YmNhOGY3
MGQzMGQwOTQuLmNjNTA3NTM0ZTE2ZDk4NTlhMjJjNTdkYzIxZDU0YWM1YjNlMmFhZGQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRl
c3RQcm94eS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5l
ci9zcmMvV2ViVGVzdFByb3h5LmNwcApAQCAtOTc4LDE2ICs5NzgsNiBAQCB2b2lkIFdlYlRlc3RQ
cm94eUJhc2U6OmRpZFN0b3BMb2FkaW5nKCkKICAgICAgICAgbV9kZWxlZ2F0ZS0+cHJpbnRNZXNz
YWdlKCJwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvblxuIik7CiB9CiAKLWJvb2wgV2Vi
VGVzdFByb3h5QmFzZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVy
biBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCk7Ci19Ci0KLWJvb2wgV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV90ZXN0SW50ZXJmYWNlcy0+dGVzdFJ1bm5l
cigpLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLX0KLQogdm9pZCBXZWJU
ZXN0UHJveHlCYXNlOjpzaG93Q29udGV4dE1lbnUoV2ViRnJhbWUqLCBjb25zdCBXZWJDb250ZXh0
TWVudURhdGEmIGNvbnRleHRNZW51RGF0YSkKIHsKICAgICBtX3Rlc3RJbnRlcmZhY2VzLT5ldmVu
dFNlbmRlcigpLT5zZXRDb250ZXh0TWVudURhdGEoY29udGV4dE1lbnVEYXRhKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCA4NzZlNTNmMzE3
N2Q1NDBmMGFkM2Q4NzM2MTlmYWIxNTU5ZTYwMzdiLi5hN2FmZjY1ZGI2YzNkNGFlNmUyNGE4OWIw
ZmMxMTZjYTBlNjU0MTM3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
Vmlld0hvc3QuY3BwCkBAIC0xNzAsMjAgKzE3MCw2IEBAIGJvb2wgV2ViVmlld0hvc3Q6OnNob3Vs
ZEFwcGx5U3R5bGUoY29uc3QgV2ViU3RyaW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmIHJhbmdl
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wgV2ViVmlld0hvc3Q6OmlzU21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotYm9vbCBXZWJWaWV3SG9z
dDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSNpZiBPUyhXSU5ET1dT
KQotICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0K
LQogYm9vbCBXZWJWaWV3SG9zdDo6aGFuZGxlQ3VycmVudEtleWJvYXJkRXZlbnQoKQogewogICAg
IGlmIChtX2VkaXRDb21tYW5kTmFtZS5lbXB0eSgpKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmgKaW5kZXggZmYyZWRhN2ZmZWVmOGY2NzU5Y2U0YTkzNmJkZDI5
ZDdiZDRhYThjOS4uNGEzNGYzOGEyZTMzYzA3NGYxMDdmMDBlYzlmN2M5MDRlYTI5NTRhOSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCkBAIC0xNDMsOCAr
MTQzLDYgQEAgY2xhc3MgV2ViVmlld0hvc3QgOiBwdWJsaWMgV2ViS2l0OjpXZWJWaWV3Q2xpZW50
LCBwdWJsaWMgV2ViS2l0OjpXZWJGcmFtZUNsaWVudCwKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxk
Q2hhbmdlU2VsZWN0ZWRSYW5nZShjb25zdCBXZWJLaXQ6OldlYlJhbmdlJiBmcm9tLCBjb25zdCBX
ZWJLaXQ6OldlYlJhbmdlJiB0bywgV2ViS2l0OjpXZWJUZXh0QWZmaW5pdHksIGJvb2wgc3RpbGxT
ZWxlY3RpbmcpOwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5nZShjb25zdCBXZWJL
aXQ6OldlYlJhbmdlJik7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3Qg
V2ViS2l0OjpXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJLaXQ6OldlYlJhbmdlJik7Ci0gICAg
dmlydHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgIHZpcnR1YWwgYm9v
bCBoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpOwogICAgIHZpcnR1YWwgdm9pZCBydW5Nb2Rh
bEFsZXJ0RGlhbG9nKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYp
OwogICAgIHZpcnR1YWwgYm9vbCBydW5Nb2RhbENvbmZpcm1EaWFsb2coV2ViS2l0OjpXZWJGcmFt
ZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBmODdlZWIwNzA2NDZmNTkwMTdi
YTY4MDg0Y2Q3NmQyZDBhNmQxMzk2Li42MTI3YzlkNjI5MjRiMWQ4NGNjMGI3YjhiYzUzNTYxMTgw
NTFjY2MxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZUNocm9tZS5jcHAKQEAgLTMxNSw4ICszMTUsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21l
OjpyZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKICAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnNldFZhbGlkYXRpb25NZXNzYWdlVGltZXJNYWduaWZpY2F0aW9uKG1haW5WaWV3
KCksIC0xKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldEF1dGhvckFuZFVzZXJT
dHlsZXNFbmFibGVkKG1haW5WaWV3KCksIHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6c2V0Q1NTR3JpZExheW91dEVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1haW5W
aWV3KCksIGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0RGVmZXJzTG9hZGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAg
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRMb2Fkc1NpdGVJY29uc0lnbm9yaW5nSW1h
Z2VMb2FkaW5nU2V0dGluZyhtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCmluZGV4IGU2NWI1YTI1OWUyYzEyNWRhMjdjYzkw
MDFjZTdiNDE4ZjM2MDkzZDUuLmE5OWEzYjVlZGM3Njg3YjQyZjQyMTI4ODk1ZGE4ZGE3ZjM1YzFl
N2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKQEAgLTI3
MiwxMSArMjcyLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sKQogICAg
IG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsK
LX0KLQogc3RhdGljIEVpbmFfQm9vbCB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsK
ICAgICB3YWl0VG9EdW1wV2F0Y2hkb2cgPSAwOwpAQCAtNDIxLDExICs0MTYsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICBl
d2tfc2V0dGluZ3NfaWNvbl9kYXRhYmFzZV9wYXRoX3NldChkYXRhYmFzZVBhdGgudXRmOCgpLmRh
dGEoKSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcp
OwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxh
ZykKIHsKICAgICBld2tfdmlld19zZXR0aW5nX3NjcmlwdHNfY2FuX29wZW5fd2luZG93c19zZXQo
YnJvd3Nlci0+bWFpblZpZXcoKSwgIWZsYWcpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9E
dW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggNWEzNTc0ZjcxMjEzYjQ1NjI3MTVkMmM4ZWRkZTA5NmIz
Y2E4ZTBkNS4uY2VlNDYxYzU4MWQzZjE5MzJlNDFkNDc0NjU0NGVkYmY2NDYwZGJjYSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01MDEsOCArNTAx
LDYgQEAgc3RhdGljIHZvaWQgcmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcygpCiAKICAg
ICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldExpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4o
dHJ1ZSk7CiAgICAgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgod2Via2l0X2dldF9pY29u
X2RhdGFiYXNlKCksIDApOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQod2ViVmlldywgdHJ1ZSk7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKHdlYlZpZXcsIGZhbHNl
KTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlcmlhbGl6ZUhUVFBMb2Fkcyhm
YWxzZSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVy
R3RrLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAppbmRl
eCA0MmNlNjcyNmQ4ODNlOTM3ZWVhNWJlOGMwZjY0YmQyZTA3ZjFjOGM0Li5jZDEwNDRkMGQyMzMx
ZTJhNGExZWM3N2U4ZDQyZjk3MjdmYWFkYTY2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3Rr
L1Rlc3RSdW5uZXJHdGsuY3BwCkBAIC0zMjMsMTEgKzMyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wg
ZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpLCBmbGFn
KTsKLX0KLQogc3RhdGljIGdib29sZWFuIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQog
ewogICAgIHNldFdhaXRUb0R1bXBXYXRjaGRvZygwKTsKQEAgLTQ4NSwxMSArNDgwLDYgQEAgdm9p
ZCBUZXN0UnVubmVyOjpzZXRJY29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAg
ICAgd2Via2l0X2ljb25fZGF0YWJhc2Vfc2V0X3BhdGgoZGF0YWJhc2UsIDApOwogfQogCi12b2lk
IFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFn
KQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRQb3B1cEJsb2Nr
aW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogdmlldyA9IHdlYmtp
dF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggOWEyMDIyZTJkZjM3NTQwM2VmOTFmNjM3ZTBk
OTA2OTcxNmU4NTU1OC4uY2IxNGExNTdhNDU4NzZiMTdjNGJmNGYzMDJkMmY2YzU1NDlhOGI0YiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpAQCAtMTI3OCw4
ICsxMjc4LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZv
cmVUZXN0aW5nKCkKICAgICAgICAgZ1Rlc3RSdW5uZXItPnJlbW92ZUNocm9tZUlucHV0RmllbGQo
KTsKICAgICB9CiAKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQ6WUVTXTsKLQogICAgIFtXZWJWaWV3IF9zZXRVc2VzVGVzdE1vZGVGb2N1c1JpbmdD
b2xvcjpZRVNdOwogICAgIFtXZWJWaWV3IF9yZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHNdOwog
ICAgIFtXZWJWaWV3IF9zZXRBbGxvd3NSb3VuZGluZ0hhY2tzOk5PXTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KaW5kZXggYjIzMjZhMjZiMzQ5YTA4M2JhNzk4YThj
N2I5NWFkYTlkZjA1ZTM2Ni4uYjMxYzlhZDcyN2IyZTY2ZjdmZTdiNWNhMWQ2OGRiYjRlNDdiZmU2
OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0K
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KQEAgLTYzNCwx
NiArNjM0LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lz
S2V5KQogICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIF91cGRhdGVBY3RpdmVTdGF0ZV07CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6
ZmxhZ107Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDpmbGFnXTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGlt
ZUludGVydmFsIHdhaXRUb0R1bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZv
aWQgd2FpdFVudGlsRG9uZVdhdGNoZG9nRmlyZWQoQ0ZSdW5Mb29wVGltZXJSZWYgdGltZXIsIHZv
aWQqIGluZm8pCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVy
VHJlZVF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3Bw
CmluZGV4IDIzZmQzNWMxYzZmYjVmMTc5MzNiNjUzMmJkNGM4NzQxNzAwZThjZDIuLmRmYTY3MmI2
NzRkZWMzY2U5NzA2MmY1OGZlZmNmYzk5MzgwMWEwNWYgMTAwNzU1Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwCkBAIC0xOTIsOCArMTkyLDYgQEAgdm9pZCBXZWJQ
YWdlOjpyZXNldFNldHRpbmdzKCkKIAogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldENhcmV0
QnJvd3NpbmdFbmFibGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRBdXRo
b3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIo
KS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgbV9kcnQt
PnRlc3RSdW5uZXIoKS0+c2V0RGVmZXJzTG9hZGluZyhmYWxzZSk7CiAKICAgICAvLyBnbG9iYWxT
ZXR0aW5ncyBtdXN0IGJlIHJlc2V0IGV4cGxpY2l0bHkuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmNwcAppbmRleCBlNWU4MjQzMGUxN2RlMjk2MTc5MzM1ZDRlNjU1ODVkMWI0
YzcyOWMwLi42Mzg5YTBkZWZhNzdlMmEyM2IxNjg1Y2I3MTQwMjdkMmZiNTZmZGExIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCisrKyBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKQEAgLTcyMCwxNiArNzIwLDYgQEAg
dm9pZCBUZXN0UnVubmVyUXQ6OnNldFNjcm9sbGJhclBvbGljeShjb25zdCBRU3RyaW5nJiBvcmll
bnRhdGlvbiwgY29uc3QgUVN0cmluZyYKICAgICBtX2RydC0+d2ViUGFnZSgpLT5tYWluRnJhbWUo
KS0+c2V0U2Nyb2xsQmFyUG9saWN5KG8sIHApOwogfQogCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFw
dGVyKCksIGVuYWJsZSk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlKQotewotICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKG1fZHJ0LT5wYWdlQWRh
cHRlcigpLCBlbmFibGUpOwotfQotCiB2b2lkIFRlc3RSdW5uZXJRdDo6ZXhlY0NvbW1hbmQoY29u
c3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShtX2RydC0+cGFnZUFkYXB0
ZXIoKSwgbmFtZSwgdmFsdWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaApp
bmRleCA2NWJiYjgyYTJjYjQxM2U3MjE5NzM4YmZhN2U1ODMwN2NiY2NkYzBlLi45OTA3YTJlNTM3
MmY4ODliYWVhMjNkYzNhMDU4NGU3NjI2ZTk2YzFmIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuaApAQCAtMTc4LDggKzE3OCw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZv
aWQgc2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRV
c2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJl
KGNvbnN0IFFTdHJpbmcmIG1vZGUpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKGJvb2wpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sKTsKICAgICB2b2lkIGV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFT
dHJpbmcmIHZhbHVlID0gUVN0cmluZygpKTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29u
c3QgUVN0cmluZyYgbmFtZSkgY29uc3Q7CiAgICAgYm9vbCBmaW5kU3RyaW5nKGNvbnN0IFFTdHJp
bmcmLCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEz
ODM3ODczZWRhNzhjZWY1Yi4uODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEw
NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04
OTksMTAgKzg5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRl
QmVmb3JlVGVzdGluZygpCiAgICAgICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5h
bHNPYmplY3QoY29udGV4dCk7CiAgICAgfQogCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4g
dmlld0VkaXRpbmc7Ci0gICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgm
dmlld0VkaXRpbmcpKSkKLSAgICAgICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChUUlVFKTsKLQogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXdQcml2
YXRlKFF1ZXJ5LCB3ZWJWaWV3KTsKICAgICBpZiAoIXdlYlZpZXdQcml2YXRlKQogICAgICAgICBy
ZXR1cm47CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXgg
NjY0OGMzZWUxNWRkNGE1NmVlMGI0NWIyMWUwODdmYTg2NDRlNjlmMi4uZGQ0ZDg3MzFkZmVlNDgz
ZGZlMGU5Yjg3MTUyZmE2NDNjNmRhMGM3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcApAQCAtNzIzLDMyICs3MjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dFdpbmRvd0lzS2V5KGJvb2wgZmxhZykKICAgICA6OlNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3cs
IGZsYWcgPyBXTV9TRVRGT0NVUyA6IFdNX0tJTExGT0NVUywgKFdQQVJBTSk6OkdldERlc2t0b3BX
aW5kb3coKSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAg
aWYgKEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVE
KHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47
Ci0KLSAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBU
UlVFIDogRkFMU0UpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmll
dzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlm
IChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50
ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCBD
QUxMQkFDSyB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChIV05ELCBVSU5ULCBVSU5UX1BUUiwg
RFdPUkQpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3gu
Y3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCA0NzUz
YzI5Y2E1NGY2YWVlMWE5ZGNhOTEzZDliNTFlZDUwMWE5YTFlLi5mNGJiOTRhMGUzZDI5NmNhZjdj
MDg2YzFkZmM5NzdiY2M2NmU2OTk0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93
eC9UZXN0UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5u
ZXJXeC5jcHAKQEAgLTE1MSwxMSArMTUxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJ
c0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewot
ICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9E
dW1wKGJvb2wgd2FpdFVudGlsRG9uZSkKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHRpbWVvdXRT
ZWNvbmRzID0gMTA7CkBAIC0yODgsMTEgKzI4Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBw
Q2FjaGVNYXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTog
aW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2
b2lkIFRlc3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVB
bHBoYSwgZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9v
bCBjYW5Qcm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVt
ZW50IGZvciBEZXZpY2VPcmllbnRhdGlvbiBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTYyNWJmZTlm
ZjlhOTVmZmEwMTAzNmRkYmUzZTliOGYzMDhmN2E2NC4uNWQ0OGYwMmEyMmNkNTgwNWZiZGRkMzhl
YThjZDJkNDU4NDhiMGZmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0
UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVz
dHMuCisKKyAgICAgICAgQmUgc3VyZSB0aGF0IHRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYW5k
CisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXJlIHNldCB0byBvcHBv
c2l0ZSB2YWx1ZXMgYXMgdGhleSBhcmUKKyAgICAgICAgbXV0dWFsbHkgZXhjbHVzaXZlLgorCisg
ICAgICAgICogZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRt
bDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNy
YXNoLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVz
cGFjZS1pbWctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0
LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qczoK
KyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAo
aW5pdFNwZWxsVGVzdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3Vi
bGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1s
CisgICAgICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDMtMDYgIFRha2FzaGkgU2FrYW1v
dG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIEJveC1zaGFkb3cgZGlzcGxheWVkIGlt
cHJvcGVybHkgd2l0aCBib3JkZXItcmFkaXVzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAppbmRleCA3ZWIzMGQy
MjExZDBjMGQ4MTliZWYyZjVlNzM2ODQ4MTk4MWRlZDY5Li5kMGY3ZDdhZjE1OGRhMjVjODc4NzZj
ODgzNmFmMDdiYWE3NDZhYjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0
aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbApAQCAtNSw2ICs1LDcgQEAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOwogfQogCiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bh
bi5odG1sCmluZGV4IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhk
NWNiNzZiN2FkYjE4Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNy
LXNwYW4uaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9u
IGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4
IDQwZTI0MTM4MjFlOGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1
YTViMDdmZjM5MzM0NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0
bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5
NWE3OWRkYTZkNDQ2NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2Ez
Nzk5YzdmY2VmNjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAg
LTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
ZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYz
OWQ1ZjZmMWVhYWY5OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVj
MWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LXdoaXRlc3BhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVu
bmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVy
bmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwog
fQogCiBmdW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmly
c3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRh
YmxlLmpzCmluZGV4IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLmU3
YmRmZjVjZDI2MzMyNzg3ODZlNjJmNjgyMjE5OTA5YTk3MTZjMjEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUt
Zmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRl
bnRlZGl0YWJsZS5qcwpAQCAtNzgsNyArNzgsOCBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5k
TW9kaWZ5KHRhcmdldElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5k
b3cuc2VsZWN0ZWRCeU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVz
dFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVy
bmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CitpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAK
IHZhciBzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lID0gIjxzcGFuIGlkPSd0YXJnZXQnIGNv
bnRlbnRFZGl0YWJsZT5zZWxlY3RtZTE8L3NwYW4+IGFuZCBub3Qgc2VsZWN0IHVzIjsKIHRlc3RX
aXRoRG91YmxsZUNsaWNrKHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUsICJzZWxlY3RtZTEi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0
aWwuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCmlu
ZGV4IGNmODAzMzQxODg0M2NmMjBjNjY3MWU3Yzg0OTA3YjcwNzJkNDk1MjAuLjA5NGE1M2IyODk2
ODhkODJkZTRkZTczNjdhOWM5NDMzNGY1NjI0OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBp
bml0U3BlbGxUZXN0KHRlc3RFbGVtZW50SWQsIHRlc3RUZXh0LCB0ZXN0RnVuY3Rpb24pCiAgICAg
dGVzdEZ1bmN0aW9uQ2FsbGJhY2sgPSB0ZXN0RnVuY3Rpb247CiAgICAganNUZXN0SXNBc3luYyA9
IHRydWU7CiAgICAgdGVzdFJ1bm5lci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxl
ZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVl
KTsKLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFs
c2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
dHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoZmFsc2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENo
ZWNrZXJFbmFibGVkKHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVo
YXZpb3IoIndpbiIpOwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKHRlc3RFbGVtZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYxMzUyY2Y5YTIz
ZWY2MzEyM2IxNmEzNi4uNDA2MDcxODEwZDAxYmI5OGU2ZTVmMTNjMzhkNjA5M2QzNmU3ZWFhOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUt
Y2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jl
cy5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndl
bGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxU
b1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAv
LyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0cmFpbGluZyB3
aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIg
eSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5h
dGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIp
OwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJh
aWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAg
ICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlv
bi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAy
NDkyNzNkMmUwYWJhYjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi45ZDI0OWZkN2YwZWZlZTI0
M2JjNmIwZmIyOWU1Y2VlNTk1NmVjNGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApA
QCAtMjEsNyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBo
b21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3
aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1j
bGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAg
ICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExl
ZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlv
bi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGlu
YXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNv
bWUgaG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
Zygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3Vi
bGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0g
ICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2Up
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExl
ZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlv
bi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGlu
YXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25z
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNWVhMTc2
ZjRjY2ZhZmI4YjJkODE2MTc0ZTBlMTQ3YzMwMGY2MDc4Zi4uZmIwYjhiNWNmZDYyNTk4N2NlOGZi
Y2U3ZGM5ZmY1M2JlODc5MTk3MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2sy
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMKQEAgLTM3NSw5ICszNzUsNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Ny
b3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbAogIyBXZWJLaXRUZXN0
UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwKIHBsdWdp
bnMvZ2V0LXVybC10aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlzYWxsb3cu
aHRtbAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAotZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKLQogIyBXZWJLaXRU
ZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eQogcHJpbnRp
bmcvcGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192283</attachid>
            <date>2013-03-08 14:29:06 -0800</date>
            <delta_ts>2013-03-13 14:53:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130308232508.patch</filename>
            <type>text/plain</type>
            <size>89870</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uMTUyMTUxZmM0Zjg4ZDEwYWQ5YmExNDllOWNhZmEw
NmE2NWNkOTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLjQzM2ZjZjlm
OGM1ZWFlYjNhNTIzY2U4MDEyYjE0YTg4MGYyMDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjdkYTcwNDdjZTg0YTY1MjE3NWRiOTkyZDNkYjNkODA1
Nzg5ZGQ2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IFBhZ2Ugc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQK
KyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgdXBkYXRlIEFQSSBh
Y2NvcmRpbmdseS4KKworICAgICAgICBXZWJTZXR0aW5ncyBBUEkgaXMgcmVxdWlyZWQgYnkgRFJU
IGluIG9yZGVyIHRvIHNldCB0aGUgcHJvcGVyIGRlZmF1bHQKKyAgICAgICAgdmFsdWVzIHdoaWNo
IGFyZSBkaWZmZXJlbnQgZnJvbSBicm93c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcHVibGlj
L1dlYlNldHRpbmdzLmg6IEFkZCBuZXcgQVBJIHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQKKyAgICAgICAgYW5kIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGlu
Z3MuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVk
IHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tIHBhZ2UKKyAgICAg
ICAgc2V0dGluZ3MgZnJvbSBub3cgb24uCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOiBVc2UgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6IEltcGxlbWVu
dCBtZXRob2RzIGVzdGFibGlzaGluZyB0aGUgcGFnZQorICAgICAgICBzZXR0aW5ncy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdz
SW1wbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0
dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOiBJbXBsZW1lbnQgbmV3IEFQ
SSB0byBtYW5hZ2UgdGhlIG5ldyBzZXR0aW5ncy4KKwogMjAxMy0wMy0wNyAgSm9jaGVuIEVpc2lu
Z2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGV4cG9zZSBV
c2VyR2VzdHVyZVRva2VuIHZpYSBXZWJLaXQgQVBJIHNvIFBQQVBJIHBsdWdpbnMgY2FuIGNvcnJl
Y3RseSBjb25zdW1lIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZGJlNmNmZDYxZDNlMTk2ZTBjNzdi
ZmNjZDM0ZWVjMTI5YTQ1YmE1ZS4uNDk2NjNkYmU4Mjk0MDBhZjA1MTkyY2VmNDczNzU3N2YzOWI2
ZDEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisK
IDIwMTMtMDMtMDYgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckVmbCBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CmluZGV4IDNmOGI1NGExZjI5ZmYwOWJhYmJlOTUzYzRmZmIzOGEwNjY0MjNlN2YuLmJkNDFhOWEz
MDk1OGFkNTI2ZDQzOWYxMDFiY2YzZjJmOTlkNzE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBz
ZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAg
ICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1v
cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50KToKKwogMjAxMy0wMy0w
NiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1ZGEwMmEzOTI3NzVh
MWM0Mjk1YmQyNzhhMTRhNTg5Y2IzY2Q0MjY1Li5hNzEwZWYyYTgxZDUwZGUzNGI4NmY3OTY4NWE2
YzEyNDdjMDIwOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMt
MDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3Jv
dXBOYW1lOl0pOiBJbml0aWFsaXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVs
dHMuCisgICAgICAgICgtW1dlYlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWRdKToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEu
bW06CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZhdWx0IG1vdXNlIGN1
cnNvciBiZWhhdmlvciBzaG91bGQgYmUgYXV0by1oaWRlIGZvciBmdWxsIHNjcmVlbiB2aWRlbyB3
aXRoIGN1c3RvbSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MWY5OTkwNTY1YzljZjgyYzBm
ZWYzMDExYTE3ZjJkMzFjYzBmYzlmLi4xOWJjN2YwN2ZjOGNiZTkwYzNlOTdlYjA1NjdkNzQ0OWQy
MjY0M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6
OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEz
LTAzLTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmVsZW1lbnREb2Vz
QXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLjRkOTFjYjM2OGRjZjAwMjY0MTg4NTlh
OGViMjFlY2ZiMTZkYzY0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uMGU2MjcyMjY3NTFlNDc1
YmI2ODRlNjQ3ZGEwNTcyZmM3M2I0MDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MDM4NzE1NTViYWRlMzY4MzI4MTY4ZTNkNjMyMjQzOWFiNWM4ZWJlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBhM2JjZGRiNzYwMjFlMmM2
ZWQ3OGQ2NDg0ZjNkNmVkNjJjMWM4ZTBmLi44ODRmZDZjN2E4NDFlNTE4ZDlkZTE3ZTBkMWU3YTFl
OWExNjg0NDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTQxLDYgKzE0MSwyMSBA
QCBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0g
dHJ1ZTsKICNlbHNlCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBP
UyhNQUNfT1NfWCkKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7
CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgogCiBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZSgwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2ZjMDk3NjdiZWZmMjE0YTUzYmY3ZWJh
ZC4uYmU1OWYxNzEyMTY4MTU0YmU5NTU4ODViNjE2ZGVhZjkyNGU0OTcxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDUgQEAgdW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkCiAKIGxvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAotc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGluaXRpYWw9dHJ1ZQorc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGluaXRp
YWw9ZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xp
ZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThkMS4uZTk3
NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAtODMsNyAr
ODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5nZSogZnJv
bVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29sIHN0aWxs
U2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29y
ZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdl
KiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikgPSAwOwog
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVmODgyNTA0
YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLjlkNTI3MWFlOTAwOGU4ZTEyZGY0MGJjNjY4
N2RhZjIzYmVhNjVhMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2
YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJQYWdlUHJpdmF0ZS0+bV9kdW1wUmVu
ZGVyVHJlZSkKLSAgICAgICAgcmV0dXJuIG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJlbmRlclRy
ZWUtPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNvcmUobV93ZWJQYWdlKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudEJsYWNrQmVycnk6OmVuYWJsZVNwZWxsQ2hlY2tpbmcoYm9vbCBlbmFibGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCBmMTkyMGQ3
MTk2NDg2ZTk2MTI3ZTQwNGY0NGM3NTRiZWYwYjU3N2M1Li4xMjQ2YzRjOTQ4MzEyZDQ1NDkwZDM0
OTAxYThiMjI1ZTViNmNmMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNldHRpbmdzLmgKQEAgLTE0Nyw2ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldFJlbmRlclZTeW5jRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFJl
bmRlclZTeW5jTm90aWZpY2F0aW9uRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBV
U0NSSVBUX0NPTU1PTikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250
RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhib29sKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFJlc3BlY3RJbWFnZU9yaWVudGF0aW9uKGJvb2wp
ID0gMDsKQEAgLTE1NSw2ICsxNTYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dQYWludFJlY3RzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxv
bmVJbWFnZXNUb0ZpdChib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN0YW5kYXJkRm9u
dEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29sKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5k
ZXggZTQ0NmUyYTY5M2Y5MWExNzFjNWUyYzkzZjMwMTg2NDBkOGQ1NWUxOS4uYTQ0OTdkZTZhMzg1
MzE5ZDY5NGFlNzY0MDUyYmM4OTEwYzAwODJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMTgxLDkgKzE4MSw2IEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVy
biB0cnVlOyB9CiAgICAgdmlydHVhbCBib29sIHNob3VsZEFwcGx5U3R5bGUoY29uc3QgV2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViUmFuZ2UmKSB7IHJldHVybiB0cnVlOyB9CiAKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSB7IHJldHVybiB0cnVlOyB9Ci0g
ICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIHsgcmV0
dXJuIHRydWU7IH0KLQogICAgIHZpcnR1YWwgdm9pZCBkaWRCZWdpbkVkaXRpbmcoKSB7IH0KICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2FuY2VsQ29tcG9zaXRpb25PblNlbGVjdGlvbkNoYW5nZSgpIHsg
fQogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VTZWxlY3Rpb24oYm9vbCBpc1NlbGVjdGlvbkVt
cHR5KSB7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNs
aWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1w
bC5jcHAKaW5kZXggOTgzMDNmNGY0NjRkZjMyMWJiNDk0ZDMzNGJlM2E4NjBiYzQ4MjJmNC4uNjQx
YmJkMDc2ZjEyNGIxZGUyZjI1MjBiYTZlMjA5ZjdhNDU3OGNiOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAKQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbmNsdWRlICJLZXlib2FyZENvZGVzLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2lu
Y2x1ZGUgIlNldHRpbmdzLmgiCkBAIC05NSwyMCArOTYsMTYgQEAgdm9pZCBFZGl0b3JDbGllbnRJ
bXBsOjpmcmFtZVdpbGxEZXRhY2hQYWdlKFdlYkNvcmU6OkZyYW1lKiBmcmFtZSkKIAogYm9vbCBF
ZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5jbGllbnQoKS0+
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICBpZiAobV93ZWJWaWV3LT5wYWdlKCkp
CisgICAgICAgIHJldHVybiBtX3dlYlZpZXctPnBhZ2UoKS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKIGJvb2wgRWRpdG9yQ2xp
ZW50SW1wbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAo
bV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCkt
PmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotI2lmIE9TKFdJTkRPV1MpCi0g
ICAgcmV0dXJuIHRydWU7Ci0jZWxzZQorICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAg
ICAgcmV0dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIGJvb2wg
RWRpdG9yQ2xpZW50SW1wbDo6c2hvdWxkU3BlbGxjaGVja0J5RGVmYXVsdCgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAyNjRjNzU2YThk
YjljMDYxZWM1MDc4NzAyODQwNjcwMTUwM2UwN2I3Li42NmVmNTFhMzM2MTNlOWZjMTk0OTk1MWRl
M2ZiNTcxZGI0NTRmMWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAKQEAgLTc2MSw0ICs3NjEsMTQgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6
OnNldENvbXBvc2l0ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAg
ICBtX3NldHRpbmdzLT5zZXRDb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZChlbmFi
bGVkKTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3NJ
bXBsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1f
c2V0dGluZ3MtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5oCmluZGV4IDcyYTNlMzEyNzQxMTE1MzA4ZDBhMDRhZWM1MTZjMWM1YTVlZWE4MWIu
LmFkMmM5M2ZjZmU5ZGUwZDdhY2Y3YWVkZDU5ZjhhYmE1OWFjYzY2NTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xNDAsNiArMTQwLDcgQEAg
cHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZTeW5jTm90aWZpY2F0aW9uRW5hYmxlZChib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcm
LCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9D
T01NT04pOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCk7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCk7CkBAIC0x
NTEsNiArMTUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0
cyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGJvb2wp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wp
OworICAgIHZpcnR1YWwgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBV
U2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRv
Y3VtZW50c0VuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCAzMjBm
ZjlmMDQ5NGUyNzE3ODIwOTdlNDM4MTliNjE3MGQzOGY2ODViLi41MjE1Y2U2MGM1Yzg0YmE2OWE3
ODNhZDczMDViYTU4ZTljYjc2MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTMy
MywyOCArMzIzLDYgQEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmlzQ29tbWFuZEVu
YWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnMKICAgICByZXR1cm4gcGFnZS0+
Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFu
ZChuYW1lKS5pc0VuYWJsZWQoKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBl
bmFibGVkKQotewotICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBh
Z2UpOwotCi0gICAgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBlZGl0b3JDbGllbnQgPSBzdGF0
aWNfY2FzdDxXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdlLT5lZGl0b3JDbGllbnQoKSk7
Ci0gICAgaWYgKCFlZGl0b3JDbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGVkaXRvckNs
aWVudC0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIERSVF9TVVBQUlRf
UEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwotCi0gICAgV2ViQ29yZTo6RWRpdG9y
Q2xpZW50RWZsKiBlZGl0b3JDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0b3JDbGll
bnRFZmwqPihwYWdlLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgaWYgKCFlZGl0b3JDbGllbnQpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGVkaXRvckNsaWVudC0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OmZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBld2tfZnJhbWVf
Zm9yY2VfbGF5b3V0KGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggOTU4ODgx
MWZhZDhjYjUwOTA2NWM0NGUzYjc2OTdkNGViNjM4MjM1MC4uMzExZDlhMDI5YTlhZWEwMmE2MjMz
MGJhMzc2MmM5NTBhNmVjNzdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTgwLDggKzgw
LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZh
c19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNl
dENTU0dyaWRMYXlvdXRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVu
YWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldENTU1JlZ2lvbnNFbmFibGVkKGNvbnN0IEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsK
LSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNlYW1s
ZXNzSUZyYW1lc0VuYWJsZWQoYm9vbCk7CiAKICAgICBzdGF0aWMgdm9pZCBmb3JjZUxheW91dChF
dmFzX09iamVjdCogZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2Vi
Q29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKaW5kZXggYTRjOWZkMTM1ZTk3MmU0ZmI1MzQ0
NGJiMDE1MGRkZjhjNmUwYmQzZi4uMmJlMzFhOWEwNzYzZmUzZmM4NTEyNjk5NTBmZTk1OWE5ZWY3
MDNmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0
b3JDbGllbnRFZmwuY3BwCkBAIC0yNDMsMjggKzI0MywyMCBAQCB2b2lkIEVkaXRvckNsaWVudEVm
bDo6cGFnZURlc3Ryb3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRWRpdG9yQ2xp
ZW50RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAg
IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkK
LSAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci19Ci0K
IGJvb2wgRWRpdG9yQ2xpZW50RWZsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAg
IHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotdm9pZCBFZGl0b3JDbGll
bnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQot
ewotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAg
aWYgKGVuYWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7
CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3Zp
ZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJldHVy
biBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAK
IGJvb2wgRWRpdG9yQ2xpZW50RWZsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAg
V2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpOwor
ICAgIGlmICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY29y
ZVBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0K
IAogdm9pZCBFZGl0b3JDbGllbnRFZmw6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkK
QEAgLTM3MSw4ICszNjMsNiBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6aGFuZGxlSW5wdXRNZXRo
b2RLZXlkb3duKEtleWJvYXJkRXZlbnQqKQogRWRpdG9yQ2xpZW50RWZsOjpFZGl0b3JDbGllbnRF
ZmwoRXZhc19PYmplY3QqIHZpZXcpCiAgICAgOiBtX2lzSW5SZWRvKGZhbHNlKQogICAgICwgbV92
aWV3KHZpZXcpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
Ci0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKICAgICBub3RJbXBs
ZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRFZmwuaAppbmRleCAzYzJhMjQ3ZGU0N2E5N2RmYjM0NGZiZTBjYzQ5ZWI4MmUz
NjYzMDQ4Li5kMGQ1ZDMwODE1M2NiYzIwOTQ1ODMxZmMxNTA0OWE1ZjE3NDhhYWQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaApA
QCAtODQsOSArODQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRl
UmFuZ2UoUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdmly
dHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIHZvaWQg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIGJv
b2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICB2aXJ0dWFsIHZvaWQg
dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNHcmFt
bWFyQ2hlY2tpbmdFbmFibGVkKCk7CkBAIC0xNTcsOCArMTU1LDYgQEAgcHVibGljOgogCiBwcml2
YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsK
IH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmluZGV4IDRiNmQyMDJjN2I0YmMzMmI4
NDRiZDg0NjBmYWMwZTZmM2IzZGFmMTUuLjliNDdjZjcxOWNkZWY5ZDY2M2U2MTgzZjQ0YTI3Y2I4
MGZkMzEyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNwcApAQCAtODEsNyArODEsNiBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c19kcnRSdW4gPSBmYWxzZTsKIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2xpbmtz
SW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3Rr
OjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6RnJhbWVMb2FkRXZlbnRDYWxsYmFjayBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OnNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IDA7CiBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRHdGs6OkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
X2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgPSAwOwogCkBAIC0xMTIsMTYgKzExMSw2IEBAIGJvb2wg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCkKICAg
ICByZXR1cm4gc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsKIH0KIAotdm9pZCBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBl
bmFibGVkKQotewotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJs
ZWQ7Ci19Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gc19zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkOwotfQotCiAvKioKICAqIGdldEZyYW1lQ2hpbGRyZW46CiAgKiBAZnJhbWU6IGEg
I1dlYktpdFdlYkZyYW1lCkBAIC00NTMsMTUgKzQ0Miw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wg
ZGVmCiAgICAgY29yZSh3ZWJWaWV3KS0+c2V0RGVmZXJzTG9hZGluZyhkZWZlcnMpOwogfQogCi12
b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBnX3JldHVybl9p
Zl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7Ci0gICAgZ19yZXR1cm5faWZfZmFp
bCh3ZWJWaWV3KTsKLQotICAgIFdlYktpdDo6RWRpdG9yQ2xpZW50KiBjbGllbnQgPSBzdGF0aWNf
Y2FzdDxXZWJLaXQ6OkVkaXRvckNsaWVudCo+KGNvcmUod2ViVmlldyktPmVkaXRvckNsaWVudCgp
KTsKLSAgICBjbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0K
LQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZvcmNlV2ViVmlld1BhaW50KFdlYktp
dFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VC
X1ZJRVcod2ViVmlldykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAppbmRleCAwMmZjNzE3MzIzMGM3
ZDY3MTExOWRlZGNhZmQ3ODA4YWYzODk5MzQwLi4xMDYyYzJhMDYwMzU3M2Q2NTUxZTYyZjNkMjg5
MzZhZGIyZDNiOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaApAQCAtNTEsOCArNTEsNiBAQCBw
dWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKGJv
b2wpOwogICAgIHN0YXRpYyBib29sIGxpbmtzSW5jbHVkZWRJbkZvY3VzQ2hhaW4oKTsKLSAgICBz
dGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwotICAg
IHN0YXRpYyBib29sIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIAogICAgIHN0
YXRpYyB2b2lkIGNsZWFyT3BlbmVyKFdlYktpdFdlYkZyYW1lKik7CiAKQEAgLTc3LDcgKzc1LDYg
QEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlY3RhbmdsZUZvclNlbGVjdGlvbihXZWJLaXRX
ZWJGcmFtZSosIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwogICAgIHN0YXRpYyB2b2lkIHNjYWxl
UGFnZUJ5KFdlYktpdFdlYlZpZXcqLCBmbG9hdCwgZmxvYXQsIGZsb2F0KTsKICAgICBzdGF0aWMg
dm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZpZXcqLCBib29sKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2ViS2l0V2ViVmlldyosIGJvb2wpOwog
ICAgIHN0YXRpYyB2b2lkIGZvcmNlV2ViVmlld1BhaW50KFdlYktpdFdlYlZpZXcqKTsKIAogICAg
IC8vIEFjY2Vzc2liaWxpdHkKQEAgLTE0NSw3ICsxNDIsNiBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwogICAgIHN0YXRpYyBib29sIHNfbGlua3NJbmNsdWRl
ZEluVGFiQ2hhaW47Ci0gICAgc3RhdGljIGJvb2wgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBmOTQ0MjllOTc4NTA2NzFlNDg4MTg2
ZDlmYTE5MDY4YmQ2MDM1ODVmLi45YzBmZDk0YWExNzI5MzUyNWVmMWY4NTRjYjcwYWI5ZjkyYTJh
NjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEd0ay5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3R5bGVQcm9wZXJ0eVNldC5o
IgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiV2ViS2l0RE9NQmluZGluZy5oIgpA
QCAtMzYwLDIxICszNjEsMjAgQEAgdm9pZCBFZGl0b3JDbGllbnQ6OnBhZ2VEZXN0cm95ZWQoKQog
ICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNsaWVudDo6c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIGJvb2wgRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAg
ICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJWaWV3KTsKKyAgICBpZiAoIWNv
cmVQYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVu
dDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAoIUR1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6ZHVtcFJlbmRlclRyZWVNb2RlRW5hYmxlZCgpKQorICAgIFdl
YkNvcmU6OlBhZ2UqIGNvcmVQYWdlID0gY29yZShtX3dlYlZpZXcpOworICAgIGlmICghY29yZVBh
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gRHVtcFJlbmRlclRyZWVTdXBw
b3J0R3RrOjpzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CisgICAgcmV0dXJuIGNv
cmVQYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yQ2xpZW50Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBA
IC01MDEsNyArNTAxLDYgQEAgRWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQoV2ViS2l0V2ViVmll
dyogd2ViVmlldykKICAgICAsIG1fdGV4dENoZWNrZXJDbGllbnQoV0VCS0lUX1NQRUxMX0NIRUNL
RVIod2Via2l0X2dldF90ZXh0X2NoZWNrZXIoKSkpCiAjZW5kaWYKICAgICAsIG1fd2ViVmlldyh3
ZWJWaWV3KQotICAgICwgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3Rr
LmgKaW5kZXggM2E3ZWFmMTRjNzFhZjc1NzhkOTIyNTU4MWUxOTNlM2EwMDA0MGJmMi4uYzk5Zjcx
ZWI2ZmJhODljYmZmYmNlZjIxN2Q4OGQwMjJlOThhZWRhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKKysrIGIvU291cmNlL1dl
YktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmgKQEAgLTc1LDcgKzc1LDYg
QEAgY2xhc3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAK
ICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFdlYkNvcmU6OlJhbmdlKik7
CiAgICAgICAgIHZpcnR1YWwgYm9vbCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICAg
ICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgICAgIHZpcnR1
YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICAgICAgdmly
dHVhbCBib29sIGlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgICAgIHZp
cnR1YWwgdm9pZCB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpOwpAQCAtMTQ2LDcgKzE0
NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb3JlOjpFZGl0b3JDbGllbnQg
ewogICAgICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiAgICAgICAgIFdlYkNvcmU6Oktl
eUJpbmRpbmdUcmFuc2xhdG9yIG1fa2V5QmluZGluZ1RyYW5zbGF0b3I7CiAgICAgICAgIFZlY3Rv
cjxXVEY6OlN0cmluZz4gbV9wZW5kaW5nRWRpdG9yQ29tbWFuZHM7Ci0gICAgICAgIGJvb2wgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDQ5ZTNhZjY2
YzFjNDZkNTg1MGY1NzgxZWZiNGMyMTgzY2U3NzQ2MzAuLjI3NTFkYjM2YzIyYzA5MjIwMzJkNDQy
MzI4YjVkMWZjODIwYzYzNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTU5LDggKzU5LDEwIEBACiAjaW1wb3J0IDxX
ZWJDb3JlL0hUTUxUZXh0QXJlYUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRF
dmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9MZWdhY3lXZWJBcmNoaXZlLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL1BhZ2UuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1LZXlib2FyZEV2ZW50Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1J1bkxvb3AuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU2V0dGluZ3Mu
aD4KICNpbXBvcnQgPFdlYkNvcmUvU3BlbGxDaGVja2VyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1N0
eWxlUHJvcGVydHlTZXQuaD4KICNpbXBvcnQgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KQEAgLTIzMywx
MiArMjM1LDE4IEBAIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJm
YWNlKEhUTUxFbGVtZW50KiBlbGVtZW50KQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gW21fd2ViVmlldyBzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWRdOworICAgIFBhZ2UqIHBhZ2UgPSBbbV93ZWJWaWV3IHBhZ2VdOworICAg
IGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRp
bmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4g
W21fd2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdOworICAgIFBhZ2Uq
IHBhZ2UgPSBbbV93ZWJWaWV3IHBhZ2VdOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0
eWxlKFN0eWxlUHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNzY2ZjlkNGViNDY0ZGJiMWJmMWQwN2ZmOWNhMmRlZjRk
ZjljZDMxNi4uMTBjZTg1ZTJkMzFkNjMyZGFlYTU4YmE5NWRkMTc2NjUwZTZmNjIyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzgzLDYgKzc4MywxMiBAQCBzdGF0aWMg
Ym9vbCBzaG91bGRSZXNwZWN0UHJpb3JpdHlJbkNTU0F0dHJpYnV0ZVNldHRlcnMoKQogICAgICAg
ICBbc2VsZiBfaW5qZWN0T3V0bG9va1F1aXJrc1NjcmlwdF07CiAgICAgfQogCisgICAgaWYgKFtb
TlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIG9iamVjdEZvcktleTpXZWJTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRdKSB7CisgICAgICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVF
bmFibGVkID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktl
eTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgICAgICBfcHJpdmF0ZS0+cGFnZS0+
c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCk7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCFzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOworICAg
IH0KKwogICAgIFtXZWJGcmFtZSBfY3JlYXRlTWFpbkZyYW1lV2l0aFBhZ2U6X3ByaXZhdGUtPnBh
Z2UgZnJhbWVOYW1lOmZyYW1lTmFtZSBmcmFtZVZpZXc6ZnJhbWVWaWV3XTsKIAogICAgIE5TUnVu
TG9vcCAqcnVuTG9vcCA9IFtOU1J1bkxvb3AgbWFpblJ1bkxvb3BdOwpAQCAtMjQ3MCwxNCArMjQ3
NiwxNiBAQCBzdGF0aWMgaW5saW5lIElNUCBnZXRNZXRob2QoaWQgbywgU0VMIHMpCiAKIC0gKHZv
aWQpc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDooQk9PTClmbGFnCiB7Ci0gICAg
X3ByaXZhdGUtPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmbGFnOwotICAgIGlm
IChmbGFnKQotICAgICAgICBbc2VsZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6ZmFsc2Vd
OworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpICE9IGZsYWcpIHsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRp
bmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyk7CisgICAgICAg
IC8vIFNldCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYXMgdGhleSBhcmUgbXV0dWFsbHkgZXhj
bHVzaXZlLgorICAgICAgICBbc2VsZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6IWZsYWdd
OworICAgIH0KIH0KIAogLSAoQk9PTClpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQK
IHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7
CisgICAgcmV0dXJuIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQpc2V0TWVtb3J5Q2FjaGVEZWxlZ2F0ZUNh
bGxzRW5hYmxlZDooQk9PTCllbmFibGVkCkBAIC01NDI5LDE3ICs1NDM3LDE3IEBAIHN0YXRpYyBO
U0FwcGxlRXZlbnREZXNjcmlwdG9yKiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMs
IEpTQzo6SlNWYWx1ZSBqCiAKIC0gKHZvaWQpc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOihC
T09MKWZsYWcKIHsKLSAgICBpZiAoX3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAh
PSBmbGFnKSB7Ci0gICAgICAgIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBm
bGFnOwotICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRC
b29sOl9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZF07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5w
YWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyk7CisgICAg
ICAgIFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZh
dGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGZvcktleTpX
ZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgICAgICAvLyBTZXQgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAg
ICAgIFtzZWxmIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6IWZsYWddOwogICAg
IH0KLSAgICBpZiAoZmxhZykKLSAgICAgICAgW3NlbGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZDpmYWxzZV07CiB9CiAKIC0gKEJPT0wpc21hcnRJbnNlcnREZWxldGVFbmFibGVk
CiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAg
cmV0dXJuIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKIH0KIAogLSAodm9pZClzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQ6KEJP
T0wpZmxhZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0
YS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCmluZGV4IGFkZWFi
ZTdlZTJjZmEyMmNiZGMyOGUzYmE4MzM3OGY0NjAzZTAyZTIuLjM0N2FiYTQ1Nzg1ZjE4MGU4Yzk3
NDZjY2NiNjJhNGU2NzgwZTk0YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdE
YXRhLmgKQEAgLTE0Niw5ICsxNDYsNiBAQCBwcml2YXRlOgogICAgIEJPT0wgaGFzU3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwog
Ci0gICAgQk9PTCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0gICAgQk9PTCBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkOwotICAgICAgICAKICNpZiBFTkFCTEUoREFTSEJPQVJEX1NV
UFBPUlQpCiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5c1NlbmRNb3VzZUV2ZW50c1Rv
QWxsV2luZG93czsKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZEFjdGl2ZU51
bGxFdmVudHNUb1BsdWdJbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlZpZXdEYXRhLm1tIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5t
bQppbmRleCBlMjc2NmYwMWEzNWJjMDdlZWFhNDg2YzI2NTViNGMwMWJhZWQ5N2E2Li5jNjgxZjA5
YmE3MjE2ZDhkMjE2ZTU5NzUyNmFmODU4MWQwMDNkZTdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViVmlld0RhdGEubW0KQEAgLTk1LDEwICs5NSw2IEBAIExheWVyRmx1c2hDb250cm9s
bGVyOjpMYXllckZsdXNoQ29udHJvbGxlcihXZWJWaWV3KiB3ZWJWaWV3KQogCiAgICAgc2hvdWxk
Q2xvc2VXaXRoV2luZG93ID0gb2JqY19jb2xsZWN0aW5nRW5hYmxlZCgpOwogCi0gICAgc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkID0gIVtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVs
dHNdIG9iamVjdEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdCi0gICAgICAgIHx8
IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21h
cnRJbnNlcnREZWxldGVFbmFibGVkXTsKLQotCiAgICAgcGx1Z2luRGF0YWJhc2VDbGllbnRDb3Vu
dCsrOwogCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcCBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCmluZGV4IDU5ZjM3MTA4MjBhZDMxNzczZjRkMTMyZjdlYzRkYjMyZTdmMzNmOWQuLjI0MDM0
ZjZiMjhmYTUxZThmOWQ2MDk1NjE3YzA5MDg4ODFjMTAxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQu
Y3BwCkBAIC0zMjYsMTggKzMyNiw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKFFXZWJQYWdlQWRhcHRlciogYWRhCiAgICAgYWRh
cHRlci0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQodmFs
dWUpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0g
ICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGll
bnQoKSktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKLX0KLQotCi12b2lk
IER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBlbmFibGVkKQotewotICAgIHN0YXRp
Y19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFnZS0+ZWRpdG9yQ2xpZW50KCkpLT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KIHZvaWQg
RHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OmV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFn
ZUFkYXB0ZXIqIGFkYXB0ZXIsIGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZh
bHVlKQogewogICAgIGFkYXB0ZXItPnBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JN
YWluRnJhbWUoKS0+ZWRpdG9yKCktPmNvbW1hbmQobmFtZSkuZXhlY3V0ZSh2YWx1ZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3Vw
cG9ydFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0LmgKaW5kZXggNzBmZjg1ZTcwN2NmZDA5ZGQ4MGI5YmYzYTdjY2RhNTNlM2EzNWM0
Yi4uNjdhMDQzNmQ4Y2U5ZmZmNjEwZTgyOTc1MjMzODIxODliYTdlM2U2NCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQuaApAQCAtOTQsOCArOTQsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgZXhlY3V0
ZUNvcmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUs
IGNvbnN0IFFTdHJpbmcmIHZhbHVlKTsKICAgICBzdGF0aWMgYm9vbCBpc0NvbW1hbmRFbmFibGVk
KFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcmIG5hbWUpOwogICAgIHN0YXRpYyBib29s
IGZpbmRTdHJpbmcoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJp
bmdMaXN0JiBvcHRpb25BcnJheSk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7Ci0gICAgc3RhdGljIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBi
b29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3Qgc2VsZWN0ZWRSYW5nZShRV2Vi
UGFnZUFkYXB0ZXIqKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IGZpcnN0UmVjdEZvckNoYXJh
Y3RlclJhbmdlKFFXZWJQYWdlQWRhcHRlciosIGludCBsb2NhdGlvbiwgaW50IGxlbmd0aCk7CiAg
ICAgc3RhdGljIHZvaWQgY29uZmlybUNvbXBvc2l0aW9uKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0
IGNoYXIqIHRleHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmNwcAppbmRleCBhZmNjOGQ2NGVmZTBhNTRiZjFhM2IwYmJjNWVjNWFhMjQ5
MDg3YTAzLi4zY2YwODcwMjBlY2VmMGYzMjU2MWYzYjAyNTgzNDUxMzI0YTZiNGFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcApA
QCAtMzMzLDE4ICszMzMsMjcgQEAgdm9pZCBFZGl0b3JDbGllbnRRdDo6cGFnZURlc3Ryb3llZCgp
CiAKIGJvb2wgRWRpdG9yQ2xpZW50UXQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0g
ICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOworICAgIFBhZ2UqIHBhZ2UgPSBt
X3BhZ2UtPnBhZ2U7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBy
ZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAK
IHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAgICBi
b29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBh
Z2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKSk7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKSk7CisgICAgfQogfQogCiBib29sIEVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGlu
Z3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRv
ckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEsOCArNTUw
LDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRlciogcGFn
ZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRpbmcoZmFs
c2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZh
bHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTkyNGIy
Zi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTExLDkg
KzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAgICB2
b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBiOyB9
Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0aWMgYm9v
bCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAgUVdl
YlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9vbCBtX2lu
VW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9uJ3QgcmUt
ZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IGQ5
ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmM0YzU0YThkNjkxMjYyMmVm
YTFiMzQ2NzgwZWZkOTEwNWVmODFjN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4v
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAgQEAKICNp
bmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xvY2Fs
aXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+CisjaW5j
bHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJk
RXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9T
ZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNp
YmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRvckNsaWVu
dDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90aWZpY2F0
aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNF
OyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7Ci0g
ICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdl
KCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gcGFn
ZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2Vi
RWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodm9pZCkKIHsK
LSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsKLSAgICBtX3dlYlZpZXctPmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKKyAg
ICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3Vs
ZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpSYW5nZSosIFdl
YkNvcmU6OkVBZmZpbml0eSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggZDYyMTQxMTUy
MDg2NTFjM2QzNjdlMmUyYWQ2MDNlOGU1Mjk4MWVlZS4uM2I0NWY3ZTY4ZTJhODhiNTM5MGVjYjMy
NTI3Nzc1MDRkOGFlZjE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTM2NSw3ICszNjUsNiBA
QCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1faXNCZWluZ0Rlc3Ryb3llZChmYWxzZSkKICAg
ICAsIG1fcGFpbnRDb3VudCgwKQogICAgICwgbV9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZyhm
YWxzZSkKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKQogICAgICwgbV9k
aWRDbG9zZShmYWxzZSkKICAgICAsIG1faW5JTUVDb21wb3NpdGlvbigwKQogICAgICwgbV90b29s
VGlwSHduZCgwKQpAQCAtMzczLDcgKzM3Miw2IEBAIFdlYlZpZXc6OldlYlZpZXcoKQogICAgICwg
bV90b3BMZXZlbFBhcmVudCgwKQogICAgICwgbV9kZWxldGVCYWNraW5nU3RvcmVUaW1lckFjdGl2
ZShmYWxzZSkKICAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCi0gICAgLCBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RQYW5YKDApCiAgICAgLCBt
X2xhc3RQYW5ZKDApCiAgICAgLCBtX3hPdmVycGFuKDApCkBAIC00MDgyLDMyICs0MDgwLDM2IEBA
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dHlwaW5nU3R5bGUoCiBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgg
CiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCkK
LSAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAg
aWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgPT0gISFm
bGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCEhZmxhZyk7CisgICAgICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09L
OwogfQogICAgIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJs
ZWQpCiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA/IFRSVUUg
OiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkgPyBUUlVFIDogRkFMU0U7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgCiBI
UkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSAhIWZsYWc7Ci0gICAgaWYgKG1fc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGZhbHNlKTsKKyAgICBpZiAobV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGlu
Z3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghIWZsYWcpOworICAgICAg
ICAvLyBTZXQgc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFzIHRoZXkgYXJlIG11dHVhbGx5IGV4
Y2x1c2l2ZS4KKyAgICAgICAgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFmbGFnKTsKKyAg
ICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxl
ZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
ID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5k
ZXggYzkzNzM0NjJmZWYyODQxZTU3N2MwNjA5ZDAzODJmMWI3MzYwN2I2ZS4uZmNiNzgyNDg0MzA4
M2NlZTNjMDgzNTk4ZDNhMThlOWQ3ZmJjNGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93
aW4vV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTExMiw4
ICsxMTEyLDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkOwogICAg
IHVuc2lnbmVkIG1fcGFpbnRDb3VudDsKICAgICBib29sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1l
bnRUYWc7Ci0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKICAgICBib29sIG1fZGlkQ2xvc2U7CiAg
ICAgYm9vbCBtX2hhc0N1c3RvbURyb3BUYXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pbklNRUNvbXBv
c2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRXaW5DRS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudFdpbkNFLmNwcAppbmRleCBiOWY0NjhmNDE1NDJiY2NkMDhiZTUxMWM2Nzgx
NDgxZjc1M2EzY2IyLi5mZTFhZjA0YTBlZWJkODg0ZTlkNTI3YzJlYmIyMDM2NTA5NDVmYzU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFdpbkNFLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFdpbkNFLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2lu
Y2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIwOSwxNCArMjEw
LDE4IEBAIHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVk
aXRvckNsaWVudFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZp
ZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIHJl
dHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAog
Ym9vbCBFZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBQYWdl
KiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRXaW5DRTo6dG9nZ2xlQ29u
dGludW91c1NwZWxsQ2hlY2tpbmcoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93eC9XZWJL
aXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcCBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3Vw
cG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKaW5kZXggNWVmNjRjZDRhOWMwMTM2M2M0OTllNTdmY2Q5
N2FkZDVkOWMzMTVhYS4uNzI2YWQwYTNmODg4YWM5NTY1MWM2YTMyMjdkNDJmM2IzNjhlMmE3YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3gu
Y3BwCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJGcmFtZS5oIgogI2luY2x1ZGUgIldlYkZyYW1l
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYlZpZXcuaCIKQEAgLTE0OSwxNCArMTUwLDE2IEBAIGJv
b2wgRWRpdG9yQ2xpZW50V3g6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKikKIAogYm9vbCBFZGl0
b3JDbGllbnRXeDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1l
bnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFnZSkKKyAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7
CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFi
bGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCBkNmRkMzhiNzk5ZTQ2ZGRkNjY0NDk1NzgzNDNmMzQ0Yzg4MmI2M2M3Li4xZDEzM2MyNDNlMzY4
YzRlODVkYmJjNGVjZjAyNTM2ZjIxZDNmMTdmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTggQEAKKzIwMTMtMDMtMDggIE1hbnVl
bCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmVzIGFsbCB0
aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAg
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUg
bWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFscyBmcm9tIG5vdyBvbi4KKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3Rh
dGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6Cisg
ICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChCbGFja0Jl
cnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3Jl
VGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJv
eHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6OldlYlRlc3RQcm94eTo6ZGlkU3RvcExvYWRp
bmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rl
c3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1
bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5o
OgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOiBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yCisg
ICAgICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBzZXR0aW5ncyBhcworICAgICAgICBDaHJvbWl1bSBEUlQgZGVmYXVsdCB2YWx1
ZXMgYXJlIGRpZmZlcmVudCBmcm9tIENocm9taXVtIGJyb3dzZXIuCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdI
b3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUu
Y3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNp
c3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZs
LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lz
dGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rl
c3RSdW5uZXJNYWMubW06CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgorICAgICAgICAoVGVzdFJ1bm5lclF0KToK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAg
ICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKwogMjAxMy0wMy0wNiAgSnVsaWUgUGFyZW50
ICA8anBhcmVudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgRGFzaGJvYXJkIGNsZWFudXA6IE1v
dmUgYWxsIGRhc2hib2FyZCB1aSByZWxhdGVkIGNvZGUgaW50byB1aS5qcy4KZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggN2QzZTg1ZTAwNzQzYzI0ZTEyN2FkMmMxZWZiYTY2MzRj
NjdkZWQzNi4uZGFlY2NhZmU2ZGRlNWFlY2FmM2U0YTRjZjA2YmQ2MmY3YmUzODQ2NSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMg
SlNWYWx1ZVJlZiByZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwogfSAgICAKIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVu
dENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIq
PihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50
c1swXSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQog
c3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQg
PCAxKQpAQCAtMTUyNiwxNiArMTUxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1
ZVJlZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0
UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0
LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNW
YWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5l
ciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1Zh
bHVlUmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjEz
OCw5ICsyMTE4LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rp
b25zKCkKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENh
bGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1
dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0
UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExv
YWRzIiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAi
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
Iiwgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1l
TG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdo
RWxlbWVudHMiLCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IDRmMzcwYzMzOWM3Y2ZhOThlODlmMzQw
MDI5MjM3YjFiNDg1NGYxZGIuLjE3ZmI0MDhkYjlmODg0MDAyNWY2YWI5MTc0N2JjYThlNzRiMzlh
ZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxl
ZChib29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9p
ZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VE
YXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0
eWxlU2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDcxNjUyZGNkMTIzOGExMzY0Mzcy
YjA5ODM1ODBiYzAyZDI4MzgxMDUuLjk1NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1
ZDg2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwCkBAIC0xNTEsNyArMTUxLDYgQEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewog
bmFtZXNwYWNlIFdlYktpdCB7CiAKIER1bXBSZW5kZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19j
dXJyZW50SW5zdGFuY2UgPSAwOwotYm9vbCBEdW1wUmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29u
c3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKQEAgLTI5NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5k
ZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcm
IHVybCwgY29ucwogCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hl
ZCA9IGZhbHNlOwotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNl
OwogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGlj
eSA9IGZhbHNlOwogICAgIHRlc3REb25lID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRl
eCBhMTNhZmIxMmQ4ZDUyMzgzMzU0N2YzM2MyNzA5MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVk
MDc2NTc2ZDdjZGJjZDAwYWRmMzlkY2UwOWMwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEw
Miw4ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6
Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hv
dWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRB
Y3Rpb24pOwogCi0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBj
b25zdCB7IHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2
b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNf
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRp
ZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAK
ICAgICAvLyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVz
dENsaWVudCBtZXRob2QKQEAgLTE0OCw3ICsxNDYsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBt
X2FjY2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJv
b2wgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lE
ZWxlZ2F0ZUVuYWJsZWQ7CiB9OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
YmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCA2NDVhZTc5Njg4MWYz
YTQxZjBiYzk3Mzc4MzkyOTIwOWU0MzcwNWRjLi5iZDJmMDM0NTc1OGYwM2FmYTE5NjI1YTQzNDQy
YjY0ZmQ0NjgyZDUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5
L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFj
a2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lk
IFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZmxhZykKICAgICBCbGFja0Jl
cnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5z
ZXR0aW5ncygpLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAg
ICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0
UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVO
VVNFRF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RS
dW5uZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAg
ICBpZiAoIW1haW5GcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNi
ZDc4MGRhNjFkOWJmZTdlOWM4MGU1MjFmNmIxYjkwNzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3
NjFlYmE3MjkwYzExZmNkMGExNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0
OSw4ICsxNDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBs
dWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsK
ICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2
b2lkIGRpZFN0b3BMb2FkaW5nKCk7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAg
dm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2Vi
Q29udGV4dE1lbnVEYXRhJik7CiAgICAgV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJN
ZWRpYUNsaWVudCgpOwogICAgIHZvaWQgcHJpbnRQYWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAg
LTM2OCwxNCArMzY2LDYgQEAgcHVibGljOgogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRT
dG9wTG9hZGluZygpOwogICAgICAgICBCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAg
ICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAg
ICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7
Ci0gICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0Nv
bnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRl
eHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5
QmFzZTo6c2hvd0NvbnRleHRNZW51KGZyYW1lLCBjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5l
ci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcAppbmRleCAyYWQzNDMwYjgyNzY4ZDdkZDAwMjdmNDhhZjhmMDY3MTI3YjY3ODI0
Li42MmI2ZjY5NTU4NDUyODU5NDc0YTVhYWFhYjk0YTFkYWUyZjI4N2E3IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0
UnVubmVyLmNwcApAQCAtMjA3LDggKzIwNyw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVz
dEludGVyZmFjZXMqIGludGVyZmFjZXMpCiAgICAgYmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5n
Tm9kZSIsICZUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9k
KCJkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVN
b2RlKTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVy
OjplbmFibGVBdXRvUmVzaXplTW9kZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7
Ci0gICAgYmluZE1ldGhvZCgic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZU
ZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5k
TWV0aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0Rl
dmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2si
LCAmVGVzdFJ1bm5lcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJk
aWRMb3NlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAg
LTQwOSwxMiArNDA3LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRT
dGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxk
QmxvY2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVy
bk51bGwgPSBmYWxzZTsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0j
aWZkZWYgV0lOMzIKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVl
OwotI2Vsc2UKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsK
LSNlbmRpZgogICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAg
ICAgbV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIoKTsKQEAgLTY3MywxNiArNjY1LDYgQEAgYm9v
bCBUZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0
dXJuIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UuaXNCb29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVz
c2FnZS50b0Jvb2xlYW4oKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFi
bGVkOwotfQotCi1ib29sIFRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZDsKLX0KLQogYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVz
KCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpA
QCAtMTQ2NSwyMCArMTQ0Nyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9k
ZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0
LT5zZXQoc3Vycm91bmRpbmdUZXh0LnRleHRDb250ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRz
LnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVz
dWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVu
dHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7
Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAg
ICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5o
CmluZGV4IDI1ZTdmZTg0NTg5YjdkODE3MWZjNjE5YjA5NTg5Y2QxMTkxNjA4YjEuLjFiMGM2ZDQ5
MWRkYjUyZmM4ODE0NjBhZDk5OTk3OTMyODlkOGZkYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAg
LTExOCw4ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlz
c2l2ZSgpIGNvbnN0OwogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkg
Y29uc3Q7CiAgICAgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAg
IGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVt
cFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0OwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAg
ICAgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRl
cigpIGNvbnN0OwpAQCAtMjY5LDExICsyNjcsNiBAQCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0
byByZXRyaWV2ZS4KICAgICB2b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQg
aW5zZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwotCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxl
Y3Rpb24gb24gZG91YmxlIGNsaWNrLgotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9p
ZCBlbmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwogCkBAIC02NjgsMTAgKzY2MSw2IEBAIHByaXZhdGU6CiAKICAgICBi
b29sIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0KLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZDsKLQogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwog
CiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1faHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJl
ZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDMxZDNhNGI0MTBhOGM1M2E2NDhjN2MwOGVmMGFk
ZjYyY2Q3MGIwNWIuLjMxMTRmYmRhOTdlOTNlODE5MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dl
YlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTIyMSw2ICsyMjEsMTIgQEAgdm9pZCBX
ZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5z
ZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0UGFz
c3dvcmRFY2hvRW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2Nh
bGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyNpZmRlZiBXSU4zMgorICAgIHNldHRpbmdzLT5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworI2Vsc2UKKyAgICBzZXR0aW5ncy0+
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisjZW5kaWYKIH0KIAog
fQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggODY4MTMzZmU0NzBmOTFhZWZjZWQxZmMx
OTZiY2E4ZjcwZDMwZDA5NC4uY2M1MDc1MzRlMTZkOTg1OWEyMmM1N2RjMjFkNTRhYzViM2UyYWFk
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC05NzgsMTYgKzk3OCw2IEBAIHZvaWQg
V2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKQogICAgICAgICBtX2RlbGVnYXRlLT5w
cmludE1lc3NhZ2UoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKIH0KIAot
Ym9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0g
ICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50
ZXN0UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2
b2lkIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdl
YkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogewogICAgIG1fdGVzdEludGVyZmFj
ZXMtPmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRNZW51RGF0YShjb250ZXh0TWVudURhdGEpOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3Bw
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDg3
NmU1M2YzMTc3ZDU0MGYwYWQzZDg3MzYxOWZhYjE1NTllNjAzN2IuLmE3YWZmNjVkYjZjM2Q0YWU2
ZTI0YTg5YjBmYzExNmNhMGU2NTQxMzcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE3MCwyMCArMTcwLDYgQEAgYm9vbCBXZWJWaWV3SG9z
dDo6c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5n
ZSYgcmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJWaWV3SG9zdDo6aXNTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdl
YlZpZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotI2lmIE9T
KFdJTkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNl
bmRpZgotfQotCiBib29sIFdlYlZpZXdIb3N0OjpoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgp
CiB7CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1lLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBmZjJlZGE3ZmZlZWY4ZjY3NTljZTRh
OTM2YmRkMjlkN2JkNGFhOGM5Li40YTM0ZjM4YTJlMzNjMDc0ZjEwN2YwMGVjOWY3YzkwNGVhMjk1
NGE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9z
dC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAg
LTE0Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZp
ZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20s
IGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSwgYm9v
bCBzdGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNv
bnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHls
ZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2Um
KTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdmly
dHVhbCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lk
IHJ1bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2Vi
U3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bk1vZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6
OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IGY4N2VlYjA3MDY0
NmY1OTAxN2JhNjgwODRjZDc2ZDJkMGE2ZDEzOTYuLjYxMjdjOWQ2MjkyNGIxZDg0Y2MwYjdiOGJj
NTM1NjExODA1MWNjYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1w
UmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMzE1LDggKzMxNSw2IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24o
bWFpblZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9y
QW5kVXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7
Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCksIGZh
bHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdu
b3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1n
aXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggZTY1YjVhMjU5ZTJjMTI1
ZGEyN2NjOTAwMWNlN2I0MThmMzYwOTNkNS4uYTk5YTNiNWVkYzc2ODdiNDJmNDIxMjg4OTVkYThk
YTdmMzVjMWU3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5u
ZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNw
cApAQCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJv
b2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCks
IGZsYWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29sIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZv
aWQqKQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAg
ICAgICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51
dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXco
KSwgZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQo
Ym9vbCBmbGFnKQogewogICAgIGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5k
b3dzX3NldChicm93c2VyLT5tYWluVmlldygpLCAhZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhl
ZGRlMDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNh
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUw
MSw4ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVz
KCkKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9j
dXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRf
Z2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLSAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVl
KTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERlZmVyc0xvYWRpbmcod2ViVmll
dywgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRU
UExvYWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rl
c3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwCmluZGV4IDQyY2U2NzI2ZDg4M2U5MzdlZWE1YmU4YzBmNjRiZDJlMDdmMWM4YzQuLmNkMTA0
NGQwZDIzMzFlMmE0YTFlYzc3ZThkNDJmOTcyN2ZhYWRhNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTMyMywxMSArMzIzLDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBp
bXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFt
ZSksIGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQo
dm9pZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdhdGNoZG9nKDApOwpAQCAtNDg1LDExICs0ODAs
NiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVk
KQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9
CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBv
cHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3
ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5
MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0
OWE4YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRy
ZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBA
IC0xMjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRT
dGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBnVGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5w
dXRGaWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZv
Y3VzUmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVs
aXN0c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBiMjMyNmEyNmIzNDlhMDgz
YmE3OThhOGM3Yjk1YWRhOWRmMDVlMzY2Li5iMzFjOWFkNzI3YjJlNjZmN2ZlN2I1Y2ExZDY4ZGJi
NGU0N2JmZTY5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5l
ck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpA
QCAtNjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wg
d2luZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRl
XTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9v
bCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZsYWddOwotfQotCiBzdGF0aWMgY29u
c3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBz
dGF0aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0
aW1lciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1
bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRy
ZWVRdC5jcHAKaW5kZXggMjNmZDM1YzFjNmZiNWYxNzkzM2I2NTMyYmQ0Yzg3NDE3MDBlOGNkMi4u
ZGZhNjcyYjY3NGRlYzNjZTk3MDYyZjU4ZmVmY2ZjOTkzODAxYTA1ZiAxMDA3NTUKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTE5Miw4ICsxOTIsNiBAQCB2
b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+
c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCkt
PnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVu
bmVyKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVz
dFJ1bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAg
ICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKIAogICAgIC8v
IGdsb2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IGU1ZTgyNDMwZTE3ZGUyOTYxNzkzMzVkNGU2
NTU4NWQxYjRjNzI5YzAuLjYzODlhMGRlZmE3N2UyYTIzYjE2ODVjYjcxNDAyN2QyZmI1NmZkYTEg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzIwLDE2ICs3
MjAsNiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFTdHJp
bmcmIG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5nJgogICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1h
aW5GcmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3kobywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
clF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+
cGFnZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRl
clRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobV9kcnQt
PnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lclF0OjpleGVjQ29t
bWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBE
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5w
YWdlQWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5u
ZXJRdC5oCmluZGV4IDY1YmJiODJhMmNiNDEzZTcyMTk3MzhiZmE3ZTU4MzA3Y2JjY2RjMGUuLjk5
MDdhMmU1MzcyZjg4OWJhZWEyM2RjM2EwNTg0ZTc2MjZlOTZjMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0xNzgsOCArMTc4LDYgQEAgcHVibGljIFFfU0xPVFM6
CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEF1
dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0Vmlld01vZGVNZWRp
YUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwg
Y29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5nKCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5h
YmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKICAgICBib29sIGZpbmRTdHJpbmcoY29u
c3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0JiBvcHRpb25BcnJheSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCBmNzQ3NmZhMTI2M2RmMWUw
Y2UyNjA2YTM4Mzc4NzNlZGE3OGNlZjViLi44OWZhOWY3YWZhMTYzNWY2MTI1ZDQ0YzllMTMyNGVk
YzE1ZTI5MTA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5j
cHAKQEAgLTg5OSwxMCArODk5LDYgQEAgc3RhdGljIHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAgICAgV2ViQ29yZVRlc3RTdXBwb3J0OjpyZXNl
dEludGVybmFsc09iamVjdChjb250ZXh0KTsKICAgICB9CiAKLSAgICBDT01QdHI8SVdlYlZpZXdF
ZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoU1VDQ0VFREVEKHdlYlZpZXctPlF1ZXJ5SW50
ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKFRSVUUpOwotCiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2Vi
Vmlld1ByaXZhdGUoUXVlcnksIHdlYlZpZXcpOwogICAgIGlmICghd2ViVmlld1ByaXZhdGUpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0
UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNw
cAppbmRleCA2NjQ4YzNlZTE1ZGQ0YTU2ZWUwYjQ1YjIxZTA4N2ZhODY0NGU2OWYyLi5kZDRkODcz
MWRmZWU0ODNkZmUwZTliODcxNTJmYTY0M2M2ZGEwYzc5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03MjMsMzIgKzcyMyw2IEBAIHZvaWQgVGVzdFJ1
bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCBmbGFnKQogICAgIDo6U2VuZE1lc3NhZ2Uod2ViVmll
d1dpbmRvdywgZmxhZyA/IFdNX1NFVEZPQ1VTIDogV01fS0lMTEZPQ1VTLCAoV1BBUkFNKTo6R2V0
RGVza3RvcFdpbmRvdygpLCAwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmll
dzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlm
IChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
ZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3
PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7
Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0VkaXRpbmctPnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBD
RlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRp
YyB2b2lkIENBTExCQUNLIHdhaXRVbnRpbERvbmVXYXRjaGRvZ0ZpcmVkKEhXTkQsIFVJTlQsIFVJ
TlRfUFRSLCBEV09SRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RS
dW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCmlu
ZGV4IDQ3NTNjMjljYTU0ZjZhZWUxYTlkY2E5MTNkOWI1MWVkNTAxYTlhMWUuLmY0YmI5NGEwZTNk
Mjk2Y2FmN2MwODZjMWRmYzk3N2JjYzY2ZTY5OTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
VGVzdFJ1bm5lcld4LmNwcApAQCAtMTUxLDExICsxNTEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNl
dFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFdhaXRUb0R1bXAoYm9vbCB3YWl0VW50aWxEb25lKQogewogICAgIHN0YXRpYyBjb25zdCBpbnQg
dGltZW91dFNlY29uZHMgPSAxMDsKQEAgLTI4OCwxMSArMjgzLDYgQEAgdm9pZCBUZXN0UnVubmVy
OjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplKQogICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2Fu
UHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJvb2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBi
ZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91YmxlIGdhbW1hKQogewogICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgZm9yIERldmljZU9yaWVudGF0aW9uIGxheW91dCB0ZXN0cy4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAx
NjI1YmZlOWZmOWE5NWZmYTAxMDM2ZGRiZTNlOWI4ZjMwOGY3YTY0Li41ZDQ4ZjAyYTIyY2Q1ODA1
ZmJkZGQzOGVhOGNkMmQ0NTg0OGIwZmY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMtMDMt
MDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZXBs
YWNlIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBieQorICAg
ICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBpbiB0ZXN0cy4KKworICAgICAgICBCZSBzdXJlIHRoYXQgdHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcmUgc2V0
IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5IGFyZQorICAgICAgICBtdXR1YWxseSBleGNsdXNp
dmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQu
aHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3It
c3Bhbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGlj
ay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlv
bi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRh
YmxlLmpzOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6Cisg
ICAgICAgIChpbml0U3BlbGxUZXN0KToKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxs
aW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sOgorICAgICAgICAq
IGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sOgorICAg
ICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zOiBVbmZsYWcKKyAgICAgICAgZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRh
YmxlLmh0bWwKKyAgICAgICAgYXMgaXQgcGFzc2VzIG5vdy4KKwogMjAxMy0wMy0wNiAgVGFrYXNo
aSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+CiAKICAgICAgICAgQm94LXNoYWRvdyBkaXNw
bGF5ZWQgaW1wcm9wZXJseSB3aXRoIGJvcmRlci1yYWRpdXMuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCmluZGV4
IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgxOTgxZGVkNjkuLmQwZjdkN2FmMTU4ZGEy
NWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCkBAIC01LDYgKzUs
NyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNw
YW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lk
ZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJmYmZjNzQwYWZhMzVjMmQwOGFjOTU3N2FiNmI5
OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVmNTI3YWVlMzZjMGQ4ZmJiMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNw
YW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1i
ZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAog
ZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0
bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4YWE4Mzc2OTM3N2M4Njg2YWY4Zi4uYzliNDRl
NmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkzNjlhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2Ut
Y3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCmluZGV4IGYyODBh
MjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2Mzc1MDQuLmY3NGFhMjY1Njc3NjU2MzU4YTc5
NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2Vs
ZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2gu
aHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwKaW5kZXggODUzMGZiYzUzMWE0NTNh
NmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4M2ZiMWZhMWU1OGI1ZTc0MTVlMmYzYWUxZjI5
NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAg
IHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlu
bGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250
ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3MmFmZjJiMjVmYjcyMzU2OTUwMzA5MDk1YzFj
MmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2ODIyMTk5MDlhOTcxNmMyMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNr
LWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcworKysgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxh
c3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3ICs3OCw4IEBAIGZ1bmN0aW9uIHRlc3RXaXRo
Q2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1MLCBleHBlY3RlZFRleHQpCiAgICAgc2hvdWxk
QmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5IiwgdG9MaXRlcmFsKGV4cGVjdGVkVGV4dCkpOwog
fQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
OworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsK
K2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZh
bHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUgPSAiPHNwYW4gaWQ9J3Rh
cmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1lMTwvc3Bhbj4gYW5kIG5vdCBzZWxlY3QgdXMi
OwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxkU2VsZWN0ZUZpcnN0V29yZElubGluZSwgInNl
bGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNv
dXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0
aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2NjcxZTdjODQ5MDdiNzA3MmQ0OTUyMC4uMDk0
YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0ZjU2MjQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCkBAIC0yNyw4ICsyNyw4IEBAIGZ1
bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1lbnRJZCwgdGVzdFRleHQsIHRlc3RGdW5jdGlv
bikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9IHRlc3RGdW5jdGlvbjsKICAgICBqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZp
ZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVk
aXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jl
cy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAppbmRleCBjYTU5MzVmZTAwMDVhNWEwNjEz
NTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4MTBkMDFiYjk4ZTZlNWYxM2MzOGQ2MDkzZDM2
ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5n
LWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVu
ZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRp
b24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsK
IAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdGhlIHRy
YWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9u
Lm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwog
ICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0
aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3ICs1MCw4IEBAIGluaXRTcGVsbFRlc3Qo
ImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewog
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5n
KCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRo
IHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICB2YXIgeCA9IGRlc3Rp
bmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCAr
IDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRl
c3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1s
CmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzkyN2EwOWMzZmM0NmNlMDI3Y2YuLjlkMjQ5ZmQ3
ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndl
bGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8g
RG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0cmFpbGluZyB3aGl0ZXNw
YWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChm
YWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQu
b2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRl
c3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIs
ICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVh
bFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAg
IC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdHJhaWxpbmcgd2hpdGVz
cGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQu
b2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRl
c3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3Ag
KyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCA1ZWExNzZmNGNjZmFmYjhiMmQ4MTYxNzRlMGUxNDdjMzAwZjYwNzhmLi5mYjBiOGI1Y2ZkNjI1
OTg3Y2U4ZmJjZTdkYzlmZjUzYmU4NzkxOTcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc1LDkgKzM3NSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0aC1lbWJlZGRlci5odG1sCiAjIFdl
YktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRGlzYWxsb3dlZFVS
TAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJlc291cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1k
aXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCi1lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAotCiAj
IFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5
CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>192999</attachid>
            <date>2013-03-13 14:53:31 -0700</date>
            <delta_ts>2013-03-13 15:27:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130313224927.patch</filename>
            <type>text/plain</type>
            <size>89897</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uMTUyMTUxZmM0Zjg4ZDEwYWQ5YmExNDllOWNhZmEw
NmE2NWNkOTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLjQzM2ZjZjlm
OGM1ZWFlYjNhNTIzY2U4MDEyYjE0YTg4MGYyMDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjdkYTcwNDdjZTg0YTY1MjE3NWRiOTkyZDNkYjNkODA1
Nzg5ZGQ2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IFBhZ2Ugc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQK
KyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgdXBkYXRlIEFQSSBh
Y2NvcmRpbmdseS4KKworICAgICAgICBXZWJTZXR0aW5ncyBBUEkgaXMgcmVxdWlyZWQgYnkgRFJU
IGluIG9yZGVyIHRvIHNldCB0aGUgcHJvcGVyIGRlZmF1bHQKKyAgICAgICAgdmFsdWVzIHdoaWNo
IGFyZSBkaWZmZXJlbnQgZnJvbSBicm93c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcHVibGlj
L1dlYlNldHRpbmdzLmg6IEFkZCBuZXcgQVBJIHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQKKyAgICAgICAgYW5kIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGlu
Z3MuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVk
IHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tIHBhZ2UKKyAgICAg
ICAgc2V0dGluZ3MgZnJvbSBub3cgb24uCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOiBVc2UgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6IEltcGxlbWVu
dCBtZXRob2RzIGVzdGFibGlzaGluZyB0aGUgcGFnZQorICAgICAgICBzZXR0aW5ncy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdz
SW1wbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0
dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOiBJbXBsZW1lbnQgbmV3IEFQ
SSB0byBtYW5hZ2UgdGhlIG5ldyBzZXR0aW5ncy4KKwogMjAxMy0wMy0wNyAgSm9jaGVuIEVpc2lu
Z2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGV4cG9zZSBV
c2VyR2VzdHVyZVRva2VuIHZpYSBXZWJLaXQgQVBJIHNvIFBQQVBJIHBsdWdpbnMgY2FuIGNvcnJl
Y3RseSBjb25zdW1lIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZGJlNmNmZDYxZDNlMTk2ZTBjNzdi
ZmNjZDM0ZWVjMTI5YTQ1YmE1ZS4uNDk2NjNkYmU4Mjk0MDBhZjA1MTkyY2VmNDczNzU3N2YzOWI2
ZDEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisK
IDIwMTMtMDMtMDYgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckVmbCBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CmluZGV4IDNmOGI1NGExZjI5ZmYwOWJhYmJlOTUzYzRmZmIzOGEwNjY0MjNlN2YuLmJkNDFhOWEz
MDk1OGFkNTI2ZDQzOWYxMDFiY2YzZjJmOTlkNzE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBz
ZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAg
ICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1v
cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50KToKKwogMjAxMy0wMy0w
NiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1ZGEwMmEzOTI3NzVh
MWM0Mjk1YmQyNzhhMTRhNTg5Y2IzY2Q0MjY1Li5hNzEwZWYyYTgxZDUwZGUzNGI4NmY3OTY4NWE2
YzEyNDdjMDIwOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMt
MDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3Jv
dXBOYW1lOl0pOiBJbml0aWFsaXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVs
dHMuCisgICAgICAgICgtW1dlYlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWRdKToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEu
bW06CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZhdWx0IG1vdXNlIGN1
cnNvciBiZWhhdmlvciBzaG91bGQgYmUgYXV0by1oaWRlIGZvciBmdWxsIHNjcmVlbiB2aWRlbyB3
aXRoIGN1c3RvbSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MWY5OTkwNTY1YzljZjgyYzBm
ZWYzMDExYTE3ZjJkMzFjYzBmYzlmLi4xOWJjN2YwN2ZjOGNiZTkwYzNlOTdlYjA1NjdkNzQ0OWQy
MjY0M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6
OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEz
LTAzLTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmVsZW1lbnREb2Vz
QXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLjRkOTFjYjM2OGRjZjAwMjY0MTg4NTlh
OGViMjFlY2ZiMTZkYzY0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uMGU2MjcyMjY3NTFlNDc1
YmI2ODRlNjQ3ZGEwNTcyZmM3M2I0MDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MDM4NzE1NTViYWRlMzY4MzI4MTY4ZTNkNjMyMjQzOWFiNWM4ZWJlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBhM2JjZGRiNzYwMjFlMmM2
ZWQ3OGQ2NDg0ZjNkNmVkNjJjMWM4ZTBmLi44ODRmZDZjN2E4NDFlNTE4ZDlkZTE3ZTBkMWU3YTFl
OWExNjg0NDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTQxLDYgKzE0MSwyMSBA
QCBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0g
dHJ1ZTsKICNlbHNlCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBP
UyhNQUNfT1NfWCkKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7
CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgogCiBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZSgwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2ZjMDk3NjdiZWZmMjE0YTUzYmY3ZWJh
ZC4uYmU1OWYxNzEyMTY4MTU0YmU5NTU4ODViNjE2ZGVhZjkyNGU0OTcxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDUgQEAgdW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkCiAKIGxvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAotc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGluaXRpYWw9dHJ1ZQorc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGluaXRp
YWw9ZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xp
ZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThkMS4uZTk3
NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAtODMsNyAr
ODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5nZSogZnJv
bVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29sIHN0aWxs
U2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29y
ZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdl
KiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikgPSAwOwog
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVmODgyNTA0
YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLmE4MWUyOTkzNGY5NTY1OTYyMzM4MjhlY2Mx
MjE3MDBjYjI2ZjBlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2
YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUpCi0gICAgICAgIHJldHVybiBtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJU
cmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFibGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZjE5MjBk
NzE5NjQ4NmU5NjEyN2U0MDRmNDRjNzU0YmVmMGI1NzdjNS4uMTI0NmM0Yzk0ODMxMmQ0NTQ5MGQz
NDkwMWE4YjIyNWU1YjZjZjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCkBAIC0xNDcsNiArMTQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZW5kZXJWU3luY05vdGlmaWNhdGlvbkVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0g
VVNDUklQVF9DT01NT04pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlcmlmRm9u
dEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihib29s
KSA9IDA7CkBAIC0xNTUsNiArMTU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG93UGFpbnRSZWN0cyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dQbGF0Zm9y
bUxheWVyVHJlZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NTdGFuZGFs
b25lSW1hZ2VzVG9GaXQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCkg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmlu
ZGV4IGU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4
NTMxOWQ2OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYlJhbmdlJikgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0
cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmly
dHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJl
dHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25F
bXB0eSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5NGQzMzRiZTNhODYwYmM0ODIyZjQuLjFk
MTNjOGVmMDU0NmIwZmExNWMxMDU2ZjBlMTQyNzViOWZkYzA0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtOTUsMjAgKzk2LDE2IEBAIHZvaWQgRWRpdG9yQ2xpZW50
SW1wbDo6ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpCiAKIGJvb2wg
RWRpdG9yQ2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBpZiAo
bV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCkt
PmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaWYg
KG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNl
dHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4g
bV93ZWJWaWV3LT5jbGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7
Ci0jaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCisgICAgaWYgKG1fd2Vi
Vmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRTcGVsbGNoZWNrQnlE
ZWZhdWx0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IDI2NGM3NTZhOGRiOWMwNjFlYzUwNzg3MDI4NDA2NzAxNTAzZTA3YjcuLjY2ZWY1
MWEzMzYxM2U5ZmMxOTQ5OTUxZGUzZmI1NzFkYjQ1NGYxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNzYxLDQgKzc2MSwxNCBAQCB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Q29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldENvbXBvc2l0ZWRTY3JvbGxpbmdG
b3JGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9z
ZXR0aW5ncy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKK30K
Kwordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29s
IGVuYWJsZWQpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGVuYWJsZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNzJhM2UzMTI3NDExMTUzMDhkMGEw
NGFlYzUxNmMxYzVhNWVlYTgxYi4uYWQyYzkzZmNmZTlkZTBkN2FjZjdhZWRkNTlmOGFiYTU5YWNj
NjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
QEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZT
eW5jRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmlj
YXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNj
cmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERp
c3BsYXlDYXB0aW9ucyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkRGlzcGxheVN1
YnRpdGxlcyhib29sKTsKQEAgLTE1MSw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3dQYWludFJlY3RzKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGxh
dGZvcm1MYXllclRyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NTdGFuZGFs
b25lSW1hZ2VzVG9GaXQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5
KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuY3BwCmluZGV4IDMyMGZmOWYwNDk0ZTI3MTc4MjA5N2U0MzgxOWI2MTcwZDM4ZjY4NWIu
LjUyMTVjZTYwYzVjODRiYTY5YTc4M2FkNzMwNWJhNThlOWNiNzYwMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcApAQCAtMzIzLDI4ICszMjMsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29u
cwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxlZCgpOwogfQogCi12b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwq
IGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBh
Z2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5h
YmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQp
Ci17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0K
LSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBp
ZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
KQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaAppbmRleCA5NTg4ODExZmFkOGNiNTA5MDY1YzQ0ZTNiNzY5N2Q0ZWI2MzgyMzUwLi4z
MTFkOWEwMjlhOWFlYTAyYTYyMzMwYmEzNzYyYzk1MGE2ZWM3N2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaApAQCAtODAsOCArODAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNDb21t
YW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogbmFtZSk7
CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTUmVnaW9u
c0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAg
c3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAg
c3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxlZChib29sKTsKIAogICAgIHN0YXRp
YyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAppbmRleCBh
NGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBiZDNmLi45MDFhYTUyNzhhMTU5M2Q2
YWViYWE0MGJmNzVmYjg2MGY4ODgxZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKQEAgLTI0MywyOCArMjQzLDIwIEBA
IHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChi
b29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFibGVk
OwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwot
fQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IEVXS1By
aXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRl
Ojpjb3JlUGFnZShtX3ZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRFZmw6OnRvZ2dsZUNvbnRp
bnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTM3MSw4ICszNjMsNiBAQCB2b2lkIEVkaXRvckNsaWVu
dEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqKQogRWRpdG9yQ2xp
ZW50RWZsOjpFZGl0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpCiAgICAgOiBtX2lzSW5S
ZWRvKGZhbHNlKQogICAgICwgbV92aWV3KHZpZXcpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCAzYzJhMjQ3ZGU0N2E5
N2RmYjM0NGZiZTBjYzQ5ZWI4MmUzNjYzMDQ4Li5kMGQ1ZDMwODE1M2NiYzIwOTQ1ODMxZmMxNTA0
OWE1ZjE3NDhhYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuaApAQCAtODQsOSArODQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CkBAIC0xNTcsOCArMTU1
LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7Ci0gICAg
Ym9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDsKIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmlu
ZGV4IDRiNmQyMDJjN2I0YmMzMmI4NDRiZDg0NjBmYWMwZTZmM2IzZGFmMTUuLjliNDdjZjcxOWNk
ZWY5ZDY2M2U2MTgzZjQ0YTI3Y2I4MGZkMzEyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cApAQCAtODEsNyArODEsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c19kcnRSdW4gPSBmYWxzZTsKIGJvb2wgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKLWJvb2wgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
PSBmYWxzZTsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6RnJhbWVMb2FkRXZlbnRDYWxsYmFj
ayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IDA7
CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgPSAwOwogCkBAIC0x
MTIsMTYgKzExMSw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpsaW5rc0luY2x1
ZGVkSW5Gb2N1c0NoYWluKCkKICAgICByZXR1cm4gc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsK
IH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gc19z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotfQotCiAvKioKICAqIGdldEZyYW1lQ2hp
bGRyZW46CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCkBAIC00NTMsMTUgKzQ0Miw2IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGJvb2wgZGVmCiAgICAgY29yZSh3ZWJWaWV3KS0+c2V0RGVmZXJzTG9h
ZGluZyhkZWZlcnMpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxl
ZCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh3ZWJWaWV3KTsKLQotICAgIFdlYktpdDo6RWRpdG9yQ2xp
ZW50KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkVkaXRvckNsaWVudCo+KGNvcmUod2Vi
VmlldyktPmVkaXRvckNsaWVudCgpKTsKLSAgICBjbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChlbmFibGVkKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZv
cmNlV2ViVmlld1BhaW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aAppbmRleCAwMmZjNzE3MzIzMGM3ZDY3MTExOWRlZGNhZmQ3ODA4YWYzODk5MzQwLi4xMDYyYzJh
MDYwMzU3M2Q2NTUxZTYyZjNkMjg5MzZhZGIyZDNiOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aApAQCAtNTEsOCArNTEsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRMaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKGJvb2wpOwogICAgIHN0YXRpYyBib29sIGxpbmtzSW5jbHVkZWRJ
bkZvY3VzQ2hhaW4oKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wpOwotICAgIHN0YXRpYyBib29sIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKTsKIAogICAgIHN0YXRpYyB2b2lkIGNsZWFyT3BlbmVyKFdlYktpdFdlYkZyYW1l
Kik7CiAKQEAgLTc3LDcgKzc1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlY3Rhbmds
ZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwog
ICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqLCBmbG9hdCwgZmxvYXQs
IGZsb2F0KTsKICAgICBzdGF0aWMgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZpZXcq
LCBib29sKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2Vi
S2l0V2ViVmlldyosIGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIGZvcmNlV2ViVmlld1BhaW50KFdl
YktpdFdlYlZpZXcqKTsKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkKQEAgLTE0NSw3ICsxNDIsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwogICAgIHN0YXRp
YyBib29sIHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47Ci0gICAgc3RhdGljIGJvb2wgc19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBm
OTQ0MjllOTc4NTA2NzFlNDg4MTg2ZDlmYTE5MDY4YmQ2MDM1ODVmLi45MmJhMTY1ZTQ0MjRiOWRi
NGQwM2U5NWJkMGMwNGIxMTgxY2M1NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAi
V2ViS2l0RE9NQmluZGluZy5oIgpAQCAtMzYwLDIxICszNjEsMjAgQEAgdm9pZCBFZGl0b3JDbGll
bnQ6OnBhZ2VEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNs
aWVudDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIGJvb2wgRWRpdG9yQ2xp
ZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUobV93
ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsK
IH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVl
TW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJW
aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcgKzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRp
dG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xp
ZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtpdF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2Vu
ZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFl
MTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVS
YW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hl
Y2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFu
c2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1h
bmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi5l
YzlmMDkzOGVhYTQzOGUwZWQ3NWMyMDAzYWI4ZDcxOTVjZDgwMWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4
ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2Vi
QXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwxOCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6
c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7
CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIFJhbmdl
KiByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3NjZmOWQ0ZWI0
NjRkYmIxYmYxZDA3ZmY5Y2EyZGVmNGRmOWNkMzE2Li4xMGNlODVlMmQzMWQ2MzJkYWVhNThiYTk1
ZGQxNzY2NTBlNmY2MjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03
ODMsNiArNzgzLDEyIEBAIHN0YXRpYyBib29sIHNob3VsZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0
cmlidXRlU2V0dGVycygpCiAgICAgICAgIFtzZWxmIF9pbmplY3RPdXRsb29rUXVpcmtzU2NyaXB0
XTsKICAgICB9CiAKKyAgICBpZiAoW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0
c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0pIHsKKyAgICAgICAg
Qk9PTCBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJk
VXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07Cisg
ICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoc21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2Ut
PnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIXNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk7CisgICAgfQorCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJh
bWVXaXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpm
cmFtZVZpZXddOwogCiAgICAgTlNSdW5Mb29wICpydW5Mb29wID0gW05TUnVuTG9vcCBtYWluUnVu
TG9vcF07CkBAIC0yNDcwLDE0ICsyNDc2LDE2IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhv
ZChpZCBvLCBTRUwgcykKIAogLSAodm9pZClzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOihCT09MKWZsYWcKIHsKLSAgICBfcHJpdmF0ZS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCA9IGZsYWc7Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDpmYWxzZV07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5n
cygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAg
ICBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBh
cyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIFtzZWxmIHNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDohZmxhZ107CisgICAgfQogfQogCiAtIChCT09MKWlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJpdmF0ZS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnNldHRp
bmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogLSAodm9pZClz
ZXRNZW1vcnlDYWNoZURlbGVnYXRlQ2FsbHNFbmFibGVkOihCT09MKWVuYWJsZWQKQEAgLTU0Mjks
MTcgKzU0MzcsMTcgQEAgc3RhdGljIE5TQXBwbGVFdmVudERlc2NyaXB0b3IqIGFlRGVzY0Zyb21K
U1ZhbHVlKEV4ZWNTdGF0ZSogZXhlYywgSlNDOjpKU1ZhbHVlIGoKIAogLSAodm9pZClzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIGlmIChfcHJpdmF0ZS0+c21h
cnRJbnNlcnREZWxldGVFbmFibGVkICE9IGZsYWcpIHsKLSAgICAgICAgX3ByaXZhdGUtPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGZsYWc7Ci0gICAgICAgIFtbTlNVc2VyRGVmYXVsdHMgc3Rh
bmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCBmb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBpZiAoX3ByaXZh
dGUtPnBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpICE9IGZsYWcp
IHsKKyAgICAgICAgX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmbGFnKTsKKyAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJE
ZWZhdWx0c10gc2V0Qm9vbDpfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCkgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07CisgICAg
ICAgIC8vIFNldCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFzIHRoZXkgYXJlIG11
dHVhbGx5IGV4Y2x1c2l2ZS4KKyAgICAgICAgW3NlbGYgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZDohZmxhZ107CiAgICAgfQotICAgIGlmIChmbGFnKQotICAgICAgICBbc2VsZiBz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZhbHNlXTsKIH0KIAogLSAoQk9PTClz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByaXZhdGUtPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCkt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldENvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXdEYXRhLmgKaW5kZXggYWRlYWJlN2VlMmNmYTIyY2JkYzI4ZTNiYTgzMzc4ZjQ2MDNlMDJl
Mi4uMzQ3YWJhNDU3ODVmMTgwZThjOTc0NmNjY2I2MmE0ZTY3ODBlOTRjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTQ2LDkgKzE0Niw2IEBAIHByaXZhdGU6
CiAgICAgQk9PTCBoYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgc3Bl
bGxDaGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBCT09MIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZDsKLSAgICBCT09MIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgICAgIAog
I2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBCT09MIGRhc2hib2FyZEJlaGF2aW9y
QWx3YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzOwogICAgIEJPT0wgZGFzaGJvYXJkQmVo
YXZpb3JBbHdheXNTZW5kQWN0aXZlTnVsbEV2ZW50c1RvUGx1Z0luczsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGUyNzY2ZjAxYTM1YmMwN2VlYWE0ODZjMjY1
NWI0YzAxYmFlZDk3YTYuLmM2ODFmMDliYTcyMTZkOGQyMTZlNTk3NTI2YWY4NTgxZDAwM2RlN2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0KKysr
IGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQpAQCAtOTUsMTAgKzk1
LDYgQEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250cm9sbGVyKFdlYlZpZXcq
IHdlYlZpZXcpCiAKICAgICBzaG91bGRDbG9zZVdpdGhXaW5kb3cgPSBvYmpjX2NvbGxlY3RpbmdF
bmFibGVkKCk7CiAKLSAgICBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSAhW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZF0KLSAgICAgICAgfHwgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJsZWRdOwotCi0KICAgICBw
bHVnaW5EYXRhYmFzZUNsaWVudENvdW50Kys7CiAKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFU
SVZFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggNTlmMzcxMDgyMGFkMzE3NzNmNGQxMzJm
N2VjNGRiMzJlN2YzM2Y5ZC4uMjQwMzRmNmIyOGZhNTFlOGY5ZDYwOTU2MTdjMDkwODg4MWMxMDE1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVy
VHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMyNiwxOCArMzI2LDYgQEAgdm9pZCBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQoUVdlYlBh
Z2VBZGFwdGVyKiBhZGEKICAgICBhZGFwdGVyLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRBdXRob3JB
bmRVc2VyU3R5bGVzRW5hYmxlZCh2YWx1ZSk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0
ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFk
YXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGVuYWJsZWQpOwotfQotCi0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyICphZGFwdGVyLCBib29s
IGVuYWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50UXQqPihhZGFwdGVyLT5w
YWdlLT5lZGl0b3JDbGllbnQoKSktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZW5hYmxlZCk7Ci19Ci0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNv
cmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciogYWRhcHRlciwgY29uc3QgUVN0cmluZyYg
bmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgYWRhcHRlci0+cGFnZS0+Zm9jdXND
b250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1l
KS5leGVjdXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCA3MGZmODVlNzA3Y2ZkMDlk
ZDgwYjliZjNhN2NjZGE1M2UzYTM1YzRiLi42N2EwNDM2ZDhjZTlmZmY2MTBlODI5NzUyMzM4MjE4
OWJhN2UzZTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC05NCw4ICs5NCw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCBleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUoUVdlYlBhZ2VBZGFwdGVy
KiwgY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpOwogICAgIHN0YXRp
YyBib29sIGlzQ29tbWFuZEVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgUVN0cmluZyYg
bmFtZSk7CiAgICAgc3RhdGljIGJvb2wgZmluZFN0cmluZyhRV2ViUGFnZUFkYXB0ZXIqLCBjb25z
dCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBl
bmFibGVkKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKFFXZWJQYWdlQWRhcHRlciosIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50
TGlzdCBzZWxlY3RlZFJhbmdlKFFXZWJQYWdlQWRhcHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFu
dExpc3QgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxv
Y2F0aW9uLCBpbnQgbGVuZ3RoKTsKICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24o
UVdlYlBhZ2VBZGFwdGVyKiwgY29uc3QgY2hhciogdGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZl
MGE1NGJmMWEzYjBiYmM1ZWM1YWEyNDkwODdhMDMuLmQ4MmQwZTVmZDdkZTgxOTFmZjI5MjEzZjI3
ZDQwOGQ0ZmEyMDFhZDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRWRpdG9yQ2xpZW50UXQuY3BwCkBAIC0zMzMsMTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNs
aWVudFF0OjpwYWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0
SW5zZXJ0RGVsZXRlKCkKIHsKLSAgICBib29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZDsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAg
IFBhZ2UqIHBhZ2UgPSBtX3BhZ2UtPnBhZ2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFn
ZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5n
cygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7CisgICAgICAgIHBhZ2UtPnNldHRpbmdz
KCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCkt
PnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSk7CisgICAgfQogfQogCiBib29sIEVk
aXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAg
IHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgUGFnZSogcGFn
ZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxD
aGVja2luZygpCkBAIC01NDEsOCArNTUwLDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVu
dFF0KFFXZWJQYWdlQWRhcHRlciogcGFnZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0
ZXIpCiAgICAgLCBtX2VkaXRpbmcoZmFsc2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDky
NmQ0NDM5NTUxMzU2MzgzZmVhMTkyNGIyZi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1
ZjNiM2M1YzY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRRdC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRp
dG9yQ2xpZW50UXQuaApAQCAtMTExLDkgKzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNF
ZGl0aW5nKCkgY29uc3Q7CiAKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChi
b29sIGIpIHsgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgPSBiOyB9Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0Nh
bGxiYWNrczsKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzEx
OSw2IEBAIHByaXZhdGU6CiAgICAgUVdlYlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBt
X2VkaXRpbmc7CiAgICAgYm9vbCBtX2luVW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtz
IGRpZmZlcmVudGx5IC0gZG9uJ3QgcmUtZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
IH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQuY3BwCmluZGV4IGQ5ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRh
MzM2NjUuLmViOWI0NTE1Zjg4YTkxZWVkOTA0ZWNjZWEzZTgzMWFlYzIwMWI0ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNw
cApAQCAtNDAsOCArNDAsMTAgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L05vdEltcGxlbWVudGVkLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Jhbmdl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5k
b1N0ZXAuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9WaXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwx
OSBAQCB2b2lkIFdlYkVkaXRvckNsaWVudDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJO
b3RpZmljYXRpb24qIC8qbm90aWZpY2F0aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBi
b29sIFdlYkVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17IAot
ICAgIEJPT0wgZW5hYmxlZCA9IEZBTFNFOyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdl
KiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKHZvaWQpCiB7Ci0gICAgQk9PTCBlbmFibGVkID0gRkFMU0U7Ci0gICAg
bV93ZWJWaWV3LT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoJmVuYWJsZWQpOwot
ICAgIHJldHVybiAhIWVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgp
OworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdl
LT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJv
b2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJh
bmdlKiwgV2ViQ29yZTo6UmFuZ2UqLCBXZWJDb3JlOjpFQWZmaW5pdHksIGJvb2wpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCmluZGV4IGQ2MjE0MTE1MjA4NjUxYzNkMzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUu
LjNiNDVmN2U2OGUyYTg4YjUzOTBlY2IzMjUyNzc3NTA0ZDhhZWYxOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCkBAIC0zNjUsNyArMzY1LDYgQEAgV2ViVmlldzo6V2ViVmlldygpCiAgICAgLCBtX2lz
QmVpbmdEZXN0cm95ZWQoZmFsc2UpCiAgICAgLCBtX3BhaW50Q291bnQoMCkKICAgICAsIG1faGFz
U3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChmYWxzZSkKICAgICAsIG1fZGlkQ2xvc2UoZmFsc2UpCiAgICAgLCBtX2luSU1FQ29t
cG9zaXRpb24oMCkKICAgICAsIG1fdG9vbFRpcEh3bmQoMCkKQEAgLTM3Myw3ICszNzIsNiBAQCBX
ZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1fdG9wTGV2ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVs
ZXRlQmFja2luZ1N0b3JlVGltZXJBY3RpdmUoZmFsc2UpCiAgICAgLCBtX3RyYW5zcGFyZW50KGZh
bHNlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogICAg
ICwgbV9sYXN0UGFuWCgwKQogICAgICwgbV9sYXN0UGFuWSgwKQogICAgICwgbV94T3ZlcnBhbigw
KQpAQCAtNDA4MiwzMiArNDA4MCwzNiBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZp
ZXc6OnR5cGluZ1N0eWxlKAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykK
IHsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOworICAgIGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdz
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghIWZsYWcpOworICAgICAgICAvLyBTZXQg
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNs
dXNpdmUuCisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcp
OworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAgICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCAKICAgICAgICAgLyogW3Jl
dHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewotICAgICplbmFibGVkID0gbV9zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2Ut
PnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID8gVFJVRSA6IEZBTFNFOwog
ICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCAKICAgICAgICAgLyogW2luXSAq
LyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0g
ISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpCi0gICAg
ICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaWYgKG1fcGFnZS0+
c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID09ICEhZmxhZykg
eworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgLy8gU2V0IHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhcyB0aGV5IGFyZSBtdXR1YWxseSBleGNsdXNpdmUuCisgICAgICAgIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAgIAog
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQp
CiB7Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBU
UlVFIDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19P
SzsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgy
ZjFiNzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L3dpbi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2IEBAIHByb3RlY3RlZDoKICAgICBib29s
IG1faXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25lZCBtX3BhaW50Q291bnQ7CiAgICAgYm9v
bCBtX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIGJvb2wgbV9zbWFydEluc2VydERl
bGV0ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7
CiAgICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wgbV9oYXNDdXN0b21Ecm9wVGFyZ2V0Owog
ICAgIHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dl
YktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKaW5kZXggYjlm
NDY4ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNhM2NiMi4uODEzZmQxZGM4Yjc1NTFiNGM5
MGI1NDdhMmIwOTdmN2Y4Yjg3MDNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2b2lkIEVkaXRvckNsaWVudFdpbkNFOjpw
YWdlRGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
KyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFdpbkNFOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwIGIv
U291cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAppbmRleCA1
ZWY2NGNkNGE5YzAxMzYzYzQ5OWU1N2ZjZDk3YWRkNWQ5YzMxNWFhLi5mOGNmNmI4MjY5MTg2MGNj
Y2RlOTU0YTY4ODk1YWUxYzg1ZDAyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dl
YktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2Vi
S2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkZy
YW1lLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5o
IgpAQCAtMTQ5LDE0ICsxNTAsMTYgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkRGVsZXRl
UmFuZ2UoUmFuZ2UqKQogCiBib29sIEVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IGlmICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFnZS0+
c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9y
Q2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90
SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6Omlz
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNmRkMzhiNzk5ZTQ2ZGRkNjY0NDk1NzgzNDNm
MzQ0Yzg4MmI2M2M3Li4xZDEzM2MyNDNlMzY4YzRlODVkYmJjNGVjZjAyNTM2ZjIxZDNmMTdmIDEw
MDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsNTggQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxp
YS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0
dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCBzZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFs
cyBmcm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3Bw
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpy
ZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RS
dW5uZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6
OldlYlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVy
OjpUZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5j
ZXMuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8p
OiBTZXQgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcworICAgICAg
ICBDaHJvbWl1bSBEUlQgZGVmYXVsdCB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIENocm9taXVt
IGJyb3dzZXIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9z
cmMvV2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVD
aHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lz
dGVudFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsu
Y3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAg
ICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgICogRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJQYWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0
UnVubmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
OgorICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4v
RHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3Rh
dGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5l
cldpbi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoK
KwogMjAxMy0wMy0wNiAgSnVsaWUgUGFyZW50ICA8anBhcmVudEBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgRGFzaGJvYXJkIGNsZWFudXA6IE1vdmUgYWxsIGRhc2hib2FyZCB1aSByZWxhdGVkIGNv
ZGUgaW50byB1aS5qcy4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5u
ZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKaW5kZXggN2QzZTg1
ZTAwNzQzYzI0ZTEyN2FkMmMxZWZiYTY2MzRjNjdkZWQzNi4uZGFlY2NhZmU2ZGRlNWFlY2FmM2U0
YTRjZjA2YmQ2MmY3YmUzODQ2NSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVz
dFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAg
LTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMgSlNWYWx1ZVJlZiByZXNldFBhZ2VWaXNpYmlsaXR5
Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmCiAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfSAgICAKIAotc3RhdGljIEpTVmFsdWVSZWYg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJn
dW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhj
ZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChKU1ZhbHVl
VG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFr
ZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmpl
Y3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQpAQCAtMTUyNiwxNiArMTUxNiw2IEBAIHN0
YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2so
SlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0
aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3Qg
SlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlm
IChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRl
c3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xs
ZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihj
b250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVlUmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1l
TG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24s
IEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1Zh
bHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1
bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjEzOCw5ICsyMTE4LDcgQEAgSlNTdGF0aWNGdW5jdGlv
biogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0UGx1Z2luc0Vu
YWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQ
cml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQi
LCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRzIiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwg
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIiwgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fk
cyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMiLCBzZXRUYWJLZXlDeWNsZXNUaHJv
dWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmlu
ZGV4IDRmMzcwYzMzOWM3Y2ZhOThlODlmMzQwMDI5MjM3YjFiNDg1NGYxZGIuLjE3ZmI0MDhkYjlm
ODg0MDAyNWY2YWI5MTc0N2JjYThlNzRiMzlhZmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxl
ZChib29sKTsKICAgICB2b2lkIHNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZv
aWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVu
dHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEYXNoYm9hcmRDb21wYXRpYmlsaXR5TW9kZShib29s
IGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVl
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3Bw
CmluZGV4IDcxNjUyZGNkMTIzOGExMzY0MzcyYjA5ODM1ODBiYzAyZDI4MzgxMDUuLjk1NjQ0NGJj
N2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1ZDg2YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCkBAIC0xNTEsNyArMTUxLDYg
QEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFtZXNwYWNlIFdlYktpdCB7CiAKIER1bXBSZW5k
ZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19jdXJyZW50SW5zdGFuY2UgPSAwOwotYm9vbCBEdW1w
UmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAK
IHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSkKIHsKQEAgLTI5
NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRl
QmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVybCwgY29ucwogCiAgICAgdG9wTG9hZGluZ0Zy
YW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hlZCA9IGZhbHNlOwotICAgIHNfc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwogICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVk
ID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGljeSA9IGZhbHNlOwogICAgIHRlc3REb25lID0gZmFs
c2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5k
ZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1w
UmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRleCBhMTNhZmIxMmQ4ZDUyMzgzMzU0N2YzM2MyNzA5
MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVkMDc2NTc2ZDdjZGJjZDAwYWRmMzlkY2UwOWMwIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVl
QmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEwMiw4ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBp
bnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBX
ZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogCi0gICAgYm9vbCBpc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBzX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKICAgICAvLyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6
QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENsaWVudCBtZXRob2QKQEAgLTE0OCw3ICsxNDYs
NiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2FjY2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9s
b2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJvb2wgc19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lEZWxlZ2F0ZUVuYWJsZWQ7CiB9OwogfQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJy
eS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0Jl
cnJ5LmNwcAppbmRleCA2NDVhZTc5Njg4MWYzYTQxZjBiYzk3Mzc4MzkyOTIwOWU0MzcwNWRjLi5i
ZDJmMDM0NTc1OGYwM2FmYTE5NjI1YTQzNDQyYjY0ZmQ0NjgyZDUwIDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNw
cApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFi
bGVkKGJvb2wgZmxhZykKICAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpj
dXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZXRYU1NBdWRpdG9yRW5hYmxl
ZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5k
ZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNFRF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hF
bGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBpZiAoIW1haW5GcmFtZSkKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQ
cm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNiZDc4MGRhNjFkOWJmZTdlOWM4MGU1MjFmNmIxYjkw
NzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3NjFlYmE3MjkwYzExZmNkMGExNSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVz
dFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9w
dWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0OSw4ICsxNDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAg
V2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBsdWdpbihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3Qg
V2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAgICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3Qg
V2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2b2lkIGRpZFN0b3BMb2FkaW5nKCk7Ci0gICAgYm9v
bCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpX
ZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJik7CiAgICAgV2ViS2l0
OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRpYUNsaWVudCgpOwogICAgIHZvaWQgcHJpbnRQ
YWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAgLTM2OCwxNCArMzY2LDYgQEAgcHVibGljOgogICAg
ICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgICAgICBCYXNlOjpk
aWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6Omlz
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1Nl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdl
YlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAg
IH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRleHRNZW51KFdlYktpdDo6V2ViRnJhbWUqIGZy
YW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQog
ICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFzZTo6c2hvd0NvbnRleHRNZW51KGZyYW1lLCBj
b250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAppbmRleCAyYWQzNDMwYjgyNzY4
ZDdkZDAwMjdmNDhhZjhmMDY3MTI3YjY3ODI0Li42MmI2ZjY5NTU4NDUyODU5NDc0YTVhYWFhYjk0
YTFkYWUyZjI4N2E3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9U
ZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcApAQCAtMjA3LDggKzIwNyw2IEBA
IFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVzdEludGVyZmFjZXMqIGludGVyZmFjZXMpCiAgICAg
YmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5nTm9kZSIsICZUZXN0UnVubmVyOjp0ZXh0U3Vycm91
bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9kKCJkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVz
dFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2RlKTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVB
dXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjplbmFibGVBdXRvUmVzaXplTW9kZSk7Ci0gICAg
YmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0gICAgYmluZE1ldGhvZCgic2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRp
b24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0RldmljZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0
aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkQWNxdWlyZVBvaW50
ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRMb3NlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5l
cjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAgLTQwOSwxMiArNDA3LDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVu
bG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQmxvY2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBt
X3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51bGwgPSBmYWxzZTsKLSAgICBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZkZWYgV0lOMzIKLSAgICBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOwotI2Vsc2UKLSAgICBtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLSNlbmRpZgogICAgIG1fc2hvdWxkRHVtcFJlc291
cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAgICAgbV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIo
KTsKQEAgLTY3MywxNiArNjY1LDYgQEAgYm9vbCBUZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQ
b3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UuaXNC
b29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVzc2FnZS50b0Jvb2xlYW4oKTsKIH0KIAotYm9vbCBU
ZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0
dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotfQotCi1ib29sIFRlc3RSdW5uZXI6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLX0KLQogYm9vbCBUZXN0UnVubmVyOjpz
aG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkgY29uc3QKIHsKICAgICByZXR1cm4gbV9zaG91
bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpAQCAtMTQ2NSwyMCArMTQ0Nyw2IEBAIHZvaWQgVGVz
dFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3Vt
ZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5zZXQoc3Vycm91bmRpbmdUZXh0LnRleHRDb250
ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlz
Qm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGFyZ3VtZW50c1sw
XS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGVz
dFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1
bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFs
dWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJl
c291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRp
ZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
VGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmluZGV4IDI1ZTdmZTg0NTg5YjdkODE3MWZjNjE5
YjA5NTg5Y2QxMTkxNjA4YjEuLjFiMGM2ZDQ5MWRkYjUyZmM4ODE0NjBhZDk5OTk3OTMyODlkOGZk
YzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIv
c3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTExOCw4ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2ZSgpIGNvbnN0OwogICAgIGJvb2wgcG9saWN5
RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRJbnRlcmNl
cHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAgIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
IGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcygpIGNvbnN0Owog
I2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAgICAgV2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVz
ZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigpIGNvbnN0OwpAQCAtMjY5LDExICsyNjcsNiBA
QCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0byByZXRyaWV2ZS4KICAgICB2b2lkIHRleHRTdXJy
b3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAg
Ly8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5zZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVk
IGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCi0gICAgLy8gRW5hYmxlIG9yIGRpc2Fi
bGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxlY3Rpb24gb24gZG91YmxlIGNsaWNrLgotICAgIHZv
aWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBlbmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Jlc2l6
ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCkBAIC02NjgsMTAg
KzY2MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0
dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci0KLSAgICBi
b29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLQogICAgIGJvb2wgbV9zaG91
bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwogCiAgICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1f
aHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDMx
ZDNhNGI0MTBhOGM1M2E2NDhjN2MwOGVmMGFkZjYyY2Q3MGIwNWIuLjMxMTRmYmRhOTdlOTNlODE5
MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAK
QEAgLTIyMSw2ICsyMjEsMTIgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3
KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRWaXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGZh
bHNlKTsKICAgICBzZXR0aW5ncy0+c2V0UGFzc3dvcmRFY2hvRW5hYmxlZChmYWxzZSk7CiAgICAg
c2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7Cisg
ICAgc2V0dGluZ3MtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyNpZmRlZiBX
SU4zMgorICAgIHNldHRpbmdzLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRy
dWUpOworI2Vsc2UKKyAgICBzZXR0aW5ncy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CisjZW5kaWYKIH0KIAogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5k
ZXggODY4MTMzZmU0NzBmOTFhZWZjZWQxZmMxOTZiY2E4ZjcwZDMwZDA5NC4uY2M1MDc1MzRlMTZk
OTg1OWEyMmM1N2RjMjFkNTRhYzViM2UyYWFkZCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3Bw
CkBAIC05NzgsMTYgKzk3OCw2IEBAIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRp
bmcoKQogICAgICAgICBtX2RlbGVnYXRlLT5wcmludE1lc3NhZ2UoInBvc3RQcm9ncmVzc0Zpbmlz
aGVkTm90aWZpY2F0aW9uXG4iKTsKIH0KIAotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRl
c3RSdW5uZXIoKS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJU
ZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAg
IHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2b2lkIFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250
ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNvbnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVE
YXRhKQogewogICAgIG1fdGVzdEludGVyZmFjZXMtPmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRN
ZW51RGF0YShjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IDg3NmU1M2YzMTc3ZDU0MGYwYWQzZDg3MzYxOWZhYjE1
NTllNjAzN2IuLmE3YWZmNjVkYjZjM2Q0YWU2ZTI0YTg5YjBmYzExNmNhMGU2NTQxMzcgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE3MCwy
MCArMTcwLDYgQEAgYm9vbCBXZWJWaWV3SG9zdDo6c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJT
dHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYgcmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAotYm9vbCBXZWJWaWV3SG9zdDo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotewotICAg
IHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKQotewotI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0j
ZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBib29sIFdlYlZpZXdIb3N0Ojpo
YW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpCiB7CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1l
LmVtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApp
bmRleCBmZjJlZGE3ZmZlZWY4ZjY3NTljZTRhOTM2YmRkMjlkN2JkNGFhOGM5Li40YTM0ZjM4YTJl
MzNjMDc0ZjEwN2YwMGVjOWY3YzkwNGVhMjk1NGE5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3
SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdDbGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZy
YW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNv
bnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20sIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBX
ZWJLaXQ6OldlYlRleHRBZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVh
bCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5
bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdmlydHVhbCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2Fy
ZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJ1bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpX
ZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3RyaW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1
bk1vZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJT
dHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuY3BwCmluZGV4IGY4N2VlYjA3MDY0NmY1OTAxN2JhNjgwODRjZDc2ZDJkMGE2ZDEzOTYu
LjYxMjdjOWQ2MjkyNGIxZDg0Y2MwYjdiOGJjNTM1NjExODA1MWNjYzEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtMzE1LDgg
KzMxNSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNp
c3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlv
bk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFpblZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXco
KSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0
RW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQobWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRE
ZWZlcnNMb2FkaW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdub3JpbmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5W
aWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6
ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
VGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVm
bC5jcHAKaW5kZXggZTY1YjVhMjU5ZTJjMTI1ZGEyN2NjOTAwMWNlN2I0MThmMzYwOTNkNS4uYTk5
YTNiNWVkYzc2ODdiNDJmNDIxMjg4OTVkYThkYTdmMzVjMWU3YSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApAQCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0K
IAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFn
KQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZsYWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29s
IHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQqKQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRv
ZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFi
YXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFi
YXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsK
LSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5l
cjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCBmbGFnKQogewogICAgIGV3a192aWV3X3Nl
dHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dzX3NldChicm93c2VyLT5tYWluVmlldygpLCAh
ZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRy
ZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRl
eCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhlZGRlMDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNm
MTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0
ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUwMSw4ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNl
dERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkKIAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNv
bl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OnNldERlZmVyc0xvYWRpbmcod2ViVmlldywgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3BwCmluZGV4IDQyY2U2NzI2ZDg4M2U5MzdlZWE1
YmU4YzBmNjRiZDJlMDdmMWM4YzQuLmNkMTA0NGQwZDIzMzFlMmE0YTFlYzc3ZThkNDJmOTcyN2Zh
YWRhNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAg
LTMyMywxMSArMzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdp
bmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJf
ZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSksIGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xl
YW4gd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdh
dGNoZG9nKDApOwpAQCAtNDg1LDExICs0ODAsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25E
YXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFz
ZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwot
fQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVwQmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykK
IHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3Zp
ZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1w
UmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5t
bQppbmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5MWY2MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1
N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0OWE4YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0xMjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9p
ZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBn
VGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5wdXRGaWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFp
bkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAg
W1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3VzUmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZp
ZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93
c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQppbmRleCBiMjMyNmEyNmIzNDlhMDgzYmE3OThhOGM3Yjk1YWRhOWRmMDVlMzY2Li5iMzFj
OWFkNzI3YjJlNjZmN2ZlN2I1Y2ExZDY4ZGJiNGU0N2JmZTY5IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAtNjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RS
dW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUg
d2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdl
YlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsK
LSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOmZsYWddOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdh
dGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hk
b2dGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1lciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBSZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKaW5kZXggMjNmZDM1YzFjNmZiNWYx
NzkzM2I2NTMyYmQ0Yzg3NDE3MDBlOGNkMi4uZGZhNjcyYjY3NGRlYzNjZTk3MDYyZjU4ZmVmY2Zj
OTkzODAxYTA1ZiAxMDA3NTUKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRl
clRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVR
dC5jcHAKQEAgLTE5Miw4ICsxOTIsNiBAQCB2b2lkIFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQog
CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2Up
OwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZl
cnNMb2FkaW5nKGZhbHNlKTsKIAogICAgIC8vIGdsb2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQg
ZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5u
ZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4
IGU1ZTgyNDMwZTE3ZGUyOTYxNzkzMzVkNGU2NTU4NWQxYjRjNzI5YzAuLjYzODlhMGRlZmE3N2Uy
YTIzYjE2ODVjYjcxNDAyN2QyZmI1NmZkYTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmNwcApAQCAtNzIwLDE2ICs3MjAsNiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0
U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFTdHJpbmcmIG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5n
JgogICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5GcmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3ko
bywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lclF0OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQot
dm9pZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQobV9kcnQtPnBhZ2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0K
IHZvaWQgVGVzdFJ1bm5lclF0OjpleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25z
dCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0
ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CmRp
ZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCmluZGV4IDY1YmJiODJhMmNiNDEzZTcy
MTk3MzhiZmE3ZTU4MzA3Y2JjY2RjMGUuLjk5MDdhMmU1MzcyZjg4OWJhZWEyM2RjM2EwNTg0ZTc2
MjZlOTZjMWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJR
dC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0xNzgs
OCArMTc4LDYgQEAgcHVibGljIFFfU0xPVFM6CiAgICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wp
OwogICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSk7
Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0Nv
bW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5n
KCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25z
dDsKICAgICBib29sIGZpbmRTdHJpbmcoY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmdMaXN0
JiBvcHRpb25BcnJheSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVl
LmNwcAppbmRleCBmNzQ3NmZhMTI2M2RmMWUwY2UyNjA2YTM4Mzc4NzNlZGE3OGNlZjViLi44OWZh
OWY3YWZhMTYzNWY2MTI1ZDQ0YzllMTMyNGVkYzE1ZTI5MTA3IDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTg5OSwxMCArODk5LDYgQEAgc3RhdGlj
IHZvaWQgcmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKCkKICAgICAg
ICAgV2ViQ29yZVRlc3RTdXBwb3J0OjpyZXNldEludGVybmFsc09iamVjdChjb250ZXh0KTsKICAg
ICB9CiAKLSAgICBDT01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAo
U1VDQ0VFREVEKHdlYlZpZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAg
ICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFRSVUUpOwotCiAgICAg
Q09NUHRyPElXZWJWaWV3UHJpdmF0ZT4gd2ViVmlld1ByaXZhdGUoUXVlcnksIHdlYlZpZXcpOwog
ICAgIGlmICghd2ViVmlld1ByaXZhdGUpCiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAppbmRleCA2NjQ4YzNlZTE1ZGQ0YTU2ZWUwYjQ1
YjIxZTA4N2ZhODY0NGU2OWYyLi5kZDRkODczMWRmZWU0ODNkZmUwZTliODcxNTJmYTY0M2M2ZGEw
Yzc5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5j
cHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCkBAIC03
MjMsMzIgKzcyMyw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCBmbGFn
KQogICAgIDo6U2VuZE1lc3NhZ2Uod2ViVmlld1dpbmRvdywgZmxhZyA/IFdNX1NFVEZPQ1VTIDog
V01fS0lMTEZPQ1VTLCAoV1BBUkFNKTo6R2V0RGVza3RvcFdpbmRvdygpLCAwKTsKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewot
ICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJW
aWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIENPTVB0cjxJV2ViVmlld0Vk
aXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlMRUQod2ViVmlldy0+UXVlcnlJbnRlcmZh
Y2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVybjsKLQotICAgIHZpZXdFZGl0aW5nLT5z
ZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBGQUxTRSk7Ci19Ci0KLXZv
aWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJh
bWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElX
ZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVy
eUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0Vk
aXRpbmctPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmxhZyA/IFRSVUUgOiBG
QUxTRSk7Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0VG9EdW1wV2F0Y2hk
b2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lkIENBTExCQUNLIHdhaXRVbnRpbERvbmVX
YXRjaGRvZ0ZpcmVkKEhXTkQsIFVJTlQsIFVJTlRfUFRSLCBEV09SRCkKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAgYi9Ub29scy9EdW1wUmVuZGVy
VHJlZS93eC9UZXN0UnVubmVyV3guY3BwCmluZGV4IDQ3NTNjMjljYTU0ZjZhZWUxYTlkY2E5MTNk
OWI1MWVkNTAxYTlhMWUuLmY0YmI5NGEwZTNkMjk2Y2FmN2MwODZjMWRmYzk3N2JjYzY2ZTY5OTQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcApAQCAtMTUxLDExICsx
NTEsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2luZG93SXNLZXkp
CiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVu
dAotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFdhaXRUb0R1bXAoYm9vbCB3YWl0VW50aWxEb25l
KQogewogICAgIHN0YXRpYyBjb25zdCBpbnQgdGltZW91dFNlY29uZHMgPSAxMDsKQEAgLTI4OCwx
MSArMjgzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRBcHBDYWNoZU1heGltdW1TaXplKHVuc2ln
bmVkIGxvbmcgbG9uZyBzaXplKQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBU
ZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykK
LXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0TW9j
a0RldmljZU9yaWVudGF0aW9uKGJvb2wgY2FuUHJvdmlkZUFscGhhLCBkb3VibGUgYWxwaGEsIGJv
b2wgY2FuUHJvdmlkZUJldGEsIGRvdWJsZSBiZXRhLCBib29sIGNhblByb3ZpZGVHYW1tYSwgZG91
YmxlIGdhbW1hKQogewogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgZm9yIERldmljZU9yaWVudGF0
aW9uIGxheW91dCB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNjI1YmZlOWZmOWE5NWZmYTAxMDM2ZGRiZTNlOWI4
ZjMwOGY3YTY0Li41ZDQ4ZjAyYTIyY2Q1ODA1ZmJkZGQzOGVhOGNkMmQ0NTg0OGIwZmY5IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMzEgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxy
ZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZXBsYWNlIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBieQorICAgICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBpbiB0ZXN0cy4KKworICAgICAgICBCZSBzdXJl
IHRoYXQgdHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCBhcmUgc2V0IHRvIG9wcG9zaXRlIHZhbHVlcyBhcyB0aGV5IGFy
ZQorICAgICAgICBtdXR1YWxseSBleGNsdXNpdmUuCisKKyAgICAgICAgKiBlZGl0aW5nL2RlbGV0
aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sOgorICAgICAgICAqIGVkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBl
ZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbDoK
KyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5s
aW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzOgorICAgICAgICAqIGVkaXRpbmcvc3Bl
bGxpbmcvcmVzb3VyY2VzL3V0aWwuanM6CisgICAgICAgIChpbml0U3BlbGxUZXN0KToKKyAgICAg
ICAgKiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11
bmRlcnNjb3Jlcy5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91
YmxlLWNsaWNrZWQtd29yZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3drMi9UZXN0RXhwZWN0
YXRpb25zOiBVbmZsYWcKKyAgICAgICAgZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2staW5s
aW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKKyAgICAgICAgYXMgaXQgcGFzc2Vz
IG5vdy4KKwogMjAxMy0wMy0wNiAgVGFrYXNoaSBTYWthbW90byAgPHRhc2FrQGdvb2dsZS5jb20+
CiAKICAgICAgICAgQm94LXNoYWRvdyBkaXNwbGF5ZWQgaW1wcm9wZXJseSB3aXRoIGJvcmRlci1y
YWRpdXMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVk
aXRpbmctZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQt
ZWRpdGluZy1kaXNhYmxlZC5odG1sCmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4
NDgxOTgxZGVkNjkuLmQwZjdkN2FmMTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNh
YmxlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGlu
Zy1kaXNhYmxlZC5odG1sCkBAIC01LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CiAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9u
IGVkaXRpbmdUZXN0KCkgewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJm
YmZjNzQwYWZhMzVjMmQwOGFjOTU3N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVm
NTI3YWVlMzZjMGQ4ZmJiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQs
NyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4
YWE4Mzc2OTM3N2M4Njg2YWY4Zi4uYzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkz
NjlhOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2std2hpdGVzcGFjZS1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7
Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVl
KTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
LWltZy1jcmFzaC5odG1sCmluZGV4IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2
Mzc1MDQuLmY3NGFhMjY1Njc3NjU2MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2Ut
aW1nLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50
ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAg
IHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
dHJ1ZSk7CiAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0
bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNl
Lmh0bWwKaW5kZXggODUzMGZiYzUzMWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4
M2ZiMWZhMWU1OGI1ZTc0MTVlMmYzYWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRt
bApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0
aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
c2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJs
ZS5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3
MmFmZjJiMjVmYjcyMzU2OTUwMzA5MDk1YzFjMmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2
ODIyMTk5MDlhOTcxNmMyMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0
YWJsZS5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMv
ZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3
ICs3OCw4IEBAIGZ1bmN0aW9uIHRlc3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1M
LCBleHBlY3RlZFRleHQpCiAgICAgc2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5Iiwg
dG9MaXRlcmFsKGV4cGVjdGVkVGV4dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJz
dFdvcmRJbmxpbmUgPSAiPHNwYW4gaWQ9J3RhcmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1l
MTwvc3Bhbj4gYW5kIG5vdCBzZWxlY3QgdXMiOwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxk
U2VsZWN0ZUZpcnN0V29yZElubGluZSwgInNlbGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2
NjcxZTdjODQ5MDdiNzA3MmQ0OTUyMC4uMDk0YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0
ZjU2MjQ5NCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJj
ZXMvdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91
dGlsLmpzCkBAIC0yNyw4ICsyNyw4IEBAIGZ1bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1l
bnRJZCwgdGVzdFRleHQsIHRlc3RGdW5jdGlvbikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9
IHRlc3RGdW5jdGlvbjsKICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVy
LnNldEFzeW5jaHJvbm91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5u
ZXIuc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFy
IGRlc3RpbmF0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1j
bGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRt
bAppbmRleCBjYTU5MzVmZTAwMDVhNWEwNjEzNTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4
MTBkMDFiYjk4ZTZlNWYxM2MzOGQ2MDkzZDM2ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRl
cnNjb3Jlcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
ZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDgg
QEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0
aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2Vs
ZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlz
c3BlbGxlZCB3b3JkIHdpdGhvdXQgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNl
KTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVz
dGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0
UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9m
ZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00
OSw3ICs1MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21l
LiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2lu
ZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xp
Y2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAg
IHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsK
KyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCh0cnVlKTsKICAgICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0
ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24u
b2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0
aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJs
ZS1jbGlja2VkLXdvcmQuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzky
N2EwOWMzZmM0NmNlMDI3Y2YuLjlkMjQ5ZmQ3ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0
ZWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91
YmxlLWNsaWNrZWQtd29yZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcv
c3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRT
cGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5v
ZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50
b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdv
cmQgd2l0aG91dCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHgg
PSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNl
dExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRU
b3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAy
OwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBp
bml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRl
eHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9u
KCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxl
ZCB3b3JkIHdpdGggdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHgg
PSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNl
dExlZnQgKyA0MDsKICAgICB2YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRU
b3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAy
OwogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA1ZWExNzZmNGNjZmFmYjhiMmQ4MTYxNzRlMGUx
NDdjMzAwZjYwNzhmLi5mYjBiOGI1Y2ZkNjI1OTg3Y2U4ZmJjZTdkYzlmZjUzYmU4NzkxOTcxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc1LDkgKzM3
NSw2IEBAIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRp
b24td2l0aC1lbWJlZGRlci5odG1sCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVz
dENvbnRyb2xsZXIuYWRkRGlzYWxsb3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJl
c291cmNlLWxvYWQtZGVsZWdhdGUtd2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1
bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkCi1lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFz
dC1jb250ZW50ZWRpdGFibGUuaHRtbAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0
VGVzdENvbnRyb2xsZXIucGFnZVByb3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9u
Lmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193009</attachid>
            <date>2013-03-13 15:27:53 -0700</date>
            <delta_ts>2013-03-13 15:49:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130313232349.patch</filename>
            <type>text/plain</type>
            <size>89392</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1MDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmFjNTlkZTQwNTY0Y2Mw
YzY5ZTQzY2Y4MTljODVmOGM3MjliZTA1Ni4uMTUyMTUxZmM0Zjg4ZDEwYWQ5YmExNDllOWNhZmEw
NmE2NWNkOTI4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMDcgIEV1Z2VuZSBLbHl1Y2huaWtvdiAgPGV1c3Rhc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogQ21kK0wgKEdvLXRvLUxpbmUpIG1h
c2tzIEdvIHRvIGxvY2F0aW9uIGJhciBhY3Rpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9n
CmluZGV4IDE2YTNiNmU4MTk0MWQyOTNlMjk1YTJhMzg4MGY2NTNlZDEzMzIyYzMuLjQzM2ZjZjlm
OGM1ZWFlYjNhNTIzY2U4MDEyYjE0YTg4MGYyMDJlNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0No
YW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5o
OgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6Omlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMDYgIE5pbWEgR2hh
bmF2YXRpYW4gIDxuZ2hhbmF2YXRpYW5AcmltLmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0g
U2VsZWN0aW9uIGhhbmRsZXMgZG9uJ3QgZHJhZyB0byBleHBhbmQgY29ycmVjdGx5IGZvciBSVEwg
bGFuZ3VhZ2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdhYzMyYTE0OTE4ODVhOGMw
Mzg1NWEyZDA0YjJlOGZhMTA0OWQzN2QuLjdkYTcwNDdjZTg0YTY1MjE3NWRiOTkyZDNkYjNkODA1
Nzg5ZGQ2NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIw
MTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJD
b3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVc2UgbmV3IFBhZ2Ugc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQK
KyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgdXBkYXRlIEFQSSBh
Y2NvcmRpbmdseS4KKworICAgICAgICBXZWJTZXR0aW5ncyBBUEkgaXMgcmVxdWlyZWQgYnkgRFJU
IGluIG9yZGVyIHRvIHNldCB0aGUgcHJvcGVyIGRlZmF1bHQKKyAgICAgICAgdmFsdWVzIHdoaWNo
IGFyZSBkaWZmZXJlbnQgZnJvbSBicm93c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcHVibGlj
L1dlYlNldHRpbmdzLmg6IEFkZCBuZXcgQVBJIHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQKKyAgICAgICAgYW5kIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGlu
Z3MuCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVk
IHRvIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tIHBhZ2UKKyAgICAg
ICAgc2V0dGluZ3MgZnJvbSBub3cgb24uCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOiBVc2UgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciBz
bWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQuCisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6IEltcGxlbWVu
dCBtZXRob2RzIGVzdGFibGlzaGluZyB0aGUgcGFnZQorICAgICAgICBzZXR0aW5ncy4KKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdz
SW1wbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0
dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJTZXR0aW5nc0ltcGwpOiBJbXBsZW1lbnQgbmV3IEFQ
SSB0byBtYW5hZ2UgdGhlIG5ldyBzZXR0aW5ncy4KKwogMjAxMy0wMy0wNyAgSm9jaGVuIEVpc2lu
Z2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIGV4cG9zZSBV
c2VyR2VzdHVyZVRva2VuIHZpYSBXZWJLaXQgQVBJIHNvIFBQQVBJIHBsdWdpbnMgY2FuIGNvcnJl
Y3RseSBjb25zdW1lIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggZGJlNmNmZDYxZDNlMTk2ZTBjNzdi
ZmNjZDM0ZWVjMTI5YTQ1YmE1ZS4uNDk2NjNkYmU4Mjk0MDBhZjA1MTkyY2VmNDczNzU3N2YzOWI2
ZDEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBv
cnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisK
IDIwMTMtMDMtMDYgIEtyenlzenRvZiBDemVjaCAgPGsuY3plY2hAc2Ftc3VuZy5jb20+CiAKICAg
ICAgICAgW0VGTF0gTWlzc2luZyBpbXBsZW1lbnRhdGlvbiBvZiBBY2Nlc3NpYmlsaXR5Q29udHJv
bGxlckVmbCBhbmQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudEVmbCBmaWxlcwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9ndGsvQ2hhbmdlTG9n
CmluZGV4IDNmOGI1NGExZjI5ZmYwOWJhYmJlOTUzYzRmZmIzOGEwNjY0MjNlN2YuLmJkNDFhOWEz
MDk1OGFkNTI2ZDQzOWYxMDFiY2YzZjJmOTlkNzE4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvZ3RrL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdh
bGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBz
ZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAg
ICAgICBSZW1vdmUgY29kZSByZWxhdGVkIHRvIERSVCBhcyBpdCBpcyBub3QgbmVlZGVkIGFueW1v
cmUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
Y3BwOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5o
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwOgorICAgICAgICAoV2ViS2l0OjpFZGl0b3JDbGll
bnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50OjpFZGl0b3JDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50KToKKwogMjAxMy0wMy0w
NiAgQmVuamFtaW4gUG91bGFpbiAgPGJlbmphbWluQHdlYmtpdC5vcmc+CiAKICAgICAgICAgV2Vi
S2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0Q29udHJvbGxlci5lbGVtZW50RG9lc0F1dG9D
b21wbGV0ZUZvckVsZW1lbnRXaXRoSWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCA1ZGEwMmEzOTI3NzVh
MWM0Mjk1YmQyNzhhMTRhNTg5Y2IzY2Q0MjY1Li5hNzEwZWYyYTgxZDUwZGUzNGI4NmY3OTY4NWE2
YzEyNDdjMDIwOGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTMtMDMt
MDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAg
QWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQ
YWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0
MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2Ug
bmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9XZWJFZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9jb21tb25Jbml0aWFsaXphdGlvbldpdGhGcmFtZU5hbWU6Z3Jv
dXBOYW1lOl0pOiBJbml0aWFsaXplCisgICAgICAgIHNldHRpbmdzIGZyb20gTlNVc2VyRGVmYXVs
dHMuCisgICAgICAgICgtW1dlYlZpZXcgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWRdKToKKyAgICAgICAgKC1bV2ViVmlldyBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJWaWV3RGF0YS5oOgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlld0RhdGEu
bW06CisgICAgICAgICgtW1dlYlZpZXdQcml2YXRlIGluaXRdKToKKwogMjAxMy0wMy0wNCAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBEZWZhdWx0IG1vdXNlIGN1
cnNvciBiZWhhdmlvciBzaG91bGQgYmUgYXV0by1oaWRlIGZvciBmdWxsIHNjcmVlbiB2aWRlbyB3
aXRoIGN1c3RvbSBjb250cm9scwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwppbmRleCA5MWY5OTkwNTY1YzljZjgyYzBm
ZWYzMDExYTE3ZjJkMzFjYzBmYzlmLi4xOWJjN2YwN2ZjOGNiZTkwYzNlOTdlYjA1NjdkNzQ0OWQy
MjY0M2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0
aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8g
RFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBw
b3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6
OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3Vw
cG9ydC9FZGl0b3JDbGllbnRRdC5oOgorICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEz
LTAzLTA2ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBXZWJLaXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmVsZW1lbnREb2Vz
QXV0b0NvbXBsZXRlRm9yRWxlbWVudFdpdGhJZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93
aW4vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IDhhZGUzOGQy
NmRkZDk0YzczNWYyMWM3ZGU1MWQ5ZmY3OGUwMzRiMDMuLjRkOTFjYjM2OGRjZjAwMjY0MTg4NTlh
OGViMjFlY2ZiMTZkYzY0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAx
My0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAg
ICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNv
cmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAg
ICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OmlzU2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5jcHA6Cisg
ICAgICAgIChXZWJWaWV3OjpXZWJWaWV3KToKKyAgICAgICAgKFdlYlZpZXc6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQpOgorICAgICAgICAoV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCk6CisgICAgICAgIChXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQpOgorICAgICAgICAqIFdlYlZpZXcuaDoKKyAgICAgICAgKFdlYlZpZXcpOgorCiAyMDEzLTAz
LTAzICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAgICAgIFdpbmRvd3Mg
YnVpbGQgZml4IGF0dGVtcHQgYWZ0ZXIgcjE0NDU0Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvd2luY2UvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKaW5kZXgg
NmY2YTE5OGE0MjRlODhiYTAzNWU3NDg2YzIwYzAxZjc3NjkzMzRjOS4uMGU2MjcyMjY3NTFlNDc1
YmI2ODRlNjQ3ZGEwNTcyZmM3M2I0MDA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5j
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93aW5jZS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6RWRpdG9yQ2xpZW50V2luQ0U6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAgICAg
IChXZWJLaXQ6OkVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOgorCiAyMDEzLTAyLTExICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgog
CiAgICAgICAgIERpc2FibGUgZGVsZXRlIGJ1dHRvbiBjb250cm9sbGVyIG9uIG5vbi1NYWMgcG9y
dHMgYW5kIGRlbGV0ZSBFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC93eC9D
aGFuZ2VMb2cKaW5kZXggMDMyNGUyMTVkYmVkYTBhY2ZhNGI2NGNhNzBiYjJjNzFjMzNmNzMyNy4u
MDM4NzE1NTViYWRlMzY4MzI4MTY4ZTNkNjMyMjQzOWFiNWM4ZWJlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC93eC9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4K
KworICAgICAgICAqIFdlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKToKKwogMjAxMy0wMi0yNiAgRG1pdHJ5IFp2b3J5Z2luICA8enZvcnlnaW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIE1lcmdlZCBUaXAgYW5kIERlYnVnIGxvZyBsZXZlbHMgZm9yIHdl
YiBjb25zb2xlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAppbmRleCBhM2JjZGRiNzYwMjFlMmM2
ZWQ3OGQ2NDg0ZjNkNmVkNjJjMWM4ZTBmLi44ODRmZDZjN2E4NDFlNTE4ZDlkZTE3ZTBkMWU3YTFl
OWExNjg0NDU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmNwcApAQCAtMTQxLDYgKzE0MSwyMSBA
QCBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkID0g
dHJ1ZTsKICNlbHNlCiBzdGF0aWMgY29uc3QgZG91YmxlIGRlZmF1bHRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkID0gZmFsc2U7CiAjZW5kaWYKKyNpZiBQTEFURk9STShDSFJPTUlVTSkKKyNpZiBP
UyhNQUNfT1NfWCkKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgPSB0cnVlOworI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2lmIE9TKFdJTkRPV1MpCitzdGF0aWMg
Y29uc3QgYm9vbCBkZWZhdWx0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7
CisjZWxzZQorc3RhdGljIGNvbnN0IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgorI2Vsc2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1
bHRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSB0cnVlOworc3RhdGljIGNvbnN0IGJvb2wgZGVm
YXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKKyNlbmRpZgogCiBT
ZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkKICAgICA6IG1fcGFnZSgwKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
U2V0dGluZ3MuaW4KaW5kZXggZTc5OTFlYWRjYzE0MDMwN2ZjMDk3NjdiZWZmMjE0YTUzYmY3ZWJh
ZC4uYmU1OWYxNzEyMTY4MTU0YmU5NTU4ODViNjE2ZGVhZjkyNGU0OTcxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1NldHRpbmdzLmluCkBAIC0xOTUsNCArMTk1LDUgQEAgdW5pZmllZFRleHRDaGVja2VyRW5hYmxl
ZCBpbml0aWFsPWRlZmF1bHRVbmlmaWVkVGV4dENoZWNrZXJFbmFibGVkCiAKIGxvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKIAotc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGluaXRpYWw9dHJ1ZQorc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGluaXRp
YWw9ZGVmYXVsdFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZAorc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVl
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5kZXJUcmVlQ2xp
ZW50LmgKaW5kZXggZmMxNGNkMDFmZTY4MjViMjNjZTRkMDE3N2FkY2NjYjQzYzNiZThkMS4uZTk3
NDFjMDdmYWIxZWRmYzQyOWE0M2RlMjk5YmQxOTYwYzBjOWVlNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9ibGFja2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRlclRyZWVDbGllbnQuaApAQCAtODMsNyAr
ODMsNiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVkRE9N
UmFuZ2VUb0RPTVJhbmdlQWZmaW5pdHlTdGlsbFNlbGVjdGluZyhXZWJDb3JlOjpSYW5nZSogZnJv
bVJhbmdlLCBXZWJDb3JlOjpSYW5nZSogdG9SYW5nZSwgaW50IGFmZmluaXR5LCBib29sIHN0aWxs
U2VsZWN0aW5nKSA9IDA7CiAgICAgdmlydHVhbCBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29y
ZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbikgPSAwOwogICAgIHZp
cnR1YWwgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0cmluZyYsIFdlYkNvcmU6OlJhbmdl
KiwgaW50IGluc2VydEFjdGlvbikgPSAwOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJikgPSAwOwog
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCmluZGV4IGQ1MTVmODgyNTA0
YjY0NjAxZWZkYzZlMTlkMjMyMDg5YWIyYjgzZWEuLmE4MWUyOTkzNGY5NTY1OTYyMzM4MjhlY2Mx
MjE3MDBjYjI2ZjBlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJyeS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXli
b2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiU2VsZWN0aW9uSGFuZGxlci5oIgorI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZV9wLmgiCiAjaW5jbHVkZSAiV2luZG93c0tleWJv
YXJkQ29kZXMuaCIKIApAQCAtNjksMTUgKzcwLDE4IEBAIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBib29sIEVkaXRvckNsaWVu
dEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2
YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzU2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViUGFnZVByaXZhdGUtPm1fZHVtcFJl
bmRlclRyZWUpCi0gICAgICAgIHJldHVybiBtX3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJU
cmVlLT5pc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7Cisg
ICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnRCbGFja0JlcnJ5OjplbmFibGVTcGVsbENoZWNraW5nKGJvb2wgZW5hYmxlKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZjE5MjBk
NzE5NjQ4NmU5NjEyN2U0MDRmNDRjNzU0YmVmMGI1NzdjNS4uMTI0NmM0Yzk0ODMxMmQ0NTQ5MGQz
NDkwMWE4YjIyNWU1YjZjZjE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCkBAIC0xNDcsNiArMTQ3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRS
ZW5kZXJWU3luY05vdGlmaWNhdGlvbkVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRTYW5zU2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0g
VVNDUklQVF9DT01NT04pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlcmlmRm9u
dEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZFByaW50QmFja2dyb3VuZHMoYm9vbCkgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRSZXNwZWN0SW1hZ2VPcmllbnRhdGlvbihib29s
KSA9IDA7CkBAIC0xNTUsNiArMTU2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG93UGFpbnRSZWN0cyhib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dQbGF0Zm9y
bUxheWVyVHJlZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NTdGFuZGFs
b25lSW1hZ2VzVG9GaXQoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCkg
PSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCmlu
ZGV4IGU0NDZlMmE2OTNmOTFhMTcxYzVlMmM5M2YzMDE4NjQwZDhkNTVlMTkuLmE0NDk3ZGU2YTM4
NTMxOWQ2OTRhZTc2NDA1MmJjODkxMGMwMDgyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE4MSw5ICsxODEsNiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0IFdlYlJhbmdlJikgeyByZXR1
cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYlN0
cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJikgeyByZXR1cm4gdHJ1ZTsgfQogCi0gICAgdmly
dHVhbCBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQot
ICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSB7IHJl
dHVybiB0cnVlOyB9Ci0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQmVnaW5FZGl0aW5nKCkgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIGRpZENhbmNlbENvbXBvc2l0aW9uT25TZWxlY3Rpb25DaGFuZ2UoKSB7
IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlU2VsZWN0aW9uKGJvb2wgaXNTZWxlY3Rpb25F
bXB0eSkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JD
bGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudElt
cGwuY3BwCmluZGV4IDk4MzAzZjRmNDY0ZGYzMjFiYjQ5NGQzMzRiZTNhODYwYmM0ODIyZjQuLjFk
MTNjOGVmMDU0NmIwZmExNWMxMDU2ZjBlMTQyNzViOWZkYzA0M2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0VkaXRvckNsaWVudEltcGwuY3BwCkBAIC0zNyw2ICszNyw3IEBA
CiAjaW5jbHVkZSAiS2V5Ym9hcmRDb2Rlcy5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIK
ICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRl
ICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNp
bmNsdWRlICJTZXR0aW5ncy5oIgpAQCAtOTUsMjAgKzk2LDE2IEBAIHZvaWQgRWRpdG9yQ2xpZW50
SW1wbDo6ZnJhbWVXaWxsRGV0YWNoUGFnZShXZWJDb3JlOjpGcmFtZSogZnJhbWUpCiAKIGJvb2wg
RWRpdG9yQ2xpZW50SW1wbDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsKLSAgICBpZiAo
bV93ZWJWaWV3LT5jbGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCkt
PmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgaWYg
KG1fd2ViVmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNl
dHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOworICAgIHJldHVybiBmYWxzZTsK
IH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKQogewotICAgIGlmIChtX3dlYlZpZXctPmNsaWVudCgpKQotICAgICAgICByZXR1cm4g
bV93ZWJWaWV3LT5jbGllbnQoKS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7
Ci0jaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCisgICAgaWYgKG1fd2Vi
Vmlldy0+cGFnZSgpKQorICAgICAgICByZXR1cm4gbV93ZWJWaWV3LT5wYWdlKCktPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICByZXR1cm4gZmFsc2U7
Ci0jZW5kaWYKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRJbXBsOjpzaG91bGRTcGVsbGNoZWNrQnlE
ZWZhdWx0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IDI2NGM3NTZhOGRiOWMwNjFlYzUwNzg3MDI4NDA2NzAxNTAzZTA3YjcuLjY2ZWY1
MWEzMzYxM2U5ZmMxOTQ5OTUxZGUzZmI1NzFkYjQ1NGYxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtNzYxLDQgKzc2MSwxNCBAQCB2
b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0Q29tcG9zaXRlZFNjcm9sbGluZ0ZvckZyYW1lc0VuYWJs
ZWQoYm9vbCBlbmFibGVkKQogICAgIG1fc2V0dGluZ3MtPnNldENvbXBvc2l0ZWRTY3JvbGxpbmdG
b3JGcmFtZXNFbmFibGVkKGVuYWJsZWQpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpCit7CisgICAgbV9z
ZXR0aW5ncy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsKK30K
Kwordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29s
IGVuYWJsZWQpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGVuYWJsZWQpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKaW5kZXggNzJhM2UzMTI3NDExMTUzMDhkMGEw
NGFlYzUxNmMxYzVhNWVlYTgxYi4uYWQyYzkzZmNmZTlkZTBkN2FjZjdhZWRkNTlmOGFiYTU5YWNj
NjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgK
QEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFJlbmRlclZT
eW5jRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmlj
YXRpb25FbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTYW5zU2VyaWZGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOworICAg
IHZpcnR1YWwgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wpOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNj
cmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3VsZERp
c3BsYXlDYXB0aW9ucyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkRGlzcGxheVN1
YnRpdGxlcyhib29sKTsKQEAgLTE1MSw2ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIHNldFNob3dQYWludFJlY3RzKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGxh
dGZvcm1MYXllclRyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NTdGFuZGFs
b25lSW1hZ2VzVG9GaXQoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5
KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuY3BwCmluZGV4IDMyMGZmOWYwNDk0ZTI3MTc4MjA5N2U0MzgxOWI2MTcwZDM4ZjY4NWIu
LjUyMTVjZTYwYzVjODRiYTY5YTc4M2FkNzMwNWJhNThlOWNiNzYwMmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsLmNwcApAQCAtMzIzLDI4ICszMjMsNiBAQCBib29sIER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6aXNDb21tYW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29u
cwogICAgIHJldHVybiBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1l
KCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmlzRW5hYmxlZCgpOwogfQogCi12b2lkIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9P
Ul9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0KLSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwq
IGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBh
Z2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBpZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5h
YmxlZCk7Ci19Ci0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQp
Ci17Ci0gICAgRFJUX1NVUFBSVF9QQUdFX0dFVF9PUl9SRVRVUk4oZXdrVmlldywgcGFnZSk7Ci0K
LSAgICBXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqIGVkaXRvckNsaWVudCA9IHN0YXRpY19jYXN0
PFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbCo+KHBhZ2UtPmVkaXRvckNsaWVudCgpKTsKLSAgICBp
ZiAoIWVkaXRvckNsaWVudCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgZWRpdG9yQ2xpZW50LT5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGVuYWJsZWQpOwotfQotCiB2b2lkIER1
bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6Zm9yY2VMYXlvdXQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
KQogewogICAgIGV3a19mcmFtZV9mb3JjZV9sYXlvdXQoZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZs
LmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaAppbmRleCA5NTg4ODExZmFkOGNiNTA5MDY1YzQ0ZTNiNzY5N2Q0ZWI2MzgyMzUwLi4z
MTFkOWEwMjlhOWFlYTAyYTYyMzMwYmEzNzYyYzk1MGE2ZWM3N2I0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmwuaApAQCAtODAsOCArODAsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIGJvb2wgaXNDb21t
YW5kRW5hYmxlZChjb25zdCBFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hhciogbmFtZSk7
CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTR3JpZExheW91dEVuYWJsZWQoY29uc3QgRXZhc19PYmpl
Y3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIHZvaWQgc2V0Q1NTUmVnaW9u
c0VuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7Ci0gICAg
c3RhdGljIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJvb2wgZW5hYmxlZCk7CiAgICAg
c3RhdGljIHZvaWQgc2V0U2VhbWxlc3NJRnJhbWVzRW5hYmxlZChib29sKTsKIAogICAgIHN0YXRp
YyB2b2lkIGZvcmNlTGF5b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNwcAppbmRleCBh
NGM5ZmQxMzVlOTcyZTRmYjUzNDQ0YmIwMTUwZGRmOGM2ZTBiZDNmLi45MDFhYTUyNzhhMTU5M2Q2
YWViYWE0MGJmNzVmYjg2MGY4ODgxZmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEVmbC5jcHAKQEAgLTI0MywyOCArMjQzLDIwIEBA
IHZvaWQgRWRpdG9yQ2xpZW50RWZsOjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUgdGhpczsK
IH0KIAotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChi
b29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFibGVk
OwotICAgIGlmIChlbmFibGVkKQotICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKGZhbHNlKTsKLX0KLQogYm9vbCBFZGl0b3JDbGllbnRFZmw6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwot
fQotCi12b2lkIEVkaXRvckNsaWVudEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgc2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IEVXS1By
aXZhdGU6OmNvcmVQYWdlKG1fdmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50RWZsOjppc1NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRl
Ojpjb3JlUGFnZShtX3ZpZXcpOworICAgIGlmICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRFZmw6OnRvZ2dsZUNvbnRp
bnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTM3MSw4ICszNjMsNiBAQCB2b2lkIEVkaXRvckNsaWVu
dEVmbDo6aGFuZGxlSW5wdXRNZXRob2RLZXlkb3duKEtleWJvYXJkRXZlbnQqKQogRWRpdG9yQ2xp
ZW50RWZsOjpFZGl0b3JDbGllbnRFZmwoRXZhc19PYmplY3QqIHZpZXcpCiAgICAgOiBtX2lzSW5S
ZWRvKGZhbHNlKQogICAgICwgbV92aWV3KHZpZXcpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSkKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwuaAppbmRleCAzYzJhMjQ3ZGU0N2E5
N2RmYjM0NGZiZTBjYzQ5ZWI4MmUzNjYzMDQ4Li5kMGQ1ZDMwODE1M2NiYzIwOTQ1ODMxZmMxNTA0
OWE1ZjE3NDhhYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9y
dC9FZGl0b3JDbGllbnRFZmwuaApAQCAtODQsOSArODQsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0
dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqKTsKICAgICB2aXJ0dWFsIGJvb2wgc21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCgpOwotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChi
b29sKTsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQo
KTsKICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmcoKTsKICAg
ICB2aXJ0dWFsIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CkBAIC0xNTcsOCArMTU1
LDYgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIEV2YXNfT2JqZWN0ICptX3ZpZXc7Ci0gICAg
Ym9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDsKIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuY3BwCmlu
ZGV4IDRiNmQyMDJjN2I0YmMzMmI4NDRiZDg0NjBmYWMwZTZmM2IzZGFmMTUuLjliNDdjZjcxOWNk
ZWY5ZDY2M2U2MTgzZjQ0YTI3Y2I4MGZkMzEyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Z3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmNw
cApAQCAtODEsNyArODEsNiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBib29sIER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0azo6c19kcnRSdW4gPSBmYWxzZTsKIGJvb2wgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWluID0gdHJ1ZTsKLWJvb2wgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
PSBmYWxzZTsKIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6RnJhbWVMb2FkRXZlbnRDYWxsYmFj
ayBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZnJhbWVMb2FkRXZlbnRDYWxsYmFjayA9IDA7
CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OkF1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzX2F1dGhlbnRpY2F0aW9uQ2FsbGJhY2sgPSAwOwogCkBAIC0x
MTIsMTYgKzExMSw2IEBAIGJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpsaW5rc0luY2x1
ZGVkSW5Gb2N1c0NoYWluKCkKICAgICByZXR1cm4gc19saW5rc0luY2x1ZGVkSW5UYWJDaGFpbjsK
IH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KLWJvb2wgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gc19z
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotfQotCiAvKioKICAqIGdldEZyYW1lQ2hp
bGRyZW46CiAgKiBAZnJhbWU6IGEgI1dlYktpdFdlYkZyYW1lCkBAIC00NTMsMTUgKzQ0Miw2IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcsIGJvb2wgZGVmCiAgICAgY29yZSh3ZWJWaWV3KS0+c2V0RGVmZXJzTG9h
ZGluZyhkZWZlcnMpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJvb2wgZW5hYmxl
ZCkKLXsKLSAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
Ci0gICAgZ19yZXR1cm5faWZfZmFpbCh3ZWJWaWV3KTsKLQotICAgIFdlYktpdDo6RWRpdG9yQ2xp
ZW50KiBjbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJLaXQ6OkVkaXRvckNsaWVudCo+KGNvcmUod2Vi
VmlldyktPmVkaXRvckNsaWVudCgpKTsKLSAgICBjbGllbnQtPnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChlbmFibGVkKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmZv
cmNlV2ViVmlld1BhaW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAgICAgZ19yZXR1cm5f
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aAppbmRleCAwMmZjNzE3MzIzMGM3ZDY3MTExOWRlZGNhZmQ3ODA4YWYzODk5MzQwLi4xMDYyYzJh
MDYwMzU3M2Q2NTUxZTYyZjNkMjg5MzZhZGIyZDNiOGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsu
aApAQCAtNTEsOCArNTEsNiBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgdm9pZCBzZXRMaW5rc0lu
Y2x1ZGVkSW5Gb2N1c0NoYWluKGJvb2wpOwogICAgIHN0YXRpYyBib29sIGxpbmtzSW5jbHVkZWRJ
bkZvY3VzQ2hhaW4oKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wpOwotICAgIHN0YXRpYyBib29sIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKTsKIAogICAgIHN0YXRpYyB2b2lkIGNsZWFyT3BlbmVyKFdlYktpdFdlYkZyYW1l
Kik7CiAKQEAgLTc3LDcgKzc1LDYgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlY3Rhbmds
ZUZvclNlbGVjdGlvbihXZWJLaXRXZWJGcmFtZSosIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCopOwog
ICAgIHN0YXRpYyB2b2lkIHNjYWxlUGFnZUJ5KFdlYktpdFdlYlZpZXcqLCBmbG9hdCwgZmxvYXQs
IGZsb2F0KTsKICAgICBzdGF0aWMgdm9pZCBzZXREZWZlcnNMb2FkaW5nKFdlYktpdFdlYlZpZXcq
LCBib29sKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoV2Vi
S2l0V2ViVmlldyosIGJvb2wpOwogICAgIHN0YXRpYyB2b2lkIGZvcmNlV2ViVmlld1BhaW50KFdl
YktpdFdlYlZpZXcqKTsKIAogICAgIC8vIEFjY2Vzc2liaWxpdHkKQEAgLTE0NSw3ICsxNDIsNiBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIHNfZHJ0UnVuOwogICAgIHN0YXRp
YyBib29sIHNfbGlua3NJbmNsdWRlZEluVGFiQ2hhaW47Ci0gICAgc3RhdGljIGJvb2wgc19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfTsKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwIGIvU291
cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNwcAppbmRleCBm
OTQ0MjllOTc4NTA2NzFlNDg4MTg2ZDlmYTE5MDY4YmQ2MDM1ODVmLi45MmJhMTY1ZTQ0MjRiOWRi
NGQwM2U5NWJkMGMwNGIxMTgxY2M1NGU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3Rr
L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEd0ay5jcHAKQEAgLTM3LDYgKzM3LDcgQEAKICNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZEhlbHBlci5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiU3R5bGVQcm9wZXJ0eVNldC5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5jbHVkZSAi
V2ViS2l0RE9NQmluZGluZy5oIgpAQCAtMzYwLDIxICszNjEsMjAgQEAgdm9pZCBFZGl0b3JDbGll
bnQ6OnBhZ2VEZXN0cm95ZWQoKQogICAgIGRlbGV0ZSB0aGlzOwogfQogCi12b2lkIEVkaXRvckNs
aWVudDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsKLSAgICBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGVuYWJsZWQ7Ci19Ci0KIGJvb2wgRWRpdG9yQ2xp
ZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUobV93
ZWJWaWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIGNvcmVQYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsK
IH0KIAogYm9vbCBFZGl0b3JDbGllbnQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpCiB7Ci0gICAgaWYgKCFEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OmR1bXBSZW5kZXJUcmVl
TW9kZUVuYWJsZWQoKSkKKyAgICBXZWJDb3JlOjpQYWdlKiBjb3JlUGFnZSA9IGNvcmUobV93ZWJW
aWV3KTsKKyAgICBpZiAoIWNvcmVQYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgcmV0
dXJuIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRvckNsaWVudDo6dG9nZ2xlQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmcoKQpAQCAtNTAxLDcgKzUwMSw2IEBAIEVkaXRvckNsaWVudDo6RWRp
dG9yQ2xpZW50KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgLCBtX3RleHRDaGVja2VyQ2xp
ZW50KFdFQktJVF9TUEVMTF9DSEVDS0VSKHdlYmtpdF9nZXRfdGV4dF9jaGVja2VyKCkpKQogI2Vu
ZGlmCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVF
bmFibGVkKGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudEd0ay5oCmluZGV4IDNhN2VhZjE0YzcxYWY3NTc4ZDkyMjU1ODFl
MTkzZTNhMDAwNDBiZjIuLmM5OWY3MWViNmZiYTg5Y2JmZmJjZWYyMTdkODhkMDIyZTk4YWVkYTcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dEd0ay5oCkBAIC03NSw3ICs3NSw2IEBAIGNsYXNzIEVkaXRvckNsaWVudCA6IHB1YmxpYyBXZWJD
b3JlOjpFZGl0b3JDbGllbnQgewogCiAgICAgICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVS
YW5nZShXZWJDb3JlOjpSYW5nZSopOwogICAgICAgICB2aXJ0dWFsIGJvb2wgc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKCk7Ci0gICAgICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wpOwogICAgICAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7CiAgICAgICAgIHZpcnR1YWwgYm9vbCBpc0NvbnRpbnVvdXNTcGVsbENoZWNraW5n
RW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hl
Y2tpbmcoKTsKQEAgLTE0Niw3ICsxNDUsNiBAQCBjbGFzcyBFZGl0b3JDbGllbnQgOiBwdWJsaWMg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKICAgICAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwogICAgICAgICBXZWJDb3JlOjpLZXlCaW5kaW5nVHJhbnNsYXRvciBtX2tleUJpbmRpbmdUcmFu
c2xhdG9yOwogICAgICAgICBWZWN0b3I8V1RGOjpTdHJpbmc+IG1fcGVuZGluZ0VkaXRvckNvbW1h
bmRzOwotICAgICAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwogICAgIH07CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRv
ckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5tbQppbmRleCA0OWUzYWY2NmMxYzQ2ZDU4NTBmNTc4MWVmYjRjMjE4M2NlNzc0NjMwLi5l
YzlmMDkzOGVhYTQzOGUwZWQ3NWMyMDAzYWI4ZDcxOTVjZDgwMWViIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KKysrIGIvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCkBAIC01OSw4
ICs1OSwxMCBAQAogI2ltcG9ydCA8V2ViQ29yZS9IVE1MVGV4dEFyZWFFbGVtZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTGVnYWN5V2Vi
QXJjaGl2ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QYWdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW5Mb29wLmg+CisjaW1w
b3J0IDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NwZWxsQ2hlY2tlci5o
PgogI2ltcG9ydCA8V2ViQ29yZS9TdHlsZVByb3BlcnR5U2V0Lmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1VuZG9TdGVwLmg+CkBAIC0yMzMsMTIgKzIzNSwxOCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6
c2hvdWxkU2hvd0RlbGV0ZUludGVyZmFjZShIVE1MRWxlbWVudCogZWxlbWVudCkKIAogYm9vbCBX
ZWJFZGl0b3JDbGllbnQ6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJu
IFttX3dlYlZpZXcgc21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICBQYWdlKiBwYWdlID0g
W21fd2ViVmlldyBwYWdlXTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7
CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnNob3VsZEFwcGx5U3R5bGUoU3R5bGVQcm9wZXJ0eVNldCogc3R5bGUsIFJhbmdl
KiByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5t
bSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCA3NjZmOWQ0ZWI0
NjRkYmIxYmYxZDA3ZmY5Y2EyZGVmNGRmOWNkMzE2Li43ZTRjZDdmMjc0NGI4ODhjYzAyYTA2NDVj
ZDZiMzVmNDE3NGFlM2Y0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC03
ODMsNiArNzgzLDkgQEAgc3RhdGljIGJvb2wgc2hvdWxkUmVzcGVjdFByaW9yaXR5SW5DU1NBdHRy
aWJ1dGVTZXR0ZXJzKCkKICAgICAgICAgW3NlbGYgX2luamVjdE91dGxvb2tRdWlya3NTY3JpcHRd
OwogICAgIH0KIAorICAgIGlmIChbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRz
XSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXSkKKyAgICAgICAgW3Nl
bGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOltbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRV
c2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXV07CisK
ICAgICBbV2ViRnJhbWUgX2NyZWF0ZU1haW5GcmFtZVdpdGhQYWdlOl9wcml2YXRlLT5wYWdlIGZy
YW1lTmFtZTpmcmFtZU5hbWUgZnJhbWVWaWV3OmZyYW1lVmlld107CiAKICAgICBOU1J1bkxvb3Ag
KnJ1bkxvb3AgPSBbTlNSdW5Mb29wIG1haW5SdW5Mb29wXTsKQEAgLTI0NzAsMTQgKzI0NzMsMTUg
QEAgc3RhdGljIGlubGluZSBJTVAgZ2V0TWV0aG9kKGlkIG8sIFNFTCBzKQogCiAtICh2b2lkKXNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIF9wcml2
YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmxhZzsKLSAgICBpZiAoZmxh
ZykKLSAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZhbHNlXTsKKyAg
ICBpZiAoX3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygp
LT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOworICAgICAgICBbc2Vs
ZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQ6IWZsYWddOworICAgIH0KIH0KIAogLSAoQk9P
TClpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3ByaXZh
dGUtPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgcmV0dXJuIF9wcml2YXRl
LT5wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9
CiAKIC0gKHZvaWQpc2V0TWVtb3J5Q2FjaGVEZWxlZ2F0ZUNhbGxzRW5hYmxlZDooQk9PTCllbmFi
bGVkCkBAIC01NDI5LDE3ICs1NDMzLDE2IEBAIHN0YXRpYyBOU0FwcGxlRXZlbnREZXNjcmlwdG9y
KiBhZURlc2NGcm9tSlNWYWx1ZShFeGVjU3RhdGUqIGV4ZWMsIEpTQzo6SlNWYWx1ZSBqCiAKIC0g
KHZvaWQpc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBpZiAo
X3ByaXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCAhPSBmbGFnKSB7Ci0gICAgICAgIF9w
cml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBmbGFnOwotICAgICAgICBbW05TVXNl
ckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9wcml2YXRlLT5zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQgZm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07Cisg
ICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKSAhPSBmbGFnKSB7CisgICAgICAgIF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmxhZyk7CisgICAgICAgIFtbTlNVc2VyRGVmYXVsdHMg
c3RhbmRhcmRVc2VyRGVmYXVsdHNdIHNldEJvb2w6X3ByaXZhdGUtPnBhZ2UtPnNldHRpbmdzKCkt
PnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpIGZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVu
YWJsZWRdOworICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
OiFmbGFnXTsKICAgICB9Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ6ZmFsc2VdOwogfQogCiAtIChCT09MKXNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZAogewotICAgIHJldHVybiBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNl
cnREZWxldGVFbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQpc2V0Q29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkOihCT09MKWZsYWcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlld0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEu
aAppbmRleCBhZGVhYmU3ZWUyY2ZhMjJjYmRjMjhlM2JhODMzNzhmNDYwM2UwMmUyLi4zNDdhYmE0
NTc4NWYxODBlOGM5NzQ2Y2NjYjYyYTRlNjc4MGU5NGMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3RGF0YS5oCkBAIC0xNDYsOSArMTQ2LDYgQEAgcHJpdmF0ZToKICAgICBCT09M
IGhhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJE
b2N1bWVudFRhZzsKIAotICAgIEJPT0wgc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwotICAgIEJP
T0wgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKLSAgICAgICAgCiAjaWYgRU5BQkxF
KERBU0hCT0FSRF9TVVBQT1JUKQogICAgIEJPT0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5k
TW91c2VFdmVudHNUb0FsbFdpbmRvd3M7CiAgICAgQk9PTCBkYXNoYm9hcmRCZWhhdmlvckFsd2F5
c1NlbmRBY3RpdmVOdWxsRXZlbnRzVG9QbHVnSW5zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlld0RhdGEubW0KaW5kZXggZTI3NjZmMDFhMzViYzA3ZWVhYTQ4NmMyNjU1YjRjMDFiYWVk
OTdhNi4uYzY4MWYwOWJhNzIxNmQ4ZDIxNmU1OTc1MjZhZjg1ODFkMDAzZGU3YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCkBAIC05NSwxMCArOTUsNiBAQCBMYXll
ckZsdXNoQ29udHJvbGxlcjo6TGF5ZXJGbHVzaENvbnRyb2xsZXIoV2ViVmlldyogd2ViVmlldykK
IAogICAgIHNob3VsZENsb3NlV2l0aFdpbmRvdyA9IG9iamNfY29sbGVjdGluZ0VuYWJsZWQoKTsK
IAotICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFbW05TVXNlckRlZmF1bHRzIHN0YW5k
YXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVk
XQotICAgICAgICB8fCBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29s
Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF07Ci0KLQogICAgIHBsdWdpbkRhdGFi
YXNlQ2xpZW50Q291bnQrKzsKIAogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1
cHBvcnRRdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcAppbmRleCA1OWYzNzEwODIwYWQzMTc3M2Y0ZDEzMmY3ZWM0ZGIzMmU3
ZjMzZjlkLi4yNDAzNGY2YjI4ZmE1MWU4ZjlkNjA5NTYxN2MwOTA4ODgxYzEwMTVkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydFF0LmNwcApAQCAtMzI2LDE4ICszMjYsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydFF0OjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIq
IGFkYQogICAgIGFkYXB0ZXItPnBhZ2UtPnNldHRpbmdzKCktPnNldEF1dGhvckFuZFVzZXJTdHls
ZXNFbmFibGVkKHZhbHVlKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKFFXZWJQYWdlQWRhcHRlciAqYWRhcHRlciwgYm9vbCBl
bmFibGVkKQotewotICAgIHN0YXRpY19jYXN0PEVkaXRvckNsaWVudFF0Kj4oYWRhcHRlci0+cGFn
ZS0+ZWRpdG9yQ2xpZW50KCkpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7
Ci19Ci0KLQotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkK
LXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRv
ckNsaWVudCgpKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChlbmFibGVkKTsK
LX0KLQotCiB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0OjpleGVjdXRlQ29yZUNvbW1hbmRC
eU5hbWUoUVdlYlBhZ2VBZGFwdGVyKiBhZGFwdGVyLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25z
dCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBhZGFwdGVyLT5wYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmVkaXRvcigpLT5jb21tYW5kKG5hbWUpLmV4ZWN1dGUo
dmFsdWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdC5oIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCmluZGV4IDcwZmY4NWU3MDdjZmQwOWRkODBiOWJmM2E3
Y2NkYTUzZTNhMzVjNGIuLjY3YTA0MzZkOGNlOWZmZjYxMGU4Mjk3NTIzMzgyMTg5YmE3ZTNlNjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydFF0LmgKQEAgLTk0LDggKzk0LDYgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFtZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBR
U3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXND
b21tYW5kRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKICAg
ICBzdGF0aWMgYm9vbCBmaW5kU3RyaW5nKFFXZWJQYWdlQWRhcHRlciosIGNvbnN0IFFTdHJpbmcm
LCBjb25zdCBRU3RyaW5nTGlzdCYgb3B0aW9uQXJyYXkpOwotICAgIHN0YXRpYyB2b2lkIHNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIqLCBib29sIGVuYWJsZWQpOwot
ICAgIHN0YXRpYyB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBh
Z2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKICAgICBzdGF0aWMgUVZhcmlhbnRMaXN0IHNlbGVj
dGVkUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKik7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShRV2ViUGFnZUFkYXB0ZXIqLCBpbnQgbG9jYXRpb24sIGlu
dCBsZW5ndGgpOwogICAgIHN0YXRpYyB2b2lkIGNvbmZpcm1Db21wb3NpdGlvbihRV2ViUGFnZUFk
YXB0ZXIqLCBjb25zdCBjaGFyKiB0ZXh0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5kZXggYWZjYzhkNjRlZmUwYTU0YmYxYTNi
MGJiYzVlYzVhYTI0OTA4N2EwMy4uZDgyZDBlNWZkN2RlODE5MWZmMjkyMTNmMjdkNDA4ZDRmYTIw
MWFkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRRdC5jcHAKQEAgLTMzMywxOCArMzMzLDI3IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnBh
Z2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKQogewotICAgIHJldHVybiBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICBQ
YWdlKiBwYWdlID0gbV9wYWdlLT5wYWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKTsKIH0KIAogdm9pZCBFZGl0b3JDbGllbnRRdDo6dG9nZ2xlU21hcnRJbnNlcnREZWxl
dGUoKQogewotICAgIGJvb2wgY3VycmVudCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkOwot
ICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gIWN1cnJlbnQ7CisgICAgUGFnZSogcGFn
ZSA9IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAocGFnZSkgeworICAgICAgICBwYWdlLT5zZXR0aW5n
cygpLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKTsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCghcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpKTsKKyAgICB9CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50
UXQ6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgcmV0dXJuIG1f
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV9wYWdl
LT5wYWdlOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkK
QEAgLTU0MSw4ICs1NTAsNiBAQCBFZGl0b3JDbGllbnRRdDo6RWRpdG9yQ2xpZW50UXQoUVdlYlBh
Z2VBZGFwdGVyKiBwYWdlQWRhcHRlcikKICAgICA6IG1fcGFnZShwYWdlQWRhcHRlcikKICAgICAs
IG1fZWRpdGluZyhmYWxzZSkKICAgICAsIG1faW5VbmRvUmVkbyhmYWxzZSkKLSAgICAsIG1fc21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpCi0gICAgLCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQv
V2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaAppbmRleCBhMTM0ZjVlYjZlN2Q0OTI2ZDQ0Mzk1NTEz
NTYzODNmZWExOTI0YjJmLi43ODJjZGUzZDU0YmY2NGNjMWExNzRhNzM1ODQxZTVmM2IzYzVjNjdl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVu
dFF0LmgKKysrIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5oCkBAIC0xMTEsOSArMTExLDYgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0VkaXRpbmcoKSBj
b25zdDsKIAotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgYikgeyBt
X3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IGI7IH0KLSAgICB2b2lkIHNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBiKSB7IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCA9IGI7IH0KLQogICAgIHN0YXRpYyBib29sIGR1bXBFZGl0aW5nQ2FsbGJhY2tzOwog
ICAgIHN0YXRpYyBib29sIGFjY2VwdHNFZGl0aW5nOwogCkBAIC0xMjIsOCArMTE5LDYgQEAgcHJp
dmF0ZToKICAgICBRV2ViUGFnZUFkYXB0ZXIqIG1fcGFnZTsKICAgICBib29sIG1fZWRpdGluZzsK
ICAgICBib29sIG1faW5VbmRvUmVkbzsgLy8gb3VyIHVuZG8gc3RhY2sgd29ya3MgZGlmZmVyZW50
bHkgLSBkb24ndCByZS1lbnRlciEKLSAgICBib29sIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVk
OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogfTsKIAogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVu
dC5jcHAKaW5kZXggZDk4Nzg5MjdmMmY0OWI3MDk5YTY0ZDJjZjI1NDkzNzE2ZGEzMzY2NS4uZWI5
YjQ1MTVmODhhOTFlZWQ5MDRlY2NlYTNlODMxYWVjMjAxYjRmMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCkBAIC00MCw4
ICs0MCwxMCBAQAogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVt
ZW50ZWQuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmFuZ2UuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1NldHRpbmdzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9VbmRvU3RlcC5oPgog
I2luY2x1ZGUgPFdlYkNvcmUvVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Zpc2libGVTZWxlY3Rpb24uaD4KQEAgLTMwMiwxNyArMzA0LDE5IEBAIHZvaWQg
V2ViRWRpdG9yQ2xpZW50Ojp3ZWJWaWV3RGlkQ2hhbmdlU2VsZWN0aW9uKFdlYk5vdGlmaWNhdGlv
biogLypub3RpZmljYXRpb24qCiB7ICBub3RJbXBsZW1lbnRlZCgpOyB9CiAKIGJvb2wgV2ViRWRp
dG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQodm9pZCkKLXsgCi0gICAgQk9PTCBl
bmFibGVkID0gRkFMU0U7IAotICAgIG1fd2ViVmlldy0+c21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCZlbmFibGVkKTsKLSAgICByZXR1cm4gISFlbmFibGVkOworeworICAgIFBhZ2UqIHBhZ2UgPSBt
X3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7
CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodm9pZCkKIHsKLSAgICBCT09MIGVuYWJsZWQgPSBGQUxTRTsKLSAgICBtX3dlYlZpZXct
PmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgmZW5hYmxlZCk7Ci0gICAgcmV0dXJu
ICEhZW5hYmxlZDsKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYg
KCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdz
KCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBXZWJFZGl0
b3JDbGllbnQ6OnNob3VsZENoYW5nZVNlbGVjdGVkUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqLCBXZWJD
b3JlOjpSYW5nZSosIFdlYkNvcmU6OkVBZmZpbml0eSwgYm9vbCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAK
aW5kZXggZDYyMTQxMTUyMDg2NTFjM2QzNjdlMmUyYWQ2MDNlOGU1Mjk4MWVlZS4uODUxNjg3NDRk
ZjEzNjYwYzZhZmMxYzM4ZTZhMGZhNGM5NjllN2EzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAg
LTM2NSw3ICszNjUsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAgICAsIG1faXNCZWluZ0Rlc3Ry
b3llZChmYWxzZSkKICAgICAsIG1fcGFpbnRDb3VudCgwKQogICAgICwgbV9oYXNTcGVsbENoZWNr
ZXJEb2N1bWVudFRhZyhmYWxzZSkKLSAgICAsIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZh
bHNlKQogICAgICwgbV9kaWRDbG9zZShmYWxzZSkKICAgICAsIG1faW5JTUVDb21wb3NpdGlvbigw
KQogICAgICwgbV90b29sVGlwSHduZCgwKQpAQCAtMzczLDcgKzM3Miw2IEBAIFdlYlZpZXc6Oldl
YlZpZXcoKQogICAgICwgbV90b3BMZXZlbFBhcmVudCgwKQogICAgICwgbV9kZWxldGVCYWNraW5n
U3RvcmVUaW1lckFjdGl2ZShmYWxzZSkKICAgICAsIG1fdHJhbnNwYXJlbnQoZmFsc2UpCi0gICAg
LCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2xhc3RQ
YW5YKDApCiAgICAgLCBtX2xhc3RQYW5ZKDApCiAgICAgLCBtX3hPdmVycGFuKDApCkBAIC00MDgy
LDMyICs0MDgwLDM0IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6dHlwaW5n
U3R5bGUoCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCggCiAgICAgICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1f
c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCkKLSAgICAgICAgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChmYWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkgPT0gISFmbGFnKSB7CisgICAgICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIWZsYWcpOworICAgIH0KICAgICByZXR1cm4gU19PSzsKIH0KICAg
ICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViVmlldzo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCAKICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBCT09MKiBlbmFibGVkKQogewot
ICAgICplbmFibGVkID0gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPyBUUlVFIDogRkFMU0U7
CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJldHVybiBTX09LOwogfQogIAogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCAKICAgICAgICAgLyogW2luXSAqLyBCT09MIGZsYWcpCiB7Ci0gICAgbV9zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkID0gISFmbGFnOwotICAgIGlmIChtX3NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQpCi0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChm
YWxzZSk7CisgICAgaWYgKG1fcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCgpID09ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoISFmbGFnKTsKKyAgICAgICAgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9
CiAgICAgCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCog
ZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxlZCA9IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCA/IFRSVUUgOiBGQUxTRTsKKyAgICAqZW5hYmxlZCA9IG1fcGFnZS0+c2V0dGluZ3MoKS0+
c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpID8gVFJVRSA6IEZBTFNFOwogICAgIHJl
dHVybiBTX09LOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0L3dpbi9XZWJWaWV3LmgKaW5kZXggYzkzNzM0NjJmZWYyODQxZTU3N2Mw
NjA5ZDAzODJmMWI3MzYwN2I2ZS4uZmNiNzgyNDg0MzA4M2NlZTNjMDgzNTk4ZDNhMThlOWQ3ZmJj
NGU5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvd2luL1dlYlZpZXcuaApAQCAtMTExMiw4ICsxMTEyLDYgQEAgcHJvdGVjdGVkOgog
ICAgIGJvb2wgbV9pc0JlaW5nRGVzdHJveWVkOwogICAgIHVuc2lnbmVkIG1fcGFpbnRDb3VudDsK
ICAgICBib29sIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7Ci0gICAgYm9vbCBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDsKICAgICBib29sIG1fZGlkQ2xvc2U7CiAgICAgYm9vbCBtX2hhc0N1c3RvbURyb3BU
YXJnZXQ7CiAgICAgdW5zaWduZWQgbV9pbklNRUNvbXBvc2l0aW9uOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcApp
bmRleCBiOWY0NjhmNDE1NDJiY2NkMDhiZTUxMWM2NzgxNDgxZjc1M2EzY2IyLi44MTNmZDFkYzhi
NzU1MWI0YzkwYjU0N2EyYjA5N2Y3ZjhiODcwM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L3dpbmNlL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFdpbkNFLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAiS2V5Ym9hcmRFdmVudC5o
IgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1
ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlVuZG9TdGVwLmgiCiAjaW5j
bHVkZSAiU2V0dGluZ3MuaCIKQEAgLTIwOSwxNCArMjEwLDE4IEBAIHZvaWQgRWRpdG9yQ2xpZW50
V2luQ0U6OnBhZ2VEZXN0cm95ZWQoKQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjpzbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBpZiAoIXBh
Z2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V2luQ0U6
OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50
ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFn
ZSgpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBw
YWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAK
IHZvaWQgRWRpdG9yQ2xpZW50V2luQ0U6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRX
eC5jcHAgYi9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3Bw
CmluZGV4IDVlZjY0Y2Q0YTljMDEzNjNjNDk5ZTU3ZmNkOTdhZGQ1ZDljMzE1YWEuLmY4Y2Y2Yjgy
NjkxODYwY2NjZGU5NTRhNjg4OTVhZTFjODVkMDJmYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvd3gvV2ViS2l0U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcApAQCAtMzgsNiArMzgsNyBAQAog
I2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWUuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJWaWV3LmgiCkBAIC0xNDksMTQgKzE1MCwxNiBAQCBib29sIEVkaXRvckNsaWVudFd4OjpzaG91
bGREZWxldGVSYW5nZShSYW5nZSopCiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4g
bV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9v
bCBFZGl0b3JDbGllbnRXeDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsK
LSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoIW1fcGFn
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3BhZ2UtPnNldHRpbmdzKCkt
PnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGll
bnRXeDo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ2ZGQzOGI3OTllNDZkZGQ2NjQ0
OTU3ODM0M2YzNDRjODgyYjYzYzcuLjFkMTMzYzI0M2UzNjhjNGU4NWRiYmM0ZWNmMDI1MzZmMjFk
M2YxN2YgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw1OCBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZXMgYWxsIHRoZSBjb2RlIHJlbGF0ZWQgdG8gc21h
cnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkIHNldHRpbmdzIGFzIHRoZXkgd2lsbCBiZSBtYW5hZ2VkIGZyb20KKyAgICAgICAg
aW50ZXJuYWxzIGZyb20gbm93IG9uLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1
bm5lci5jcHA6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaDoKKyAgICAgICAgKFRlc3RSdW5uZXIpOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRl
clRyZWU6OnJlc2V0VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oOgorICAg
ICAgICAoRHVtcFJlbmRlclRyZWUpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2JsYWNrYmVy
cnkvVGVzdFJ1bm5lckJsYWNrQmVycnkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oOgorICAgICAgICAoV2ViVGVz
dFJ1bm5lcjo6V2ViVGVzdFByb3h5OjpkaWRTdG9wTG9hZGluZyk6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5jcHA6CisgICAgICAg
IChXZWJUZXN0UnVubmVyOjpUZXN0UnVubmVyOjpUZXN0UnVubmVyKToKKyAgICAgICAgKFdlYlRl
c3RSdW5uZXI6OlRlc3RSdW5uZXI6OnJlc2V0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVy
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpXZWJQcmVmZXJlbmNlczo6
YXBwbHlUbyk6IFNldCBkZWZhdWx0IHZhbHVlcyBmb3IKKyAgICAgICAgc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIGFuZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmdzIGFz
CisgICAgICAgIENocm9taXVtIERSVCBkZWZhdWx0IHZhbHVlcyBhcmUgZGlmZmVyZW50IGZyb20g
Q2hyb21pdW0gYnJvd3Nlci4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5oOgorICAgICAgICAoV2ViVmlld0hvc3QpOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0c1RvQ29uc2lzdGVudFZhbHVlcyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldERlZmF1bHRz
VG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1
bm5lckd0ay5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVl
Lm1tOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5n
KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OldlYlBhZ2U6OnJlc2V0U2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1
bm5lclF0Lmg6CisgICAgICAgIChUZXN0UnVubmVyUXQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChyZXNldFdlYlZpZXdUb0NvbnNp
c3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9U
ZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVy
V3guY3BwOgorCiAyMDEzLTAzLTA2ICBKdWxpZSBQYXJlbnQgIDxqcGFyZW50QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBEYXNoYm9hcmQgY2xlYW51cDogTW92ZSBhbGwgZGFzaGJvYXJkIHVpIHJl
bGF0ZWQgY29kZSBpbnRvIHVpLmpzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAppbmRl
eCA3ZDNlODVlMDA3NDNjMjRlMTI3YWQyYzFlZmJhNjYzNGM2N2RlZDM2Li5kYWVjY2FmZTZkZGU1
YWVjYWYzZTRhNGNmMDZiZDYyZjdiZTM4NDY1IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcApAQCAtMTUwNiwxNiArMTUwNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlc2V0UGFnZVZp
c2liaWxpdHlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYKICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9ICAgIAogCi1zdGF0aWMgSlNW
YWx1ZVJlZiBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYg
Y29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNp
emVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVl
UmVmKiBleGNlcHRpb24pCi17Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzBdKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotfQotCiBzdGF0aWMgSlNWYWx1ZVJlZiBzZXRB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZENhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0
LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFy
Z3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4
Y2VwdGlvbikKIHsKICAgICBpZiAoYXJndW1lbnRDb3VudCA8IDEpCkBAIC0xNTI2LDE2ICsxNTE2
LDYgQEAgc3RhdGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIHNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWRDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50
LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCi17
Ci0gICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQotICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7Ci0KLSAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAg
Y29udHJvbGxlci0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChKU1ZhbHVlVG9C
b29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1swXSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVu
ZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpTVmFsdWVSZWYgc2V0U3RvcFByb3Zpc2lv
bmFsRnJhbWVMb2Fkc0NhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBm
dW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsKICAg
ICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2Jq
ZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CkBAIC0yMTM4LDkgKzIxMTgsNyBAQCBKU1N0YXRp
Y0Z1bmN0aW9uKiBUZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMoKQogICAgICAgICB7ICJzZXRQ
bHVnaW5zRW5hYmxlZCIsIHNldFBsdWdpbnNFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0UHJpbnRpbmciLCBzZXRQcmludGluZ0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQiLCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCIsIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRDYWxsYmFjaywga0pT
UHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0
ZSB9LAogICAgICAgICB7ICJzZXRTZXJpYWxpemVIVFRQTG9hZHMiLCBzZXRTZXJpYWxpemVIVFRQ
TG9hZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAotICAgICAgICB7ICJzZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQiLCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQiLCBzZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTdG9wUHJvdmlzaW9uYWxG
cmFtZUxvYWRzIiwgc2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2Fkc0NhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CiAgICAgICAgIHsgInNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyIsIHNldFRhYktleUN5
Y2xlc1Rocm91Z2hFbGVtZW50c0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVu
bmVyLmgKaW5kZXggNGYzNzBjMzM5YzdjZmE5OGU4OWYzNDAwMjkyMzdiMWI0ODU0ZjFkYi4uMTdm
YjQwOGRiOWY4ODQwMDI1ZjZhYjkxNzQ3YmNhOGU3NGIzOWFmZCAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaApAQCAtMTAzLDggKzEwMyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFBsdWdp
bnNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFRhYktleUN5Y2xlc1Rocm91
Z2hFbGVtZW50cyhib29sKTsKICAgICB2b2lkIHNldFVzZURhc2hib2FyZENvbXBhdGliaWxpdHlN
b2RlKGJvb2wgZmxhZyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbCBm
bGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVy
VHJlZS5jcHAKaW5kZXggNzE2NTJkY2QxMjM4YTEzNjQzNzJiMDk4MzU4MGJjMDJkMjgzODEwNS4u
OTU2NDQ0YmM3Zjg1NWFjYTllYWY0NjVjMDI0MWJlYTdiYjVkODZiOCAxMDA2NDQKLS0tIGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTE1MSw3
ICsxNTEsNiBAQCBuYW1lc3BhY2UgQmxhY2tCZXJyeSB7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
RHVtcFJlbmRlclRyZWUqIER1bXBSZW5kZXJUcmVlOjpzX2N1cnJlbnRJbnN0YW5jZSA9IDA7Ci1i
b29sIER1bXBSZW5kZXJUcmVlOjpzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBm
YWxzZTsKIAogc3RhdGljIHZvaWQgY3JlYXRlRmlsZShjb25zdCBTdHJpbmcmIGZpbGVOYW1lKQog
ewpAQCAtMjk1LDcgKzI5NCw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWU6OnJlc2V0VG9Db25zaXN0
ZW50U3RhdGVCZWZvcmVUZXN0aW5nKGNvbnN0IFN0cmluZyYgdXJsLCBjb25zCiAKICAgICB0b3BM
b2FkaW5nRnJhbWUgPSAwOwogICAgIG1fbG9hZEZpbmlzaGVkID0gZmFsc2U7Ci0gICAgc19zZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAgICAgbV9wb2xpY3lEZWxlZ2F0
ZUVuYWJsZWQgPSBmYWxzZTsKICAgICB3YWl0Rm9yUG9saWN5ID0gZmFsc2U7CiAgICAgdGVzdERv
bmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkv
RHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCmluZGV4IGExM2FmYjEyZDhkNTIzODMzNTQ3
ZjMzYzI3MDkwNDFlMDBiNzk4MzYuLjI2N2M0ZGNhZGY2ZWQwNzY1NzZkN2NkYmNkMDBhZGYzOWRj
ZTA5YzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJl
bmRlclRyZWVCbGFja0JlcnJ5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxhY2tiZXJy
eS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaApAQCAtMTAyLDggKzEwMiw2IEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZEluc2VydE5vZGUoV2ViQ29yZTo6Tm9kZSosIFdlYkNvcmU6OlJhbmdl
KiwgaW50IGluc2VydEFjdGlvbik7CiAgICAgYm9vbCBzaG91bGRJbnNlcnRUZXh0KGNvbnN0IFN0
cmluZyYsIFdlYkNvcmU6OlJhbmdlKiwgaW50IGluc2VydEFjdGlvbik7CiAKLSAgICBib29sIGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIHNfc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsgfQotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sIGVuYWJsZWQpIHsgc19zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkID0gZW5hYmxlZDsgfQogICAgIGJvb2wgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlKFdlYkNvcmU6OkNyZWRlbnRpYWwmKTsKIAogICAgIC8vIEJsYWNrQmVycnk6OlBs
YXRmb3JtOjpCbGFja0JlcnJ5UGxhdGZvcm1MYXlvdXRUZXN0Q2xpZW50IG1ldGhvZApAQCAtMTQ4
LDcgKzE0Niw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIG1fYWNjZXB0c0VkaXRpbmc7CiAgICAg
Ym9vbCBtX2xvYWRGaW5pc2hlZDsKLSAgICBzdGF0aWMgYm9vbCBzX3NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQ7CiAgICAgYm9vbCBtX3BvbGljeURlbGVnYXRlRW5hYmxlZDsKIH07CiB9
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5uZXJC
bGFja0JlcnJ5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5l
ckJsYWNrQmVycnkuY3BwCmluZGV4IDY0NWFlNzk2ODgxZjNhNDFmMGJjOTczNzgzOTI5MjA5ZTQz
NzA1ZGMuLmJkMmYwMzQ1NzU4ZjAzYWZhMTk2MjVhNDM0NDJiNjRmZDQ2ODJkNTAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNrQmVycnku
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvVGVzdFJ1bm5lckJsYWNr
QmVycnkuY3BwCkBAIC0yNjAsMTcgKzI2MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0WFNTQXVk
aXRvckVuYWJsZWQoYm9vbCBmbGFnKQogICAgIEJsYWNrQmVycnk6OldlYktpdDo6RHVtcFJlbmRl
clRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5wYWdlKCktPnNldHRpbmdzKCktPnNldFhTU0F1ZGl0
b3JFbmFibGVkKGZsYWcpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIEJsYWNrQmVycnk6OldlYktpdDo6
RHVtcFJlbmRlclRyZWU6OmN1cnJlbnRJbnN0YW5jZSgpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZsYWcpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGZsYWcpOwotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0VGFiS2V5Q3ljbGVz
VGhyb3VnaEVsZW1lbnRzKGJvb2wgY3ljbGVzKQogewogICAgIGlmICghbWFpbkZyYW1lKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMv
V2ViVGVzdFByb3h5LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVy
L3B1YmxpYy9XZWJUZXN0UHJveHkuaAppbmRleCBhNDRlY2JkNzgwZGE2MWQ5YmZlN2U5YzgwZTUy
MWY2YjFiOTA3NWM4Li5kNGE2MDBiODIwZTkzMDczZGI4OTc2MWViYTcyOTBjMTFmY2QwYTE1IDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3B1Ymxp
Yy9XZWJUZXN0UHJveHkuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaApAQCAtMTQ5LDggKzE0OSw2IEBAIHByb3RlY3Rl
ZDoKICAgICBXZWJLaXQ6OldlYlBsdWdpbiogY3JlYXRlUGx1Z2luKFdlYktpdDo6V2ViRnJhbWUq
LCBjb25zdCBXZWJLaXQ6OldlYlBsdWdpblBhcmFtcyYpOwogICAgIHZvaWQgc2V0U3RhdHVzVGV4
dChjb25zdCBXZWJLaXQ6OldlYlN0cmluZyYpOwogICAgIHZvaWQgZGlkU3RvcExvYWRpbmcoKTsK
LSAgICBib29sIGlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0gICAgYm9vbCBpc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2b2lkIHNob3dDb250ZXh0TWVudShX
ZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJDb250ZXh0TWVudURhdGEmKTsKICAg
ICBXZWJLaXQ6OldlYlVzZXJNZWRpYUNsaWVudCogdXNlck1lZGlhQ2xpZW50KCk7CiAgICAgdm9p
ZCBwcmludFBhZ2UoV2ViS2l0OjpXZWJGcmFtZSopOwpAQCAtMzY4LDE0ICszNjYsNiBAQCBwdWJs
aWM6CiAgICAgICAgIFdlYlRlc3RQcm94eUJhc2U6OmRpZFN0b3BMb2FkaW5nKCk7CiAgICAgICAg
IEJhc2U6OmRpZFN0b3BMb2FkaW5nKCk7CiAgICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi0gICAgewotICAgICAgICByZXR1cm4gV2ViVGVzdFByb3h5
QmFzZTo6aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB9Ci0gICAgdmlydHVhbCBi
b29sIGlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi0gICAgewotICAgICAgICBy
ZXR1cm4gV2ViVGVzdFByb3h5QmFzZTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KCk7Ci0gICAgfQogICAgIHZpcnR1YWwgdm9pZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJG
cmFtZSogZnJhbWUsIGNvbnN0IFdlYktpdDo6V2ViQ29udGV4dE1lbnVEYXRhJiBjb250ZXh0TWVu
dURhdGEpCiAgICAgewogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpzaG93Q29udGV4dE1lbnUo
ZnJhbWUsIGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCmluZGV4IDJhZDM0
MzBiODI3NjhkN2RkMDAyN2Y0OGFmOGYwNjcxMjdiNjc4MjQuLjYyYjZmNjk1NTg0NTI4NTk0NzRh
NWFhYWFiOTRhMWRhZTJmMjg3YTcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwCkBAIC0yMDcsOCAr
MjA3LDYgQEAgVGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcihUZXN0SW50ZXJmYWNlcyogaW50ZXJmYWNl
cykKICAgICBiaW5kTWV0aG9kKCJ0ZXh0U3Vycm91bmRpbmdOb2RlIiwgJlRlc3RSdW5uZXI6OnRl
eHRTdXJyb3VuZGluZ05vZGUpOwogICAgIGJpbmRNZXRob2QoImRpc2FibGVBdXRvUmVzaXplTW9k
ZSIsICZUZXN0UnVubmVyOjpkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUpOwogICAgIGJpbmRNZXRob2Qo
ImVuYWJsZUF1dG9SZXNpemVNb2RlIiwgJlRlc3RSdW5uZXI6OmVuYWJsZUF1dG9SZXNpemVNb2Rl
KTsKLSAgICBiaW5kTWV0aG9kKCJzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQiLCAmVGVzdFJ1
bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKTsKLSAgICBiaW5kTWV0aG9kKCJzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoInNldE1vY2tEZXZpY2VP
cmllbnRhdGlvbiIsICZUZXN0UnVubmVyOjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24pOwogICAg
IGJpbmRNZXRob2QoImRpZEFjcXVpcmVQb2ludGVyTG9jayIsICZUZXN0UnVubmVyOjpkaWRBY3F1
aXJlUG9pbnRlckxvY2spOwogICAgIGJpbmRNZXRob2QoImRpZExvc2VQb2ludGVyTG9jayIsICZU
ZXN0UnVubmVyOjpkaWRMb3NlUG9pbnRlckxvY2spOwpAQCAtNDA5LDEyICs0MDcsNiBAQCB2b2lk
IFRlc3RSdW5uZXI6OnJlc2V0KCkKICAgICBtX3Nob3VsZFN0YXlPblBhZ2VBZnRlckhhbmRsaW5n
QmVmb3JlVW5sb2FkID0gZmFsc2U7CiAgICAgbV9zaG91bGRCbG9ja1JlZGlyZWN0cyA9IGZhbHNl
OwogICAgIG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbCA9IGZhbHNlOwotICAgIG1f
c21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKLSNpZmRlZiBXSU4zMgotICAgIG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IHRydWU7Ci0jZWxzZQotICAgIG1fc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwotI2VuZGlmCiAgICAgbV9zaG91bGRE
dW1wUmVzb3VyY2VQcmlvcml0aWVzID0gZmFsc2U7CiAKICAgICBtX2h0dHBIZWFkZXJzVG9DbGVh
ci5jbGVhcigpOwpAQCAtNjczLDE2ICs2NjUsNiBAQCBib29sIFRlc3RSdW5uZXI6OnNob3VsZElu
dGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3QKICAgICByZXR1cm4gbV9pbnRlcmNlcHRQb3N0TWVz
c2FnZS5pc0Jvb2woKSAmJiBtX2ludGVyY2VwdFBvc3RNZXNzYWdlLnRvQm9vbGVhbigpOwogfQog
Ci1ib29sIFRlc3RSdW5uZXI6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7Ci19Ci0KLWJvb2wgVGVzdFJ1
bm5lcjo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QKLXsKLSAgICBy
ZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotfQotCiBib29sIFRlc3RS
dW5uZXI6OnNob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMoKSBjb25zdAogewogICAgIHJldHVy
biBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CkBAIC0xNDY1LDIwICsxNDQ3LDYgQEAg
dm9pZCBUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYgYXJndW1lbnRzLCBDcHBWYXJpYW4KICAgICByZXN1bHQtPnNldChzdXJyb3VuZGluZ1RleHQu
dGV4dENvbnRlbnQoKS51dGY4KCkpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFy
aWFudCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVu
dHNbMF0uaXNCb29sKCkpCi0gICAgICAgIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID0gYXJn
dW1lbnRzWzBdLnZhbHVlLmJvb2xWYWx1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQot
dm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAg
aWYgKGFyZ3VtZW50cy5zaXplKCkgPiAwICYmIGFyZ3VtZW50c1swXS5pc0Jvb2woKSkKLSAgICAg
ICAgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gYXJndW1lbnRzWzBdLnZhbHVl
LmJvb2xWYWx1ZTsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQogdm9pZCBUZXN0UnVubmVy
OjpkdW1wUmVzb3VyY2VSZXF1ZXN0UHJpb3JpdGllcyhjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fc2hvdWxkRHVtcFJlc291cmNl
UHJpb3JpdGllcyA9IHRydWU7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKaW5kZXggMjVlN2ZlODQ1ODliN2Q4
MTcxZmM2MTliMDk1ODljZDExOTE2MDhiMS4uMWIwYzZkNDkxZGRiNTJmYzg4MTQ2MGFkOTk5OTc5
MzI4OWQ4ZmRjMiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaApAQCAtMTE4LDggKzExOCw2IEBAIHB1Ymxp
YzoKICAgICBib29sIHBvbGljeURlbGVnYXRlSXNQZXJtaXNzaXZlKCkgY29uc3Q7CiAgICAgYm9v
bCBwb2xpY3lEZWxlZ2F0ZVNob3VsZE5vdGlmeURvbmUoKSBjb25zdDsKICAgICBib29sIHNob3Vs
ZEludGVyY2VwdFBvc3RNZXNzYWdlKCkgY29uc3Q7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpIGNvbnN0OwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkg
Y29uc3Q7CiAjaWYgRU5BQkxFX05PVElGSUNBVElPTlMKICAgICBXZWJLaXQ6OldlYk5vdGlmaWNh
dGlvblByZXNlbnRlciogbm90aWZpY2F0aW9uUHJlc2VudGVyKCkgY29uc3Q7CkBAIC0yNjksMTEg
KzI2Nyw2IEBAIHByaXZhdGU6CiAgICAgLy8gbGVuZ3RoIHRvIHJldHJpZXZlLgogICAgIHZvaWQg
dGV4dFN1cnJvdW5kaW5nTm9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAKLSAgICAvLyBFbmFibGUgb3IgZGlzYWJsZSBzbWFydCBpbnNlcnQvZGVsZXRlLiBUaGlzIGlz
IGVuYWJsZWQgYnkgZGVmYXVsdC4KLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0KLSAgICAvLyBFbmFibGUg
b3IgZGlzYWJsZSB0cmFpbGluZyB3aGl0ZXNwYWNlIHNlbGVjdGlvbiBvbiBkb3VibGUgY2xpY2su
Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGVuYWJsZUF1dG9SZXNpemVNb2Rl
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc2FibGVB
dXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKQEAg
LTY2OCwxMCArNjYxLDYgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV93aWxsU2VuZFJlcXVlc3RT
aG91bGRSZXR1cm5OdWxsOwogCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsK
LQotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwotCiAgICAgYm9v
bCBtX3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXM7CiAKICAgICBzdGQ6OnNldDxzdGQ6OnN0
cmluZz4gbV9odHRwSGVhZGVyc1RvQ2xlYXI7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAK
aW5kZXggMzFkM2E0YjQxMGE4YzUzYTY0OGM3YzA4ZWYwYWRmNjJjZDcwYjA1Yi4uMzExNGZiZGE5
N2U5M2U4MTkxNWVlNjYzNWY4ZDllYjhjMDg3ZTU4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlByZWZlcmVu
Y2VzLmNwcApAQCAtMjIxLDYgKzIyMSwxMiBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjphcHBseVRv
KFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3MtPnNldFZpc3VhbFdvcmRNb3ZlbWVudEVu
YWJsZWQoZmFsc2UpOwogICAgIHNldHRpbmdzLT5zZXRQYXNzd29yZEVjaG9FbmFibGVkKGZhbHNl
KTsKICAgICBzZXR0aW5ncy0+c2V0QXBwbHlEZXZpY2VTY2FsZUZhY3RvckluQ29tcG9zaXRvcih0
cnVlKTsKKyAgICBzZXR0aW5ncy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOwor
I2lmZGVmIFdJTjMyCisgICAgc2V0dGluZ3MtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CisjZWxzZQorICAgIHNldHRpbmdzLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGZhbHNlKTsKKyNlbmRpZgogfQogCiB9CmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViVGVzdFByb3h5
LmNwcAppbmRleCA4NjgxMzNmZTQ3MGY5MWFlZmNlZDFmYzE5NmJjYThmNzBkMzBkMDk0Li5jYzUw
NzUzNGUxNmQ5ODU5YTIyYzU3ZGMyMWQ1NGFjNWIzZTJhYWRkIDEwMDY0NAotLS0gYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlRlc3RQ
cm94eS5jcHAKQEAgLTk3OCwxNiArOTc4LDYgQEAgdm9pZCBXZWJUZXN0UHJveHlCYXNlOjpkaWRT
dG9wTG9hZGluZygpCiAgICAgICAgIG1fZGVsZWdhdGUtPnByaW50TWVzc2FnZSgicG9zdFByb2dy
ZXNzRmluaXNoZWROb3RpZmljYXRpb25cbiIpOwogfQogCi1ib29sIFdlYlRlc3RQcm94eUJhc2U6
OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKLXsKLSAgICByZXR1cm4gbV90ZXN0SW50ZXJm
YWNlcy0+dGVzdFJ1bm5lcigpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotfQotCi1i
b29sIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgp
Ci17Ci0gICAgcmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7Ci19Ci0KIHZvaWQgV2ViVGVzdFByb3h5QmFzZTo6
c2hvd0NvbnRleHRNZW51KFdlYkZyYW1lKiwgY29uc3QgV2ViQ29udGV4dE1lbnVEYXRhJiBjb250
ZXh0TWVudURhdGEpCiB7CiAgICAgbV90ZXN0SW50ZXJmYWNlcy0+ZXZlbnRTZW5kZXIoKS0+c2V0
Q29udGV4dE1lbnVEYXRhKGNvbnRleHRNZW51RGF0YSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5jcHAKaW5kZXggODc2ZTUzZjMxNzdkNTQwZjBhZDNkODcz
NjE5ZmFiMTU1OWU2MDM3Yi4uYTdhZmY2NWRiNmMzZDRhZTZlMjRhODliMGZjMTE2Y2EwZTY1NDEz
NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3Qu
Y3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcApA
QCAtMTcwLDIwICsxNzAsNiBAQCBib29sIFdlYlZpZXdIb3N0OjpzaG91bGRBcHBseVN0eWxlKGNv
bnN0IFdlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYlJhbmdlJiByYW5nZQogICAgIHJldHVybiB0
cnVlOwogfQogCi1ib29sIFdlYlZpZXdIb3N0Ojppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
Ci17Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLWJvb2wgV2ViVmlld0hvc3Q6OmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCi17Ci0jaWYgT1MoV0lORE9XUykKLSAgICByZXR1cm4g
dHJ1ZTsKLSNlbHNlCi0gICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIGJvb2wgV2ViVmll
d0hvc3Q6OmhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCkKIHsKICAgICBpZiAobV9lZGl0Q29t
bWFuZE5hbWUuZW1wdHkoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1dlYlZpZXdIb3N0LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3
SG9zdC5oCmluZGV4IGZmMmVkYTdmZmVlZjhmNjc1OWNlNGE5MzZiZGQyOWQ3YmQ0YWE4YzkuLjRh
MzRmMzhhMmUzM2MwNzRmMTA3ZjAwZWM5ZjdjOTA0ZWEyOTU0YTkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaApAQCAtMTQzLDggKzE0Myw2IEBAIGNsYXNz
IFdlYlZpZXdIb3N0IDogcHVibGljIFdlYktpdDo6V2ViVmlld0NsaWVudCwgcHVibGljIFdlYktp
dDo6V2ViRnJhbWVDbGllbnQsCiAgICAgdmlydHVhbCBib29sIHNob3VsZENoYW5nZVNlbGVjdGVk
UmFuZ2UoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYgZnJvbSwgY29uc3QgV2ViS2l0OjpXZWJSYW5n
ZSYgdG8sIFdlYktpdDo6V2ViVGV4dEFmZmluaXR5LCBib29sIHN0aWxsU2VsZWN0aW5nKTsKICAg
ICB2aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYp
OwogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRBcHBseVN0eWxlKGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJiBzdHlsZSwgY29uc3QgV2ViS2l0OjpXZWJSYW5nZSYpOwotICAgIHZpcnR1YWwgYm9vbCBp
c1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlQ3VycmVu
dEtleWJvYXJkRXZlbnQoKTsKICAgICB2aXJ0dWFsIHZvaWQgcnVuTW9kYWxBbGVydERpYWxvZyhX
ZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2aXJ0dWFs
IGJvb2wgcnVuTW9kYWxDb25maXJtRGlhbG9nKFdlYktpdDo6V2ViRnJhbWUqLCBjb25zdCBXZWJL
aXQ6OldlYlN0cmluZyYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAKaW5kZXggZjg3ZWViMDcwNjQ2ZjU5MDE3YmE2ODA4NGNkNzZkMmQw
YTZkMTM5Ni4uNjEyN2M5ZDYyOTI0YjFkODRjYzBiN2I4YmM1MzU2MTE4MDUxY2NjMSAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBA
IC0zMTUsOCArMzE1LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cmVzZXREZWZhdWx0
c1RvQ29uc2lzdGVudFZhbHVlcygpCiAgICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRW
YWxpZGF0aW9uTWVzc2FnZVRpbWVyTWFnbmlmaWNhdGlvbihtYWluVmlldygpLCAtMSk7CiAgICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCht
YWluVmlldygpLCB0cnVlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldENTU0dy
aWRMYXlvdXRFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7
Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRF
Zmw6OnNldERlZmVyc0xvYWRpbmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0TG9hZHNTaXRlSWNvbnNJZ25vcmluZ0ltYWdlTG9hZGluZ1NldHRp
bmcobWFpblZpZXcoKSwgZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0
U2VyaWFsaXplSFRUUExvYWRzKGZhbHNlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0
UnVubmVyRWZsLmNwcAppbmRleCBlNjViNWEyNTllMmMxMjVkYTI3Y2M5MDAxY2U3YjQxOGYzNjA5
M2Q1Li5hOTlhM2I1ZWRjNzY4N2I0MmY0MjEyODg5NWRhOGRhN2YzNWMxZTdhIDEwMDY0NAotLS0g
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJFZmwuY3BwCkBAIC0yNzIsMTEgKzI3Miw2IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCkKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChi
b29sIGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwgZmxhZyk7Ci19Ci0KIHN0YXRpYyBF
aW5hX0Jvb2wgd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9pZCopCiB7CiAgICAgd2FpdFRvRHVt
cFdhdGNoZG9nID0gMDsKQEAgLTQyMSwxMSArNDE2LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRJ
Y29uRGF0YWJhc2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICAgICAgZXdrX3NldHRpbmdzX2lj
b25fZGF0YWJhc2VfcGF0aF9zZXQoZGF0YWJhc2VQYXRoLnV0ZjgoKS5kYXRhKCkpOwogfQogCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChicm93c2VyLT5tYWluVmlldygpLCBmbGFnKTsKLX0KLQogdm9pZCBU
ZXN0UnVubmVyOjpzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sIGZsYWcpCiB7CiAgICAgZXdr
X3ZpZXdfc2V0dGluZ19zY3JpcHRzX2Nhbl9vcGVuX3dpbmRvd3Nfc2V0KGJyb3dzZXItPm1haW5W
aWV3KCksICFmbGFnKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUu
Y3BwCmluZGV4IDVhMzU3NGY3MTIxM2I0NTYyNzE1ZDJjOGVkZGUwOTZiM2NhOGUwZDUuLmNlZTQ2
MWM1ODFkM2YxOTMyZTQxZDQ3NDY1NDRlZGJmNjQ2MGRiY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZ3RrL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTAxLDggKzUwMSw2IEBAIHN0YXRpYyB2
b2lkIHJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogCiAgICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0R3RrOjpzZXRMaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKHRydWUpOwogICAgIHdl
YmtpdF9pY29uX2RhdGFiYXNlX3NldF9wYXRoKHdlYmtpdF9nZXRfaWNvbl9kYXRhYmFzZSgpLCAw
KTsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHdlYlZpZXcsIHRydWUpOwogICAgIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEd0azo6c2V0RGVmZXJzTG9hZGluZyh3ZWJWaWV3LCBmYWxzZSk7CiAgICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZXJpYWxpemVIVFRQTG9hZHMoZmFsc2UpOwogCmRpZmYg
LS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKaW5kZXggNDJjZTY3MjZkODgz
ZTkzN2VlYTViZThjMGY2NGJkMmUwN2YxYzhjNC4uY2QxMDQ0ZDBkMjMzMWUyYTRhMWVjNzdlOGQ0
MmY5NzI3ZmFhZGE2NiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3Rr
LmNwcApAQCAtMzIzLDExICszMjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5
KGJvb2wgd2luZG93SXNLZXkpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAg
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQod2Vi
a2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKSwgZmxhZyk7Ci19Ci0KIHN0YXRp
YyBnYm9vbGVhbiB3YWl0VG9EdW1wV2F0Y2hkb2dGaXJlZCh2b2lkKikKIHsKICAgICBzZXRXYWl0
VG9EdW1wV2F0Y2hkb2coMCk7CkBAIC00ODUsMTEgKzQ4MCw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgICAgIHdlYmtpdF9pY29u
X2RhdGFiYXNlX3NldF9wYXRoKGRhdGFiYXNlLCAwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpz
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIFdlYktpdFdlYlZpZXcqIHZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF93ZWJfdmlldyhtYWluRnJhbWUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
bWFjL0R1bXBSZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5k
ZXJUcmVlLm1tCmluZGV4IDlhMjAyMmUyZGYzNzU0MDNlZjkxZjYzN2UwZDkwNjk3MTZlODU1NTgu
LmNiMTRhMTU3YTQ1ODc2YjE3YzRiZjRmMzAyZDJmNmM1NTQ5YThiNGIgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTEyNzgsOCArMTI3OCw2IEBAIHN0
YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZygpCiAg
ICAgICAgIGdUZXN0UnVubmVyLT5yZW1vdmVDaHJvbWVJbnB1dEZpZWxkKCk7CiAgICAgfQogCi0g
ICAgW1ttYWluRnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOllFU107
Ci0KICAgICBbV2ViVmlldyBfc2V0VXNlc1Rlc3RNb2RlRm9jdXNSaW5nQ29sb3I6WUVTXTsKICAg
ICBbV2ViVmlldyBfcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzXTsKICAgICBbV2ViVmlldyBf
c2V0QWxsb3dzUm91bmRpbmdIYWNrczpOT107CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbSBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0
UnVubmVyTWFjLm1tCmluZGV4IGIyMzI2YTI2YjM0OWEwODNiYTc5OGE4YzdiOTVhZGE5ZGYwNWUz
NjYuLmIzMWM5YWQ3MjdiMmU2NmY3ZmU3YjVjYTFkNjhkYmI0ZTQ3YmZlNjkgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCisrKyBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCkBAIC02MzQsMTYgKzYzNCw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkKICAgICBbW21h
aW5GcmFtZSB3ZWJWaWV3XSBfdXBkYXRlQWN0aXZlU3RhdGVdOwogfQogCi12b2lkIFRlc3RSdW5u
ZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0gICAgW1ttYWlu
RnJhbWUgd2ViVmlld10gc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOmZsYWddOwotfQotCi12
b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQ6ZmxhZ107Ci19Ci0KIHN0YXRpYyBjb25zdCBDRlRpbWVJbnRlcnZhbCB3YWl0
VG9EdW1wV2F0Y2hkb2dJbnRlcnZhbCA9IDMwLjA7CiAKIHN0YXRpYyB2b2lkIHdhaXRVbnRpbERv
bmVXYXRjaGRvZ0ZpcmVkKENGUnVuTG9vcFRpbWVyUmVmIHRpbWVyLCB2b2lkKiBpbmZvKQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVuZGVyVHJlZVF0LmNwcAppbmRleCAyM2ZkMzVj
MWM2ZmI1ZjE3OTMzYjY1MzJiZDRjODc0MTcwMGU4Y2QyLi5kZmE2NzJiNjc0ZGVjM2NlOTcwNjJm
NThmZWZjZmM5OTM4MDFhMDVmIDEwMDc1NQotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9E
dW1wUmVuZGVyVHJlZVF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9EdW1wUmVu
ZGVyVHJlZVF0LmNwcApAQCAtMTkyLDggKzE5Miw2IEBAIHZvaWQgV2ViUGFnZTo6cmVzZXRTZXR0
aW5ncygpCiAKICAgICBtX2RydC0+dGVzdFJ1bm5lcigpLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxl
ZChmYWxzZSk7CiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQodHJ1ZSk7Ci0gICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0U21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCkt
PnNldERlZmVyc0xvYWRpbmcoZmFsc2UpOwogCiAgICAgLy8gZ2xvYmFsU2V0dGluZ3MgbXVzdCBi
ZSByZXNldCBleHBsaWNpdGx5LgpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQv
VGVzdFJ1bm5lclF0LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5j
cHAKaW5kZXggZTVlODI0MzBlMTdkZTI5NjE3OTMzNWQ0ZTY1NTg1ZDFiNGM3MjljMC4uNjM4OWEw
ZGVmYTc3ZTJhMjNiMTY4NWNiNzE0MDI3ZDJmYjU2ZmRhMSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCkBAIC03MjAsMTYgKzcyMCw2IEBAIHZvaWQgVGVzdFJ1bm5l
clF0OjpzZXRTY3JvbGxiYXJQb2xpY3koY29uc3QgUVN0cmluZyYgb3JpZW50YXRpb24sIGNvbnN0
IFFTdHJpbmcmCiAgICAgbV9kcnQtPndlYlBhZ2UoKS0+bWFpbkZyYW1lKCktPnNldFNjcm9sbEJh
clBvbGljeShvLCBwKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKG1fZHJ0LT5wYWdlQWRhcHRlcigpLCBlbmFibGUp
OwotfQotCi12b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChib29sIGVuYWJsZSkKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtX2RydC0+cGFnZUFkYXB0ZXIoKSwgZW5hYmxl
KTsKLX0KLQogdm9pZCBUZXN0UnVubmVyUXQ6OmV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5h
bWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVlKQogewogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydFF0
OjpleGVjdXRlQ29yZUNvbW1hbmRCeU5hbWUobV9kcnQtPnBhZ2VBZGFwdGVyKCksIG5hbWUsIHZh
bHVlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5o
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgKaW5kZXggNjViYmI4MmEy
Y2I0MTNlNzIxOTczOGJmYTdlNTgzMDdjYmNjZGMwZS4uOTkwN2EyZTUzNzJmODg5YmFlYTIzZGMz
YTA1ODRlNzYyNmU5NmMxZiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVz
dFJ1bm5lclF0LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmgK
QEAgLTE3OCw4ICsxNzgsNiBAQCBwdWJsaWMgUV9TTE9UUzoKICAgICB2b2lkIHNldENhcmV0QnJv
d3NpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0eWxlc0VuYWJs
ZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRWaWV3TW9kZU1lZGlhRmVhdHVyZShjb25zdCBRU3RyaW5n
JiBtb2RlKTsKLSAgICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKLSAg
ICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9p
ZCBleGVjQ29tbWFuZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSA9
IFFTdHJpbmcoKSk7CiAgICAgYm9vbCBpc0NvbW1hbmRFbmFibGVkKGNvbnN0IFFTdHJpbmcmIG5h
bWUpIGNvbnN0OwogICAgIGJvb2wgZmluZFN0cmluZyhjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0
cmluZ0xpc3QmIG9wdGlvbkFycmF5KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJl
bmRlclRyZWUuY3BwCmluZGV4IGY3NDc2ZmExMjYzZGYxZTBjZTI2MDZhMzgzNzg3M2VkYTc4Y2Vm
NWIuLjg5ZmE5ZjdhZmExNjM1ZjYxMjVkNDRjOWUxMzI0ZWRjMTVlMjkxMDcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODk5LDEwICs4OTksNiBA
QCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3Rpbmco
KQogICAgICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0KGNvbnRl
eHQpOwogICAgIH0KIAotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwot
ICAgIGlmIChTVUNDRUVERUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkp
Ci0gICAgICAgIHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoVFJVRSk7
Ci0KICAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3UHJpdmF0ZShRdWVyeSwgd2Vi
Vmlldyk7CiAgICAgaWYgKCF3ZWJWaWV3UHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMv
RHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDY2NDhjM2VlMTVkZDRh
NTZlZTBiNDViMjFlMDg3ZmE4NjQ0ZTY5ZjIuLmRkNGQ4NzMxZGZlZTQ4M2RmZTBlOWI4NzE1MmZh
NjQzYzZkYTBjNzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5j
cHAKQEAgLTcyMywzMiArNzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShi
b29sIGZsYWcpCiAgICAgOjpTZW5kTWVzc2FnZSh3ZWJWaWV3V2luZG93LCBmbGFnID8gV01fU0VU
Rk9DVVMgOiBXTV9LSUxMRk9DVVMsIChXUEFSQU0pOjpHZXREZXNrdG9wV2luZG93KCksIDApOwog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZs
YWcpCi17Ci0gICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJh
bWUtPndlYlZpZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElX
ZWJWaWV3RWRpdGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVy
eUludGVyZmFjZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0Vk
aXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8gVFJVRSA6IEZBTFNFKTsK
LX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZB
SUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
T01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZp
ZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICB2aWV3RWRpdGluZy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnID8g
VFJVRSA6IEZBTFNFKTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1
bXBXYXRjaGRvZ0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgQ0FMTEJBQ0sgd2FpdFVu
dGlsRG9uZVdhdGNoZG9nRmlyZWQoSFdORCwgVUlOVCwgVUlOVF9QVFIsIERXT1JEKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKaW5kZXggNDc1M2MyOWNhNTRmNmFlZTFh
OWRjYTkxM2Q5YjUxZWQ1MDFhOWExZS4uZjRiYjk0YTBlM2QyOTZjYWY3YzA4NmMxZGZjOTc3YmNj
NjZlNjk5NCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4
LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCkBAIC0x
NTEsMTEgKzE1MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5k
b3dJc0tleSkKICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICAvLyBGSVhNRTog
aW1wbGVtZW50Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2FpdFRvRHVtcChib29sIHdhaXRV
bnRpbERvbmUpCiB7CiAgICAgc3RhdGljIGNvbnN0IGludCB0aW1lb3V0U2Vjb25kcyA9IDEwOwpA
QCAtMjg4LDExICsyODMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNp
emUodW5zaWduZWQgbG9uZyBsb25nIHNpemUpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQog
Ci12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9v
bCBmbGFnKQotewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVy
OjpzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBh
bHBoYSwgYm9vbCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdh
bW1hLCBkb3VibGUgZ2FtbWEpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgRGV2aWNl
T3JpZW50YXRpb24gbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDE2MjViZmU5ZmY5YTk1ZmZhMDEwMzZk
ZGJlM2U5YjhmMzA4ZjdhNjQuLjVkNDhmMDJhMjJjZDU4MDVmYmRkZDM4ZWE4Y2QyZDQ1ODQ4YjBm
ZjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNu
b3ZhcyAgPHJlZ29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGVzdFJ1bm5lci5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGJ5CisgICAgICAgIGludGVybmFscy5zZXR0aW5n
cy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluIHRlc3RzLgorCisgICAgICAg
IEJlIHN1cmUgdGhhdCB0cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFuZAorICAgICAgICBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFyZSBzZXQgdG8gb3Bwb3NpdGUgdmFsdWVzIGFz
IHRoZXkgYXJlCisgICAgICAgIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKworICAgICAgICAqIGVkaXRp
bmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sOgorICAgICAgICAqIGVkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWw6CisgICAgICAgICog
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sOgorICAg
ICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNo
Lmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFj
ZS5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanM6CisgICAgICAgICogZWRp
dGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKGluaXRTcGVsbFRlc3Qp
OgorICAgICAgICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC13aXRoLXVuZGVyc2NvcmVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnM6IFVuZmxhZworICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAorICAgICAgICBhcyBp
dCBwYXNzZXMgbm93LgorCiAyMDEzLTAzLTA2ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29v
Z2xlLmNvbT4KIAogICAgICAgICBCb3gtc2hhZG93IGRpc3BsYXllZCBpbXByb3Blcmx5IHdpdGgg
Ym9yZGVyLXJhZGl1cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcv
c21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGlu
Zy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKaW5kZXggN2ViMzBkMjIxMWQwYzBkODE5YmVm
MmY1ZTczNjg0ODE5ODFkZWQ2OS4uZDBmN2Q3YWYxNThkYTI1Yzg3ODc2Yzg4MzZhZjA3YmFhNzQ2
YWI4OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0
aW5nLWRpc2FibGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9kZWxldGluZy9zbWFy
dC1lZGl0aW5nLWRpc2FibGVkLmh0bWwKQEAgLTUsNiArNSw3IEBACiBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBpbnRlcm5hbHMuc2V0
dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAog
ZnVuY3Rpb24gZWRpdGluZ1Rlc3QoKSB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbAppbmRleCA4
Yjk4YmE3MmZiZmM3NDBhZmEzNWMyZDA4YWM5NTc3YWI2Yjk5ZTlhLi44ZDVjYjc2YjdhZGIxODc3
ODQ1MWFlZWY1MjdhZWUzNmMwZDhmYmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCisrKyBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKQEAg
LTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogCiBmdW5jdGlvbiBnZXRQb3NpdGlvbk9m
Tm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJs
ZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAppbmRleCA0MGUyNDEzODIxZThl
ODg0MDc5NzhhYTgzNzY5Mzc3Yzg2ODZhZjhmLi5jOWI0NGU2YzY2ZjM5NWE1YjA3ZmYzOTMzNDQx
MjYxZmE0OTM2OWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9k
b3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCkBAIC00LDcgKzQs
NyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWct
Y3Jhc2guaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKaW5kZXggZjI4MGEyNmE3NjlhOTVhNzlkZGE2ZDQ0Njcx
NjRkZmQ0NDYzNzUwNC4uZjc0YWEyNjU2Nzc2NTYzNThhNzk1OTg2ZTNhMzc5OWM3ZmNlZjY3ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hp
dGVzcGFjZS1pbWctY3Jhc2guaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCkBAIC00LDcgKzQsNyBAQAog
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
ICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNl
KTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRy
dWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCh0cnVlKTsKICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UuaHRtbAppbmRleCA4NTMwZmJjNTMxYTQ1M2E2YWY1ZmJmMzlkNWY2ZjFlYWFmOThi
N2RjLi43ZDgzZmIxZmExZTU4YjVlNzQxNWUyZjNhZTFmMjk0ZGMyZGVlYzFkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVz
cGFjZS5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKIH0KIAogZnVuY3Rpb24g
Z2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nl
bGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVu
dGVkaXRhYmxlLmpzIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcwppbmRleCBl
ZTY1NWRjMDcyYWZmMmIyNWZiNzIzNTY5NTAzMDkwOTVjMWMyZTM5Li5lN2JkZmY1Y2QyNjMzMjc4
Nzg2ZTYyZjY4MjIxOTkwOWE5NzE2YzIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29u
dGVudGVkaXRhYmxlLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL3Njcmlw
dC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMK
QEAgLTc4LDcgKzc4LDggQEAgZnVuY3Rpb24gdGVzdFdpdGhDbGlja0FuZE1vZGlmeSh0YXJnZXRJ
bm5lckhUTUwsIGV4cGVjdGVkVGV4dCkKICAgICBzaG91bGRCZSgid2luZG93LnNlbGVjdGVkQnlN
b2RpZnkiLCB0b0xpdGVyYWwoZXhwZWN0ZWRUZXh0KSk7CiB9CiAKLXRlc3RSdW5uZXIuc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CitpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwogCiB2YXIgc2hvdWxkU2Vs
ZWN0ZUZpcnN0V29yZElubGluZSA9ICI8c3BhbiBpZD0ndGFyZ2V0JyBjb250ZW50RWRpdGFibGU+
c2VsZWN0bWUxPC9zcGFuPiBhbmQgbm90IHNlbGVjdCB1cyI7CiB0ZXN0V2l0aERvdWJsbGVDbGlj
ayhzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lLCAic2VsZWN0bWUxIik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwppbmRleCBjZjgwMzM0MTg4
NDNjZjIwYzY2NzFlN2M4NDkwN2I3MDcyZDQ5NTIwLi4wOTRhNTNiMjg5Njg4ZDgyZGU0ZGU3MzY3
YTljOTQzMzRmNTYyNDk0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5n
L3Jlc291cmNlcy91dGlsLmpzCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVz
b3VyY2VzL3V0aWwuanMKQEAgLTI3LDggKzI3LDggQEAgZnVuY3Rpb24gaW5pdFNwZWxsVGVzdCh0
ZXN0RWxlbWVudElkLCB0ZXN0VGV4dCwgdGVzdEZ1bmN0aW9uKQogICAgIHRlc3RGdW5jdGlvbkNh
bGxiYWNrID0gdGVzdEZ1bmN0aW9uOwogICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOwogICAgIHRl
c3RSdW5uZXIuc2V0QXN5bmNocm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWQodHJ1ZSk7Ci0gICAg
dGVzdFJ1bm5lci5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Ci0gICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNl
KTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCh0
cnVlKTsKICAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW4iKTsK
ICAgICB2YXIgZGVzdGluYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCh0ZXN0RWxlbWVu
dElkKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmct
ZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVuZGVyc2NvcmVzLmh0bWwgYi9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNj
b3Jlcy5odG1sCmluZGV4IGNhNTkzNWZlMDAwNWE1YTA2MTM1MmNmOWEyM2VmNjMxMjNiMTZhMzYu
LjQwNjA3MTgxMGQwMWJiOThlNmU1ZjEzYzM4ZDYwOTNkMzZlN2VhYTggMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13
aXRoLXVuZGVyc2NvcmVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9z
cGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbApAQCAtMjEs
NyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZV8gaG9tZS4i
LCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRv
dy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNr
IHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0aGUgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAg
ICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7
CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQoZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExl
ZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlv
bi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGlu
YXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5
KTsKQEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNv
bWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3Ry
aW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERv
dWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdGhlIHRyYWlsaW5nIHdoaXRlc3Bh
Y2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRy
dWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
ZmFsc2UpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9m
ZnNldExlZnQgKyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0
aW5hdGlvbi5vZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsg
ZGVzdGluYXRpb24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
byh4LCB5KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxp
bmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKaW5kZXggMjQ5MjczZDJlMGFiYWI5
ZDliY2VjOTI3YTA5YzNmYzQ2Y2UwMjdjZi4uOWQyNDlmZDdmMGVmZWUyNDNiYzZiMGZiMjllNWNl
ZTU5NTZlYzRlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVs
bGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwKQEAgLTIxLDcgKzIxLDgg
QEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUgaG9tZS4iLCBmdW5jdGlv
bih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVj
dGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3Nw
ZWxsZWQgd29yZCB3aXRob3V0IHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5z
ZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAg
ICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRp
b24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50
Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhl
aWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3ICs1
MCw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lIGhvbWUuIiwgZnVu
Y3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRT
ZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBt
aXNzcGVsbGVkIHdvcmQgd2l0aCB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIu
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5h
bHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAg
ICB2YXIgeCA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRp
b24ub2Zmc2V0TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50
Lm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhl
aWdodCAvIDI7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDVlYTE3NmY0Y2NmYWZiOGIyZDgx
NjE3NGUwZTE0N2MzMDBmNjA3OGYuLmZiMGI4YjVjZmQ2MjU5ODdjZThmYmNlN2RjOWZmNTNiZTg3
OTE5NzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCkBAIC0z
NzUsOSArMzc1LDYgQEAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tYXV0
aG9yaXphdGlvbi13aXRoLWVtYmVkZGVyLmh0bWwKICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBs
YXlvdXRUZXN0Q29udHJvbGxlci5hZGREaXNhbGxvd2VkVVJMCiBwbHVnaW5zL2dldC11cmwtdGhh
dC10aGUtcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS13aWxsLWRpc2FsbG93Lmh0bWwKIAotIyBXZWJL
aXRUZXN0UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQKLWVkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWlubGluZS1m
aXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCi0KICMgV2ViS2l0VGVzdFJ1bm5lciBuZWVk
cyBsYXlvdXRUZXN0Q29udHJvbGxlci5wYWdlUHJvcGVydHkKIHByaW50aW5nL3BhZ2UtcnVsZS1z
ZWxlY3Rpb24uaHRtbAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193013</attachid>
            <date>2013-03-13 15:49:33 -0700</date>
            <delta_ts>2013-03-13 23:43:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130313234529.patch</filename>
            <type>text/plain</type>
            <size>89021</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE1ODExMTNlM2MzNmY3
Yjg5MWE2MmMzYTY0YTgxOGVjYWFlOTdmMi4uOWJhNGU0MDQ3ZDg1MTkwMmE3YzE3Y2ZjZTliODIy
M2E5ZjlmMWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMTMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gUmVmYWN0b3IgR3JpZENvb3Jk
aW5hdGUgdG8gaG9sZCBHcmlkU3BhbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4
IDdmMGI5MDY5OWQ0NzA1Yjg0M2M5YTI1NzU5MzNkZThkMDExYjRlMTkuLjQ1ZjZjODhmM2ExOWFi
NmFhZWRmZjBjYTFlY2M0YmY4ZmJjZDVhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
LgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMTMgIElyaXMgV3UgIDxzaHV3
dUBibGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRG8gbm90IGRvIHNjcm9s
bCBwb3NpdGlvbiBhZGp1c3RtZW50IGlmIHNlbGVjdGluZyBpbiBhIHN1YmZyYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGNmNzlkZTNlNzM4YjU1NWVkZDg1NWYyM2ZjMzAwNzNiYmU5
MjI3OTkuLmNkZjgxMjY5MWM3ZDE3ZWVjODFhYzhjMTYwOWQyYmQwYTg0MjY0NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBS
ZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFBhZ2Ugc2V0
dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgdXBkYXRlIEFQSSBhY2NvcmRpbmdseS4KKworICAg
ICAgICBXZWJTZXR0aW5ncyBBUEkgaXMgcmVxdWlyZWQgYnkgRFJUIGluIG9yZGVyIHRvIHNldCB0
aGUgcHJvcGVyIGRlZmF1bHQKKyAgICAgICAgdmFsdWVzIHdoaWNoIGFyZSBkaWZmZXJlbnQgZnJv
bSBicm93c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6IEFk
ZCBuZXcgQVBJIHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKKyAgICAgICAgYW5k
IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MuCisgICAgICAgICogcHVi
bGljL1dlYlZpZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tIHBhZ2UKKyAgICAgICAgc2V0dGluZ3MgZnJvbSBu
b3cgb24uCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOiBVc2UgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisgICAg
ICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6IEltcGxlbWVudCBtZXRob2RzIGVzdGFibGlz
aGluZyB0aGUgcGFnZQorICAgICAgICBzZXR0aW5ncy4KKyAgICAgICAgKFdlYktpdDo6V2ViU2V0
dGluZ3NJbXBsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAg
ICAgIChXZWJTZXR0aW5nc0ltcGwpOiBJbXBsZW1lbnQgbmV3IEFQSSB0byBtYW5hZ2UgdGhlIG5l
dyBzZXR0aW5ncy4KKwogMjAxMy0wMy0xMyAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBuZXcgU2tpYSBjb2RlIHN1cHByZXNzaW9uIGZsYWdz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKaW5kZXggNWY2MjU3N2ViNDMyYjMzMmYyMDY3M2MyMjJlNTA2MDM0YzY0
NmI2NS4uYTI0MGE4M2VlMjAzNGE2ODIzOTE3NDAwNWMwZTgyODM0NDU4MmU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6RWRpdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisKIDIwMTMtMDMtMTMgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZ2V0IHJpZCBvZiBoaWRkZW5QYW5lbHMgZmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
MTMwNTFkZjRlMTBmMjJiYjRiZGI3NDk1MzFkMDM4NjNiNGMxODI0Yy4uYWJlNjNkMWQ2ODhlNmVh
Zjc2OGEwOWY5ZDE5YTQwNzAxZWU3Mjk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcg
dG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFu
ZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJl
bW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpp
c1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6CisgICAgICAgIChFZGl0b3JDbGllbnQpOgorCiAyMDEzLTAzLTEzICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgW0dUS11bSW50cm9zcGVj
dGlvbl0gRml4IG9mIGd0ayBkb2MgYW5ub3RhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGNhMGQ4YTdkNDg2YjI3YWY4NDRjMmFlYzg2MjdjYjZmYjI2ZGMwYWEuLmEzZTZkZTUwZjZl
Y2Q3ZGEyNzQxYzMxZmNlNzI3M2Q4N2I4NDc0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6IEluaXRpYWxpemUKKyAgICAgICAgc2V0dGluZ3Mg
ZnJvbSBOU1VzZXJEZWZhdWx0cy4KKyAgICAgICAgKC1bV2ViVmlldyBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJWaWV3IHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKC1bV2ViVmlld1ByaXZhdGUgaW5pdF0pOgor
CiAyMDEzLTAzLTEzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgaGlkZGVuUGFuZWxzIGZpbHRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCAyZTQ4YjQ3MjA4MzVhZWMxNzhhZmM4YjVkNWMzNjNlZTFjYzU1ODUzLi42
YzU4ZDZjYmZkNWQyNjI1OTI0MThhMmNlZTQ2OWQ3ZmFhOWU5MmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVn
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgor
CisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQg
YW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRv
ckNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEzLTAzLTEzICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIFBvcnQgVGVzdFJ1bm5l
cjo6ZmluZFN0cmluZyB0byBzaGFyZWQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZTY4
MmI2MjRhYjk1NjZjYTM0M2VlM2NhMDk2OTUzMDQwODg2MGM5Ni4uZjkzYTQ3YThmOWQwN2ExM2Fl
MmJhMzk5NTI5YjQzNmIzNzA4NDk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8g
V2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAor
ICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIw
MTMtMDMtMTMgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBF
eHBvc2Ugc3ltYm9scyBmb3IgaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmEx
OThhNDI0ZTg4YmEwMzVlNzQ4NmMyMGMwMWY3NzY5MzM0YzkuLjBlNjI3MjI2NzUxZTQ3NWJiNjg0
ZTY0N2RhMDU3MmZjNzNiNDAwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0
byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5k
CisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KToKKwogMjAxMy0wMi0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBEaXNhYmxlIGRlbGV0ZSBidXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFu
ZCBkZWxldGUgRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nCmluZGV4IDAzMjRlMjE1ZGJlZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLjAzODcx
NTU1YmFkZTM2ODMyODE2OGUzZDYzMjI0MzlhYjVjOGViZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGln
YWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDItMjYgIERtaXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNZXJnZWQgVGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29u
c29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhk
NjQ4NGYzZDZlZDYyYzFjOGUwZi4uODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4
NDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7
CiAjZWxzZQogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZCA9IGZhbHNlOwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFD
X09TX1gpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKKyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vs
c2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkID0gZmFsc2U7CisjZW5kaWYKKyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGlu
Z3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluCmluZGV4IDI4NjYzNmNjMTVjNDdmZTQ2NGY1YTAzZWZhN2Q1YzkyZmQwOGY2NzIuLmNl
MmRhY2I2YjZlZjFlNGUxYWE3MGU1YTk5Y2E1OTkxNmFiOTRmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbgpAQCAtMTk4LDQgKzE5OCw1IEBAIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKICMgU29tZSBhcHBzIGNvdWxkIGhhdmUgYSBkZWZhdWx0
IHZpZGVvIHBvc3RlciBpZiBpdCBpcyBub3Qgc2V0LgogZGVmYXVsdFZpZGVvUG9zdGVyVVJMIHR5
cGU9U3RyaW5nCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUKK3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1YjIzY2U0
ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJkMTk2MGMw
YzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRl
clRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5k
ZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3RpbGxTZWxl
Y3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2Us
IGludCBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBp
bnNlcnRBY3Rpb24pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2Vi
Q29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0Jl
cnJ5LmNwcAppbmRleCA5MjA4NDJlNmY0Yjc3NGQ0NGJhODM5NWJmMWVmMWRmNzliYjE1ODBiLi44
YWM5NDY4ZTUzNThjZDg5N2JjOTdmOTU0MmQyMmRjNWE1ZWVmNDRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNlbGVjdGlv
bkhhbmRsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBhZ2VfcC5o
IgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3MCwxOCBA
QCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKiBy
YW5nZSkKIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygp
LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRCbGFj
a0JlcnJ5Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVlKQotICAgICAgICByZXR1cm4gbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJp
dmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3Bl
bGxDaGVja2luZyhib29sIGVuYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCmluZGV4IGYxOTIwZDcxOTY0ODZlOTYxMjdlNDA0ZjQ0Yzc1NGJlZjBiNTc3
YzUuLjEyNDZjNGM5NDgzMTJkNDU0OTBkMzQ5MDFhOGIyMjVlNWI2Y2YxNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtMTQ3LDYgKzE0Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBX
ZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlw
dENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQ
cmludEJhY2tncm91bmRzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24oYm9vbCkgPSAwOwpAQCAtMTU1LDYgKzE1Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG93UGxhdGZvcm1MYXllclRyZWUoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3Jp
cHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTeW5jWEhS
SW5Eb2N1bWVudHNFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCBlNDQ2ZTJhNjkzZjkxYTE3MWM1ZTJjOTNmMzAx
ODY0MGQ4ZDU1ZTE5Li5hNDQ5N2RlNmEzODUzMTlkNjk0YWU3NjQwNTJiYzg5MTBjMDA4MmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0x
ODEsOSArMTgxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5n
ZShjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYpIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRWRpdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDb21wb3Np
dGlvbk9uU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNl
bGVjdGlvbihib29sIGlzU2VsZWN0aW9uRW1wdHkpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRleCA5ODMwM2Y0ZjQ2NGRmMzIxYmI0
OTRkMzM0YmUzYTg2MGJjNDgyMmY0Li4xZDEzYzhlZjA1NDZiMGZhMTVjMTA1NmYwZTE0Mjc1Yjlm
ZGMwNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNp
bmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTk1LDIwICs5
NiwxNiBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmZyYW1lV2lsbERldGFjaFBhZ2UoV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lKQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwot
ICAgIHJldHVybiB0cnVlOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJWaWV3LT5j
bGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRy
dWU7Ci0jZWxzZQorICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIG1f
d2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50
SW1wbDo6c2hvdWxkU3BlbGxjaGVja0J5RGVmYXVsdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAyNjRjNzU2YThkYjljMDYxZWM1MDc4
NzAyODQwNjcwMTUwM2UwN2I3Li42NmVmNTFhMzM2MTNlOWZjMTk0OTk1MWRlM2ZiNTcxZGI0NTRm
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKQEAgLTc2MSw0ICs3NjEsMTQgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldENvbXBvc2l0
ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdz
LT5zZXRDb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAor
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmlu
ZGV4IDcyYTNlMzEyNzQxMTE1MzA4ZDBhMDRhZWM1MTZjMWM1YTVlZWE4MWIuLmFkMmM5M2ZjZmU5
ZGUwZDdhY2Y3YWVkZDU5ZjhhYmE1OWFjYzY2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xNDAsNiArMTQwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclZTeW5jTm90aWZpY2F0aW9uRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29k
ZSA9IFVTQ1JJUFRfQ09NTU9OKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCk7CkBAIC0xNTEsNiArMTUyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0cyhib29sKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9
IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdp
bmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJs
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCAzMjBmZjlmMDQ5NGUyNzE3
ODIwOTdlNDM4MTliNjE3MGQzOGY2ODViLi41MjE1Y2U2MGM1Yzg0YmE2OWE3ODNhZDczMDViYTU4
ZTljYjc2MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTMyMywyOCArMzIzLDYg
QEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmlzQ29tbWFuZEVuYWJsZWQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnMKICAgICByZXR1cm4gcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1lKS5pc0Vu
YWJsZWQoKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewot
ICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwotCi0gICAg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBlZGl0b3JDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdlLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgaWYgKCFl
ZGl0b3JDbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGVkaXRvckNsaWVudC0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVj
dCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwotCi0gICAgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBl
ZGl0b3JDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdl
LT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgaWYgKCFlZGl0b3JDbGllbnQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGVkaXRvckNsaWVudC0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChlbmFibGVkKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlTGF5
b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBld2tfZnJhbWVfZm9yY2VfbGF5b3V0
KGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggOTU4ODgxMWZhZDhjYjUwOTA2
NWM0NGUzYjc2OTdkNGViNjM4MjM1MC4uMzExZDlhMDI5YTlhZWEwMmE2MjMzMGJhMzc2MmM5NTBh
NmVjNzdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTgwLDggKzgwLDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldENTU0dyaWRMYXlv
dXRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogICAg
IHN0YXRpYyB2b2lkIHNldENTU1JlZ2lvbnNFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNlYW1sZXNzSUZyYW1lc0Vu
YWJsZWQoYm9vbCk7CiAKICAgICBzdGF0aWMgdm9pZCBmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5jcHAKaW5kZXggYTRjOWZkMTM1ZTk3MmU0ZmI1MzQ0NGJiMDE1MGRkZjhj
NmUwYmQzZi4uOTAxYWE1Mjc4YTE1OTNkNmFlYmFhNDBiZjc1ZmI4NjBmODg4MWZmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwCkBAIC0yNDMsMjggKzI0MywyMCBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6cGFnZURlc3Ry
b3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci19Ci0KIGJvb2wgRWRpdG9y
Q2xpZW50RWZsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQp
Ci0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpOworICAgIGlm
ICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY29yZVBhZ2Ut
PnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRv
ckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBy
ZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6OlBh
Z2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNv
cmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRp
dG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEsOCAr
MzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihL
ZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNfT2Jq
ZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3KQot
ICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4uZDBk
NWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkgKzg0
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdl
Kik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZv
aWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRp
bnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBF
dmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYwZmFj
MGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVuID0g
ZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5U
YWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2Zy
YW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRo
ZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNh
dGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJuIHNf
bGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsK
LSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi1i
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
LX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJG
cmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAgIGNv
cmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmlldyk7
Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0
OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgY2xp
ZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlkZWRj
YWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQzYjhi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAgICBz
dGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZvaWQg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgYm9v
bCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBj
bGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBj
YWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJL
aXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0RGVm
ZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0aWMg
dm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nlc3Np
YmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWlu
OwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2OGJk
NjAzNTg1Zi4uOTJiYTE2NWU0NDI0YjlkYjRkMDNlOTViZDBjMDRiMTE4MWNjNTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3Rl
Ym9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRl
ICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwyMSAr
MzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUg
dGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFi
bGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkK
IHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6
UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFn
ZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1
MDEsNiBAQCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQogICAgICwgbV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRf
Z2V0X3RleHRfY2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAz
YTdlYWYxNGM3MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNi
ZmZiY2VmMjE3ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBF
ZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAg
dmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xh
c3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAg
IFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1Ry
YW5zbGF0b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3Ry
aW5nPiBtX3BlbmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUw
ZjU3ODFlZmI0YzIxODNjZTc3NDYzMC4uZWM5ZjA5MzhlYWE0MzhlMGVkNzVjMjAwM2FiOGQ3MTk1
Y2Q4MDFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0
eVNldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTgg
QEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVs
ZW1lbnQqIGVsZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gW21fd2ViVmll
dyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdOworICAgIFBhZ2UqIHBhZ2UgPSBb
bV93ZWJWaWV3IHBhZ2VdOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNjU3ZjkyMGE0NGU5MmVlMDdmYTNlNzYyMjVlNWMyY2Q4MTNhYzUzZS4u
YjAxNjFmZjkzYjJmYWFkMDljYzYzNjkxOGY5Zjg3YzExZDA1YmQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzgzLDYgKzc4Myw5IEBAIHN0YXRpYyBib29sIHNob3Vs
ZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpCiAgICAgICAgIFtzZWxmIF9p
bmplY3RPdXRsb29rUXVpcmtzU2NyaXB0XTsKICAgICB9CiAKKyAgICBpZiAoW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZF0pCisgICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF1dOworCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJhbWVX
aXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpmcmFt
ZVZpZXddOwogCiAgICAgTlNSdW5Mb29wICpydW5Mb29wID0gW05TUnVuTG9vcCBtYWluUnVuTG9v
cF07CkBAIC0yNDcwLDE0ICsyNDczLDE1IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChp
ZCBvLCBTRUwgcykKIAogLSAodm9pZClzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
OihCT09MKWZsYWcKIHsKLSAgICBfcHJpdmF0ZS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCA9IGZsYWc7Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpmYWxzZV07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmbGFnKTsKKyAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFm
bGFnXTsKKyAgICB9CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdh
dGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQyOSwxNyArNTQzMywxNiBAQCBzdGF0
aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTVmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZDooQk9PTClmbGFnCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgIT0gZmxhZykgewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gZmxhZzsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Qm9vbDpfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3Mo
KS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0
ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOwor
ICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9w
cml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JL
ZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgW3NlbGYgc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDohZmxhZ107CiAgICAgfQotICAgIGlmIChmbGFnKQot
ICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZhbHNlXTsK
IH0KIAogLSAoQk9PTClzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3By
aXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiAtICh2b2lk
KXNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggYWRlYWJlN2VlMmNmYTIyY2JkYzI4ZTNi
YTgzMzc4ZjQ2MDNlMDJlMi4uMzQ3YWJhNDU3ODVmMTgwZThjOTc0NmNjY2I2MmE0ZTY3ODBlOTRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTQ2LDkgKzE0
Niw2IEBAIHByaXZhdGU6CiAgICAgQk9PTCBoYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAg
ICBOU0ludGVnZXIgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBCT09MIHNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBCT09MIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ7Ci0gICAgICAgIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBCT09MIGRh
c2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzOwogICAgIEJP
T0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kQWN0aXZlTnVsbEV2ZW50c1RvUGx1Z0luczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGUyNzY2ZjAxYTM1
YmMwN2VlYWE0ODZjMjY1NWI0YzAxYmFlZDk3YTYuLmM2ODFmMDliYTcyMTZkOGQyMTZlNTk3NTI2
YWY4NTgxZDAwM2RlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5t
bQpAQCAtOTUsMTAgKzk1LDYgQEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250
cm9sbGVyKFdlYlZpZXcqIHdlYlZpZXcpCiAKICAgICBzaG91bGRDbG9zZVdpdGhXaW5kb3cgPSBv
YmpjX2NvbGxlY3RpbmdFbmFibGVkKCk7CiAKLSAgICBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQg
PSAhW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5Oldl
YlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0KLSAgICAgICAgfHwgW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWRdOwotCi0KICAgICBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50Kys7CiAKICNpZiBVU0UoRElD
VEFUSU9OX0FMVEVSTkFUSVZFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggMWQxNzIwY2E0
ZjQ0NmJjNGJlODIxOTAyOGIwNGIxNTQzNTgyNmMwZi4uNTk1MzE3ODY3YjI2NTkzZWI0ODliMzUz
MTY1MzVmNzc3NWRkYzc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMyNiwxOCArMzI2
LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiBhZGEKICAgICBhZGFwdGVyLT5wYWdlLT5zZXR0aW5n
cygpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh2YWx1ZSk7CiB9CiAKLXZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0
b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVy
ICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50
UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSktPnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciogYWRhcHRlciwg
Y29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgYWRhcHRl
ci0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3Io
KS0+Y29tbWFuZChuYW1lKS5leGVjdXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAx
ZTkzNThhNjdkZGY5YjVjMTY2ODBhMTVlOWQ0YmU0ZWRiYjdmYzdiLi5kY2EwMjY2MjBjZDQ1Njk1
N2I3ODY1ZDhmOWY4MzIwNjI0MWFjMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC05Myw4ICs5
Myw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFt
ZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIq
LCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQYWdlQWRhcHRlcios
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBzZWxlY3RlZFJhbmdlKFFX
ZWJQYWdlQWRhcHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3QgZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKTsK
ICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VBZGFwdGVyKiwgY29u
c3QgY2hhciogdGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZlMGE1NGJmMWEzYjBiYmM1ZWM1YWEy
NDkwODdhMDMuLmQ4MmQwZTVmZDdkZTgxOTFmZjI5MjEzZjI3ZDQwOGQ0ZmEyMDFhZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CkBAIC0zMzMsMTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0OjpwYWdlRGVzdHJveWVk
KCkKIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsK
LSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9
IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAg
ICBib29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2Ut
PnBhZ2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSk7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKSk7CisgICAgfQogfQogCiBib29sIEVkaXRvckNsaWVudFF0Ojppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEsOCAr
NTUwLDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRlciog
cGFnZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRpbmco
ZmFsc2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTky
NGIyZi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTEx
LDkgKzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBi
OyB9Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0aWMg
Ym9vbCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAg
UVdlYlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9vbCBt
X2luVW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9uJ3Qg
cmUtZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29s
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4
IGQ5ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmViOWI0NTE1Zjg4YTkx
ZWVkOTA0ZWNjZWEzZTgzMWFlYzIwMWI0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9W
aXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90aWZp
Y2F0aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9IEZB
TFNFOyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7
Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29s
IFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQp
CiB7Ci0gICAgQk9PTCBlbmFibGVkID0gRkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7
CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2Uq
LCBXZWJDb3JlOjpFQWZmaW5pdHksIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0
MTE1MjA4NjUxYzNkMzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUuLjg1MTY4NzQ0ZGYxMzY2MGM2YWZj
MWMzOGU2YTBmYTRjOTY5ZTdhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1
LDYgQEAgV2ViVmlldzo6V2ViVmlldygpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2Up
CiAgICAgLCBtX3BhaW50Q291bnQoMCkKICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRU
YWcoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fZGlkQ2xvc2UoZmFsc2UpCiAgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1f
dG9vbFRpcEh3bmQoMCkKQEAgLTM3Myw3ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAg
ICAsIG1fdG9wTGV2ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJB
Y3RpdmUoZmFsc2UpCiAgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAg
ICwgbV9sYXN0UGFuWSgwKQogICAgICwgbV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwz
NCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09
ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghIWZsYWcpOworICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAg
ICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxl
ZCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID8gVFJVRSA6IEZBTFNFOworICAgICplbmFi
bGVkID0gbV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSA/IFRS
VUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAg
ICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAg
IGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KSA9PSAhIWZsYWcpIHsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAgIAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7
Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBUUlVF
IDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFi
NzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
aXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25lZCBtX3BhaW50Q291bnQ7CiAgICAgYm9vbCBt
X2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAg
ICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wgbV9oYXNDdXN0b21Ecm9wVGFyZ2V0OwogICAg
IHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKaW5kZXggYjlmNDY4
ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNhM2NiMi4uODEzZmQxZGM4Yjc1NTFiNGM5MGI1
NDdhMmIwOTdmN2Y4Yjg3MDNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2b2lkIEVkaXRvckNsaWVudFdpbkNFOjpwYWdl
RGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGlu
Z3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRv
ckNsaWVudFdpbkNFOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwIGIvU291
cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAppbmRleCA1ZWY2
NGNkNGE5YzAxMzYzYzQ5OWU1N2ZjZDk3YWRkNWQ5YzMxNWFhLi5mOGNmNmI4MjY5MTg2MGNjY2Rl
OTU0YTY4ODk1YWUxYzg1ZDAyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkZyYW1l
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpA
QCAtMTQ5LDE0ICsxNTAsMTYgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkRGVsZXRlUmFu
Z2UoUmFuZ2UqKQogCiBib29sIEVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0
dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xp
ZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NjY1OGE4NjY4NWE5OThlYjVhODZkOGQ5Mjk1MGU2
YWQ4OGVkZDUzLi42YzBiODllNjk3YTFmNDAyNjdjMTlkYzgzYjk2Y2EyODNmNDE2ZDYyIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTggQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGlu
ZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBz
ZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFscyBm
cm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5u
ZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpU
ZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMu
Y3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOiBT
ZXQgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBh
bmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcworICAgICAgICBD
aHJvbWl1bSBEUlQgZGVmYXVsdCB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIENocm9taXVtIGJy
b3dzZXIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9l
ZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQ
YWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVu
bmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgor
ICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVC
ZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKwog
MjAxMy0wMy0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1
bi1wZXJmLXRlc3RzIHNob3VsZCBzdXBwb3J0IGNvbnRlbnRfc2hlbGwKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggN2QzZTg1ZTAwNzQzYzI0ZTEyN2FkMmMxZWZiYTY2MzRjNjdk
ZWQzNi4uZGFlY2NhZmU2ZGRlNWFlY2FmM2U0YTRjZjA2YmQ2MmY3YmUzODQ2NSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiByZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fSAgICAKIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwot
Ci0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sw
XSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAx
KQpAQCAtMTUyNiwxNiArMTUxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciog
Y29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUo
dGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVl
UmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0
PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjEzOCw5
ICsyMTE4LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25z
KCkKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRz
Iiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIiwg
c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
c2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxl
bWVudHMiLCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IDRmMzcwYzMzOWM3Y2ZhOThlODlmMzQwMDI5
MjM3YjFiNDg1NGYxZGIuLjE3ZmI0MDhkYjlmODg0MDAyNWY2YWI5MTc0N2JjYThlNzRiMzlhZmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFBvcHVwQmxv
Y2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChi
b29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7
Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEYXNo
Ym9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDcxNjUyZGNkMTIzOGExMzY0MzcyYjA5
ODM1ODBiYzAyZDI4MzgxMDUuLjk1NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1ZDg2
YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC0xNTEsNyArMTUxLDYgQEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIER1bXBSZW5kZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19jdXJy
ZW50SW5zdGFuY2UgPSAwOwotYm9vbCBEdW1wUmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSkKIHsKQEAgLTI5NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVy
bCwgY29ucwogCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hlZCA9
IGZhbHNlOwotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwog
ICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGljeSA9
IGZhbHNlOwogICAgIHRlc3REb25lID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRleCBh
MTNhZmIxMmQ4ZDUyMzgzMzU0N2YzM2MyNzA5MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVkMDc2
NTc2ZDdjZGJjZDAwYWRmMzlkY2UwOWMwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEwMiw4
ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5v
ZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hvdWxk
SW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rp
b24pOwogCi0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKICAg
ICAvLyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENs
aWVudCBtZXRob2QKQEAgLTE0OCw3ICsxNDYsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Fj
Y2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJvb2wg
c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lEZWxl
Z2F0ZUVuYWJsZWQ7CiB9OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCA2NDVhZTc5Njg4MWYzYTQx
ZjBiYzk3Mzc4MzkyOTIwOWU0MzcwNWRjLi5iZDJmMDM0NTc1OGYwM2FmYTE5NjI1YTQzNDQyYjY0
ZmQ0NjgyZDUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rl
c3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZmxhZykKICAgICBCbGFja0JlcnJ5
OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0
aW5ncygpLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBC
bGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNF
RF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5u
ZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBp
ZiAoIW1haW5GcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNiZDc4
MGRhNjFkOWJmZTdlOWM4MGU1MjFmNmIxYjkwNzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3NjFl
YmE3MjkwYzExZmNkMGExNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0OSw4
ICsxNDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBsdWdp
bihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAg
ICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2b2lk
IGRpZFN0b3BMb2FkaW5nKCk7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
OwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdm9p
ZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViQ29u
dGV4dE1lbnVEYXRhJik7CiAgICAgV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRp
YUNsaWVudCgpOwogICAgIHZvaWQgcHJpbnRQYWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAgLTM2
OCwxNCArMzY2LDYgQEAgcHVibGljOgogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTdG9w
TG9hZGluZygpOwogICAgICAgICBCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRl
eHRNZW51KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRN
ZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFz
ZTo6c2hvd0NvbnRleHRNZW51KGZyYW1lLCBjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcAppbmRleCA5NzU0ZTJkNGM0NDY3YzI1ODAyNTdiY2Q0NWE1YjNiMjY1MTZhMzc4Li40
MGZiNDU2YmFmZjZhM2FhNTc4YTY3YjRlYjZkNjhlMzE3ZmExZmE1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcApAQCAtMjA3LDggKzIwNyw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVzdElu
dGVyZmFjZXMqIGludGVyZmFjZXMpCiAgICAgYmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5nTm9k
ZSIsICZUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9kKCJk
aXNhYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2Rl
KTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjpl
bmFibGVBdXRvUmVzaXplTW9kZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0g
ICAgYmluZE1ldGhvZCgic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAm
VGVzdFJ1bm5lcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRM
b3NlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAgLTQw
OSwxMiArNDA3LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRTdGF5
T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQmxv
Y2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51
bGwgPSBmYWxzZTsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZk
ZWYgV0lOMzIKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOwot
I2Vsc2UKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLSNl
bmRpZgogICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAgICAg
bV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIoKTsKQEAgLTY3NSwxNiArNjY3LDYgQEAgYm9vbCBU
ZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UuaXNCb29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVzc2Fn
ZS50b0Jvb2xlYW4oKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVk
OwotfQotCi1ib29sIFRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpAQCAt
MTQ2NywyMCArMTQ0OSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZShj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5z
ZXQoc3Vycm91bmRpbmdUZXh0LnRleHRDb250ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0
LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNb
MF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9
IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19
Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBt
X3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmlu
ZGV4IDI1ZTdmZTg0NTg5YjdkODE3MWZjNjE5YjA5NTg5Y2QxMTkxNjA4YjEuLjFiMGM2ZDQ5MWRk
YjUyZmM4ODE0NjBhZDk5OTk3OTMyODlkOGZkYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTEx
OCw4ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2
ZSgpIGNvbnN0OwogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAgIGJv
b2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVtcFJl
c291cmNlUHJpb3JpdGllcygpIGNvbnN0OwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAgICAg
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0OwpAQCAtMjY5LDExICsyNjcsNiBAQCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0byBy
ZXRyaWV2ZS4KICAgICB2b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5z
ZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxlY3Rp
b24gb24gZG91YmxlIGNsaWNrLgotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBl
bmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogCkBAIC02NjgsMTAgKzY2MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQ7Ci0KLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDsKLQogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwogCiAg
ICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1faHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDMxZDNhNGI0MTBhOGM1M2E2NDhjN2MwOGVmMGFkZjYy
Y2Q3MGIwNWIuLjMxMTRmYmRhOTdlOTNlODE5MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTIyMSw2ICsyMjEsMTIgQEAgdm9pZCBXZWJQ
cmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRW
aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0UGFzc3dv
cmRFY2hvRW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh0cnVlKTsKKyNpZmRlZiBXSU4zMgorICAgIHNldHRpbmdzLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworI2Vsc2UKKyAgICBzZXR0aW5ncy0+c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisjZW5kaWYKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggNGUxM2I2MTNkNmY2MjdhM2U5OWRkZWQyNDcx
MGUyZThjMjkyYmE1MS4uYTc1NjAwNjE3YjhhNGJiZGRhM2RlYjc2MGI2OGE0OTkxM2NkNWFiMiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC05NzksMTYgKzk3OSw2IEBAIHZvaWQgV2Vi
VGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKQogICAgICAgICBtX2RlbGVnYXRlLT5wcmlu
dE1lc3NhZ2UoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKIH0KIAotYm9v
bCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0gICAg
cmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2b2lk
IFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNv
bnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogewogICAgIG1fdGVzdEludGVyZmFjZXMt
PmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRNZW51RGF0YShjb250ZXh0TWVudURhdGEpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGZmMjcw
NTM3MjNkOWQ5YmI0ZTYwODQzODlhNDExZWFmNzg1OTA3NGMuLmI2MTVhYWY1OGQ3MzE3ZGM0YWZl
NDQ2MDUzM2FlYWIyMTQ1MGM5MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE3MCwyMCArMTcwLDYgQEAgYm9vbCBXZWJWaWV3SG9zdDo6
c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYg
cmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJWaWV3SG9zdDo6aXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlZp
ZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRp
ZgotfQotCiBib29sIFdlYlZpZXdIb3N0OjpoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpCiB7
CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1lLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBmZGJlZDJmNzJhNTQwZGUzM2UzNjFhYWNi
YTEyM2QwMDZhMGMwOGYxLi41ZTI4OTI1NDg2M2ViYjA1NjFmN2NjNDViZDRkNjA3MjUwNmY2MzI4
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0
Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdD
bGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20sIGNv
bnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSwgYm9vbCBz
dGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0
IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdmlydHVh
bCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJ1
bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bk1vZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6Oldl
YkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IGY4N2VlYjA3MDY0NmY1
OTAxN2JhNjgwODRjZDc2ZDJkMGE2ZDEzOTYuLjYxMjdjOWQ2MjkyNGIxZDg0Y2MwYjdiOGJjNTM1
NjExODA1MWNjYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmNwcApAQCAtMzE1LDggKzMxNSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFp
blZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCksIGZhbHNl
KTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggZTY1YjVhMjU5ZTJjMTI1ZGEy
N2NjOTAwMWNlN2I0MThmMzYwOTNkNS4uYTk5YTNiNWVkYzc2ODdiNDJmNDIxMjg4OTVkYThkYTdm
MzVjMWU3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApA
QCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZs
YWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29sIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQq
KQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAg
ICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwg
ZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dz
X3NldChicm93c2VyLT5tYWluVmlldygpLCAhZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhlZGRl
MDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUwMSw4
ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkK
IAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXND
aGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0
X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsK
ICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERlZmVyc0xvYWRpbmcod2ViVmlldywg
ZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExv
YWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
CmluZGV4IDQyY2U2NzI2ZDg4M2U5MzdlZWE1YmU4YzBmNjRiZDJlMDdmMWM4YzQuLmNkMTA0NGQw
ZDIzMzFlMmE0YTFlYzc3ZThkNDJmOTcyN2ZhYWRhNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTMyMywxMSArMzIzLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSks
IGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9p
ZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdhdGNoZG9nKDApOwpAQCAtNDg1LDExICs0ODAsNiBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0g
d2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5MWY2
MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0OWE4
YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0x
Mjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0
ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBnVGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3Vz
UmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0
c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBiMjMyNmEyNmIzNDlhMDgzYmE3
OThhOGM3Yjk1YWRhOWRmMDVlMzY2Li5iMzFjOWFkNzI3YjJlNjZmN2ZlN2I1Y2ExZDY4ZGJiNGU0
N2JmZTY5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAt
NjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2lu
ZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZsYWddOwotfQotCiBzdGF0aWMgY29uc3Qg
Q0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0
aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1l
ciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVR
dC5jcHAKaW5kZXggMTk4YmFhOGM3MGI5YWY1NTQ4ZDhmYmFjZGQwYjgxY2EwNjJhYmJhMC4uYmUy
OTQ3NmZkYTcyNTIwOGIyOGI1ZmEyODcxY2ZiOWMxYmYwYjVjYSAxMDA3NTUKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTE5NCw4ICsxOTQsNiBAQCB2b2lk
IFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0
Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVy
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1
bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBt
X2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKIAogICAgIC8vIGds
b2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDFjYmY2MmZmMDhmOTVhNmJmOWM5NzY1MzFlMTRk
YjJjNzJlZGQxY2UuLjlhZTJlZjM1MDY0Nzg5ZTg2NDIzNTZjMGM2ZmQyYmI3ZTBhM2MzYWQgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzI1LDE2ICs3MjUs
NiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFTdHJpbmcm
IG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5nJgogICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5G
cmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3kobywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lclF0
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+cGFn
ZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobV9kcnQtPnBh
Z2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lclF0OjpleGVjQ29tbWFu
ZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5wYWdl
QWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJR
dC5oCmluZGV4IGMxY2EzNzZjYzE4MGM3Y2E5YzMyMzU1ZTU2YmQ2Mjc1Yzc5OTZjNGYuLjMwMDkz
MzU2M2U3MTBkZjc3MWQ5NjFkYTcxZDFjZjU1MDY2YzBmN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L3F0L1Rlc3RSdW5uZXJRdC5oCkBAIC0xNzYsOCArMTc2LDYgQEAgcHVibGljIFFfU0xPVFM6CiAg
ICAgdm9pZCBzZXRDYXJldEJyb3dzaW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEF1dGhv
ckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0Vmlld01vZGVNZWRpYUZl
YXR1cmUoY29uc3QgUVN0cmluZyYgbW9kZSk7Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoYm9vbCk7Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGJvb2wpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQoY29uc3QgUVN0cmluZyYgbmFtZSwgY29u
c3QgUVN0cmluZyYgdmFsdWUgPSBRU3RyaW5nKCkpOwogICAgIGJvb2wgaXNDb21tYW5kRW5hYmxl
ZChjb25zdCBRU3RyaW5nJiBuYW1lKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9EdW1wUmVuZGVyVHJlZS5jcHAKaW5kZXggZjc0NzZmYTEyNjNkZjFlMGNlMjYwNmEzODM3ODcz
ZWRhNzhjZWY1Yi4uODlmYTlmN2FmYTE2MzVmNjEyNWQ0NGM5ZTEzMjRlZGMxNWUyOTEwNyAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC04OTksMTAg
Kzg5OSw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3Jl
VGVzdGluZygpCiAgICAgICAgIFdlYkNvcmVUZXN0U3VwcG9ydDo6cmVzZXRJbnRlcm5hbHNPYmpl
Y3QoY29udGV4dCk7CiAgICAgfQogCi0gICAgQ09NUHRyPElXZWJWaWV3RWRpdGluZz4gdmlld0Vk
aXRpbmc7Ci0gICAgaWYgKFNVQ0NFRURFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFjZSgmdmlld0Vk
aXRpbmcpKSkKLSAgICAgICAgdmlld0VkaXRpbmctPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChUUlVFKTsKLQogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXdQcml2YXRlKFF1
ZXJ5LCB3ZWJWaWV3KTsKICAgICBpZiAoIXdlYlZpZXdQcml2YXRlKQogICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKaW5kZXggNjY0OGMz
ZWUxNWRkNGE1NmVlMGI0NWIyMWUwODdmYTg2NDRlNjlmMi4uZGQ0ZDg3MzFkZmVlNDgzZGZlMGU5
Yjg3MTUyZmE2NDNjNmRhMGM3OSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L1Rlc3RSdW5uZXJXaW4uY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVu
bmVyV2luLmNwcApAQCAtNzIzLDMyICs3MjMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRv
d0lzS2V5KGJvb2wgZmxhZykKICAgICA6OlNlbmRNZXNzYWdlKHdlYlZpZXdXaW5kb3csIGZsYWcg
PyBXTV9TRVRGT0NVUyA6IFdNX0tJTExGT0NVUywgKFdQQVJBTSk6OkdldERlc2t0b3BXaW5kb3co
KSwgMCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
KGJvb2wgZmxhZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZB
SUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBD
T01QdHI8SVdlYlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZp
ZXctPlF1ZXJ5SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICB2aWV3RWRpdGluZy0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcgPyBUUlVFIDog
RkFMU0UpOwotfQotCi12b2lkIFRlc3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKLSAg
ICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCi0gICAgICAgIHJldHVybjsK
LQotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChGQUlM
RUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIHZpZXdFZGl0aW5nLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZsYWcgPyBUUlVFIDogRkFMU0UpOwotfQotCiBzdGF0aWMgY29uc3QgQ0ZUaW1lSW50ZXJ2YWwg
d2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0aWMgdm9pZCBDQUxMQkFD
SyB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChIV05ELCBVSU5ULCBVSU5UX1BUUiwgRFdPUkQp
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAppbmRleCA0NzUzYzI5Y2E1
NGY2YWVlMWE5ZGNhOTEzZDliNTFlZDUwMWE5YTFlLi5mNGJiOTRhMGUzZDI5NmNhZjdjMDg2YzFk
ZmM5NzdiY2M2NmU2OTk0IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0
UnVubmVyV3guY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L1Rlc3RSdW5uZXJXeC5j
cHAKQEAgLTE1MSwxMSArMTUxLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShi
b29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIC8v
IEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRXYWl0VG9EdW1wKGJv
b2wgd2FpdFVudGlsRG9uZSkKIHsKICAgICBzdGF0aWMgY29uc3QgaW50IHRpbWVvdXRTZWNvbmRz
ID0gMTA7CkBAIC0yODgsMTEgKzI4Myw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0QXBwQ2FjaGVN
YXhpbXVtU2l6ZSh1bnNpZ25lZCBsb25nIGxvbmcgc2l6ZSkKICAgICAvLyBGSVhNRTogaW1wbGVt
ZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChib29sIGZsYWcpCi17Ci0gICAgLy8gRklYTUU6IGltcGxlbWVudAotfQotCiB2b2lkIFRl
c3RSdW5uZXI6OnNldE1vY2tEZXZpY2VPcmllbnRhdGlvbihib29sIGNhblByb3ZpZGVBbHBoYSwg
ZG91YmxlIGFscGhhLCBib29sIGNhblByb3ZpZGVCZXRhLCBkb3VibGUgYmV0YSwgYm9vbCBjYW5Q
cm92aWRlR2FtbWEsIGRvdWJsZSBnYW1tYSkKIHsKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IGZv
ciBEZXZpY2VPcmllbnRhdGlvbiBsYXlvdXQgdGVzdHMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzMzNTE4YTY1NGE5ZTY2
ZjlkOGI1ZDA1MTNmNzAyMWU0OWU5MjNkMi4uMjdkNDZiYjE4NTJkYmM2MWNiYTZmZDA2MWU0YWMw
Y2E4YmIyMjY2ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVn
byBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVwbGFjZSB0ZXN0UnVubmVy
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYnkKKyAgICAgICAgaW50ZXJuYWxz
LnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW4gdGVzdHMuCisK
KyAgICAgICAgQmUgc3VyZSB0aGF0IHRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYW5kCisgICAg
ICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgYXJlIHNldCB0byBvcHBvc2l0ZSB2
YWx1ZXMgYXMgdGhleSBhcmUKKyAgICAgICAgbXV0dWFsbHkgZXhjbHVzaXZlLgorCisgICAgICAg
ICogZWRpdGluZy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWw6CisgICAgICAg
ICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNwYW4uaHRtbDoKKyAg
ICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0
bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1p
bWctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13
aGl0ZXNwYWNlLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3Rz
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qczoKKyAgICAg
ICAgKiBlZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzOgorICAgICAgICAoaW5pdFNw
ZWxsVGVzdCk6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbDoKKyAgICAgICAgKiBlZGl0aW5nL3NwZWxs
aW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9uczogVW5mbGFnCisgICAgICAgIGVkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5odG1sCisgICAg
ICAgIGFzIGl0IHBhc3NlcyBub3cuCisKIDIwMTMtMDMtMTMgIEp1bGllbiBDaGFmZnJhaXggIDxq
Y2hhZmZyYWl4QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gSGFuZGxl
IG1pbi13aWR0aCAvIG1heC13aWR0aCBvbiB0aGUgZ3JpZCBlbGVtZW50CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1s
CmluZGV4IDdlYjMwZDIyMTFkMGMwZDgxOWJlZjJmNWU3MzY4NDgxOTgxZGVkNjkuLmQwZjdkN2Fm
MTU4ZGEyNWM4Nzg3NmM4ODM2YWYwN2JhYTc0NmFiODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2VkaXRpbmcvZGVsZXRpbmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sCkBAIC01
LDYgKzUsNyBAQAogaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGVkaXRpbmdUZXN0KCkgewpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRl
LWNyLXNwYW4uaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNr
LWJlc2lkZS1jci1zcGFuLmh0bWwKaW5kZXggOGI5OGJhNzJmYmZjNzQwYWZhMzVjMmQwOGFjOTU3
N2FiNmI5OWU5YS4uOGQ1Y2I3NmI3YWRiMTg3Nzg0NTFhZWVmNTI3YWVlMzZjMGQ4ZmJiMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRl
LWNyLXNwYW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay1iZXNpZGUtY3Itc3Bhbi5odG1sCkBAIC00LDcgKzQsNyBAQAogaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CiAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICBpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKLSAgICAgdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAgICBpbnRl
cm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsK
IH0KIAogZnVuY3Rpb24gZ2V0UG9zaXRpb25PZk5vZGUoaWQpCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNy
YXNoLmh0bWwKaW5kZXggNDBlMjQxMzgyMWU4ZTg4NDA3OTc4YWE4Mzc2OTM3N2M4Njg2YWY4Zi4u
YzliNDRlNmM2NmYzOTVhNWIwN2ZmMzkzMzQ0MTI2MWZhNDkzNjlhOCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRl
c3BhY2UtY3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCmluZGV4
IGYyODBhMjZhNzY5YTk1YTc5ZGRhNmQ0NDY3MTY0ZGZkNDQ2Mzc1MDQuLmY3NGFhMjY1Njc3NjU2
MzU4YTc5NTk4NmUzYTM3OTljN2ZjZWY2N2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1pbWct
Y3Jhc2guaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLmh0bWwKaW5kZXggODUzMGZiYzUz
MWE0NTNhNmFmNWZiZjM5ZDVmNmYxZWFhZjk4YjdkYy4uN2Q4M2ZiMWZhMWU1OGI1ZTc0MTVlMmYz
YWUxZjI5NGRjMmRlZWMxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UuaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7
Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVl
KTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdldFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNs
aWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcyBiL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFz
dC1jb250ZW50ZWRpdGFibGUuanMKaW5kZXggZWU2NTVkYzA3MmFmZjJiMjVmYjcyMzU2OTUwMzA5
MDk1YzFjMmUzOS4uZTdiZGZmNWNkMjYzMzI3ODc4NmU2MmY2ODIyMTk5MDlhOTcxNmMyMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJs
ZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRlZGl0YWJsZS5qcworKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9zY3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZp
cnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmpzCkBAIC03OCw3ICs3OCw4IEBAIGZ1bmN0aW9uIHRl
c3RXaXRoQ2xpY2tBbmRNb2RpZnkodGFyZ2V0SW5uZXJIVE1MLCBleHBlY3RlZFRleHQpCiAgICAg
c2hvdWxkQmUoIndpbmRvdy5zZWxlY3RlZEJ5TW9kaWZ5IiwgdG9MaXRlcmFsKGV4cGVjdGVkVGV4
dCkpOwogfQogCi10ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZmFsc2UpOworaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0
cnVlKTsKK2ludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKGZhbHNlKTsKIAogdmFyIHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUgPSAiPHNwYW4g
aWQ9J3RhcmdldCcgY29udGVudEVkaXRhYmxlPnNlbGVjdG1lMTwvc3Bhbj4gYW5kIG5vdCBzZWxl
Y3QgdXMiOwogdGVzdFdpdGhEb3VibGxlQ2xpY2soc2hvdWxkU2VsZWN0ZUZpcnN0V29yZElubGlu
ZSwgInNlbGVjdG1lMSIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9yZXNvdXJjZXMvdXRpbC5qcyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3Vy
Y2VzL3V0aWwuanMKaW5kZXggY2Y4MDMzNDE4ODQzY2YyMGM2NjcxZTdjODQ5MDdiNzA3MmQ0OTUy
MC4uMDk0YTUzYjI4OTY4OGQ4MmRlNGRlNzM2N2E5Yzk0MzM0ZjU2MjQ5NCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcworKysgYi9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCkBAIC0yNyw4ICsyNyw4
IEBAIGZ1bmN0aW9uIGluaXRTcGVsbFRlc3QodGVzdEVsZW1lbnRJZCwgdGVzdFRleHQsIHRlc3RG
dW5jdGlvbikKICAgICB0ZXN0RnVuY3Rpb25DYWxsYmFjayA9IHRlc3RGdW5jdGlvbjsKICAgICBq
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKICAgICB0ZXN0UnVubmVyLnNldEFzeW5jaHJvbm91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQodHJ1ZSk7CiAgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEVkaXRpbmdCZWhhdmlvcigid2luIik7CiAgICAgdmFyIGRlc3RpbmF0aW9uID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQodGVzdEVsZW1lbnRJZCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRl
cnNjb3Jlcy5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3Vi
bGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAppbmRleCBjYTU5MzVmZTAwMDVh
NWEwNjEzNTJjZjlhMjNlZjYzMTIzYjE2YTM2Li40MDYwNzE4MTBkMDFiYjk4ZTZlNWYxM2MzOGQ2
MDkzZDM2ZTdlYWE4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Nw
ZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13
aXRoLXVuZGVyc2NvcmVzLmh0bWwKQEAgLTIxLDcgKzIxLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVz
dGluYXRpb24iLCAid2VsbGNvbWVfIGhvbWUuIiwgIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAg
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIs
ICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQg
dGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICB2YXIgeCA9IGRlc3Rp
bmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0TGVmdCAr
IDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRvcCArIGRl
c3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CkBAIC00OSw3ICs1MCw4IEBAIGluaXRTcGVs
bFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxjb21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9k
ZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29y
ZCB3aXRoIHRoZSB0cmFpbGluZyB3aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Mu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZhbHNlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKICAgICB2YXIgeCA9
IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRMZWZ0ICsgZGVzdGluYXRpb24ub2Zmc2V0
TGVmdCArIDQwOwogICAgIHZhciB5ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldFRv
cCArIGRlc3RpbmF0aW9uLm9mZnNldFRvcCArIGRlc3RpbmF0aW9uLm9mZnNldEhlaWdodCAvIDI7
CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oeCwgeSk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbCBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29y
ZC5odG1sCmluZGV4IDI0OTI3M2QyZTBhYmFiOWQ5YmNlYzkyN2EwOWMzZmM0NmNlMDI3Y2YuLjlk
MjQ5ZmQ3ZjBlZmVlMjQzYmM2YjBmYjI5ZTVjZWU1OTU2ZWM0ZWEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNr
ZWQtd29yZC5odG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9u
IiwgIndlbGxjb21lIGhvbWUuIiwgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwogCiAg
ICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aG91dCB0cmFpbGluZyB3
aGl0ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIg
eSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5h
dGlvbiIsICJ3ZWxsY29tZSBob21lLiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsK
IAogICAgIC8vIERvdWJsZS1jbGljayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGggdHJhaWxpbmcg
d2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQ
YXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIg
eSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZz
ZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCBiNWY2ODY0MWE4MDljZGQ0YTQ0M2I4ZGZmMDUwYmEyM2JmMDg4YzlkLi5iYzcyYWJj
MWM3NmZkY2Q1ODg1Y2M1YjRiZGI0NTI5NTUzZTYyY2U0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS93azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzc1LDkgKzM3NSw2IEBAIGh0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWF1dGhvcml6YXRpb24td2l0aC1lbWJlZGRlci5odG1s
CiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWRkRGlzYWxs
b3dlZFVSTAogcGx1Z2lucy9nZXQtdXJsLXRoYXQtdGhlLXJlc291cmNlLWxvYWQtZGVsZWdhdGUt
d2lsbC1kaXNhbGxvdy5odG1sCiAKLSMgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkCi1lZGl0aW5nL3Nl
bGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRt
bAotCiAjIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIucGFnZVBy
b3BlcnR5CiBwcmludGluZy9wYWdlLXJ1bGUtc2VsZWN0aW9uLmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193076</attachid>
            <date>2013-03-13 23:44:00 -0700</date>
            <delta_ts>2013-03-14 14:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109404-20130314073956.patch</filename>
            <type>text/plain</type>
            <size>89289</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQ1NzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjE1ODExMTNlM2MzNmY3
Yjg5MWE2MmMzYTY0YTgxOGVjYWFlOTdmMi4uOWJhNGU0MDQ3ZDg1MTkwMmE3YzE3Y2ZjZTliODIy
M2E5ZjlmMWJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEzLTAzLTA4ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieQor
ICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxpbmUtZmlyc3QtbGFzdC1j
b250ZW50ZWRpdGFibGUuaHRtbC4KKworICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAg
ICAgICAoV2ViQ29yZSk6IENvbmZpZ3VyZSBkZWZhdWx0IHZhbHVlIGZvciBzbWFydEluc2VydERl
bGV0ZUVuYWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2VldGluZ3MgYXMgdGhleSBhcmUgZGlmZmVyZW50IGluCisgICAgICAgIENocm9taXVtIHBvcnQg
ZGVwZW5kaW5nIG9uIHRoZSBPUy4KKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmluOiBBZGQgbmV3
IHNldHRpbmcuCisKIDIwMTMtMDMtMTMgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW0NTUyBHcmlkIExheW91dF0gUmVmYWN0b3IgR3JpZENvb3Jk
aW5hdGUgdG8gaG9sZCBHcmlkU3BhbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2ti
ZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4
IDdmMGI5MDY5OWQ0NzA1Yjg0M2M5YTI1NzU5MzNkZThkMDExYjRlMTkuLjQ1ZjZjODhmM2ExOWFi
NmFhZWRmZjBjYTFlY2M0YmY4ZmJjZDVhMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxh
Y2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8
cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnRE
ZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
LgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVk
ZWQgYW55bW9yZS4KKworICAgICAgICAqIEFwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oOgorICAg
ICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6c21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEJsYWNrQmVycnk6OmlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCk6CisKIDIwMTMtMDMtMTMgIElyaXMgV3UgIDxzaHV3
dUBibGFja2JlcnJ5LmNvbT4KIAogICAgICAgICBbQmxhY2tCZXJyeV0gRG8gbm90IGRvIHNjcm9s
bCBwb3NpdGlvbiBhZGp1c3RtZW50IGlmIHNlbGVjdGluZyBpbiBhIHN1YmZyYW1lCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCmluZGV4IGNmNzlkZTNlNzM4YjU1NWVkZDg1NWYyM2ZjMzAwNzNiYmU5
MjI3OTkuLmNkZjgxMjY5MWM3ZDE3ZWVjODFhYzhjMTYwOWQyYmQwYTg0MjY0NjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBS
ZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgbmV3IFBhZ2Ugc2V0
dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBhbmQgdXBkYXRlIEFQSSBhY2NvcmRpbmdseS4KKworICAg
ICAgICBXZWJTZXR0aW5ncyBBUEkgaXMgcmVxdWlyZWQgYnkgRFJUIGluIG9yZGVyIHRvIHNldCB0
aGUgcHJvcGVyIGRlZmF1bHQKKyAgICAgICAgdmFsdWVzIHdoaWNoIGFyZSBkaWZmZXJlbnQgZnJv
bSBicm93c2VyIGRlZmF1bHRzLgorCisgICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6IEFk
ZCBuZXcgQVBJIHRvIG1hbmFnZSBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKKyAgICAgICAgYW5k
IHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZ3MuCisgICAgICAgICogcHVi
bGljL1dlYlZpZXdDbGllbnQuaDogUmVtb3ZlIEFQSSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZAorICAgICAgICBhbmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBh
cyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tIHBhZ2UKKyAgICAgICAgc2V0dGluZ3MgZnJvbSBu
b3cgb24uCisgICAgICAgICogc3JjL0VkaXRvckNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRJbXBsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAg
ICAoV2ViS2l0OjpFZGl0b3JDbGllbnRJbXBsOjppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQpOiBVc2UgbmV3CisgICAgICAgIHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisgICAg
ICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6IEltcGxlbWVudCBtZXRob2RzIGVzdGFibGlz
aGluZyB0aGUgcGFnZQorICAgICAgICBzZXR0aW5ncy4KKyAgICAgICAgKFdlYktpdDo6V2ViU2V0
dGluZ3NJbXBsOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAg
ICAgIChXZWJTZXR0aW5nc0ltcGwpOiBJbXBsZW1lbnQgbmV3IEFQSSB0byBtYW5hZ2UgdGhlIG5l
dyBzZXR0aW5ncy4KKwogMjAxMy0wMy0xMyAgU3RlcGhlbiBDaGVubmV5ICA8c2NoZW5uZXlAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEFkZCBuZXcgU2tpYSBjb2RlIHN1cHByZXNzaW9uIGZsYWdz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKaW5kZXggNWY2MjU3N2ViNDMyYjMzMmYyMDY3M2MyMjJlNTA2MDM0YzY0
NmI2NS4uYTI0MGE4M2VlMjAzNGE2ODIzOTE3NDAwNWMwZTgyODM0NDU4MmU0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25v
dmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJ
bnNlcnREZWxldGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkLgorCisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5v
dCBuZWVkZWQgYW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbC5jcHA6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRy
ZWVTdXBwb3J0RWZsLmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZs
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6c21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudEVmbDo6aXNTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dEVmbDo6RWRpdG9yQ2xpZW50RWZsKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JD
bGllbnRFZmwuaDoKKyAgICAgICAgKEVkaXRvckNsaWVudEVmbCk6CisKIDIwMTMtMDMtMTMgIFBh
dmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogZ2V0IHJpZCBvZiBoaWRkZW5QYW5lbHMgZmlsdGVyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2d0ay9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKaW5kZXgg
MTMwNTFkZjRlMTBmMjJiYjRiZGI3NDk1MzFkMDM4NjNiNGMxODI0Yy4uYWJlNjNkMWQ2ODhlNmVh
Zjc2OGEwOWY5ZDE5YTQwNzAxZWU3Mjk3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29t
PgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcg
dG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFu
ZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgIFJl
bW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQgYW55bW9yZS4KKwor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHA6Cisg
ICAgICAgICogV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmg6CisgICAg
ICAgIChEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGspOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0
L0VkaXRvckNsaWVudEd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVkaXRvckNsaWVudDo6c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6RWRpdG9yQ2xpZW50Ojpp
c1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpFZGl0
b3JDbGllbnQ6OkVkaXRvckNsaWVudCk6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9y
Q2xpZW50R3RrLmg6CisgICAgICAgIChFZGl0b3JDbGllbnQpOgorCiAyMDEzLTAzLTEzICBUb21h
cyBQb3BlbGEgIDx0cG9wZWxhQHJlZGhhdC5jb20+CiAKICAgICAgICAgW0dUS11bSW50cm9zcGVj
dGlvbl0gRml4IG9mIGd0ayBkb2MgYW5ub3RhdGlvbiB3YXJuaW5ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmlu
ZGV4IGNhMGQ4YTdkNDg2YjI3YWY4NDRjMmFlYzg2MjdjYjZmYjI2ZGMwYWEuLmEzZTZkZTUwZjZl
Y2Q3ZGEyNzQxYzMxZmNlNzI3M2Q4N2I4NDc0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
bWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNyBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJlZ29AaWdhbGlh
LmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0
aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIFVzZSBuZXcgc2V0dGluZ3MgZm9yIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZC4KKworICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRv
ckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNs
aWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcgX2NvbW1vbkluaXRpYWxpemF0aW9u
V2l0aEZyYW1lTmFtZTpncm91cE5hbWU6XSk6IEluaXRpYWxpemUKKyAgICAgICAgc2V0dGluZ3Mg
ZnJvbSBOU1VzZXJEZWZhdWx0cy4KKyAgICAgICAgKC1bV2ViVmlldyBzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkOl0pOgorICAgICAgICAoLVtXZWJWaWV3IGlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZF0pOgorICAgICAgICAoLVtXZWJWaWV3IHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV2ViVmlldyBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWRdKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXdEYXRhLmg6CisgICAgICAgICogV2Vi
Vmlldy9XZWJWaWV3RGF0YS5tbToKKyAgICAgICAgKC1bV2ViVmlld1ByaXZhdGUgaW5pdF0pOgor
CiAyMDEzLTAzLTEzICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IGdldCByaWQgb2YgaGlkZGVuUGFuZWxzIGZpbHRlcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwppbmRleCAyZTQ4YjQ3MjA4MzVhZWMxNzhhZmM4YjVkNWMzNjNlZTFjYzU1ODUzLi42
YzU4ZDZjYmZkNWQyNjI1OTI0MThhMmNlZTQ2OWQ3ZmFhOWU5MmNlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI1IEBACisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVn
b0BpZ2FsaWEuY29tPgorCisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkIHNldHRpbmcgdG8gV2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgor
CisgICAgICAgIFJlbW92ZSBjb2RlIHJlbGF0ZWQgdG8gRFJUIGFzIGl0IGlzIG5vdCBuZWVkZWQg
YW55bW9yZS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9y
dFF0LmNwcDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRR
dC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0Ojppc1NlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50UXQ6OkVkaXRv
ckNsaWVudFF0KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oOgor
ICAgICAgICAoRWRpdG9yQ2xpZW50UXQpOgorCiAyMDEzLTAzLTEzICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQGRpZ2lhLmNvbT4KIAogICAgICAgICBbUXRdIFBvcnQgVGVzdFJ1bm5l
cjo6ZmluZFN0cmluZyB0byBzaGFyZWQgaW50ZXJmYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZTY4
MmI2MjRhYjk1NjZjYTM0M2VlM2NhMDk2OTUzMDQwODg2MGM5Ni4uZjkzYTQ3YThmOWQwN2ExM2Fl
MmJhMzk5NTI5YjQzNmIzNzA4NDk4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBA
CisyMDEzLTAzLTA4ICBNYW51ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgor
CisgICAgICAgIEFkZCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIHNldHRpbmcgdG8g
V2ViQ29yZTo6UGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTA5NDA0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIG5ldyBzZXR0aW5ncyBmb3Igc21hcnRJbnNlcnREZWxldGVFbmFibGVkIGFuZAor
ICAgICAgICBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkLgorCisgICAgICAgICogV2Vi
Q29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkVkaXRvckNsaWVu
dDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6
aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKyAgICAgICAgKiBXZWJWaWV3LmNw
cDoKKyAgICAgICAgKFdlYlZpZXc6OldlYlZpZXcpOgorICAgICAgICAoV2ViVmlldzo6c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCk6CisgICAgICAgIChXZWJWaWV3OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKToKKyAgICAgICAgKFdlYlZpZXc6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZCk6CisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAoV2ViVmlldyk6CisKIDIw
MTMtMDMtMTMgIE5hdGUgQ2hhcGluICA8amFwaGV0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBF
eHBvc2Ugc3ltYm9scyBmb3IgaW50ZXJuYWxzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bmNlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCmluZGV4IDZmNmEx
OThhNDI0ZTg4YmEwMzVlNzQ4NmMyMGMwMWY3NzY5MzM0YzkuLjBlNjI3MjI2NzUxZTQ3NWJiNjg0
ZTY0N2RhMDU3MmZjNzNiNDAwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luY2UvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5jb20+
CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGluZyB0
byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQgYW5k
CisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAgICAgICAgKiBX
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkVk
aXRvckNsaWVudFdpbkNFOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2Vi
S2l0OjpFZGl0b3JDbGllbnRXaW5DRTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KToKKwogMjAxMy0wMi0xMSAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBEaXNhYmxlIGRlbGV0ZSBidXR0b24gY29udHJvbGxlciBvbiBub24tTWFjIHBvcnRzIGFu
ZCBkZWxldGUgRWRpdG9yQ2xpZW50OjpzaG91bGRTaG93RGVsZXRlSW50ZXJmYWNlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3d4L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdl
TG9nCmluZGV4IDAzMjRlMjE1ZGJlZGEwYWNmYTRiNjRjYTcwYmIyYzcxYzMzZjczMjcuLjAzODcx
NTU1YmFkZTM2ODMyODE2OGUzZDYzMjI0MzlhYjVjOGViZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvd3gvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTcgQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGln
YWxpYS5jb20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQg
c2V0dGluZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBVc2UgbmV3IHNldHRpbmdzIGZvciBzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQgYW5kCisgICAgICAgIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQuCisKKyAg
ICAgICAgKiBXZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAo
V2ViQ29yZTo6RWRpdG9yQ2xpZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCk6CisKIDIwMTMtMDItMjYgIERtaXRyeSBadm9yeWdpbiAgPHp2b3J5Z2luQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNZXJnZWQgVGlwIGFuZCBEZWJ1ZyBsb2cgbGV2ZWxzIGZvciB3ZWIgY29u
c29sZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggYTNiY2RkYjc2MDIxZTJjNmVkNzhk
NjQ4NGYzZDZlZDYyYzFjOGUwZi4uODg0ZmQ2YzdhODQxZTUxOGQ5ZGUxN2UwZDFlN2ExZTlhMTY4
NDQ1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTE0MSw2ICsxNDEsMjEgQEAgc3Rh
dGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCA9IHRydWU7
CiAjZWxzZQogc3RhdGljIGNvbnN0IGRvdWJsZSBkZWZhdWx0VW5pZmllZFRleHRDaGVja2VyRW5h
YmxlZCA9IGZhbHNlOwogI2VuZGlmCisjaWYgUExBVEZPUk0oQ0hST01JVU0pCisjaWYgT1MoTUFD
X09TX1gpCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gdHJ1ZTsKKyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKKyNpZiBPUyhXSU5ET1dTKQorc3RhdGljIGNvbnN0
IGJvb2wgZGVmYXVsdFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOworI2Vs
c2UKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkID0gZmFsc2U7CisjZW5kaWYKKyNlbHNlCitzdGF0aWMgY29uc3QgYm9vbCBkZWZhdWx0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkID0gdHJ1ZTsKK3N0YXRpYyBjb25zdCBib29sIGRlZmF1bHRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CisjZW5kaWYKIAogU2V0dGlu
Z3M6OlNldHRpbmdzKFBhZ2UqIHBhZ2UpCiAgICAgOiBtX3BhZ2UoMCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRp
bmdzLmluCmluZGV4IDI4NjYzNmNjMTVjNDdmZTQ2NGY1YTAzZWZhN2Q1YzkyZmQwOGY2NzIuLmNl
MmRhY2I2YjZlZjFlNGUxYWE3MGU1YTk5Y2E1OTkxNmFiOTRmZWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaW4KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy5pbgpAQCAtMTk4LDQgKzE5OCw1IEBAIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkIGluaXRpYWw9ZmFsc2UKICMgU29tZSBhcHBzIGNvdWxkIGhhdmUgYSBkZWZhdWx0
IHZpZGVvIHBvc3RlciBpZiBpdCBpcyBub3Qgc2V0LgogZGVmYXVsdFZpZGVvUG9zdGVyVVJMIHR5
cGU9U3RyaW5nCiAKLXNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPXRydWUKK3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCBpbml0aWFsPWRlZmF1bHRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQKK3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgaW5pdGlhbD1kZWZhdWx0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ibGFj
a2JlcnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9ibGFja2Jl
cnJ5L0FwaS9EdW1wUmVuZGVyVHJlZUNsaWVudC5oCmluZGV4IGZjMTRjZDAxZmU2ODI1YjIzY2U0
ZDAxNzdhZGNjY2I0M2MzYmU4ZDEuLmU5NzQxYzA3ZmFiMWVkZmM0MjlhNDNkZTI5OWJkMTk2MGMw
YzllZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9BcGkvRHVtcFJlbmRl
clRyZWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvQXBpL0R1bXBSZW5k
ZXJUcmVlQ2xpZW50LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRDaGFuZ2VTZWxlY3RlZERPTVJhbmdlVG9ET01SYW5nZUFmZmluaXR5U3RpbGxTZWxl
Y3RpbmcoV2ViQ29yZTo6UmFuZ2UqIGZyb21SYW5nZSwgV2ViQ29yZTo6UmFuZ2UqIHRvUmFuZ2Us
IGludCBhZmZpbml0eSwgYm9vbCBzdGlsbFNlbGVjdGluZykgPSAwOwogICAgIHZpcnR1YWwgYm9v
bCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5vZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBp
bnNlcnRBY3Rpb24pID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkSW5zZXJ0VGV4dChjb25z
dCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pID0gMDsKLSAgICB2
aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgY29uc3QgPSAw
OwogICAgIHZpcnR1YWwgYm9vbCBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV2Vi
Q29yZTo6Q3JlZGVudGlhbCYpID0gMDsKIAogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
YmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRCbGFja0Jl
cnJ5LmNwcAppbmRleCA5MjA4NDJlNmY0Yjc3NGQ0NGJhODM5NWJmMWVmMWRmNzliYjE1ODBiLi44
YWM5NDY4ZTUzNThjZDg5N2JjOTdmOTU0MmQyMmRjNWE1ZWVmNDRiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiUGFnZS5o
IgogI2luY2x1ZGUgIlBsYXRmb3JtS2V5Ym9hcmRFdmVudC5oIgogI2luY2x1ZGUgIlNlbGVjdGlv
bkhhbmRsZXIuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYlBhZ2VfcC5o
IgogI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgiCiAKQEAgLTY5LDE1ICs3MCwxOCBA
QCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNob3VsZERlbGV0ZVJhbmdlKFJhbmdlKiBy
YW5nZSkKIAogYm9vbCBFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJpdmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygp
LT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKIH0KIAogYm9vbCBFZGl0b3JDbGllbnRCbGFj
a0JlcnJ5Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICht
X3dlYlBhZ2VQcml2YXRlLT5tX2R1bXBSZW5kZXJUcmVlKQotICAgICAgICByZXR1cm4gbV93ZWJQ
YWdlUHJpdmF0ZS0+bV9kdW1wUmVuZGVyVHJlZS0+aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBXZWJQYWdlUHJp
dmF0ZTo6Y29yZShtX3dlYlBhZ2UpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6ZW5hYmxlU3Bl
bGxDaGVja2luZyhib29sIGVuYWJsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJTZXR0aW5ncy5oCmluZGV4IGYxOTIwZDcxOTY0ODZlOTYxMjdlNDA0ZjQ0Yzc1NGJlZjBiNTc3
YzUuLjEyNDZjNGM5NDgzMTJkNDU0OTBkMzQ5MDFhOGIyMjVlNWI2Y2YxNjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaApAQCAtMTQ3LDYgKzE0Nyw3IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNFbmFibGVkKGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0UmVuZGVyVlN5bmNOb3RpZmljYXRpb25FbmFibGVkKGJv
b2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBX
ZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCkgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlw
dENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG91bGRQ
cmludEJhY2tncm91bmRzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvdWxkUmVz
cGVjdEltYWdlT3JpZW50YXRpb24oYm9vbCkgPSAwOwpAQCAtMTU1LDYgKzE1Niw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BhaW50UmVjdHMoYm9vbCkgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaG93UGxhdGZvcm1MYXllclRyZWUoYm9vbCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpID0gMDsKICAgICB2
aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3Jp
cHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3MoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTeW5jWEhS
SW5Eb2N1bWVudHNFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCBlNDQ2ZTJhNjkzZjkxYTE3MWM1ZTJjOTNmMzAx
ODY0MGQ4ZDU1ZTE5Li5hNDQ5N2RlNmEzODUzMTlkNjk0YWU3NjQwNTJiYzg5MTBjMDA4MmU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oCkBAIC0x
ODEsOSArMTgxLDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREZWxldGVSYW5n
ZShjb25zdCBXZWJSYW5nZSYpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYpIHsg
cmV0dXJuIHRydWU7IH0KIAotICAgIHZpcnR1YWwgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpIHsgcmV0dXJuIHRydWU7IH0KLSAgICB2aXJ0dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKCkgeyByZXR1cm4gdHJ1ZTsgfQotCiAgICAgdmlydHVhbCB2b2lk
IGRpZEJlZ2luRWRpdGluZygpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRDYW5jZWxDb21wb3Np
dGlvbk9uU2VsZWN0aW9uQ2hhbmdlKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVNl
bGVjdGlvbihib29sIGlzU2VsZWN0aW9uRW1wdHkpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvRWRpdG9yQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9FZGl0b3JDbGllbnRJbXBsLmNwcAppbmRleCA5ODMwM2Y0ZjQ2NGRmMzIxYmI0
OTRkMzM0YmUzYTg2MGJjNDgyMmY0Li4xZDEzYzhlZjA1NDZiMGZhMTVjMTA1NmYwZTE0Mjc1Yjlm
ZGMwNDNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGll
bnRJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9FZGl0b3JDbGllbnRJ
bXBsLmNwcApAQCAtMzcsNiArMzcsNyBAQAogI2luY2x1ZGUgIktleWJvYXJkQ29kZXMuaCIKICNp
bmNsdWRlICJLZXlib2FyZEV2ZW50LmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKKyNp
bmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAjaW5j
bHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKQEAgLTk1LDIwICs5
NiwxNiBAQCB2b2lkIEVkaXRvckNsaWVudEltcGw6OmZyYW1lV2lsbERldGFjaFBhZ2UoV2ViQ29y
ZTo6RnJhbWUqIGZyYW1lKQogCiBib29sIEVkaXRvckNsaWVudEltcGw6OnNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCgpCiB7Ci0gICAgaWYgKG1fd2ViVmlldy0+Y2xpZW50KCkpCi0gICAgICAgIHJl
dHVybiBtX3dlYlZpZXctPmNsaWVudCgpLT5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwot
ICAgIHJldHVybiB0cnVlOworICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50SW1wbDo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBpZiAobV93ZWJWaWV3LT5j
bGllbnQoKSkKLSAgICAgICAgcmV0dXJuIG1fd2ViVmlldy0+Y2xpZW50KCktPmlzU2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotI2lmIE9TKFdJTkRPV1MpCi0gICAgcmV0dXJuIHRy
dWU7Ci0jZWxzZQorICAgIGlmIChtX3dlYlZpZXctPnBhZ2UoKSkKKyAgICAgICAgcmV0dXJuIG1f
d2ViVmlldy0+cGFnZSgpLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiAgICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50
SW1wbDo6c2hvdWxkU3BlbGxjaGVja0J5RGVmYXVsdCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAyNjRjNzU2YThkYjljMDYxZWM1MDc4
NzAyODQwNjcwMTUwM2UwN2I3Li42NmVmNTFhMzM2MTNlOWZjMTk0OTk1MWRlM2ZiNTcxZGI0NTRm
MWU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAKQEAgLTc2MSw0ICs3NjEsMTQgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldENvbXBvc2l0
ZWRTY3JvbGxpbmdGb3JGcmFtZXNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBtX3NldHRpbmdz
LT5zZXRDb21wb3NpdGVkU2Nyb2xsaW5nRm9yRnJhbWVzRW5hYmxlZChlbmFibGVkKTsKIH0KIAor
dm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
Ym9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoZW5hYmxlZCk7Cit9CisKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQoreworICAgIG1fc2V0dGluZ3MtPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChlbmFibGVkKTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCmlu
ZGV4IDcyYTNlMzEyNzQxMTE1MzA4ZDBhMDRhZWM1MTZjMWM1YTVlZWE4MWIuLmFkMmM5M2ZjZmU5
ZGUwZDdhY2Y3YWVkZDU5ZjhhYmE1OWFjYzY2NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xNDAsNiArMTQwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBzZXRSZW5kZXJWU3luY0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFJlbmRlclZTeW5jTm90aWZpY2F0aW9uRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2Fuc1NlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29k
ZSA9IFVTQ1JJUFRfQ09NTU9OKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdX
aGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG91bGREaXNwbGF5Q2FwdGlvbnMoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldFNob3VsZERpc3BsYXlTdWJ0aXRsZXMoYm9vbCk7CkBAIC0xNTEsNiArMTUyLDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGFpbnRSZWN0cyhib29sKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGJvb2wpOwogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpOworICAgIHZpcnR1
YWwgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9
IFVTQ1JJUFRfQ09NTU9OKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdp
bmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJs
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmNwcAppbmRleCAzMjBmZjlmMDQ5NGUyNzE3
ODIwOTdlNDM4MTliNjE3MGQzOGY2ODViLi41MjE1Y2U2MGM1Yzg0YmE2OWE3ODNhZDczMDViYTU4
ZTljYjc2MDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9E
dW1wUmVuZGVyVHJlZVN1cHBvcnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5jcHAKQEAgLTMyMywyOCArMzIzLDYg
QEAgYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmlzQ29tbWFuZEVuYWJsZWQoY29uc3Qg
RXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnMKICAgICByZXR1cm4gcGFnZS0+Zm9jdXNDb250cm9s
bGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3IoKS0+Y29tbWFuZChuYW1lKS5pc0Vu
YWJsZWQoKTsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldFNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewot
ICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1JfUkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwotCi0gICAg
V2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBlZGl0b3JDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJD
b3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdlLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgaWYgKCFl
ZGl0b3JDbGllbnQpCi0gICAgICAgIHJldHVybjsKLQotICAgIGVkaXRvckNsaWVudC0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi12b2lkIER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChFdmFzX09iamVj
dCogZXdrVmlldywgYm9vbCBlbmFibGVkKQotewotICAgIERSVF9TVVBQUlRfUEFHRV9HRVRfT1Jf
UkVUVVJOKGV3a1ZpZXcsIHBhZ2UpOwotCi0gICAgV2ViQ29yZTo6RWRpdG9yQ2xpZW50RWZsKiBl
ZGl0b3JDbGllbnQgPSBzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0b3JDbGllbnRFZmwqPihwYWdl
LT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgaWYgKCFlZGl0b3JDbGllbnQpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGVkaXRvckNsaWVudC0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChlbmFibGVkKTsKLX0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OmZvcmNlTGF5
b3V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKICAgICBld2tfZnJhbWVfZm9yY2VfbGF5b3V0
KGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0
L0R1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKaW5kZXggOTU4ODgxMWZhZDhjYjUwOTA2
NWM0NGUzYjc2OTdkNGViNjM4MjM1MC4uMzExZDlhMDI5YTlhZWEwMmE2MjMzMGJhMzc2MmM5NTBh
NmVjNzdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsLmgKQEAgLTgwLDggKzgwLDYgQEAgcHVibGlj
OgogICAgIHN0YXRpYyBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IGNoYXIqIG5hbWUpOwogICAgIHN0YXRpYyB2b2lkIHNldENTU0dyaWRMYXlv
dXRFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGVuYWJsZWQpOwogICAg
IHN0YXRpYyB2b2lkIHNldENTU1JlZ2lvbnNFbmFibGVkKGNvbnN0IEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwotICAgIHN0YXRpYyB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZChFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGVuYWJsZWQpOwogICAgIHN0YXRpYyB2b2lkIHNldFNlYW1sZXNzSUZyYW1lc0Vu
YWJsZWQoYm9vbCk7CiAKICAgICBzdGF0aWMgdm9pZCBmb3JjZUxheW91dChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEVmbC5jcHAKaW5kZXggYTRjOWZkMTM1ZTk3MmU0ZmI1MzQ0NGJiMDE1MGRkZjhj
NmUwYmQzZi4uOTAxYWE1Mjc4YTE1OTNkNmFlYmFhNDBiZjc1ZmI4NjBmODg4MWZmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRFZmwu
Y3BwCkBAIC0yNDMsMjggKzI0MywyMCBAQCB2b2lkIEVkaXRvckNsaWVudEVmbDo6cGFnZURlc3Ry
b3llZCgpCiAgICAgZGVsZXRlIHRoaXM7CiB9CiAKLXZvaWQgRWRpdG9yQ2xpZW50RWZsOjpzZXRT
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc21hcnRJbnNl
cnREZWxldGVFbmFibGVkID0gZW5hYmxlZDsKLSAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgc2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7Ci19Ci0KIGJvb2wgRWRpdG9y
Q2xpZW50RWZsOjpzbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3Nt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLX0KLQotdm9pZCBFZGl0b3JDbGllbnRFZmw6OnNldFNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKQotewotICAgIG1fc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7Ci0gICAgaWYgKGVuYWJsZWQp
Ci0gICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7CisgICAgV2ViQ29y
ZTo6UGFnZSogY29yZVBhZ2UgPSBFV0tQcml2YXRlOjpjb3JlUGFnZShtX3ZpZXcpOworICAgIGlm
ICghY29yZVBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gY29yZVBhZ2Ut
PnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRv
ckNsaWVudEVmbDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBy
ZXR1cm4gbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOworICAgIFdlYkNvcmU6OlBh
Z2UqIGNvcmVQYWdlID0gRVdLUHJpdmF0ZTo6Y29yZVBhZ2UobV92aWV3KTsKKyAgICBpZiAoIWNv
cmVQYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGNvcmVQYWdlLT5zZXR0
aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIHZvaWQgRWRp
dG9yQ2xpZW50RWZsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0zNzEsOCAr
MzYzLDYgQEAgdm9pZCBFZGl0b3JDbGllbnRFZmw6OmhhbmRsZUlucHV0TWV0aG9kS2V5ZG93bihL
ZXlib2FyZEV2ZW50KikKIEVkaXRvckNsaWVudEVmbDo6RWRpdG9yQ2xpZW50RWZsKEV2YXNfT2Jq
ZWN0KiB2aWV3KQogICAgIDogbV9pc0luUmVkbyhmYWxzZSkKICAgICAsIG1fdmlldyh2aWV3KQot
ICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQotICAgICwgbV9z
bWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0VkaXRvckNs
aWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
RWZsLmgKaW5kZXggM2MyYTI0N2RlNDdhOTdkZmIzNDRmYmUwY2M0OWViODJlMzY2MzA0OC4uZDBk
NWQzMDgxNTNjYmMyMDk0NTgzMWZjMTUwNDlhNWYxNzQ4YWFkNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50RWZsLmgKQEAgLTg0LDkgKzg0
LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKFJhbmdl
Kik7CiAgICAgdmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgIHZv
aWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgYm9vbCBp
c1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKLSAgICB2b2lkIHNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCBib29sIGlzQ29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCk7CiAgICAgdmlydHVhbCB2b2lkIHRvZ2dsZUNvbnRp
bnVvdXNTcGVsbENoZWNraW5nKCk7CiAgICAgdmlydHVhbCBib29sIGlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZCgpOwpAQCAtMTU3LDggKzE1NSw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBF
dmFzX09iamVjdCAqbV92aWV3OwotICAgIGJvb2wgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CiB9OwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJl
bmRlclRyZWVTdXBwb3J0R3RrLmNwcAppbmRleCA0YjZkMjAyYzdiNGJjMzJiODQ0YmQ4NDYwZmFj
MGU2ZjNiM2RhZjE1Li45YjQ3Y2Y3MTljZGVmOWQ2NjNlNjE4M2Y0NGEyN2NiODBmZDMxMjFkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1
bXBSZW5kZXJUcmVlU3VwcG9ydEd0ay5jcHAKQEAgLTgxLDcgKzgxLDYgQEAgdXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKIAogYm9vbCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNfZHJ0UnVuID0g
ZmFsc2U7CiBib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19saW5rc0luY2x1ZGVkSW5U
YWJDaGFpbiA9IHRydWU7Ci1ib29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRH
dGs6OkZyYW1lTG9hZEV2ZW50Q2FsbGJhY2sgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzX2Zy
YW1lTG9hZEV2ZW50Q2FsbGJhY2sgPSAwOwogRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpBdXRo
ZW50aWNhdGlvbkNhbGxiYWNrIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c19hdXRoZW50aWNh
dGlvbkNhbGxiYWNrID0gMDsKIApAQCAtMTEyLDE2ICsxMTEsNiBAQCBib29sIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEd0azo6bGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbigpCiAgICAgcmV0dXJuIHNf
bGlua3NJbmNsdWRlZEluVGFiQ2hhaW47CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBwb3J0
R3RrOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZW5hYmxlZCkKLXsK
LSAgICBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBlbmFibGVkOwotfQotCi1i
b29sIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCgpCi17Ci0gICAgcmV0dXJuIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsK
LX0KLQogLyoqCiAgKiBnZXRGcmFtZUNoaWxkcmVuOgogICogQGZyYW1lOiBhICNXZWJLaXRXZWJG
cmFtZQpAQCAtNDUzLDE1ICs0NDIsNiBAQCB2b2lkIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6
c2V0RGVmZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBib29sIGRlZgogICAgIGNv
cmUod2ViVmlldyktPnNldERlZmVyc0xvYWRpbmcoZGVmZXJzKTsKIH0KIAotdm9pZCBEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChXZWJLaXRXZWJW
aWV3KiB3ZWJWaWV3LCBib29sIGVuYWJsZWQpCi17Ci0gICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwotICAgIGdfcmV0dXJuX2lmX2ZhaWwod2ViVmlldyk7
Ci0KLSAgICBXZWJLaXQ6OkVkaXRvckNsaWVudCogY2xpZW50ID0gc3RhdGljX2Nhc3Q8V2ViS2l0
OjpFZGl0b3JDbGllbnQqPihjb3JlKHdlYlZpZXcpLT5lZGl0b3JDbGllbnQoKSk7Ci0gICAgY2xp
ZW50LT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KIHZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0R3RrOjpmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3KQogewogICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZp
ZXcpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0R1bXBS
ZW5kZXJUcmVlU3VwcG9ydEd0ay5oIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKaW5kZXggMDJmYzcxNzMyMzBjN2Q2NzExMTlkZWRj
YWZkNzgwOGFmMzg5OTM0MC4uMTA2MmMyYTA2MDM1NzNkNjU1MWU2MmYzZDI4OTM2YWRiMmQzYjhi
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRl
clRyZWVTdXBwb3J0R3RrLmgKKysrIGIvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrLmgKQEAgLTUxLDggKzUxLDYgQEAgcHVibGljOgogCiAg
ICAgc3RhdGljIHZvaWQgc2V0TGlua3NJbmNsdWRlZEluRm9jdXNDaGFpbihib29sKTsKICAgICBz
dGF0aWMgYm9vbCBsaW5rc0luY2x1ZGVkSW5Gb2N1c0NoYWluKCk7Ci0gICAgc3RhdGljIHZvaWQg
c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKLSAgICBzdGF0aWMgYm9v
bCBzZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBj
bGVhck9wZW5lcihXZWJLaXRXZWJGcmFtZSopOwogCkBAIC03Nyw3ICs3NSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgdm9pZCByZWN0YW5nbGVGb3JTZWxlY3Rpb24oV2ViS2l0V2ViRnJhbWUqLCBj
YWlyb19yZWN0YW5nbGVfaW50X3QqKTsKICAgICBzdGF0aWMgdm9pZCBzY2FsZVBhZ2VCeShXZWJL
aXRXZWJWaWV3KiwgZmxvYXQsIGZsb2F0LCBmbG9hdCk7CiAgICAgc3RhdGljIHZvaWQgc2V0RGVm
ZXJzTG9hZGluZyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7Ci0gICAgc3RhdGljIHZvaWQgc2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKFdlYktpdFdlYlZpZXcqLCBib29sKTsKICAgICBzdGF0aWMg
dm9pZCBmb3JjZVdlYlZpZXdQYWludChXZWJLaXRXZWJWaWV3Kik7CiAKICAgICAvLyBBY2Nlc3Np
YmlsaXR5CkBAIC0xNDUsNyArMTQyLDYgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBzX2RydFJ1bjsKICAgICBzdGF0aWMgYm9vbCBzX2xpbmtzSW5jbHVkZWRJblRhYkNoYWlu
OwotICAgIHN0YXRpYyBib29sIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07
CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvZ3RrL1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudEd0ay5jcHAKaW5kZXggZjk0NDI5ZTk3ODUwNjcxZTQ4ODE4NmQ5ZmExOTA2OGJk
NjAzNTg1Zi4uOTJiYTE2NWU0NDI0YjlkYjRkMDNlOTViZDBjMDRiMTE4MWNjNTRlOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsu
Y3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhc3Rl
Ym9hcmRIZWxwZXIuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJvYXJkRXZlbnQuaCIKKyNpbmNs
dWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlN0eWxlUHJvcGVydHlTZXQuaCIKICNpbmNsdWRl
ICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIldlYktpdERPTUJpbmRpbmcuaCIKQEAgLTM2MCwyMSAr
MzYxLDIwIEBAIHZvaWQgRWRpdG9yQ2xpZW50OjpwYWdlRGVzdHJveWVkKCkKICAgICBkZWxldGUg
dGhpczsKIH0KIAotdm9pZCBFZGl0b3JDbGllbnQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZChib29sIGVuYWJsZWQpCi17Ci0gICAgbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQgPSBlbmFi
bGVkOwotfQotCiBib29sIEVkaXRvckNsaWVudDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkK
IHsKLSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgV2ViQ29yZTo6
UGFnZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBjb3JlUGFnZS0+c2V0dGluZ3MoKS0+c21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50Ojppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIGlmICghRHVtcFJlbmRlclRyZWVT
dXBwb3J0R3RrOjpkdW1wUmVuZGVyVHJlZU1vZGVFbmFibGVkKCkpCisgICAgV2ViQ29yZTo6UGFn
ZSogY29yZVBhZ2UgPSBjb3JlKG1fd2ViVmlldyk7CisgICAgaWYgKCFjb3JlUGFnZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNl
bGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKKyAgICByZXR1cm4gY29yZVBhZ2UtPnNl
dHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKTsKIH0KIAogdm9pZCBF
ZGl0b3JDbGllbnQ6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTUwMSw3ICs1
MDEsNiBAQCBFZGl0b3JDbGllbnQ6OkVkaXRvckNsaWVudChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3
KQogICAgICwgbV90ZXh0Q2hlY2tlckNsaWVudChXRUJLSVRfU1BFTExfQ0hFQ0tFUih3ZWJraXRf
Z2V0X3RleHRfY2hlY2tlcigpKSkKICNlbmRpZgogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCi0g
ICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKIHsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9ndGsvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50R3RrLmggYi9T
b3VyY2UvV2ViS2l0L2d0ay9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAppbmRleCAz
YTdlYWYxNGM3MWFmNzU3OGQ5MjI1NTgxZTE5M2UzYTAwMDQwYmYyLi5jOTlmNzFlYjZmYmE4OWNi
ZmZiY2VmMjE3ZDg4ZDAyMmU5OGFlZGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2d0ay9X
ZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRHdGsuaApAQCAtNzUsNyArNzUsNiBAQCBjbGFzcyBF
ZGl0b3JDbGllbnQgOiBwdWJsaWMgV2ViQ29yZTo6RWRpdG9yQ2xpZW50IHsKIAogICAgICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRGVsZXRlUmFuZ2UoV2ViQ29yZTo6UmFuZ2UqKTsKICAgICAgICAg
dmlydHVhbCBib29sIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwotICAgICAgICB2b2lkIHNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sKTsKICAgICAgICAgdmlydHVhbCBib29sIGlz
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogICAgICAgICB2aXJ0dWFsIGJvb2wg
aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoKTsKICAgICAgICAgdmlydHVhbCB2b2lk
IHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCk7CkBAIC0xNDYsNyArMTQ1LDYgQEAgY2xh
c3MgRWRpdG9yQ2xpZW50IDogcHVibGljIFdlYkNvcmU6OkVkaXRvckNsaWVudCB7CiAgICAgICAg
IFdlYktpdFdlYlZpZXcqIG1fd2ViVmlldzsKICAgICAgICAgV2ViQ29yZTo6S2V5QmluZGluZ1Ry
YW5zbGF0b3IgbV9rZXlCaW5kaW5nVHJhbnNsYXRvcjsKICAgICAgICAgVmVjdG9yPFdURjo6U3Ry
aW5nPiBtX3BlbmRpbmdFZGl0b3JDb21tYW5kczsKLSAgICAgICAgYm9vbCBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggNDllM2FmNjZjMWM0NmQ1ODUw
ZjU3ODFlZmI0YzIxODNjZTc3NDYzMC4uZWM5ZjA5MzhlYWE0MzhlMGVkNzVjMjAwM2FiOGQ3MTk1
Y2Q4MDFlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtNTksOCArNTksMTAgQEAKICNpbXBvcnQgPFdlYkNvcmUvSFRN
TFRleHRBcmVhRWxlbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0xlZ2FjeVdlYkFyY2hpdmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGFn
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQg
PFdlYkNvcmUvUnVuTG9vcC5oPgorI2ltcG9ydCA8V2ViQ29yZS9TZXR0aW5ncy5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TcGVsbENoZWNrZXIuaD4KICNpbXBvcnQgPFdlYkNvcmUvU3R5bGVQcm9wZXJ0
eVNldC5oPgogI2ltcG9ydCA8V2ViQ29yZS9VbmRvU3RlcC5oPgpAQCAtMjMzLDEyICsyMzUsMTgg
QEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZFNob3dEZWxldGVJbnRlcmZhY2UoSFRNTEVs
ZW1lbnQqIGVsZW1lbnQpCiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKQogewotICAgIHJldHVybiBbbV93ZWJWaWV3IHNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZF07CisgICAgUGFnZSogcGFnZSA9IFttX3dlYlZpZXcgcGFnZV07CisgICAgaWYgKCFwYWdl
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNt
YXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6aXNT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICByZXR1cm4gW21fd2ViVmll
dyBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWRdOworICAgIFBhZ2UqIHBhZ2UgPSBb
bV93ZWJWaWV3IHBhZ2VdOworICAgIGlmICghcGFnZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRBcHBseVN0eWxlKFN0eWxl
UHJvcGVydHlTZXQqIHN0eWxlLCBSYW5nZSogcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KaW5kZXggNjU3ZjkyMGE0NGU5MmVlMDdmYTNlNzYyMjVlNWMyY2Q4MTNhYzUzZS4u
YjAxNjFmZjkzYjJmYWFkMDljYzYzNjkxOGY5Zjg3YzExZDA1YmQwNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtNzgzLDYgKzc4Myw5IEBAIHN0YXRpYyBib29sIHNob3Vs
ZFJlc3BlY3RQcmlvcml0eUluQ1NTQXR0cmlidXRlU2V0dGVycygpCiAgICAgICAgIFtzZWxmIF9p
bmplY3RPdXRsb29rUXVpcmtzU2NyaXB0XTsKICAgICB9CiAKKyAgICBpZiAoW1tOU1VzZXJEZWZh
dWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5OldlYlNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZF0pCisgICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDpb
W05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBib29sRm9yS2V5OldlYlNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZF1dOworCiAgICAgW1dlYkZyYW1lIF9jcmVhdGVNYWluRnJhbWVX
aXRoUGFnZTpfcHJpdmF0ZS0+cGFnZSBmcmFtZU5hbWU6ZnJhbWVOYW1lIGZyYW1lVmlldzpmcmFt
ZVZpZXddOwogCiAgICAgTlNSdW5Mb29wICpydW5Mb29wID0gW05TUnVuTG9vcCBtYWluUnVuTG9v
cF07CkBAIC0yNDcwLDE0ICsyNDczLDE1IEBAIHN0YXRpYyBpbmxpbmUgSU1QIGdldE1ldGhvZChp
ZCBvLCBTRUwgcykKIAogLSAodm9pZClzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
OihCT09MKWZsYWcKIHsKLSAgICBfcHJpdmF0ZS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCA9IGZsYWc7Ci0gICAgaWYgKGZsYWcpCi0gICAgICAgIFtzZWxmIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpmYWxzZV07CisgICAgaWYgKF9wcml2YXRlLT5wYWdlLT5zZXR0aW5ncygp
LT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBf
cHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZChmbGFnKTsKKyAgICAgICAgW3NlbGYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkOiFm
bGFnXTsKKyAgICB9CiB9CiAKIC0gKEJPT0wpaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkCiB7Ci0gICAgcmV0dXJuIF9wcml2YXRlLT5zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFi
bGVkOworICAgIHJldHVybiBfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldE1lbW9yeUNhY2hlRGVsZWdh
dGVDYWxsc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZApAQCAtNTQyOSwxNyArNTQzMywxNiBAQCBzdGF0
aWMgTlNBcHBsZUV2ZW50RGVzY3JpcHRvciogYWVEZXNjRnJvbUpTVmFsdWUoRXhlY1N0YXRlKiBl
eGVjLCBKU0M6OkpTVmFsdWUgagogCiAtICh2b2lkKXNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZDooQk9PTClmbGFnCiB7Ci0gICAgaWYgKF9wcml2YXRlLT5zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQgIT0gZmxhZykgewotICAgICAgICBfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVk
ID0gZmxhZzsKLSAgICAgICAgW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10g
c2V0Qm9vbDpfcHJpdmF0ZS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkIGZvcktleTpXZWJTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWRdOworICAgIGlmIChfcHJpdmF0ZS0+cGFnZS0+c2V0dGluZ3Mo
KS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkgIT0gZmxhZykgeworICAgICAgICBfcHJpdmF0
ZS0+cGFnZS0+c2V0dGluZ3MoKS0+c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGZsYWcpOwor
ICAgICAgICBbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBzZXRCb29sOl9w
cml2YXRlLT5wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBmb3JL
ZXk6V2ViU21hcnRJbnNlcnREZWxldGVFbmFibGVkXTsKKyAgICAgICAgW3NlbGYgc2V0U2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDohZmxhZ107CiAgICAgfQotICAgIGlmIChmbGFnKQot
ICAgICAgICBbc2VsZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZhbHNlXTsK
IH0KIAogLSAoQk9PTClzbWFydEluc2VydERlbGV0ZUVuYWJsZWQKIHsKLSAgICByZXR1cm4gX3By
aXZhdGUtPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKKyAgICByZXR1cm4gX3ByaXZhdGUtPnBh
Z2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiAtICh2b2lk
KXNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLmgKaW5kZXggYWRlYWJlN2VlMmNmYTIyY2JkYzI4ZTNi
YTgzMzc4ZjQ2MDNlMDJlMi4uMzQ3YWJhNDU3ODVmMTgwZThjOTc0NmNjY2I2MmE0ZTY3ODBlOTRj
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEuaApAQCAtMTQ2LDkgKzE0
Niw2IEBAIHByaXZhdGU6CiAgICAgQk9PTCBoYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAg
ICBOU0ludGVnZXIgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBCT09MIHNtYXJ0SW5z
ZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBCT09MIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJs
ZWQ7Ci0gICAgICAgIAogI2lmIEVOQUJMRShEQVNIQk9BUkRfU1VQUE9SVCkKICAgICBCT09MIGRh
c2hib2FyZEJlaGF2aW9yQWx3YXlzU2VuZE1vdXNlRXZlbnRzVG9BbGxXaW5kb3dzOwogICAgIEJP
T0wgZGFzaGJvYXJkQmVoYXZpb3JBbHdheXNTZW5kQWN0aXZlTnVsbEV2ZW50c1RvUGx1Z0luczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlld0RhdGEubW0gYi9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXdEYXRhLm1tCmluZGV4IGUyNzY2ZjAxYTM1
YmMwN2VlYWE0ODZjMjY1NWI0YzAxYmFlZDk3YTYuLmM2ODFmMDliYTcyMTZkOGQyMTZlNTk3NTI2
YWY4NTgxZDAwM2RlN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
Vmlld0RhdGEubW0KKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3RGF0YS5t
bQpAQCAtOTUsMTAgKzk1LDYgQEAgTGF5ZXJGbHVzaENvbnRyb2xsZXI6OkxheWVyRmx1c2hDb250
cm9sbGVyKFdlYlZpZXcqIHdlYlZpZXcpCiAKICAgICBzaG91bGRDbG9zZVdpdGhXaW5kb3cgPSBv
YmpjX2NvbGxlY3RpbmdFbmFibGVkKCk7CiAKLSAgICBzbWFydEluc2VydERlbGV0ZUVuYWJsZWQg
PSAhW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gb2JqZWN0Rm9yS2V5Oldl
YlNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZF0KLSAgICAgICAgfHwgW1tOU1VzZXJEZWZhdWx0cyBz
dGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpXZWJTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWRdOwotCi0KICAgICBwbHVnaW5EYXRhYmFzZUNsaWVudENvdW50Kys7CiAKICNpZiBVU0UoRElD
VEFUSU9OX0FMVEVSTkFUSVZFUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuY3BwIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKaW5kZXggMWQxNzIwY2E0
ZjQ0NmJjNGJlODIxOTAyOGIwNGIxNTQzNTgyNmMwZi4uNTk1MzE3ODY3YjI2NTkzZWI0ODliMzUz
MTY1MzVmNzc3NWRkYzc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3Vw
cG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9xdC9X
ZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5jcHAKQEAgLTMyNiwxOCArMzI2
LDYgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBvcnRRdDo6c2V0QXV0aG9yQW5kVXNlclN0eWxl
c0VuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiBhZGEKICAgICBhZGFwdGVyLT5wYWdlLT5zZXR0aW5n
cygpLT5zZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZCh2YWx1ZSk7CiB9CiAKLXZvaWQgRHVt
cFJlbmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChRV2ViUGFn
ZUFkYXB0ZXIgKmFkYXB0ZXIsIGJvb2wgZW5hYmxlZCkKLXsKLSAgICBzdGF0aWNfY2FzdDxFZGl0
b3JDbGllbnRRdCo+KGFkYXB0ZXItPnBhZ2UtPmVkaXRvckNsaWVudCgpKS0+c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKGVuYWJsZWQpOwotfQotCi0KLXZvaWQgRHVtcFJlbmRlclRyZWVTdXBw
b3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVy
ICphZGFwdGVyLCBib29sIGVuYWJsZWQpCi17Ci0gICAgc3RhdGljX2Nhc3Q8RWRpdG9yQ2xpZW50
UXQqPihhZGFwdGVyLT5wYWdlLT5lZGl0b3JDbGllbnQoKSktPnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQoZW5hYmxlZCk7Ci19Ci0KLQogdm9pZCBEdW1wUmVuZGVyVHJlZVN1cHBv
cnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKFFXZWJQYWdlQWRhcHRlciogYWRhcHRlciwg
Y29uc3QgUVN0cmluZyYgbmFtZSwgY29uc3QgUVN0cmluZyYgdmFsdWUpCiB7CiAgICAgYWRhcHRl
ci0+cGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5GcmFtZSgpLT5lZGl0b3Io
KS0+Y29tbWFuZChuYW1lKS5leGVjdXRlKHZhbHVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaCBiL1NvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRHVtcFJlbmRlclRyZWVTdXBwb3J0UXQuaAppbmRleCAx
ZTkzNThhNjdkZGY5YjVjMTY2ODBhMTVlOWQ0YmU0ZWRiYjdmYzdiLi5kY2EwMjY2MjBjZDQ1Njk1
N2I3ODY1ZDhmOWY4MzIwNjI0MWFjMjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0R1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgKKysrIGIvU291cmNlL1dlYktp
dC9xdC9XZWJDb3JlU3VwcG9ydC9EdW1wUmVuZGVyVHJlZVN1cHBvcnRRdC5oCkBAIC05Myw4ICs5
Myw2IEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVDb3JlQ29tbWFuZEJ5TmFt
ZShRV2ViUGFnZUFkYXB0ZXIqLCBjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2
YWx1ZSk7CiAgICAgc3RhdGljIGJvb2wgaXNDb21tYW5kRW5hYmxlZChRV2ViUGFnZUFkYXB0ZXIq
LCBjb25zdCBRU3RyaW5nJiBuYW1lKTsKLSAgICBzdGF0aWMgdm9pZCBzZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoUVdlYlBhZ2VBZGFwdGVyKiwgYm9vbCBlbmFibGVkKTsKLSAgICBzdGF0aWMg
dm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKFFXZWJQYWdlQWRhcHRlcios
IGJvb2wgZW5hYmxlZCk7CiAgICAgc3RhdGljIFFWYXJpYW50TGlzdCBzZWxlY3RlZFJhbmdlKFFX
ZWJQYWdlQWRhcHRlciopOwogICAgIHN0YXRpYyBRVmFyaWFudExpc3QgZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UoUVdlYlBhZ2VBZGFwdGVyKiwgaW50IGxvY2F0aW9uLCBpbnQgbGVuZ3RoKTsK
ICAgICBzdGF0aWMgdm9pZCBjb25maXJtQ29tcG9zaXRpb24oUVdlYlBhZ2VBZGFwdGVyKiwgY29u
c3QgY2hhciogdGV4dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmNwcCBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQv
RWRpdG9yQ2xpZW50UXQuY3BwCmluZGV4IGFmY2M4ZDY0ZWZlMGE1NGJmMWEzYjBiYmM1ZWM1YWEy
NDkwODdhMDMuLmQ4MmQwZTVmZDdkZTgxOTFmZjI5MjEzZjI3ZDQwOGQ0ZmEyMDFhZDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
CkBAIC0zMzMsMTggKzMzMywyNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0OjpwYWdlRGVzdHJveWVk
KCkKIAogYm9vbCBFZGl0b3JDbGllbnRRdDo6c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkKIHsK
LSAgICByZXR1cm4gbV9zbWFydEluc2VydERlbGV0ZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9
IG1fcGFnZS0+cGFnZTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9
CiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKIHsKLSAg
ICBib29sIGN1cnJlbnQgPSBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBtX3NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCA9ICFjdXJyZW50OworICAgIFBhZ2UqIHBhZ2UgPSBtX3BhZ2Ut
PnBhZ2U7CisgICAgaWYgKHBhZ2UpIHsKKyAgICAgICAgcGFnZS0+c2V0dGluZ3MoKS0+c2V0U21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCFwYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKSk7CisgICAgICAgIHBhZ2UtPnNldHRpbmdzKCktPnNldFNlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoIXBhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVz
cGFjZUVuYWJsZWQoKSk7CisgICAgfQogfQogCiBib29sIEVkaXRvckNsaWVudFF0Ojppc1NlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIHJldHVybiBtX3NlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQ7CisgICAgUGFnZSogcGFnZSA9IG1fcGFnZS0+cGFnZTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0
dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVk
aXRvckNsaWVudFF0Ojp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC01NDEsOCAr
NTUwLDYgQEAgRWRpdG9yQ2xpZW50UXQ6OkVkaXRvckNsaWVudFF0KFFXZWJQYWdlQWRhcHRlciog
cGFnZUFkYXB0ZXIpCiAgICAgOiBtX3BhZ2UocGFnZUFkYXB0ZXIpCiAgICAgLCBtX2VkaXRpbmco
ZmFsc2UpCiAgICAgLCBtX2luVW5kb1JlZG8oZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh0cnVlKQotICAgICwgbV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KGZhbHNlKQogewogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudFF0LmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Vk
aXRvckNsaWVudFF0LmgKaW5kZXggYTEzNGY1ZWI2ZTdkNDkyNmQ0NDM5NTUxMzU2MzgzZmVhMTky
NGIyZi4uNzgyY2RlM2Q1NGJmNjRjYzFhMTc0YTczNTg0MWU1ZjNiM2M1YzY3ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuaApAQCAtMTEx
LDkgKzExMSw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNFZGl0aW5nKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGIpIHsgbV9zbWFydEluc2Vy
dERlbGV0ZUVuYWJsZWQgPSBiOyB9Ci0gICAgdm9pZCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3Bh
Y2VFbmFibGVkKGJvb2wgYikgeyBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBi
OyB9Ci0KICAgICBzdGF0aWMgYm9vbCBkdW1wRWRpdGluZ0NhbGxiYWNrczsKICAgICBzdGF0aWMg
Ym9vbCBhY2NlcHRzRWRpdGluZzsKIApAQCAtMTIyLDggKzExOSw2IEBAIHByaXZhdGU6CiAgICAg
UVdlYlBhZ2VBZGFwdGVyKiBtX3BhZ2U7CiAgICAgYm9vbCBtX2VkaXRpbmc7CiAgICAgYm9vbCBt
X2luVW5kb1JlZG87IC8vIG91ciB1bmRvIHN0YWNrIHdvcmtzIGRpZmZlcmVudGx5IC0gZG9uJ3Qg
cmUtZW50ZXIhCi0gICAgYm9vbCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZDsKLSAgICBib29s
IG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZDsKIH07CiAKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4
IGQ5ODc4OTI3ZjJmNDliNzA5OWE2NGQyY2YyNTQ5MzcxNmRhMzM2NjUuLmViOWI0NTE1Zjg4YTkx
ZWVkOTA0ZWNjZWEzZTgzMWFlYzIwMWI0ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2lu
L1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC93
aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcApAQCAtNDAsOCArNDAsMTAgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0xv
Y2FsaXplZFN0cmluZ3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL05vdEltcGxlbWVudGVkLmg+Cisj
aW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JhbmdlLmg+CisjaW5jbHVkZSA8V2ViQ29y
ZS9TZXR0aW5ncy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVW5kb1N0ZXAuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1VzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9W
aXNpYmxlU2VsZWN0aW9uLmg+CkBAIC0zMDIsMTcgKzMwNCwxOSBAQCB2b2lkIFdlYkVkaXRvckNs
aWVudDo6d2ViVmlld0RpZENoYW5nZVNlbGVjdGlvbihXZWJOb3RpZmljYXRpb24qIC8qbm90aWZp
Y2F0aW9uKgogeyAgbm90SW1wbGVtZW50ZWQoKTsgfQogCiBib29sIFdlYkVkaXRvckNsaWVudDo6
c21hcnRJbnNlcnREZWxldGVFbmFibGVkKHZvaWQpCi17IAotICAgIEJPT0wgZW5hYmxlZCA9IEZB
TFNFOyAKLSAgICBtX3dlYlZpZXctPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgmZW5hYmxlZCk7
Ci0gICAgcmV0dXJuICEhZW5hYmxlZDsKK3sKKyAgICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5w
YWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJu
IHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29s
IFdlYkVkaXRvckNsaWVudDo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHZvaWQp
CiB7Ci0gICAgQk9PTCBlbmFibGVkID0gRkFMU0U7Ci0gICAgbV93ZWJWaWV3LT5pc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoJmVuYWJsZWQpOwotICAgIHJldHVybiAhIWVuYWJsZWQ7
CisgICAgUGFnZSogcGFnZSA9IG1fd2ViVmlldy0+cGFnZSgpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBwYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgV2ViRWRpdG9yQ2xpZW50Ojpz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKFdlYkNvcmU6OlJhbmdlKiwgV2ViQ29yZTo6UmFuZ2Uq
LCBXZWJDb3JlOjpFQWZmaW5pdHksIGJvb2wpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IGQ2MjE0
MTE1MjA4NjUxYzNkMzY3ZTJlMmFkNjAzZThlNTI5ODFlZWUuLjg1MTY4NzQ0ZGYxMzY2MGM2YWZj
MWMzOGU2YTBmYTRjOTY5ZTdhM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC0zNjUsNyArMzY1
LDYgQEAgV2ViVmlldzo6V2ViVmlldygpCiAgICAgLCBtX2lzQmVpbmdEZXN0cm95ZWQoZmFsc2Up
CiAgICAgLCBtX3BhaW50Q291bnQoMCkKICAgICAsIG1faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRU
YWcoZmFsc2UpCi0gICAgLCBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSkKICAgICAs
IG1fZGlkQ2xvc2UoZmFsc2UpCiAgICAgLCBtX2luSU1FQ29tcG9zaXRpb24oMCkKICAgICAsIG1f
dG9vbFRpcEh3bmQoMCkKQEAgLTM3Myw3ICszNzIsNiBAQCBXZWJWaWV3OjpXZWJWaWV3KCkKICAg
ICAsIG1fdG9wTGV2ZWxQYXJlbnQoMCkKICAgICAsIG1fZGVsZXRlQmFja2luZ1N0b3JlVGltZXJB
Y3RpdmUoZmFsc2UpCiAgICAgLCBtX3RyYW5zcGFyZW50KGZhbHNlKQotICAgICwgbV9zZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKQogICAgICwgbV9sYXN0UGFuWCgwKQogICAg
ICwgbV9sYXN0UGFuWSgwKQogICAgICwgbV94T3ZlcnBhbigwKQpAQCAtNDA4MiwzMiArNDA4MCwz
NCBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnR5cGluZ1N0eWxlKAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoIAogICAgICAgICAvKiBbaW5dICovIEJPT0wgZmxhZykKIHsKLSAgICBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQpCi0gICAgICAgIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpID09
ICEhZmxhZykgeworICAgICAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghIWZsYWcpOworICAgICAgICBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKCFmbGFnKTsKKyAgICB9CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAgICAgCiBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlZpZXc6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCggCiAg
ICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gQk9PTCogZW5hYmxlZCkKIHsKLSAgICAqZW5hYmxl
ZCA9IG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVkID8gVFJVRSA6IEZBTFNFOworICAgICplbmFi
bGVkID0gbV9wYWdlLT5zZXR0aW5ncygpLT5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSA/IFRS
VUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsKIH0KICAKIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViVmlldzo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCggCiAgICAg
ICAgIC8qIFtpbl0gKi8gQk9PTCBmbGFnKQogewotICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNw
YWNlRW5hYmxlZCA9ICEhZmxhZzsKLSAgICBpZiAobV9zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkKQotICAgICAgICBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAg
IGlmIChtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KSA9PSAhIWZsYWcpIHsKKyAgICAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRTZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCEhZmxhZyk7CisgICAgICAgIHNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCghZmxhZyk7CisgICAgfQogICAgIHJldHVybiBTX09LOwogfQogICAgIAogSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJWaWV3Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIEJPT0wqIGVuYWJsZWQpCiB7
Ci0gICAgKmVuYWJsZWQgPSBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPyBUUlVF
IDogRkFMU0U7CisgICAgKmVuYWJsZWQgPSBtX3BhZ2UtPnNldHRpbmdzKCktPnNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQoKSA/IFRSVUUgOiBGQUxTRTsKICAgICByZXR1cm4gU19PSzsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC93aW4vV2ViVmlldy5oIGIvU291cmNlL1dl
YktpdC93aW4vV2ViVmlldy5oCmluZGV4IGM5MzczNDYyZmVmMjg0MWU1NzdjMDYwOWQwMzgyZjFi
NzM2MDdiNmUuLmZjYjc4MjQ4NDMwODNjZWUzYzA4MzU5OGQzYTE4ZTlkN2ZiYzRlOTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvd2luL1dlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L3dp
bi9XZWJWaWV3LmgKQEAgLTExMTIsOCArMTExMiw2IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1f
aXNCZWluZ0Rlc3Ryb3llZDsKICAgICB1bnNpZ25lZCBtX3BhaW50Q291bnQ7CiAgICAgYm9vbCBt
X2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIGJvb2wgbV9zbWFydEluc2VydERlbGV0
ZUVuYWJsZWQ7Ci0gICAgYm9vbCBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7CiAg
ICAgYm9vbCBtX2RpZENsb3NlOwogICAgIGJvb2wgbV9oYXNDdXN0b21Ecm9wVGFyZ2V0OwogICAg
IHVuc2lnbmVkIG1faW5JTUVDb21wb3NpdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
d2luY2UvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50V2luQ0UuY3BwIGIvU291cmNlL1dlYktp
dC93aW5jZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKaW5kZXggYjlmNDY4
ZjQxNTQyYmNjZDA4YmU1MTFjNjc4MTQ4MWY3NTNhM2NiMi4uODEzZmQxZGM4Yjc1NTFiNGM5MGI1
NDdhMmIwOTdmN2Y4Yjg3MDNkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW5jZS9XZWJD
b3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKKysrIGIvU291cmNlL1dlYktpdC93aW5j
ZS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRXaW5DRS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAK
ICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIktleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRl
ICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaCIKICNpbmNsdWRlICJVbmRvU3RlcC5oIgogI2luY2x1ZGUgIlNldHRp
bmdzLmgiCkBAIC0yMDksMTQgKzIxMCwxOCBAQCB2b2lkIEVkaXRvckNsaWVudFdpbkNFOjpwYWdl
RGVzdHJveWVkKCkKIAogYm9vbCBFZGl0b3JDbGllbnRXaW5DRTo6c21hcnRJbnNlcnREZWxldGVF
bmFibGVkKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBQYWdlKiBwYWdlID0gbV93ZWJWaWV3LT5wYWdlKCk7CisgICAgaWYgKCFwYWdlKQorICAgICAg
ICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCgpOwogfQogCiBib29sIEVkaXRvckNsaWVudFdpbkNFOjppc1NlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIFBhZ2UqIHBhZ2UgPSBtX3dlYlZpZXctPnBhZ2UoKTsKKyAgICBp
ZiAoIXBhZ2UpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gcGFnZS0+c2V0dGlu
Z3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwogfQogCiB2b2lkIEVkaXRv
ckNsaWVudFdpbkNFOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktpdFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwIGIvU291
cmNlL1dlYktpdC93eC9XZWJLaXRTdXBwb3J0L0VkaXRvckNsaWVudFd4LmNwcAppbmRleCA1ZWY2
NGNkNGE5YzAxMzYzYzQ5OWU1N2ZjZDk3YWRkNWQ5YzMxNWFhLi5mOGNmNmI4MjY5MTg2MGNjY2Rl
OTU0YTY4ODk1YWUxYzg1ZDAyZmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3d4L1dlYktp
dFN1cHBvcnQvRWRpdG9yQ2xpZW50V3guY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvd3gvV2ViS2l0
U3VwcG9ydC9FZGl0b3JDbGllbnRXeC5jcHAKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJO
b3RJbXBsZW1lbnRlZC5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaCIKKyNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIldlYkZyYW1l
LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViVmlldy5oIgpA
QCAtMTQ5LDE0ICsxNTAsMTYgQEAgYm9vbCBFZGl0b3JDbGllbnRXeDo6c2hvdWxkRGVsZXRlUmFu
Z2UoUmFuZ2UqKQogCiBib29sIEVkaXRvckNsaWVudFd4OjpzbWFydEluc2VydERlbGV0ZUVuYWJs
ZWQoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIGlm
ICghbV9wYWdlKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIG1fcGFnZS0+c2V0
dGluZ3MoKS0+c21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xp
ZW50V3g6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpCiB7Ci0gICAgbm90SW1w
bGVtZW50ZWQoKTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKCFtX3BhZ2UpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gbV9wYWdlLT5zZXR0aW5ncygpLT5zZWxlY3RUcmFp
bGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiB9CiAKIGJvb2wgRWRpdG9yQ2xpZW50V3g6OmlzQ29u
dGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA5NjY1OGE4NjY4NWE5OThlYjVhODZkOGQ5Mjk1MGU2
YWQ4OGVkZDUzLi42YzBiODllNjk3YTFmNDAyNjdjMTlkYzgzYjk2Y2EyODNmNDE2ZDYyIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTggQEAKKzIwMTMtMDMtMDggIE1hbnVlbCBSZWdvIENhc2Fzbm92YXMgIDxyZWdvQGlnYWxpYS5j
b20+CisKKyAgICAgICAgQWRkIHNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgc2V0dGlu
ZyB0byBXZWJDb3JlOjpQYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMDk0MDQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBSZW1vdmVzIGFsbCB0aGUgY29kZSByZWxhdGVkIHRvIHNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCBhbmQKKyAgICAgICAgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBz
ZXR0aW5ncyBhcyB0aGV5IHdpbGwgYmUgbWFuYWdlZCBmcm9tCisgICAgICAgIGludGVybmFscyBm
cm9tIG5vdyBvbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgor
ICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25zKToKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgIChUZXN0UnVubmVyKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKFdl
YktpdCk6CisgICAgICAgIChCbGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpyZXNl
dFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rlc3RSdW5u
ZXJCbGFja0JlcnJ5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3B1YmxpYy9XZWJUZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYlRlc3RSdW5uZXI6Oldl
YlRlc3RQcm94eTo6ZGlkU3RvcExvYWRpbmcpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoV2ViVGVzdFJ1
bm5lcjo6VGVzdFJ1bm5lcjo6VGVzdFJ1bm5lcik6CisgICAgICAgIChXZWJUZXN0UnVubmVyOjpU
ZXN0UnVubmVyOjpyZXNldCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVz
dFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oOgorICAgICAgICAoVGVzdFJ1bm5lcik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVyZW5jZXMu
Y3BwOgorICAgICAgICAoV2ViVGVzdFJ1bm5lcjo6V2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOiBT
ZXQgZGVmYXVsdCB2YWx1ZXMgZm9yCisgICAgICAgIHNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCBh
bmQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5ncyBhcworICAgICAgICBD
aHJvbWl1bSBEUlQgZGVmYXVsdCB2YWx1ZXMgYXJlIGRpZmZlcmVudCBmcm9tIENocm9taXVtIGJy
b3dzZXIuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJW
aWV3SG9zdC5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hv
c3QuaDoKKyAgICAgICAgKFdlYlZpZXdIb3N0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9l
ZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMpOgorICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9n
dGsvRHVtcFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXREZWZhdWx0c1RvQ29uc2lzdGVu
dFZhbHVlcyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
OgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbToKKyAgICAg
ICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJQ
YWdlOjpyZXNldFNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVu
bmVyUXQuY3BwOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5oOgor
ICAgICAgICAoVGVzdFJ1bm5lclF0KToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVt
cFJlbmRlclRyZWUuY3BwOgorICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVC
ZWZvcmVUZXN0aW5nKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHA6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcDoKKwog
MjAxMy0wMy0xMyAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIHJ1
bi1wZXJmLXRlc3RzIHNob3VsZCBzdXBwb3J0IGNvbnRlbnRfc2hlbGwKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
VGVzdFJ1bm5lci5jcHAKaW5kZXggN2QzZTg1ZTAwNzQzYzI0ZTEyN2FkMmMxZWZiYTY2MzRjNjdk
ZWQzNi4uZGFlY2NhZmU2ZGRlNWFlY2FmM2U0YTRjZjA2YmQ2MmY3YmUzODQ2NSAxMDA2NDQKLS0t
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAKQEAgLTE1MDYsMTYgKzE1MDYsNiBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiByZXNldFBhZ2VWaXNpYmlsaXR5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwog
fSAgICAKIAotc3RhdGljIEpTVmFsdWVSZWYgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENv
dW50IDwgMSkKLSAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwot
Ci0gICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihK
U09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1sw
XSkpOwotICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3Rh
dGljIEpTVmFsdWVSZWYgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWRDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRo
aXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50
c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAx
KQpAQCAtMTUyNiwxNiArMTUxNiw2IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHNldEF1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsCiAgICAgcmV0
dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJl
ZiBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkQ2FsbGJhY2soSlNDb250ZXh0UmVm
IGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQotewotICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKLSAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwotCi0gICAgVGVzdFJ1bm5lciog
Y29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUo
dGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xsZXItPnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQoSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbMF0pKTsKLSAgICBy
ZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Ci19Ci0KIHN0YXRpYyBKU1ZhbHVl
UmVmIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9hZHNDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCiB7CiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0
PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwpAQCAtMjEzOCw5
ICsyMTE4LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25z
KCkKICAgICAgICAgeyAic2V0UGx1Z2luc0VuYWJsZWQiLCBzZXRQbHVnaW5zRW5hYmxlZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFByaW50aW5nIiwgc2V0UHJpbnRpbmdDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkIiwgc2V0UHJp
dmF0ZUJyb3dzaW5nRW5hYmxlZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInNldFNlbGVj
dFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQiLCBzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VF
bmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0
eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U2VyaWFsaXplSFRUUExvYWRz
Iiwgc2V0U2VyaWFsaXplSFRUUExvYWRzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAic2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkIiwgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkQ2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkIiwg
c2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAi
c2V0U3RvcFByb3Zpc2lvbmFsRnJhbWVMb2FkcyIsIHNldFN0b3BQcm92aXNpb25hbEZyYW1lTG9h
ZHNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxl
bWVudHMiLCBzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHNDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oCmluZGV4IDRmMzcwYzMzOWM3Y2ZhOThlODlmMzQwMDI5
MjM3YjFiNDg1NGYxZGIuLjE3ZmI0MDhkYjlmODg0MDAyNWY2YWI5MTc0N2JjYThlNzRiMzlhZmQg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKQEAgLTEwMyw4ICsxMDMsNiBAQCBwdWJsaWM6
CiAgICAgdm9pZCBzZXRQbHVnaW5zRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldFBvcHVwQmxv
Y2tpbmdFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChi
b29sKTsKLSAgICB2b2lkIHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCk7
Ci0gICAgdm9pZCBzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBz
ZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VEYXNo
Ym9hcmRDb21wYXRpYmlsaXR5TW9kZShib29sIGZsYWcpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGJvb2wgZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Js
YWNrYmVycnkvRHVtcFJlbmRlclRyZWUuY3BwCmluZGV4IDcxNjUyZGNkMTIzOGExMzY0MzcyYjA5
ODM1ODBiYzAyZDI4MzgxMDUuLjk1NjQ0NGJjN2Y4NTVhY2E5ZWFmNDY1YzAyNDFiZWE3YmI1ZDg2
YjggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRl
clRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRl
clRyZWUuY3BwCkBAIC0xNTEsNyArMTUxLDYgQEAgbmFtZXNwYWNlIEJsYWNrQmVycnkgewogbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIER1bXBSZW5kZXJUcmVlKiBEdW1wUmVuZGVyVHJlZTo6c19jdXJy
ZW50SW5zdGFuY2UgPSAwOwotYm9vbCBEdW1wUmVuZGVyVHJlZTo6c19zZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkID0gZmFsc2U7CiAKIHN0YXRpYyB2b2lkIGNyZWF0ZUZpbGUoY29uc3Qg
U3RyaW5nJiBmaWxlTmFtZSkKIHsKQEAgLTI5NSw3ICsyOTQsNiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlOjpyZXNldFRvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyhjb25zdCBTdHJpbmcmIHVy
bCwgY29ucwogCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKICAgICBtX2xvYWRGaW5pc2hlZCA9
IGZhbHNlOwotICAgIHNfc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGZhbHNlOwog
ICAgIG1fcG9saWN5RGVsZWdhdGVFbmFibGVkID0gZmFsc2U7CiAgICAgd2FpdEZvclBvbGljeSA9
IGZhbHNlOwogICAgIHRlc3REb25lID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvYmxhY2tiZXJyeS9EdW1wUmVuZGVyVHJlZUJsYWNrQmVycnkuaAppbmRleCBh
MTNhZmIxMmQ4ZDUyMzgzMzU0N2YzM2MyNzA5MDQxZTAwYjc5ODM2Li4yNjdjNGRjYWRmNmVkMDc2
NTc2ZDdjZGJjZDAwYWRmMzlkY2UwOWMwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ibGFja2JlcnJ5L0R1bXBSZW5kZXJUcmVlQmxhY2tCZXJyeS5oCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2JsYWNrYmVycnkvRHVtcFJlbmRlclRyZWVCbGFja0JlcnJ5LmgKQEAgLTEwMiw4
ICsxMDIsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRJbnNlcnROb2RlKFdlYkNvcmU6Ok5v
ZGUqLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rpb24pOwogICAgIGJvb2wgc2hvdWxk
SW5zZXJ0VGV4dChjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpSYW5nZSosIGludCBpbnNlcnRBY3Rp
b24pOwogCi0gICAgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKSBjb25z
dCB7IHJldHVybiBzX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQ7IH0KLSAgICB2b2lk
IHNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGVkKSB7IHNfc2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICBib29sIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJDb3JlOjpDcmVkZW50aWFsJik7CiAKICAg
ICAvLyBCbGFja0JlcnJ5OjpQbGF0Zm9ybTo6QmxhY2tCZXJyeVBsYXRmb3JtTGF5b3V0VGVzdENs
aWVudCBtZXRob2QKQEAgLTE0OCw3ICsxNDYsNiBAQCBwcml2YXRlOgogCiAgICAgYm9vbCBtX2Fj
Y2VwdHNFZGl0aW5nOwogICAgIGJvb2wgbV9sb2FkRmluaXNoZWQ7Ci0gICAgc3RhdGljIGJvb2wg
c19zZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOwogICAgIGJvb2wgbV9wb2xpY3lEZWxl
Z2F0ZUVuYWJsZWQ7CiB9OwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvYmxh
Y2tiZXJyeS9UZXN0UnVubmVyQmxhY2tCZXJyeS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9i
bGFja2JlcnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcAppbmRleCA2NDVhZTc5Njg4MWYzYTQx
ZjBiYzk3Mzc4MzkyOTIwOWU0MzcwNWRjLi5iZDJmMDM0NTc1OGYwM2FmYTE5NjI1YTQzNDQyYjY0
ZmQ0NjgyZDUwIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2JlcnJ5L1Rl
c3RSdW5uZXJCbGFja0JlcnJ5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9ibGFja2Jl
cnJ5L1Rlc3RSdW5uZXJCbGFja0JlcnJ5LmNwcApAQCAtMjYwLDE3ICsyNjAsNiBAQCB2b2lkIFRl
c3RSdW5uZXI6OnNldFhTU0F1ZGl0b3JFbmFibGVkKGJvb2wgZmxhZykKICAgICBCbGFja0JlcnJ5
OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+cGFnZSgpLT5zZXR0
aW5ncygpLT5zZXRYU1NBdWRpdG9yRW5hYmxlZChmbGFnKTsKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBC
bGFja0JlcnJ5OjpXZWJLaXQ6OkR1bXBSZW5kZXJUcmVlOjpjdXJyZW50SW5zdGFuY2UoKS0+c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnKTsKLX0KLQotdm9pZCBUZXN0UnVu
bmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIFVOVVNF
RF9QQVJBTShmbGFnKTsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCiB2b2lkIFRlc3RSdW5u
ZXI6OnNldFRhYktleUN5Y2xlc1Rocm91Z2hFbGVtZW50cyhib29sIGN5Y2xlcykKIHsKICAgICBp
ZiAoIW1haW5GcmFtZSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1Rlc3RSdW5uZXIvcHVibGljL1dlYlRlc3RQcm94eS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKaW5kZXggYTQ0ZWNiZDc4
MGRhNjFkOWJmZTdlOWM4MGU1MjFmNmIxYjkwNzVjOC4uZDRhNjAwYjgyMGU5MzA3M2RiODk3NjFl
YmE3MjkwYzExZmNkMGExNSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9wdWJsaWMvV2ViVGVzdFByb3h5LmgKQEAgLTE0OSw4
ICsxNDksNiBAQCBwcm90ZWN0ZWQ6CiAgICAgV2ViS2l0OjpXZWJQbHVnaW4qIGNyZWF0ZVBsdWdp
bihXZWJLaXQ6OldlYkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJQbHVnaW5QYXJhbXMmKTsKICAg
ICB2b2lkIHNldFN0YXR1c1RleHQoY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKICAgICB2b2lk
IGRpZFN0b3BMb2FkaW5nKCk7Ci0gICAgYm9vbCBpc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgp
OwotICAgIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdm9p
ZCBzaG93Q29udGV4dE1lbnUoV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViQ29u
dGV4dE1lbnVEYXRhJik7CiAgICAgV2ViS2l0OjpXZWJVc2VyTWVkaWFDbGllbnQqIHVzZXJNZWRp
YUNsaWVudCgpOwogICAgIHZvaWQgcHJpbnRQYWdlKFdlYktpdDo6V2ViRnJhbWUqKTsKQEAgLTM2
OCwxNCArMzY2LDYgQEAgcHVibGljOgogICAgICAgICBXZWJUZXN0UHJveHlCYXNlOjpkaWRTdG9w
TG9hZGluZygpOwogICAgICAgICBCYXNlOjpkaWRTdG9wTG9hZGluZygpOwogICAgIH0KLSAgICB2
aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKQotICAgIHsKLSAgICAgICAg
cmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7Ci0g
ICAgfQotICAgIHZpcnR1YWwgYm9vbCBpc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
KQotICAgIHsKLSAgICAgICAgcmV0dXJuIFdlYlRlc3RQcm94eUJhc2U6OmlzU2VsZWN0VHJhaWxp
bmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgc2hvd0NvbnRl
eHRNZW51KFdlYktpdDo6V2ViRnJhbWUqIGZyYW1lLCBjb25zdCBXZWJLaXQ6OldlYkNvbnRleHRN
ZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogICAgIHsKICAgICAgICAgV2ViVGVzdFByb3h5QmFz
ZTo6c2hvd0NvbnRleHRNZW51KGZyYW1lLCBjb250ZXh0TWVudURhdGEpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcAppbmRleCA5NzU0ZTJkNGM0NDY3YzI1ODAyNTdiY2Q0NWE1YjNiMjY1MTZhMzc4Li40
MGZiNDU2YmFmZjZhM2FhNTc4YTY3YjRlYjZkNjhlMzE3ZmExZmE1IDEwMDY0NAotLS0gYS9Ub29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmNwcAor
KysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVu
bmVyLmNwcApAQCAtMjA3LDggKzIwNyw2IEBAIFRlc3RSdW5uZXI6OlRlc3RSdW5uZXIoVGVzdElu
dGVyZmFjZXMqIGludGVyZmFjZXMpCiAgICAgYmluZE1ldGhvZCgidGV4dFN1cnJvdW5kaW5nTm9k
ZSIsICZUZXN0UnVubmVyOjp0ZXh0U3Vycm91bmRpbmdOb2RlKTsKICAgICBiaW5kTWV0aG9kKCJk
aXNhYmxlQXV0b1Jlc2l6ZU1vZGUiLCAmVGVzdFJ1bm5lcjo6ZGlzYWJsZUF1dG9SZXNpemVNb2Rl
KTsKICAgICBiaW5kTWV0aG9kKCJlbmFibGVBdXRvUmVzaXplTW9kZSIsICZUZXN0UnVubmVyOjpl
bmFibGVBdXRvUmVzaXplTW9kZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkIiwgJlRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCk7Ci0g
ICAgYmluZE1ldGhvZCgic2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCIsICZUZXN0
UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKTsKICAgICBiaW5kTWV0
aG9kKCJzZXRNb2NrRGV2aWNlT3JpZW50YXRpb24iLCAmVGVzdFJ1bm5lcjo6c2V0TW9ja0Rldmlj
ZU9yaWVudGF0aW9uKTsKICAgICBiaW5kTWV0aG9kKCJkaWRBY3F1aXJlUG9pbnRlckxvY2siLCAm
VGVzdFJ1bm5lcjo6ZGlkQWNxdWlyZVBvaW50ZXJMb2NrKTsKICAgICBiaW5kTWV0aG9kKCJkaWRM
b3NlUG9pbnRlckxvY2siLCAmVGVzdFJ1bm5lcjo6ZGlkTG9zZVBvaW50ZXJMb2NrKTsKQEAgLTQw
OSwxMiArNDA3LDYgQEAgdm9pZCBUZXN0UnVubmVyOjpyZXNldCgpCiAgICAgbV9zaG91bGRTdGF5
T25QYWdlQWZ0ZXJIYW5kbGluZ0JlZm9yZVVubG9hZCA9IGZhbHNlOwogICAgIG1fc2hvdWxkQmxv
Y2tSZWRpcmVjdHMgPSBmYWxzZTsKICAgICBtX3dpbGxTZW5kUmVxdWVzdFNob3VsZFJldHVybk51
bGwgPSBmYWxzZTsKLSAgICBtX3NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCA9IHRydWU7Ci0jaWZk
ZWYgV0lOMzIKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSB0cnVlOwot
I2Vsc2UKLSAgICBtX3NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQgPSBmYWxzZTsKLSNl
bmRpZgogICAgIG1fc2hvdWxkRHVtcFJlc291cmNlUHJpb3JpdGllcyA9IGZhbHNlOwogCiAgICAg
bV9odHRwSGVhZGVyc1RvQ2xlYXIuY2xlYXIoKTsKQEAgLTY3NSwxNiArNjY3LDYgQEAgYm9vbCBU
ZXN0UnVubmVyOjpzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0CiAgICAgcmV0dXJu
IG1faW50ZXJjZXB0UG9zdE1lc3NhZ2UuaXNCb29sKCkgJiYgbV9pbnRlcmNlcHRQb3N0TWVzc2Fn
ZS50b0Jvb2xlYW4oKTsKIH0KIAotYm9vbCBUZXN0UnVubmVyOjppc1NtYXJ0SW5zZXJ0RGVsZXRl
RW5hYmxlZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc21hcnRJbnNlcnREZWxldGVFbmFibGVk
OwotfQotCi1ib29sIFRlc3RSdW5uZXI6OmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZCgpIGNvbnN0Ci17Ci0gICAgcmV0dXJuIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZDsKLX0KLQogYm9vbCBUZXN0UnVubmVyOjpzaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwpAQCAt
MTQ2NywyMCArMTQ0OSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6dGV4dFN1cnJvdW5kaW5nTm9kZShj
b25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFuCiAgICAgcmVzdWx0LT5z
ZXQoc3Vycm91bmRpbmdUZXh0LnRleHRDb250ZW50KCkudXRmOCgpKTsKIH0KIAotdm9pZCBUZXN0
UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICBpZiAoYXJndW1lbnRzLnNp
emUoKSA+IDAgJiYgYXJndW1lbnRzWzBdLmlzQm9vbCgpKQotICAgICAgICBtX3NtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZCA9IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0
LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQotewotICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID4gMCAmJiBhcmd1bWVudHNb
MF0uaXNCb29sKCkpCi0gICAgICAgIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCA9
IGFyZ3VtZW50c1swXS52YWx1ZS5ib29sVmFsdWU7Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19
Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6ZHVtcFJlc291cmNlUmVxdWVzdFByaW9yaXRpZXMoY29uc3Qg
Q3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBt
X3Nob3VsZER1bXBSZXNvdXJjZVByaW9yaXRpZXMgPSB0cnVlOwpkaWZmIC0tZ2l0IGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oIGIvVG9v
bHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvVGVzdFJ1bm5lci5oCmlu
ZGV4IDI1ZTdmZTg0NTg5YjdkODE3MWZjNjE5YjA5NTg5Y2QxMTkxNjA4YjEuLjFiMGM2ZDQ5MWRk
YjUyZmM4ODE0NjBhZDk5OTk3OTMyODlkOGZkYzIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1Rlc3RSdW5uZXIuaAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL3NyYy9UZXN0UnVubmVyLmgKQEAgLTEx
OCw4ICsxMTgsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBwb2xpY3lEZWxlZ2F0ZUlzUGVybWlzc2l2
ZSgpIGNvbnN0OwogICAgIGJvb2wgcG9saWN5RGVsZWdhdGVTaG91bGROb3RpZnlEb25lKCkgY29u
c3Q7CiAgICAgYm9vbCBzaG91bGRJbnRlcmNlcHRQb3N0TWVzc2FnZSgpIGNvbnN0OwotICAgIGJv
b2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGlzU2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkRHVtcFJl
c291cmNlUHJpb3JpdGllcygpIGNvbnN0OwogI2lmIEVOQUJMRV9OT1RJRklDQVRJT05TCiAgICAg
V2ViS2l0OjpXZWJOb3RpZmljYXRpb25QcmVzZW50ZXIqIG5vdGlmaWNhdGlvblByZXNlbnRlcigp
IGNvbnN0OwpAQCAtMjY5LDExICsyNjcsNiBAQCBwcml2YXRlOgogICAgIC8vIGxlbmd0aCB0byBy
ZXRyaWV2ZS4KICAgICB2b2lkIHRleHRTdXJyb3VuZGluZ05vZGUoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgc21hcnQgaW5z
ZXJ0L2RlbGV0ZS4gVGhpcyBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCi0gICAgdm9pZCBzZXRTbWFy
dEluc2VydERlbGV0ZUVuYWJsZWQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCop
OwotCi0gICAgLy8gRW5hYmxlIG9yIGRpc2FibGUgdHJhaWxpbmcgd2hpdGVzcGFjZSBzZWxlY3Rp
b24gb24gZG91YmxlIGNsaWNrLgotICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBl
bmFibGVBdXRvUmVzaXplTW9kZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAgICAgdm9pZCBkaXNhYmxlQXV0b1Jlc2l6ZU1vZGUoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwogCkBAIC02NjgsMTAgKzY2MSw2IEBAIHByaXZhdGU6CiAKICAgICBib29s
IG1fd2lsbFNlbmRSZXF1ZXN0U2hvdWxkUmV0dXJuTnVsbDsKIAotICAgIGJvb2wgbV9zbWFydElu
c2VydERlbGV0ZUVuYWJsZWQ7Ci0KLSAgICBib29sIG1fc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNl
RW5hYmxlZDsKLQogICAgIGJvb2wgbV9zaG91bGREdW1wUmVzb3VyY2VQcmlvcml0aWVzOwogCiAg
ICAgc3RkOjpzZXQ8c3RkOjpzdHJpbmc+IG1faHR0cEhlYWRlcnNUb0NsZWFyOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMvV2ViUHJlZmVy
ZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViUHJlZmVyZW5jZXMuY3BwCmluZGV4IDMxZDNhNGI0MTBhOGM1M2E2NDhjN2MwOGVmMGFkZjYy
Y2Q3MGIwNWIuLjMxMTRmYmRhOTdlOTNlODE5MTVlZTY2MzVmOGQ5ZWI4YzA4N2U1OGYgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvc3JjL1dlYlBy
ZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVu
bmVyL3NyYy9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTIyMSw2ICsyMjEsMTIgQEAgdm9pZCBXZWJQ
cmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHNldHRpbmdzLT5zZXRW
aXN1YWxXb3JkTW92ZW1lbnRFbmFibGVkKGZhbHNlKTsKICAgICBzZXR0aW5ncy0+c2V0UGFzc3dv
cmRFY2hvRW5hYmxlZChmYWxzZSk7CiAgICAgc2V0dGluZ3MtPnNldEFwcGx5RGV2aWNlU2NhbGVG
YWN0b3JJbkNvbXBvc2l0b3IodHJ1ZSk7CisgICAgc2V0dGluZ3MtPnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZCh0cnVlKTsKKyNpZmRlZiBXSU4zMgorICAgIHNldHRpbmdzLT5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworI2Vsc2UKKyAgICBzZXR0aW5ncy0+c2V0
U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CisjZW5kaWYKIH0KIAogfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5u
ZXIvc3JjL1dlYlRlc3RQcm94eS5jcHAKaW5kZXggNGUxM2I2MTNkNmY2MjdhM2U5OWRkZWQyNDcx
MGUyZThjMjkyYmE1MS4uYTc1NjAwNjE3YjhhNGJiZGRhM2RlYjc2MGI2OGE0OTkxM2NkNWFiMiAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9zcmMv
V2ViVGVzdFByb3h5LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
UnVubmVyL3NyYy9XZWJUZXN0UHJveHkuY3BwCkBAIC05NzksMTYgKzk3OSw2IEBAIHZvaWQgV2Vi
VGVzdFByb3h5QmFzZTo6ZGlkU3RvcExvYWRpbmcoKQogICAgICAgICBtX2RlbGVnYXRlLT5wcmlu
dE1lc3NhZ2UoInBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uXG4iKTsKIH0KIAotYm9v
bCBXZWJUZXN0UHJveHlCYXNlOjppc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCi17Ci0gICAg
cmV0dXJuIG1fdGVzdEludGVyZmFjZXMtPnRlc3RSdW5uZXIoKS0+aXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKTsKLX0KLQotYm9vbCBXZWJUZXN0UHJveHlCYXNlOjppc1NlbGVjdFRyYWlsaW5n
V2hpdGVzcGFjZUVuYWJsZWQoKQotewotICAgIHJldHVybiBtX3Rlc3RJbnRlcmZhY2VzLT50ZXN0
UnVubmVyKCktPmlzU2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCgpOwotfQotCiB2b2lk
IFdlYlRlc3RQcm94eUJhc2U6OnNob3dDb250ZXh0TWVudShXZWJGcmFtZSosIGNvbnN0IFdlYkNv
bnRleHRNZW51RGF0YSYgY29udGV4dE1lbnVEYXRhKQogewogICAgIG1fdGVzdEludGVyZmFjZXMt
PmV2ZW50U2VuZGVyKCktPnNldENvbnRleHRNZW51RGF0YShjb250ZXh0TWVudURhdGEpOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuY3BwCmluZGV4IGZmMjcw
NTM3MjNkOWQ5YmI0ZTYwODQzODlhNDExZWFmNzg1OTA3NGMuLmI2MTVhYWY1OGQ3MzE3ZGM0YWZl
NDQ2MDUzM2FlYWIyMTQ1MGM5MzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1dlYlZpZXdIb3N0LmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJWaWV3SG9zdC5jcHAKQEAgLTE3MCwyMCArMTcwLDYgQEAgYm9vbCBXZWJWaWV3SG9zdDo6
c2hvdWxkQXBwbHlTdHlsZShjb25zdCBXZWJTdHJpbmcmIHN0eWxlLCBjb25zdCBXZWJSYW5nZSYg
cmFuZ2UKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotYm9vbCBXZWJWaWV3SG9zdDo6aXNTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoKQotewotICAgIHJldHVybiB0cnVlOwotfQotCi1ib29sIFdlYlZp
ZXdIb3N0Ojppc1NlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoKQotewotI2lmIE9TKFdJ
TkRPV1MpCi0gICAgcmV0dXJuIHRydWU7Ci0jZWxzZQotICAgIHJldHVybiBmYWxzZTsKLSNlbmRp
ZgotfQotCiBib29sIFdlYlZpZXdIb3N0OjpoYW5kbGVDdXJyZW50S2V5Ym9hcmRFdmVudCgpCiB7
CiAgICAgaWYgKG1fZWRpdENvbW1hbmROYW1lLmVtcHR5KCkpCmRpZmYgLS1naXQgYS9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5oIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViVmlld0hvc3QuaAppbmRleCBmZGJlZDJmNzJhNTQwZGUzM2UzNjFhYWNi
YTEyM2QwMDZhMGMwOGYxLi41ZTI4OTI1NDg2M2ViYjA1NjFmN2NjNDViZDRkNjA3MjUwNmY2MzI4
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJWaWV3SG9zdC5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmgKQEAgLTE0
Myw4ICsxNDMsNiBAQCBjbGFzcyBXZWJWaWV3SG9zdCA6IHB1YmxpYyBXZWJLaXQ6OldlYlZpZXdD
bGllbnQsIHB1YmxpYyBXZWJLaXQ6OldlYkZyYW1lQ2xpZW50LAogICAgIHZpcnR1YWwgYm9vbCBz
aG91bGRDaGFuZ2VTZWxlY3RlZFJhbmdlKGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmIGZyb20sIGNv
bnN0IFdlYktpdDo6V2ViUmFuZ2UmIHRvLCBXZWJLaXQ6OldlYlRleHRBZmZpbml0eSwgYm9vbCBz
dGlsbFNlbGVjdGluZyk7CiAgICAgdmlydHVhbCBib29sIHNob3VsZERlbGV0ZVJhbmdlKGNvbnN0
IFdlYktpdDo6V2ViUmFuZ2UmKTsKICAgICB2aXJ0dWFsIGJvb2wgc2hvdWxkQXBwbHlTdHlsZShj
b25zdCBXZWJLaXQ6OldlYlN0cmluZyYgc3R5bGUsIGNvbnN0IFdlYktpdDo6V2ViUmFuZ2UmKTsK
LSAgICB2aXJ0dWFsIGJvb2wgaXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKLSAgICB2aXJ0
dWFsIGJvb2wgaXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKCk7CiAgICAgdmlydHVh
bCBib29sIGhhbmRsZUN1cnJlbnRLZXlib2FyZEV2ZW50KCk7CiAgICAgdmlydHVhbCB2b2lkIHJ1
bk1vZGFsQWxlcnREaWFsb2coV2ViS2l0OjpXZWJGcmFtZSosIGNvbnN0IFdlYktpdDo6V2ViU3Ry
aW5nJik7CiAgICAgdmlydHVhbCBib29sIHJ1bk1vZGFsQ29uZmlybURpYWxvZyhXZWJLaXQ6Oldl
YkZyYW1lKiwgY29uc3QgV2ViS2l0OjpXZWJTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IGY4N2VlYjA3MDY0NmY1
OTAxN2JhNjgwODRjZDc2ZDJkMGE2ZDEzOTYuLjYxMjdjOWQ2MjkyNGIxZDg0Y2MwYjdiOGJjNTM1
NjExODA1MWNjYzEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVu
ZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmNwcApAQCAtMzE1LDggKzMxNSw2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6OnJlc2V0RGVmYXVsdHNUb0NvbnNpc3RlbnRWYWx1ZXMoKQogICAgIER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c2V0VmFsaWRhdGlvbk1lc3NhZ2VUaW1lck1hZ25pZmljYXRpb24obWFp
blZpZXcoKSwgLTEpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0QXV0aG9yQW5k
VXNlclN0eWxlc0VuYWJsZWQobWFpblZpZXcoKSwgdHJ1ZSk7CiAgICAgRHVtcFJlbmRlclRyZWVT
dXBwb3J0RWZsOjpzZXRDU1NHcmlkTGF5b3V0RW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7Ci0g
ICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
bWFpblZpZXcoKSwgZmFsc2UpOwotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChtYWluVmlldygpLCBmYWxzZSk7CiAgICAgRHVt
cFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzZXREZWZlcnNMb2FkaW5nKG1haW5WaWV3KCksIGZhbHNl
KTsKICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnNldExvYWRzU2l0ZUljb25zSWdub3Jp
bmdJbWFnZUxvYWRpbmdTZXR0aW5nKG1haW5WaWV3KCksIGZhbHNlKTsKICAgICBEdW1wUmVuZGVy
VHJlZVN1cHBvcnRFZmw6OnNldFNlcmlhbGl6ZUhUVFBMb2FkcyhmYWxzZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAgYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvVGVzdFJ1bm5lckVmbC5jcHAKaW5kZXggZTY1YjVhMjU5ZTJjMTI1ZGEy
N2NjOTAwMWNlN2I0MThmMzYwOTNkNS4uYTk5YTNiNWVkYzc2ODdiNDJmNDIxMjg4OTVkYThkYTdm
MzVjMWU3YSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL1Rlc3RSdW5uZXJF
ZmwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9UZXN0UnVubmVyRWZsLmNwcApA
QCAtMjcyLDExICsyNzIsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wp
CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoYm9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9y
dEVmbDo6c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJyb3dzZXItPm1haW5WaWV3KCksIGZs
YWcpOwotfQotCiBzdGF0aWMgRWluYV9Cb29sIHdhaXRUb0R1bXBXYXRjaGRvZ0ZpcmVkKHZvaWQq
KQogewogICAgIHdhaXRUb0R1bXBXYXRjaGRvZyA9IDA7CkBAIC00MjEsMTEgKzQxNiw2IEBAIHZv
aWQgVGVzdFJ1bm5lcjo6c2V0SWNvbkRhdGFiYXNlRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAg
ICAgIGV3a19zZXR0aW5nc19pY29uX2RhdGFiYXNlX3BhdGhfc2V0KGRhdGFiYXNlUGF0aC51dGY4
KCkuZGF0YSgpKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6
OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYnJvd3Nlci0+bWFpblZpZXcoKSwg
ZmxhZyk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9v
bCBmbGFnKQogewogICAgIGV3a192aWV3X3NldHRpbmdfc2NyaXB0c19jYW5fb3Blbl93aW5kb3dz
X3NldChicm93c2VyLT5tYWluVmlldygpLCAhZmxhZyk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Z3RrL0R1bXBSZW5kZXJUcmVlLmNwcAppbmRleCA1YTM1NzRmNzEyMTNiNDU2MjcxNWQyYzhlZGRl
MDk2YjNjYThlMGQ1Li5jZWU0NjFjNTgxZDNmMTkzMmU0MWQ0NzQ2NTQ0ZWRiZjY0NjBkYmNhIDEw
MDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9ndGsvRHVtcFJlbmRlclRyZWUuY3BwCisr
KyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9EdW1wUmVuZGVyVHJlZS5jcHAKQEAgLTUwMSw4
ICs1MDEsNiBAQCBzdGF0aWMgdm9pZCByZXNldERlZmF1bHRzVG9Db25zaXN0ZW50VmFsdWVzKCkK
IAogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0TGlua3NJbmNsdWRlZEluRm9jdXND
aGFpbih0cnVlKTsKICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aCh3ZWJraXRfZ2V0
X2ljb25fZGF0YWJhc2UoKSwgMCk7Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKLSAgICBEdW1wUmVuZGVyVHJl
ZVN1cHBvcnRHdGs6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh3ZWJWaWV3LCB0cnVlKTsK
ICAgICBEdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGs6OnNldERlZmVyc0xvYWRpbmcod2ViVmlldywg
ZmFsc2UpOwogICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U2VyaWFsaXplSFRUUExv
YWRzKGZhbHNlKTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RS
dW5uZXJHdGsuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL1Rlc3RSdW5uZXJHdGsuY3Bw
CmluZGV4IDQyY2U2NzI2ZDg4M2U5MzdlZWE1YmU4YzBmNjRiZDJlMDdmMWM4YzQuLmNkMTA0NGQw
ZDIzMzFlMmE0YTFlYzc3ZThkNDJmOTcyN2ZhYWRhNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9UZXN0UnVubmVyR3RrLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9ndGsvVGVzdFJ1bm5lckd0ay5jcHAKQEAgLTMyMywxMSArMzIzLDYgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRXaW5kb3dJc0tleShib29sIHdpbmRvd0lzS2V5KQogICAgIC8vIEZJWE1FOiBpbXBs
ZW1lbnQKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQo
Ym9vbCBmbGFnKQotewotICAgIER1bXBSZW5kZXJUcmVlU3VwcG9ydEd0azo6c2V0U21hcnRJbnNl
cnREZWxldGVFbmFibGVkKHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSks
IGZsYWcpOwotfQotCiBzdGF0aWMgZ2Jvb2xlYW4gd2FpdFRvRHVtcFdhdGNoZG9nRmlyZWQodm9p
ZCopCiB7CiAgICAgc2V0V2FpdFRvRHVtcFdhdGNoZG9nKDApOwpAQCAtNDg1LDExICs0ODAsNiBA
QCB2b2lkIFRlc3RSdW5uZXI6OnNldEljb25EYXRhYmFzZUVuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgICAgICB3ZWJraXRfaWNvbl9kYXRhYmFzZV9zZXRfcGF0aChkYXRhYmFzZSwgMCk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29s
IGZsYWcpCi17Ci0gICAgRHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrOjpzZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKGZsYWcpOwotfQotCiB2b2lkIFRlc3RSdW5uZXI6OnNldFBvcHVw
QmxvY2tpbmdFbmFibGVkKGJvb2wgZmxhZykKIHsKICAgICBXZWJLaXRXZWJWaWV3KiB2aWV3ID0g
d2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbSBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQppbmRleCA5YTIwMjJlMmRmMzc1NDAzZWY5MWY2
MzdlMGQ5MDY5NzE2ZTg1NTU4Li5jYjE0YTE1N2E0NTg3NmIxN2M0YmY0ZjMwMmQyZjZjNTU0OWE4
YjRiIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUu
bW0KKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1tCkBAIC0x
Mjc4LDggKzEyNzgsNiBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0
ZUJlZm9yZVRlc3RpbmcoKQogICAgICAgICBnVGVzdFJ1bm5lci0+cmVtb3ZlQ2hyb21lSW5wdXRG
aWVsZCgpOwogICAgIH0KIAotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0
RGVsZXRlRW5hYmxlZDpZRVNdOwotCiAgICAgW1dlYlZpZXcgX3NldFVzZXNUZXN0TW9kZUZvY3Vz
UmluZ0NvbG9yOllFU107CiAgICAgW1dlYlZpZXcgX3Jlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0
c107CiAgICAgW1dlYlZpZXcgX3NldEFsbG93c1JvdW5kaW5nSGFja3M6Tk9dOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQppbmRleCBiMjMyNmEyNmIzNDlhMDgzYmE3
OThhOGM3Yjk1YWRhOWRmMDVlMzY2Li5iMzFjOWFkNzI3YjJlNjZmN2ZlN2I1Y2ExZDY4ZGJiNGU0
N2JmZTY5IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1h
Yy5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQpAQCAt
NjM0LDE2ICs2MzQsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldFdpbmRvd0lzS2V5KGJvb2wgd2lu
ZG93SXNLZXkpCiAgICAgW1ttYWluRnJhbWUgd2ViVmlld10gX3VwZGF0ZUFjdGl2ZVN0YXRlXTsK
IH0KIAotdm9pZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBm
bGFnKQotewotICAgIFtbbWFpbkZyYW1lIHdlYlZpZXddIHNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZDpmbGFnXTsKLX0KLQotdm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRl
c3BhY2VFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRT
ZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkOmZsYWddOwotfQotCiBzdGF0aWMgY29uc3Qg
Q0ZUaW1lSW50ZXJ2YWwgd2FpdFRvRHVtcFdhdGNoZG9nSW50ZXJ2YWwgPSAzMC4wOwogCiBzdGF0
aWMgdm9pZCB3YWl0VW50aWxEb25lV2F0Y2hkb2dGaXJlZChDRlJ1bkxvb3BUaW1lclJlZiB0aW1l
ciwgdm9pZCogaW5mbykKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0R1bXBS
ZW5kZXJUcmVlUXQuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVR
dC5jcHAKaW5kZXggMTk4YmFhOGM3MGI5YWY1NTQ4ZDhmYmFjZGQwYjgxY2EwNjJhYmJhMC4uYmUy
OTQ3NmZkYTcyNTIwOGIyOGI1ZmEyODcxY2ZiOWMxYmYwYjVjYSAxMDA3NTUKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvRHVtcFJlbmRlclRyZWVRdC5jcHAKQEAgLTE5NCw4ICsxOTQsNiBAQCB2b2lk
IFdlYlBhZ2U6OnJlc2V0U2V0dGluZ3MoKQogCiAgICAgbV9kcnQtPnRlc3RSdW5uZXIoKS0+c2V0
Q2FyZXRCcm93c2luZ0VuYWJsZWQoZmFsc2UpOwogICAgIG1fZHJ0LT50ZXN0UnVubmVyKCktPnNl
dEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKHRydWUpOwotICAgIG1fZHJ0LT50ZXN0UnVubmVy
KCktPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsKLSAgICBtX2RydC0+dGVzdFJ1
bm5lcigpLT5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKICAgICBt
X2RydC0+dGVzdFJ1bm5lcigpLT5zZXREZWZlcnNMb2FkaW5nKGZhbHNlKTsKIAogICAgIC8vIGds
b2JhbFNldHRpbmdzIG11c3QgYmUgcmVzZXQgZXhwbGljaXRseS4KZGlmZiAtLWdpdCBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9xdC9UZXN0UnVubmVyUXQuY3BwCmluZGV4IDFjYmY2MmZmMDhmOTVhNmJmOWM5NzY1MzFlMTRk
YjJjNzJlZGQxY2UuLjdlOGNmZTIwMmQwMTIxY2MzZDlhMjljZTVhNTc3NzZkNTYxYWYzZjEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L1Rlc3RSdW5uZXJRdC5jcHAKKysrIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0LmNwcApAQCAtNzI1LDE2ICs3MjUs
NiBAQCB2b2lkIFRlc3RSdW5uZXJRdDo6c2V0U2Nyb2xsYmFyUG9saWN5KGNvbnN0IFFTdHJpbmcm
IG9yaWVudGF0aW9uLCBjb25zdCBRU3RyaW5nJgogICAgIG1fZHJ0LT53ZWJQYWdlKCktPm1haW5G
cmFtZSgpLT5zZXRTY3JvbGxCYXJQb2xpY3kobywgcCk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lclF0
OjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJl
bmRlclRyZWVTdXBwb3J0UXQ6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChtX2RydC0+cGFn
ZUFkYXB0ZXIoKSwgZW5hYmxlKTsKLX0KLQotdm9pZCBUZXN0UnVubmVyUXQ6OnNldFNlbGVjdFRy
YWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBlbmFibGUpCi17Ci0gICAgRHVtcFJlbmRlclRy
ZWVTdXBwb3J0UXQ6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQobV9kcnQtPnBh
Z2VBZGFwdGVyKCksIGVuYWJsZSk7Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lclF0OjpleGVjQ29tbWFu
ZChjb25zdCBRU3RyaW5nJiBuYW1lLCBjb25zdCBRU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBEdW1w
UmVuZGVyVHJlZVN1cHBvcnRRdDo6ZXhlY3V0ZUNvcmVDb21tYW5kQnlOYW1lKG1fZHJ0LT5wYWdl
QWRhcHRlcigpLCBuYW1lLCB2YWx1ZSk7CkBAIC0xMjM2LDE0ICsxMjI2LDYgQEAgdm9pZCBUZXN0
UnVubmVyOjpzZXRUYWJLZXlDeWNsZXNUaHJvdWdoRWxlbWVudHMoYm9vbCkKIHsKIH0KIAotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoYm9vbCkKLXsKLX0KLQot
dm9pZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wp
Ci17Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZChib29s
KQogewogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvVGVzdFJ1bm5lclF0
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQuaAppbmRleCBjMWNhMzc2
Y2MxODBjN2NhOWMzMjM1NWU1NmJkNjI3NWM3OTk2YzRmLi4zMDA5MzM1NjNlNzEwZGY3NzFkOTYx
ZGE3MWQxY2Y1NTA2NmMwZjdhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9U
ZXN0UnVubmVyUXQuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9xdC9UZXN0UnVubmVyUXQu
aApAQCAtMTc2LDggKzE3Niw2IEBAIHB1YmxpYyBRX1NMT1RTOgogICAgIHZvaWQgc2V0Q2FyZXRC
cm93c2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKGNvbnN0IFFTdHJp
bmcmIG1vZGUpOwotICAgIHZvaWQgc2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKGJvb2wpOwot
ICAgIHZvaWQgc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChib29sKTsKICAgICB2
b2lkIGV4ZWNDb21tYW5kKGNvbnN0IFFTdHJpbmcmIG5hbWUsIGNvbnN0IFFTdHJpbmcmIHZhbHVl
ID0gUVN0cmluZygpKTsKICAgICBib29sIGlzQ29tbWFuZEVuYWJsZWQoY29uc3QgUVN0cmluZyYg
bmFtZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9EdW1w
UmVuZGVyVHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUu
Y3BwCmluZGV4IGY3NDc2ZmExMjYzZGYxZTBjZTI2MDZhMzgzNzg3M2VkYTc4Y2VmNWIuLjg5ZmE5
ZjdhZmExNjM1ZjYxMjVkNDRjOWUxMzI0ZWRjMTVlMjkxMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtODk5LDEwICs4OTksNiBAQCBzdGF0aWMg
dm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcoKQogICAgICAg
ICBXZWJDb3JlVGVzdFN1cHBvcnQ6OnJlc2V0SW50ZXJuYWxzT2JqZWN0KGNvbnRleHQpOwogICAg
IH0KIAotICAgIENPTVB0cjxJV2ViVmlld0VkaXRpbmc+IHZpZXdFZGl0aW5nOwotICAgIGlmIChT
VUNDRUVERUQod2ViVmlldy0+UXVlcnlJbnRlcmZhY2UoJnZpZXdFZGl0aW5nKSkpCi0gICAgICAg
IHZpZXdFZGl0aW5nLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoVFJVRSk7Ci0KICAgICBD
T01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJWaWV3UHJpdmF0ZShRdWVyeSwgd2ViVmlldyk7CiAg
ICAgaWYgKCF3ZWJWaWV3UHJpdmF0ZSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCmluZGV4IDY2NDhjM2VlMTVkZDRhNTZlZTBiNDVi
MjFlMDg3ZmE4NjQ0ZTY5ZjIuLmRkNGQ4NzMxZGZlZTQ4M2RmZTBlOWI4NzE1MmZhNjQzYzZkYTBj
NzkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNw
cAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKQEAgLTcy
MywzMiArNzIzLDYgQEAgdm9pZCBUZXN0UnVubmVyOjpzZXRXaW5kb3dJc0tleShib29sIGZsYWcp
CiAgICAgOjpTZW5kTWVzc2FnZSh3ZWJWaWV3V2luZG93LCBmbGFnID8gV01fU0VURk9DVVMgOiBX
TV9LSUxMRk9DVVMsIChXUEFSQU0pOjpHZXREZXNrdG9wV2luZG93KCksIDApOwogfQogCi12b2lk
IFRlc3RSdW5uZXI6OnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChib29sIGZsYWcpCi17Ci0g
ICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OwotICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZp
ZXcoJndlYlZpZXcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQ09NUHRyPElXZWJWaWV3RWRp
dGluZz4gdmlld0VkaXRpbmc7Ci0gICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5RdWVyeUludGVyZmFj
ZSgmdmlld0VkaXRpbmcpKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgdmlld0VkaXRpbmctPnNl
dFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZChmbGFnID8gVFJVRSA6IEZBTFNFKTsKLX0KLQotdm9p
ZCBUZXN0UnVubmVyOjpzZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGJvb2wgZmxh
ZykKLXsKLSAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7Ci0gICAgaWYgKEZBSUxFRChmcmFt
ZS0+d2ViVmlldygmd2ViVmlldykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8SVdl
YlZpZXdFZGl0aW5nPiB2aWV3RWRpdGluZzsKLSAgICBpZiAoRkFJTEVEKHdlYlZpZXctPlF1ZXJ5
SW50ZXJmYWNlKCZ2aWV3RWRpdGluZykpKQotICAgICAgICByZXR1cm47Ci0KLSAgICB2aWV3RWRp
dGluZy0+c2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmbGFnID8gVFJVRSA6IEZB
TFNFKTsKLX0KLQogc3RhdGljIGNvbnN0IENGVGltZUludGVydmFsIHdhaXRUb0R1bXBXYXRjaGRv
Z0ludGVydmFsID0gMzAuMDsKIAogc3RhdGljIHZvaWQgQ0FMTEJBQ0sgd2FpdFVudGlsRG9uZVdh
dGNoZG9nRmlyZWQoSFdORCwgVUlOVCwgVUlOVF9QVFIsIERXT1JEKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL3d4L1Rlc3RSdW5uZXJXeC5jcHAKaW5kZXggNDc1M2MyOWNhNTRmNmFlZTFhOWRjYTkxM2Q5
YjUxZWQ1MDFhOWExZS4uZjRiYjk0YTBlM2QyOTZjYWY3YzA4NmMxZGZjOTc3YmNjNjZlNjk5NCAx
MDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvVGVzdFJ1bm5lcld4LmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS93eC9UZXN0UnVubmVyV3guY3BwCkBAIC0xNTEsMTEgKzE1
MSw2IEBAIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2luZG93SXNLZXkoYm9vbCB3aW5kb3dJc0tleSkK
ICAgICAvLyBGSVhNRTogaW1wbGVtZW50CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6c2V0U21hcnRJ
bnNlcnREZWxldGVFbmFibGVkKGJvb2wgZmxhZykKLXsKLSAgICAvLyBGSVhNRTogaW1wbGVtZW50
Ci19Ci0KIHZvaWQgVGVzdFJ1bm5lcjo6c2V0V2FpdFRvRHVtcChib29sIHdhaXRVbnRpbERvbmUp
CiB7CiAgICAgc3RhdGljIGNvbnN0IGludCB0aW1lb3V0U2Vjb25kcyA9IDEwOwpAQCAtMjg4LDEx
ICsyODMsNiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEFwcENhY2hlTWF4aW11bVNpemUodW5zaWdu
ZWQgbG9uZyBsb25nIHNpemUpCiAgICAgLy8gRklYTUU6IGltcGxlbWVudAogfQogCi12b2lkIFRl
c3RSdW5uZXI6OnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoYm9vbCBmbGFnKQot
ewotICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQKLX0KLQogdm9pZCBUZXN0UnVubmVyOjpzZXRNb2Nr
RGV2aWNlT3JpZW50YXRpb24oYm9vbCBjYW5Qcm92aWRlQWxwaGEsIGRvdWJsZSBhbHBoYSwgYm9v
bCBjYW5Qcm92aWRlQmV0YSwgZG91YmxlIGJldGEsIGJvb2wgY2FuUHJvdmlkZUdhbW1hLCBkb3Vi
bGUgZ2FtbWEpCiB7CiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBmb3IgRGV2aWNlT3JpZW50YXRp
b24gbGF5b3V0IHRlc3RzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDMzMzUxOGE2NTRhOWU2NmY5ZDhiNWQwNTEzZjcwMjFl
NDllOTIzZDIuLjI3ZDQ2YmIxODUyZGJjNjFjYmE2ZmQwNjFlNGFjMGNhOGJiMjI2NmUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzMSBAQAorMjAxMy0wMy0wOCAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5h
YmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlcGxhY2UgdGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIGJ5CisgICAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxl
Y3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGluIHRlc3RzLgorCisgICAgICAgIEJlIHN1cmUg
dGhhdCB0cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkIGFuZAorICAgICAgICBzZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkIGFyZSBzZXQgdG8gb3Bwb3NpdGUgdmFsdWVzIGFzIHRoZXkgYXJl
CisgICAgICAgIG11dHVhbGx5IGV4Y2x1c2l2ZS4KKworICAgICAgICAqIGVkaXRpbmcvZGVsZXRp
bmcvc21hcnQtZWRpdGluZy1kaXNhYmxlZC5odG1sOgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0
aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWw6CisgICAgICAgICogZWRpdGluZy9z
ZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sOgorICAgICAgICAqIGVk
aXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWw6Cisg
ICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS5odG1sOgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxp
bmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanM6CisgICAgICAgICogZWRpdGluZy9zcGVs
bGluZy9yZXNvdXJjZXMvdXRpbC5qczoKKyAgICAgICAgKGluaXRTcGVsbFRlc3QpOgorICAgICAg
ICAqIGVkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13aXRoLXVu
ZGVyc2NvcmVzLmh0bWw6CisgICAgICAgICogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3Vi
bGUtY2xpY2tlZC13b3JkLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3Rh
dGlvbnM6IFVuZmxhZworICAgICAgICBlZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1pbmxp
bmUtZmlyc3QtbGFzdC1jb250ZW50ZWRpdGFibGUuaHRtbAorICAgICAgICBhcyBpdCBwYXNzZXMg
bm93LgorCiAyMDEzLTAzLTEzICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQu
b3JnPgogCiAgICAgICAgIFtDU1MgR3JpZCBMYXlvdXRdIEhhbmRsZSBtaW4td2lkdGggLyBtYXgt
d2lkdGggb24gdGhlIGdyaWQgZWxlbWVudApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9kZWxldGluZy9zbWFydC1lZGl0aW5nLWRpc2FibGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL2RlbGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAppbmRleCA3ZWIzMGQyMjEx
ZDBjMGQ4MTliZWYyZjVlNzM2ODQ4MTk4MWRlZDY5Li5kMGY3ZDdhZjE1OGRhMjVjODc4NzZjODgz
NmFmMDdiYWE3NDZhYjg5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2RlbGV0aW5n
L3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2Rl
bGV0aW5nL3NtYXJ0LWVkaXRpbmctZGlzYWJsZWQuaHRtbApAQCAtNSw2ICs1LDcgQEAKIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRy
dWUpOwogfQogCiBmdW5jdGlvbiBlZGl0aW5nVGVzdCgpIHsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwgYi9M
YXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay1iZXNpZGUtY3Itc3Bhbi5o
dG1sCmluZGV4IDhiOThiYTcyZmJmYzc0MGFmYTM1YzJkMDhhYzk1NzdhYjZiOTllOWEuLjhkNWNi
NzZiN2FkYjE4Nzc4NDUxYWVlZjUyN2FlZTM2YzBkOGZiYjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLWJlc2lkZS1jci1zcGFuLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2stYmVzaWRlLWNyLXNw
YW4uaHRtbApAQCAtNCw3ICs0LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZChmYWxzZSk7Ci0gICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJh
aWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCh0cnVlKTsKKyAgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiB9CiAKIGZ1bmN0aW9uIGdl
dFBvc2l0aW9uT2ZOb2RlKGlkKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZG91YmxlY2xpY2std2hpdGVzcGFjZS1jcmFzaC5odG1sCmluZGV4IDQw
ZTI0MTM4MjFlOGU4ODQwNzk3OGFhODM3NjkzNzdjODY4NmFmOGYuLmM5YjQ0ZTZjNjZmMzk1YTVi
MDdmZjM5MzM0NDEyNjFmYTQ5MzY5YTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcv
c2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtY3Jhc2guaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0ZXNwYWNlLWNyYXNoLmh0bWwK
QEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERl
bGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hp
dGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RU
cmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVjbGljay13aGl0
ZXNwYWNlLWltZy1jcmFzaC5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS1pbWctY3Jhc2guaHRtbAppbmRleCBmMjgwYTI2YTc2OWE5NWE3
OWRkYTZkNDQ2NzE2NGRmZDQ0NjM3NTA0Li5mNzRhYTI2NTY3NzY1NjM1OGE3OTU5ODZlM2EzNzk5
YzdmY2VmNjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3Vi
bGVjbGljay13aGl0ZXNwYWNlLWltZy1jcmFzaC5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdoaXRlc3BhY2UtaW1nLWNyYXNoLmh0bWwKQEAgLTQs
NyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGlu
Z1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91Ymxl
Y2xpY2std2hpdGVzcGFjZS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZG91
YmxlY2xpY2std2hpdGVzcGFjZS5odG1sCmluZGV4IDg1MzBmYmM1MzFhNDUzYTZhZjVmYmYzOWQ1
ZjZmMWVhYWY5OGI3ZGMuLjdkODNmYjFmYTFlNThiNWU3NDE1ZTJmM2FlMWYyOTRkYzJkZWVjMWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2RvdWJsZWNsaWNrLXdo
aXRlc3BhY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9kb3VibGVj
bGljay13aGl0ZXNwYWNlLmh0bWwKQEAgLTQsNyArNCw3IEBACiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgIGludGVybmFscy5zZXR0
aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwotICAgICB0ZXN0UnVubmVy
LnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CisgICAgIGludGVybmFs
cy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOwogfQog
CiBmdW5jdGlvbiBnZXRQb3NpdGlvbk9mTm9kZShpZCkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmlyc3Qt
bGFzdC1jb250ZW50ZWRpdGFibGUuanMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9z
Y3JpcHQtdGVzdHMvZG91YmxlY2xpY2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxl
LmpzCmluZGV4IGVlNjU1ZGMwNzJhZmYyYjI1ZmI3MjM1Njk1MDMwOTA5NWMxYzJlMzkuLmU3YmRm
ZjVjZDI2MzMyNzg3ODZlNjJmNjgyMjE5OTA5YTk3MTZjMjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL3NjcmlwdC10ZXN0cy9kb3VibGVjbGljay1pbmxpbmUtZmly
c3QtbGFzdC1jb250ZW50ZWRpdGFibGUuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vc2NyaXB0LXRlc3RzL2RvdWJsZWNsaWNrLWlubGluZS1maXJzdC1sYXN0LWNvbnRlbnRl
ZGl0YWJsZS5qcwpAQCAtNzgsNyArNzgsOCBAQCBmdW5jdGlvbiB0ZXN0V2l0aENsaWNrQW5kTW9k
aWZ5KHRhcmdldElubmVySFRNTCwgZXhwZWN0ZWRUZXh0KQogICAgIHNob3VsZEJlKCJ3aW5kb3cu
c2VsZWN0ZWRCeU1vZGlmeSIsIHRvTGl0ZXJhbChleHBlY3RlZFRleHQpKTsKIH0KIAotdGVzdFJ1
bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKGZhbHNlKTsKK2ludGVybmFs
cy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7CitpbnRlcm5hbHMu
c2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAKIHZh
ciBzaG91bGRTZWxlY3RlRmlyc3RXb3JkSW5saW5lID0gIjxzcGFuIGlkPSd0YXJnZXQnIGNvbnRl
bnRFZGl0YWJsZT5zZWxlY3RtZTE8L3NwYW4+IGFuZCBub3Qgc2VsZWN0IHVzIjsKIHRlc3RXaXRo
RG91YmxsZUNsaWNrKHNob3VsZFNlbGVjdGVGaXJzdFdvcmRJbmxpbmUsICJzZWxlY3RtZTEiKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwu
anMgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NwZWxsaW5nL3Jlc291cmNlcy91dGlsLmpzCmluZGV4
IGNmODAzMzQxODg0M2NmMjBjNjY3MWU3Yzg0OTA3YjcwNzJkNDk1MjAuLjA5NGE1M2IyODk2ODhk
ODJkZTRkZTczNjdhOWM5NDMzNGY1NjI0OTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRp
bmcvc3BlbGxpbmcvcmVzb3VyY2VzL3V0aWwuanMKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
cGVsbGluZy9yZXNvdXJjZXMvdXRpbC5qcwpAQCAtMjcsOCArMjcsOCBAQCBmdW5jdGlvbiBpbml0
U3BlbGxUZXN0KHRlc3RFbGVtZW50SWQsIHRlc3RUZXh0LCB0ZXN0RnVuY3Rpb24pCiAgICAgdGVz
dEZ1bmN0aW9uQ2FsbGJhY2sgPSB0ZXN0RnVuY3Rpb247CiAgICAganNUZXN0SXNBc3luYyA9IHRy
dWU7CiAgICAgdGVzdFJ1bm5lci5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZCh0
cnVlKTsKLSAgICB0ZXN0UnVubmVyLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCh0cnVlKTsK
LSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2Up
OworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1
ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVu
YWJsZWQoZmFsc2UpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRVbmlmaWVkVGV4dENoZWNr
ZXJFbmFibGVkKHRydWUpOwogICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRFZGl0aW5nQmVoYXZp
b3IoIndpbiIpOwogICAgIHZhciBkZXN0aW5hdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KHRlc3RFbGVtZW50SWQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGlu
Zy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbCBiL0xh
eW91dFRlc3RzL2VkaXRpbmcvc3BlbGxpbmcvc3BlbGxpbmctZG91YmxlLWNsaWNrZWQtd29yZC13
aXRoLXVuZGVyc2NvcmVzLmh0bWwKaW5kZXggY2E1OTM1ZmUwMDA1YTVhMDYxMzUyY2Y5YTIzZWY2
MzEyM2IxNmEzNi4uNDA2MDcxODEwZDAxYmI5OGU2ZTVmMTNjMzhkNjA5M2QzNmU3ZWFhOCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1kb3VibGUtY2xp
Y2tlZC13b3JkLXdpdGgtdW5kZXJzY29yZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQtd2l0aC11bmRlcnNjb3Jlcy5o
dG1sCkBAIC0yMSw3ICsyMSw4IEBAIGluaXRTcGVsbFRlc3QoImRlc3RpbmF0aW9uIiwgIndlbGxj
b21lXyBob21lLiIsICBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygid2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBE
b3VibGUtY2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRob3V0IHRoZSB0cmFpbGluZyB3aGl0
ZXNwYWNlLgotICAgIHRlc3RSdW5uZXIuc2V0U2VsZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxl
ZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZChmYWxzZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZzZXRQYXJl
bnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2YXIgeSA9
IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRU
b3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKHgsIHkpOwpAQCAtNDksNyArNTAsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlv
biIsICJ3ZWxsY29tZV8gaG9tZS4iLCAgZnVuY3Rpb24odGV4dE5vZGUpIHsKICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoIndpbmRvdy5nZXRTZWxlY3Rpb24oKS50b1N0cmluZygpIiwgIiIpOwog
CiAgICAgLy8gRG91YmxlLWNsaWNrIHRoZSBtaXNzcGVsbGVkIHdvcmQgd2l0aCB0aGUgdHJhaWxp
bmcgd2hpdGVzcGFjZS4KLSAgICB0ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFj
ZUVuYWJsZWQodHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNtYXJ0SW5zZXJ0RGVs
ZXRlRW5hYmxlZChmYWxzZSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWls
aW5nV2hpdGVzcGFjZUVuYWJsZWQodHJ1ZSk7CiAgICAgdmFyIHggPSBkZXN0aW5hdGlvbi5vZmZz
ZXRQYXJlbnQub2Zmc2V0TGVmdCArIGRlc3RpbmF0aW9uLm9mZnNldExlZnQgKyA0MDsKICAgICB2
YXIgeSA9IGRlc3RpbmF0aW9uLm9mZnNldFBhcmVudC5vZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5v
ZmZzZXRUb3AgKyBkZXN0aW5hdGlvbi5vZmZzZXRIZWlnaHQgLyAyOwogICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHgsIHkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zcGVs
bGluZy9zcGVsbGluZy1kb3VibGUtY2xpY2tlZC13b3JkLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0
aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAppbmRleCAyNDky
NzNkMmUwYWJhYjlkOWJjZWM5MjdhMDljM2ZjNDZjZTAyN2NmLi45ZDI0OWZkN2YwZWZlZTI0M2Jj
NmIwZmIyOWU1Y2VlNTk1NmVjNGVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Nw
ZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9lZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWRvdWJsZS1jbGlja2VkLXdvcmQuaHRtbApAQCAt
MjEsNyArMjEsOCBAQCBpbml0U3BlbGxUZXN0KCJkZXN0aW5hdGlvbiIsICJ3ZWxsY29tZSBob21l
LiIsIGZ1bmN0aW9uKHRleHROb2RlKSB7CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5k
b3cuZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKSIsICIiKTsKIAogICAgIC8vIERvdWJsZS1jbGlj
ayB0aGUgbWlzc3BlbGxlZCB3b3JkIHdpdGhvdXQgdHJhaWxpbmcgd2hpdGVzcGFjZS4KLSAgICB0
ZXN0UnVubmVyLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQoZmFsc2UpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQodHJ1ZSk7Cisg
ICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNlbGVjdFRyYWlsaW5nV2hpdGVzcGFjZUVuYWJsZWQo
ZmFsc2UpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQg
KyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRp
b24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsK
QEAgLTQ5LDcgKzUwLDggQEAgaW5pdFNwZWxsVGVzdCgiZGVzdGluYXRpb24iLCAid2VsbGNvbWUg
aG9tZS4iLCBmdW5jdGlvbih0ZXh0Tm9kZSkgewogICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygi
d2luZG93LmdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCkiLCAiIik7CiAKICAgICAvLyBEb3VibGUt
Y2xpY2sgdGhlIG1pc3NwZWxsZWQgd29yZCB3aXRoIHRyYWlsaW5nIHdoaXRlc3BhY2UuCi0gICAg
dGVzdFJ1bm5lci5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKHRydWUpOworICAg
IGludGVybmFscy5zZXR0aW5ncy5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoZmFsc2UpOwor
ICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVk
KHRydWUpOwogICAgIHZhciB4ID0gZGVzdGluYXRpb24ub2Zmc2V0UGFyZW50Lm9mZnNldExlZnQg
KyBkZXN0aW5hdGlvbi5vZmZzZXRMZWZ0ICsgNDA7CiAgICAgdmFyIHkgPSBkZXN0aW5hdGlvbi5v
ZmZzZXRQYXJlbnQub2Zmc2V0VG9wICsgZGVzdGluYXRpb24ub2Zmc2V0VG9wICsgZGVzdGluYXRp
b24ub2Zmc2V0SGVpZ2h0IC8gMjsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyh4LCB5KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYjVmNjg2NDFh
ODA5Y2RkNGE0NDNiOGRmZjA1MGJhMjNiZjA4OGM5ZC4uYmM3MmFiYzFjNzZmZGNkNTg4NWNjNWI0
YmRiNDUyOTU1M2U2MmNlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTM3NSw5ICszNzUsNiBAQCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3Nz
LW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbAogIyBXZWJLaXRUZXN0UnVu
bmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLmFkZERpc2FsbG93ZWRVUkwKIHBsdWdpbnMv
Z2V0LXVybC10aGF0LXRoZS1yZXNvdXJjZS1sb2FkLWRlbGVnYXRlLXdpbGwtZGlzYWxsb3cuaHRt
bAogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U2Vs
ZWN0VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZAotZWRpdGluZy9zZWxlY3Rpb24vZG91YmxlY2xp
Y2staW5saW5lLWZpcnN0LWxhc3QtY29udGVudGVkaXRhYmxlLmh0bWwKLQogIyBXZWJLaXRUZXN0
UnVubmVyIG5lZWRzIGxheW91dFRlc3RDb250cm9sbGVyLnBhZ2VQcm9wZXJ0eQogcHJpbnRpbmcv
cGFnZS1ydWxlLXNlbGVjdGlvbi5odG1sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>193507</attachid>
            <date>2013-03-18 02:17:51 -0700</date>
            <delta_ts>2013-03-18 04:16:50 -0700</delta_ts>
            <desc>Fix BlackBerry build.</desc>
            <filename>109404.diff</filename>
            <type>text/plain</type>
            <size>1898</size>
            <attacher name="Alberto Garcia">berto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cgYi9Tb3VyY2Uv
V2ViS2l0L2JsYWNrYmVycnkvQ2hhbmdlTG9nCmluZGV4IGM0ZTliNzYuLmNmYTVkODQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdC9ibGFja2JlcnJ5L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEzLTAzLTE4ICBB
bGJlcnRvIEdhcmNpYSAgPGFnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBBZGQgc2VsZWN0
VHJhaWxpbmdXaGl0ZXNwYWNlRW5hYmxlZCBzZXR0aW5nIHRvIFdlYkNvcmU6OlBhZ2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwOTQwNAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBCbGFja0JlcnJ5
IGJ1aWxkLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50QmxhY2tCZXJy
eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3JDbGllbnRCbGFja0JlcnJ5OjpzbWFydElu
c2VydERlbGV0ZUVuYWJsZWQpOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yQ2xpZW50QmxhY2tC
ZXJyeTo6aXNTZWxlY3RUcmFpbGluZ1doaXRlc3BhY2VFbmFibGVkKToKKwogMjAxMy0wMy0xNSAg
QXJ2aWQgTmlsc3NvbiAgPGFuaWxzc29uQHJpbS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnld
IEJsYWNrQmVycnk6OlBsYXRmb3JtOjpHcmFwaGljczo6R3JhcGhpY3NDb250ZXh0IGludGVncmF0
aW9uIHJlbGF0ZWQgY2hhbmdlcyBpbiBTb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRC
bGFja0JlcnJ5LmNwcCBiL1NvdXJjZS9XZWJLaXQvYmxhY2tiZXJyeS9XZWJDb3JlU3VwcG9ydC9F
ZGl0b3JDbGllbnRCbGFja0JlcnJ5LmNwcAppbmRleCBmODRhMzlkLi45YjQyM2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2JsYWNrYmVycnkvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50
QmxhY2tCZXJyeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9ibGFja2JlcnJ5L1dlYkNvcmVTdXBw
b3J0L0VkaXRvckNsaWVudEJsYWNrQmVycnkuY3BwCkBAIC03MCw3ICs3MCw3IEBAIGJvb2wgRWRp
dG9yQ2xpZW50QmxhY2tCZXJyeTo6c2hvdWxkRGVsZXRlUmFuZ2UoUmFuZ2UqIHJhbmdlKQogCiBi
b29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpCiB7
Ci0gICAgUGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZSk7CisgICAg
UGFnZSogcGFnZSA9IFdlYlBhZ2VQcml2YXRlOjpjb3JlKG1fd2ViUGFnZVByaXZhdGUtPm1fd2Vi
UGFnZSk7CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJu
IHBhZ2UtPnNldHRpbmdzKCktPnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwpAQCAtNzgsNyAr
NzgsNyBAQCBib29sIEVkaXRvckNsaWVudEJsYWNrQmVycnk6OnNtYXJ0SW5zZXJ0RGVsZXRlRW5h
YmxlZCgpCiAKIGJvb2wgRWRpdG9yQ2xpZW50QmxhY2tCZXJyeTo6aXNTZWxlY3RUcmFpbGluZ1do
aXRlc3BhY2VFbmFibGVkKCkKIHsKLSAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNv
cmUobV93ZWJQYWdlKTsKKyAgICBQYWdlKiBwYWdlID0gV2ViUGFnZVByaXZhdGU6OmNvcmUobV93
ZWJQYWdlUHJpdmF0ZS0+bV93ZWJQYWdlKTsKICAgICBpZiAoIXBhZ2UpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICByZXR1cm4gcGFnZS0+c2V0dGluZ3MoKS0+c2VsZWN0VHJhaWxpbmdXaGl0
ZXNwYWNlRW5hYmxlZCgpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>