<?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>176119</bug_id>
          
          <creation_ts>2017-08-30 12:41:01 -0700</creation_ts>
          <short_desc>[GTK][WPE] API for WebView audio mute support</short_desc>
          <delta_ts>2020-05-29 15:35:34 -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>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Hussam Al-Tayeb">ht990332</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>jan.brummer</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>pnormand</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1343648</commentid>
    <comment_count>0</comment_count>
    <who name="Hussam Al-Tayeb">ht990332</who>
    <bug_when>2017-08-30 12:41:01 -0700</bug_when>
    <thetext>Right now epiphany shows an audio icon on tabs that are playing audio. It would be nice if webkit provided a way to mute tabs that are playing audio. The tabs would then show a &apos;muted audio&apos; icon instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1522808</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-30 19:37:08 -0700</bug_when>
    <thetext>We already have webkit_web_view_is_playing_audio(), what we need is something like webkit_web_view_set_can_play_audio(). It needs to be a property of WebKitWebView in order to implement the browser UI we want.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596229</commentid>
    <comment_count>2</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2019-12-06 06:41:41 -0800</bug_when>
    <thetext>The infrastructure is already in place. You only need a new API in the WebView, that would call WebPage::setMuted().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1596239</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-06 07:13:48 -0800</bug_when>
    <thetext>OK cool. Sounds low-hanging.

It&apos;s likely a little more complicated than that though, because the page will swap on navigation and we don&apos;t want the muted state to be reset. So when a new page becomes associated to the view, sync the muted state from the old page to the new page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607044</commentid>
    <comment_count>4</comment_count>
      <attachid>387812</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-01-15 11:34:26 -0800</bug_when>
    <thetext>Created attachment 387812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607045</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-01-15 11:35:41 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607047</commentid>
    <comment_count>6</comment_count>
      <attachid>387812</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-01-15 11:42:01 -0800</bug_when>
    <thetext>Comment on attachment 387812
Patch

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

&gt; Source/WebKit/ChangeLog:10
&gt; +        No new tests (OOPS!).

A basic API test would check the default value, change it, then get it again and verify that it&apos;s actually changed. Tools/TestWebKitAPI/glib/WebKitGLib/WebViewTest.cpp would be a good place.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3141
&gt; + * Returns: %TRUE% if @web_view audio is muted or %FALSE% is audio is not muted.

% goes only before, not after, TRUE and FALSE

&gt; Source/WebKit/UIProcess/WebPageProxy.h:1263
&gt; +    bool getMuted();

Should be const, and code style is to avoid &quot;get&quot;:

bool isMuted() const;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1607442</commentid>
    <comment_count>7</comment_count>
      <attachid>387812</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-01-16 06:31:00 -0800</bug_when>
    <thetext>Comment on attachment 387812
Patch

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebView.h:358
&gt; +webkit_web_view_get_audio_muted                      (WebKitWebView             *webView);

Probably we also want a “WebKitWebView.audio-muted” GObject property,
the same way we already have a “WebKitWebView.is-playing-audio” one.
Using a property can be useful e.g. to easily bind a toggle button to
it in the UI without needing to write additional code. Also it would
allow to watch the property by connecting to the “notify::audio-muted”
signal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651208</commentid>
    <comment_count>8</comment_count>
      <attachid>399004</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-11 01:52:26 -0700</bug_when>
    <thetext>Created attachment 399004
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651209</commentid>
    <comment_count>9</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-11 01:53:40 -0700</bug_when>
    <thetext>I&apos;ve updated the patch, added the requested property and added an example implementation for MiniBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651267</commentid>
    <comment_count>10</comment_count>
      <attachid>399004</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-11 07:39:14 -0700</bug_when>
    <thetext>Comment on attachment 399004
Patch

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

Let&apos;s say I have muted the audio for the web view using webkit_web_view_set_audio_muted(). That changes a property of the view, so it should stay muted if the view swaps to a new page. Now the user loads a new webpage from a different origin. The view&apos;s WebPageProxy stays the same, but the WebCore::Page backing it in the web process is swapped. The new page is probably not muted until we mute it by calling getPage(webView).setMuted. So we probably need to do that manually when the process swaps... right? Can you test this please? I bet the muted state gets lost if we don&apos;t have any code to persist it.

I see that *somehow* webkitWebViewIsPlayingAudioChanged is being called during process swaps, because the volume indicator on my Epiphany tabs resets properly. But this case is different because here we have to persist the muted state across multiple underlying pages, rather than just indicate what the state is.

Other than that concern, the code LGTM. This also needs approved by a second GTK reviewer since it adds new API, and also an Apple owner since it touches cross-platform WebKit layer.

&gt; Source/WebCore/ChangeLog:3
&gt; +        Add isPageMuteDidChange to inform about audio mute changes.

Just keep the title of the bug report here.

&gt; Source/WebCore/page/Page.cpp:1852
&gt;      forEachDocument([] (Document&amp; document) {
&gt;          document.pageMutedStateDidChange();
&gt;      });
&gt; +
&gt; +    chrome().client().isPageMutedDidChange();
&gt;  }

I wonder what other code might call Page::setMuted? Is it something that will only be used by the web view level? If so, then this is fine. (If not, the API won&apos;t work be &quot;sticky&quot; as expected... we don&apos;t want anything besides webkit_web_view_set_audio_muted() to override the muted state.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651270</commentid>
    <comment_count>11</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-11 07:51:21 -0700</bug_when>
    <thetext>&gt; Let&apos;s say I have muted the audio for the web view using
&gt; webkit_web_view_set_audio_muted(). That changes a property of the view, so
&gt; it should stay muted if the view swaps to a new page. Now the user loads a
&gt; new webpage from a different origin. The view&apos;s WebPageProxy stays the same,
&gt; but the WebCore::Page backing it in the web process is swapped. The new page
&gt; is probably not muted until we mute it by calling getPage(webView).setMuted.
&gt; So we probably need to do that manually when the process swaps... right? Can
&gt; you test this please? I bet the muted state gets lost if we don&apos;t have any
&gt; code to persist it.

Tested youtube video and muted the page then switched over to a complete new origin and played a blog entry. Mute state is preserved.

&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Add isPageMuteDidChange to inform about audio mute changes.
&gt; 
&gt; Just keep the title of the bug report here.

OK, will change it.

&gt; &gt; Source/WebCore/page/Page.cpp:1852
&gt; &gt;      forEachDocument([] (Document&amp; document) {
&gt; &gt;          document.pageMutedStateDidChange();
&gt; &gt;      });
&gt; &gt; +
&gt; &gt; +    chrome().client().isPageMutedDidChange();
&gt; &gt;  }
&gt; 
&gt; I wonder what other code might call Page::setMuted? Is it something that
&gt; will only be used by the web view level? If so, then this is fine. (If not,
&gt; the API won&apos;t work be &quot;sticky&quot; as expected... we don&apos;t want anything besides
&gt; webkit_web_view_set_audio_muted() to override the muted state.)

Haven&apos;t had a closer look at the internal calling as i took is-playing-audio as a base and added audio mute analog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651665</commentid>
    <comment_count>12</comment_count>
      <attachid>399110</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 02:13:33 -0700</bug_when>
    <thetext>Created attachment 399110
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651666</commentid>
    <comment_count>13</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 02:15:39 -0700</bug_when>
    <thetext>I&apos;ve updated the patch: 
 - Simplified code (no longer touches WebCore components)
 - Fixed new symbol API version
 - Integrated your findings</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651681</commentid>
    <comment_count>14</comment_count>
      <attachid>399110</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 04:16:35 -0700</bug_when>
    <thetext>Comment on attachment 399110
Patch

Can you add tests as well please? In Tools/TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp for instance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651696</commentid>
    <comment_count>15</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 05:13:04 -0700</bug_when>
    <thetext>I tried it, but the tests are not compiling for me (without my test) -.-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651699</commentid>
    <comment_count>16</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 05:28:47 -0700</bug_when>
    <thetext>What is the compilation error?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651702</commentid>
    <comment_count>17</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 05:42:01 -0700</bug_when>
    <thetext>It&apos;s during linking:


*snip*
Tools/TestWebKitAPI/CMakeFiles/TestWebKitAPIInjectedBundle.dir/InjectedBundleController.cpp.o:InjectedBundleController.cpp:function TestWebKitAPI::InjectedBundleController::initialize(OpaqueWKBundle const*, void const*): error: undefined reference to &apos;WKBundleSetClient&apos;
Tools/TestWebKitAPI/CMakeFiles/TestWebKitAPIInjectedBundle.dir/InjectedBundleController.cpp.o:InjectedBundleController.cpp:function TestWebKitAPI::InjectedBundleController::initialize(OpaqueWKBundle const*, void const*): error: undefined reference to &apos;WKStringCreateWithUTF8CString&apos;
Tools/TestWebKitAPI/CMakeFiles/TestWebKitAPIInjectedBundle.dir/InjectedBundleController.cpp.o:InjectedBundleController.cpp:function TestWebKitAPI::InjectedBundleController::initialize(OpaqueWKBundle const*, void const*): error: undefined reference to &apos;WKDictionaryGetItemForKey&apos;
*snip*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651724</commentid>
    <comment_count>18</comment_count>
      <attachid>399110</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 07:24:26 -0700</bug_when>
    <thetext>Comment on attachment 399110
Patch

The major change here is that the GObject property was removed (probably a good idea, if Epiphany doesn&apos;t need it).

I think the API tests are probably not intended to build unless using the update-webkitgtk-libs/build-webkit scripts. I&apos;ll add that to my TODO list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651725</commentid>
    <comment_count>19</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 07:26:11 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #18)
&gt; I think the API tests are probably not intended to build unless using the
&gt; update-webkitgtk-libs/build-webkit scripts. I&apos;ll add that to my TODO list.

(To my long-term TODO. In the meantime, try using update-webkitgtk-libs and then build-webkit --gtk.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651726</commentid>
    <comment_count>20</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 07:49:28 -0700</bug_when>
    <thetext>So i&apos;ve rebuild everything with the script, everything compiles and links. But i still cannot execute my test: neither executing it directly due to libraries not found nor with Tools/Scripts/run-gtk-tests (python2 vs python3).

 File &quot;Tools/Scripts/run-gtk-tests&quot;, line 112
    print &quot;Could not start accessibility bus, so disabling TestWebKitAccessibility&quot;
          ^
SyntaxError: Missing parentheses in call to &apos;print&apos;. Did you mean print(&quot;Could not start accessibility bus, so disabling TestWebKitAccessibility&quot;)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651727</commentid>
    <comment_count>21</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 07:53:32 -0700</bug_when>
    <thetext>OK, obviously nobody has attempted to use the run-gtk-tests script in a long time, at least not since /usr/bin/python became python3 in Fedora. It deserves a separate bug report.

Probably it&apos;s not reasonable to expect you to add a test when the test script is clearly not being maintained. At the same time, we do require a test to add the new API. So we are stuck. :) Maybe try running 2to3 on the test script and see if that&apos;s enough to make it work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651728</commentid>
    <comment_count>22</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 08:00:18 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #21)
&gt; OK, obviously nobody has attempted to use the run-gtk-tests script in a long
&gt; time, at least not since /usr/bin/python became python3 in Fedora. It
&gt; deserves a separate bug report.
&gt; 
&gt; Probably it&apos;s not reasonable to expect you to add a test when the test
&gt; script is clearly not being maintained. At the same time, we do require a
&gt; test to add the new API. So we are stuck. :) Maybe try running 2to3 on the
&gt; test script and see if that&apos;s enough to make it work?

Michael, please try to remember not everybody here is a Fedora user. Much less the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651729</commentid>
    <comment_count>23</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 08:01:13 -0700</bug_when>
    <thetext>Tried to update the script to python3, but the dependency needs to be fixed as well. Then i tried to set python2 as python in my local path, but due to missing dependencies which i cannot install at the moment it does not work. Am i supposed to fix webkit toolchain just to add a small contribution?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651731</commentid>
    <comment_count>24</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 08:07:08 -0700</bug_when>
    <thetext>WebKit&apos;s migration to Python3 is not complete yet... Meanwhile perhaps you can setup a python2 pipenv or virtualenv.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651732</commentid>
    <comment_count>25</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 08:08:55 -0700</bug_when>
    <thetext>Thanks for your help, i&apos;ll give it a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651733</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 08:17:45 -0700</bug_when>
    <thetext>At this point, I would sooner spend effort trying to fix the linker error, but your choice....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651735</commentid>
    <comment_count>27</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 08:19:59 -0700</bug_when>
    <thetext>Python2 attempt on Fedora 32 results in:

Tools/Scripts/run-gtk-tests 
Traceback (most recent call last):
  File &quot;/app/webkit/Tools/Scripts/run-gtk-tests&quot;, line 25, in &lt;module&gt;
    from gi.repository import Gio, GLib
  File &quot;/home/jbrummer/.local/lib/python2.7/site-packages/gi/__init__.py&quot;, line 42, in &lt;module&gt;
    from . import _gi
ImportError: /home/jbrummer/.local/lib/python2.7/site-packages/gi/_gi.so: undefined symbol: PyUnicodeUCS4_AsUTF8String


So it will get more complicated. I could give it another try with standard build flow that i&apos;m used to as Michael suggested. But in case this will not success:

could someone take over and add the small test (i could provide the test sources)...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651753</commentid>
    <comment_count>28</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2020-05-12 09:08:44 -0700</bug_when>
    <thetext>I can take a look tomorrow (West Europe daytime).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651878</commentid>
    <comment_count>29</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 13:04:23 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #26)
&gt; At this point, I would sooner spend effort trying to fix the linker error,
&gt; but your choice....

We determined this was caused by using -DENABLE_API_TESTS=ON without -DENABLE_DEVELOPER_MODE=ON. This should probably be fixed, but that&apos;s probably too much adventure for this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651890</commentid>
    <comment_count>30</comment_count>
      <attachid>399162</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-12 13:22:06 -0700</bug_when>
    <thetext>Created attachment 399162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1651927</commentid>
    <comment_count>31</comment_count>
      <attachid>399162</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-12 14:05:52 -0700</bug_when>
    <thetext>Comment on attachment 399162
Patch

Test LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652160</commentid>
    <comment_count>32</comment_count>
      <attachid>399162</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-13 02:14:56 -0700</bug_when>
    <thetext>Comment on attachment 399162
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3198
&gt; +void webkit_web_view_set_audio_muted(WebKitWebView* webView, gboolean muted)

This is weird, because is-audio-muted is a read-only property. I know this is not set_is_audio_muted, but it&apos;s still confusing.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5982
&gt; +bool WebPageProxy::isAudioMuted() const
&gt; +{
&gt; +    return (m_mutedState &amp; MediaProducer::AudioIsMuted);
&gt; +}

This could be in the header

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5082
&gt; +    send(Messages::WebPageProxy::IsPageMutedDidChange());

Do we really need to get notified back by the web process, I thought this was because setting muted might fail, but since this is called unconditionally, and the UI process is getting the value already set there, I don&apos;t think we need this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652161</commentid>
    <comment_count>33</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-13 02:47:05 -0700</bug_when>
    <thetext>Thanks for your review, so what&apos;s your recommendation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652169</commentid>
    <comment_count>34</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-13 04:05:30 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5082
&gt; &gt; +    send(Messages::WebPageProxy::IsPageMutedDidChange());
&gt; 
&gt; Do we really need to get notified back by the web process, I thought this
&gt; was because setting muted might fail, but since this is called
&gt; unconditionally, and the UI process is getting the value already set there,
&gt; I don&apos;t think we need this.
At least this way we know the initial value for a page or in case the page mute is changed somewhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652172</commentid>
    <comment_count>35</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-13 04:42:31 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #33)
&gt; Thanks for your review, so what&apos;s your recommendation?

I guess I would make the property readwrite</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652175</commentid>
    <comment_count>36</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-13 04:46:37 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #34)
&gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5082
&gt; &gt; &gt; +    send(Messages::WebPageProxy::IsPageMutedDidChange());
&gt; &gt; 
&gt; &gt; Do we really need to get notified back by the web process, I thought this
&gt; &gt; was because setting muted might fail, but since this is called
&gt; &gt; unconditionally, and the UI process is getting the value already set there,
&gt; &gt; I don&apos;t think we need this.
&gt; At least this way we know the initial value for a page or in case the page
&gt; mute is changed somewhere else.

I don&apos;t understand. The mute value is always set by the UI process, either calling setMuted or as initial parameter, so the initial value is the one we have in the WebPageProxy. Or did I miss anything? I don&apos;t know what you mean by changed somewhere else. WebPage::setMuted() is only called by the message handler when the IPC message is received and with the initial value. In both cases it&apos;s the value just set by the Ui process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652176</commentid>
    <comment_count>37</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-13 04:49:45 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #36)
&gt; (In reply to Jan-Michael Brummer from comment #34)
&gt; &gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5082
&gt; &gt; &gt; &gt; +    send(Messages::WebPageProxy::IsPageMutedDidChange());
&gt; &gt; &gt; 
&gt; &gt; &gt; Do we really need to get notified back by the web process, I thought this
&gt; &gt; &gt; was because setting muted might fail, but since this is called
&gt; &gt; &gt; unconditionally, and the UI process is getting the value already set there,
&gt; &gt; &gt; I don&apos;t think we need this.
&gt; &gt; At least this way we know the initial value for a page or in case the page
&gt; &gt; mute is changed somewhere else.
&gt; 
&gt; I don&apos;t understand. The mute value is always set by the UI process, either
&gt; calling setMuted or as initial parameter, so the initial value is the one we
&gt; have in the WebPageProxy. Or did I miss anything? I don&apos;t know what you mean
&gt; by changed somewhere else. WebPage::setMuted() is only called by the message
&gt; handler when the IPC message is received and with the initial value. In both
&gt; cases it&apos;s the value just set by the Ui process.
You are right, I&apos;ve mixed it up: It is only set by setMuted and the initial value. So what exactly are you proposing here? It&apos;s my second contribution here and i&apos;m not yet 100% familiar with the whole code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652177</commentid>
    <comment_count>38</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-13 04:54:57 -0700</bug_when>
    <thetext>Do you want me to remove the changes in WebPage.cpp and just set the property in the webkit_web_view_set_audio_muted (assuming that the initial value is FALSE)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652187</commentid>
    <comment_count>39</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-13 05:52:29 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #37)
&gt; (In reply to Carlos Garcia Campos from comment #36)
&gt; &gt; (In reply to Jan-Michael Brummer from comment #34)
&gt; &gt; &gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:5082
&gt; &gt; &gt; &gt; &gt; +    send(Messages::WebPageProxy::IsPageMutedDidChange());
&gt; &gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Do we really need to get notified back by the web process, I thought this
&gt; &gt; &gt; &gt; was because setting muted might fail, but since this is called
&gt; &gt; &gt; &gt; unconditionally, and the UI process is getting the value already set there,
&gt; &gt; &gt; &gt; I don&apos;t think we need this.
&gt; &gt; &gt; At least this way we know the initial value for a page or in case the page
&gt; &gt; &gt; mute is changed somewhere else.
&gt; &gt; 
&gt; &gt; I don&apos;t understand. The mute value is always set by the UI process, either
&gt; &gt; calling setMuted or as initial parameter, so the initial value is the one we
&gt; &gt; have in the WebPageProxy. Or did I miss anything? I don&apos;t know what you mean
&gt; &gt; by changed somewhere else. WebPage::setMuted() is only called by the message
&gt; &gt; handler when the IPC message is received and with the initial value. In both
&gt; &gt; cases it&apos;s the value just set by the Ui process.
&gt; You are right, I&apos;ve mixed it up: It is only set by setMuted and the initial
&gt; value. So what exactly are you proposing here?

We can just notify the property when we send the message to the web process.

&gt; It&apos;s my second contribution
&gt; here and i&apos;m not yet 100% familiar with the whole code.

Sure, feel free to ask any question here or in IRC. It&apos;s normal for first contributions to iterate several times on reviews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652189</commentid>
    <comment_count>40</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-13 05:54:54 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #38)
&gt; Do you want me to remove the changes in WebPage.cpp and just set the
&gt; property in the webkit_web_view_set_audio_muted (assuming that the initial
&gt; value is FALSE)?

The initial value is FALSE.

MediaProducer::MutedStateFlags m_mutedState { WebCore::MediaProducer::NoneMuted }

The initial value sent to the web process will be that one unless the app calls setMuted() before the web process is spawned.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652232</commentid>
    <comment_count>41</comment_count>
      <attachid>399262</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-13 07:53:22 -0700</bug_when>
    <thetext>Created attachment 399262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652747</commentid>
    <comment_count>42</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-14 12:36:50 -0700</bug_when>
    <thetext>I&apos;ve updated the patch according to your review comments. Time for another review?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652948</commentid>
    <comment_count>43</comment_count>
      <attachid>399262</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-14 22:37:21 -0700</bug_when>
    <thetext>Comment on attachment 399262
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1289
&gt; +            WEBKIT_PARAM_READABLE));

I would make this read write since we have a wayt to get and set the muted value.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3187
&gt; +static void webkitWebViewIsAudioMutedChanged(WebKitWebView* webView)
&gt; +{
&gt; +    g_object_notify(G_OBJECT(webView), &quot;is-audio-muted&quot;);
&gt; +}

I don&apos;t think we need a function for one line that is only called in one place.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3190
&gt; + * webkit_web_view_set_audio_muted:

If we make the property read write this should be set_is_audio_muted

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3203
&gt; +    getPage(webView).setMuted(muted ? WebCore::MediaProducer::AudioIsMuted : WebCore::MediaProducer::NoneMuted);
&gt; +    webkitWebViewIsAudioMutedChanged(webView);

You should check the value has actually changed before emitting notify.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5982
&gt; +bool WebPageProxy::isAudioMuted() const
&gt; +{
&gt; +    return (m_mutedState &amp; MediaProducer::AudioIsMuted);
&gt; +}

This could be in the header. The parenthesis aren&apos;t needed.

&gt; Tools/MiniBrowser/gtk/BrowserTab.c:365
&gt; +static void audioClicked(GtkButton *button, gpointer user_data)

user_data -&gt; userData

&gt; Tools/MiniBrowser/gtk/BrowserTab.c:373
&gt; +static void audioMutedChanged(WebKitWebView *webView, GParamSpec *pspec, gpointer user_data)

Ditto.

&gt; Tools/MiniBrowser/gtk/BrowserTab.c:379
&gt; +    gboolean muted;
&gt; +
&gt; +    muted = webkit_web_view_is_audio_muted(tab-&gt;webView);

gboolean muted = webkit_web_view_is_audio_muted(tab-&gt;webView);

&gt; Tools/MiniBrowser/gtk/BrowserTab.c:383
&gt; +        image = gtk_image_new_from_icon_name(&quot;audio-volume-high-symbolic&quot;, GTK_ICON_SIZE_MENU);
&gt; +    else
&gt; +        image = gtk_image_new_from_icon_name(&quot;audio-volume-muted-symbolic&quot;, GTK_ICON_SIZE_MENU);

Instead of repeating this I would 

GtkWidget *image = gtk_image_new_from_icon_name(muted ? &quot;audio-volume-muted-symbolic&quot; : &quot;audio-volume-high-symbolic&quot;, GTK_ICON_SIZE_MENU);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652955</commentid>
    <comment_count>44</comment_count>
      <attachid>399458</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-14 23:13:26 -0700</bug_when>
    <thetext>Created attachment 399458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1652956</commentid>
    <comment_count>45</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-14 23:14:24 -0700</bug_when>
    <thetext>Thanks for the quick review, I&apos;ve integrated changes for all your findings/recommendations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653564</commentid>
    <comment_count>46</comment_count>
      <attachid>399458</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-18 05:15:05 -0700</bug_when>
    <thetext>Comment on attachment 399458
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1279
&gt; +     * This property becomes %TRUE as soon as web content is muted. Otherwise

What do you mean by web content here? This doesn&apos;t change when you mute the audio using the media settings, for example, or any js api. In that case, the is-playing-audio property changes. And the other way around, setting this property to TRUE doesn&apos;t change the is-playing-audio property nor the media controls. I find this a it confusing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653569</commentid>
    <comment_count>47</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-18 06:07:40 -0700</bug_when>
    <thetext>Please propose a better description so that there is no need not be changed again (due to project or language barrier)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654470</commentid>
    <comment_count>48</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-20 09:08:22 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #47)
&gt; Please propose a better description so that there is no need not be changed
&gt; again (due to project or language barrier)

I&apos;m not sure to be honest. Maybe instead of a property that you think you might monitor for changes in the page mute we could just add webkit_web_view_mute() and webkit_web_view_is_muted(), documenting that that we are making the view muted, independently of the mute state of the media elements. That way it&apos;s clear it&apos;s a user API only action, not something that can be changed by the web content. And that it doesn&apos;t affect the actual web contents either (media elements are not actually muted). What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654568</commentid>
    <comment_count>49</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-20 12:03:21 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #48)
&gt; I&apos;m not sure to be honest. Maybe instead of a property that you think you
&gt; might monitor for changes in the page mute we could just add
&gt; webkit_web_view_mute() and webkit_web_view_is_muted()

Well the property is probably important because it allows using GBinding to sync UI to the state of the property.

&gt; documenting that that
&gt; we are making the view muted, independently of the mute state of the media
&gt; elements. That way it&apos;s clear it&apos;s a user API only action, not something
&gt; that can be changed by the web content. And that it doesn&apos;t affect the
&gt; actual web contents either (media elements are not actually muted). What do
&gt; you think?

Of course, we should document this. I guess we could also rename from is-audio-muted to is-muted if you think that&apos;s more clear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654828</commentid>
    <comment_count>50</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-21 01:03:31 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #49)
&gt; (In reply to Carlos Garcia Campos from comment #48)
&gt; &gt; I&apos;m not sure to be honest. Maybe instead of a property that you think you
&gt; &gt; might monitor for changes in the page mute we could just add
&gt; &gt; webkit_web_view_mute() and webkit_web_view_is_muted()
&gt; 
&gt; Well the property is probably important because it allows using GBinding to
&gt; sync UI to the state of the property.
&gt; 
&gt; &gt; documenting that that
&gt; &gt; we are making the view muted, independently of the mute state of the media
&gt; &gt; elements. That way it&apos;s clear it&apos;s a user API only action, not something
&gt; &gt; that can be changed by the web content. And that it doesn&apos;t affect the
&gt; &gt; actual web contents either (media elements are not actually muted). What do
&gt; &gt; you think?
&gt; 
&gt; Of course, we should document this. I guess we could also rename from
&gt; is-audio-muted to is-muted if you think that&apos;s more clear.

Yes, I think so. We should document that when media elements in a page are muted, is-playing-audio becomes FALSE and that changing is-muted doesn&apos;t affect the media element states, and is-playing-audio would still be TRUE even after setting is-muted to TRUE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654832</commentid>
    <comment_count>51</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-21 01:06:56 -0700</bug_when>
    <thetext>Just a quick note: The reason for using &quot;is-audio-muted&quot; is that you can also mute a microphone. So adding a &quot;is-microphone-muted&quot; is easier and consistent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654846</commentid>
    <comment_count>52</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-05-21 02:45:41 -0700</bug_when>
    <thetext>(In reply to Jan-Michael Brummer from comment #51)
&gt; Just a quick note: The reason for using &quot;is-audio-muted&quot; is that you can
&gt; also mute a microphone. So adding a &quot;is-microphone-muted&quot; is easier and
&gt; consistent.

…but not all audio inputs are microphones. You could be recording from
something else, let&apos;s say a guitar amp, and capture audio from it to use
in a web application, let&apos;s say a WebAudio-based guitar effects pedal.
So “is-microphone-muted“ is a bad name, maybe “audio-capture-muted“ (or
similar) would be better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654851</commentid>
    <comment_count>53</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-21 03:10:32 -0700</bug_when>
    <thetext>Thats the reason for my quotation marks, but you&apos;ve got the point. So is a renaming necessary or is the current one ok?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656049</commentid>
    <comment_count>54</comment_count>
      <attachid>399458</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-26 08:51:42 -0700</bug_when>
    <thetext>Comment on attachment 399458
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1276
&gt; +     * WebKitWebView:is-audio-muted:

So we agreed on renaming from WebKitWebView:is-audio-muted to WebKitWebView:is-muted

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1280
&gt; +     * Whether the #WebKitWebView audio is muted from a page.
&gt; +     * This property becomes %TRUE as soon as web content is muted. Otherwise
&gt; +     * the property is set back to %FALSE.

Well Carlos doesn&apos;t like the current description because it is just not true. This say the property changes when web content is muted, but it is unrelated to the web content state, it&apos;s a view-level mute. That is, the property will not actually become %TRUE when the web content is muted.

How about: &quot;Whether the #WebKitWebView audio is muted. When TRUE, web content will not be able to play audio.&quot;

What is its interaction with is-playing-audio? Is it possible for both is-audio-muted and is-playing-audio to be TRUE at the same time?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656085</commentid>
    <comment_count>55</comment_count>
      <attachid>400258</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-26 10:35:35 -0700</bug_when>
    <thetext>Created attachment 400258
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656088</commentid>
    <comment_count>56</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-26 10:37:40 -0700</bug_when>
    <thetext>After checkback with Michael I&apos;ve renamed everything from is-audio-muted to is-muted and updated the property description to: 

* Whether the #WebKitWebView audio is muted. When TRUE, audio is silenced.
* It may still be playing, i.e. WebKitWebView:is-playing-audio may be TRUE.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656108</commentid>
    <comment_count>57</comment_count>
      <attachid>400258</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-05-26 11:26:34 -0700</bug_when>
    <thetext>Comment on attachment 400258
Patch

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

New version looks good, r=me for the first of two GTK reviewer approvals.

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1279
&gt; +     * It may still be playing, i.e. WebKitWebView:is-playing-audio may be TRUE.

%TRUE

&gt; Tools/ChangeLog:26
&gt; +2020-05-26  Jan-Michael Brummer  &lt;jan.brummer@tabos.org&gt;
&gt; +
&gt; +        [GTK][WPE] API for WebView audio mute support
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=176119
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * MiniBrowser/gtk/BrowserTab.c:
&gt; +        (audioClicked):
&gt; +        (audioMutedChanged):
&gt; +        (browserTabConstructed):
&gt; +        * TestWebKitAPI/Tests/WebKitGLib/TestWebKitWebView.cpp:
&gt; +        (testWebViewIsAudioMuted):
&gt; +        (beforeAll):
&gt; +
&gt; +2020-05-12  Jan-Michael Brummer  &lt;jan.brummer@tabos.org&gt;
&gt; +
&gt; +        Add mute button to notebook title.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=176119
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * MiniBrowser/gtk/BrowserTab.c:
&gt; +        (audioClicked):
&gt; +        (audioMutedChanged):
&gt; +        (browserTabConstructed):

Careful not to duplicate the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656127</commentid>
    <comment_count>58</comment_count>
      <attachid>400268</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-26 12:24:23 -0700</bug_when>
    <thetext>Created attachment 400268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1656128</commentid>
    <comment_count>59</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-26 12:25:07 -0700</bug_when>
    <thetext>Thanks Michael. Fixed TRUEs and ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657191</commentid>
    <comment_count>60</comment_count>
      <attachid>400268</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-05-29 02:52:15 -0700</bug_when>
    <thetext>Comment on attachment 400268
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:1279
&gt; +     * It may still be playing, i.e. WebKitWebView:is-playing-audio may be %TRUE.

#WebKitWebView:is-playing-audio

&gt; Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp:3207
&gt; + * webkit_web_view_is_muted:

Since this is a getter property. it should be webkit_web_view_get_is_muted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657307</commentid>
    <comment_count>61</comment_count>
      <attachid>400597</attachid>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-29 10:14:51 -0700</bug_when>
    <thetext>Created attachment 400597
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657308</commentid>
    <comment_count>62</comment_count>
    <who name="Jan-Michael Brummer">jan.brummer</who>
    <bug_when>2020-05-29 10:15:59 -0700</bug_when>
    <thetext>Carlos: Fixed your last two findings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1657471</commentid>
    <comment_count>63</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-29 15:35:31 -0700</bug_when>
    <thetext>Committed r262321: &lt;https://trac.webkit.org/changeset/262321&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 400597.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>387812</attachid>
            <date>2020-01-15 11:34:26 -0800</date>
            <delta_ts>2020-05-11 01:52:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200115203425.patch</filename>
            <type>text/plain</type>
            <size>7089</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU0NDAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDJjMzBmMTdhMjI0YmZiZWM3
NzY4ZmVmNDczNTRkODcwOWIwZjYyZDQuLmVhZjkzMDFkZGRmNDYwZDMyOGNlZWZiMjQxNDc4MGMz
MDIzN2E2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDEtMTUgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBBZGQgZ2V0L3Nl
dCBhdWRpbyBtdXRlIGZ1bmN0aW9ucy4gCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIChPT1BTISkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh3ZWJraXRfd2ViX3Zp
ZXdfc2V0X2F1ZGlvX211dGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19nZXRfYXVkaW9f
bXV0ZWQpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4
dDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpnZXRNdXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAy
MDIwLTAxLTExICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAg
ICAgICAgIEFkZCBjb3JyZWN0IGdyYW5kZmF0aGVyaW5nIGZ1bmN0aW9uYWxpdHkgdG8gdGhlIElU
UCBkYXRhYmFzZSBiYWNrZW5kCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IGY5ZGExYmI1OTQ1ZGQwYWI4ZGNkZTFmZWU2MGMx
ODAxYTQyNDU1M2QuLjBiNTU2OTk0Nzk0MzFhYTUyZDVhMWNkMmZjYjgxNjRhNmZlYmJkOWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCkBAIC0zMTE2LDYgKzMxMTYsMzkgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX3Bs
YXlpbmdfYXVkaW8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICByZXR1cm4gZ2V0UGFnZSh3
ZWJWaWV3KS5pc1BsYXlpbmdBdWRpbygpOwogfQogCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19z
ZXRfYXVkaW9fbXV0ZWQ6CisgKiBAd2ViVmlldzogYSAjV2ViS2l0V2ViVmlldworICogQG11dGVk
OiBtdXRlIGZsYWcKKyAqCisgKiBTZXRzIHRoZSBtdXRlIHN0YXRlIG9mIEB3ZWJfdmlldy4KKyAq
CisgKiBTaW5jZTogMi4yNgorICovCit2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0
ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gbXV0ZWQpCit7CisgICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgZ2V0UGFnZSh3
ZWJWaWV3KS5zZXRNdXRlZChtdXRlZCA/IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvSXNN
dXRlZCA6IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok5vbmVNdXRlZCk7Cit9CisKKy8qKgorICog
d2Via2l0X3dlYl92aWV3X2dldF9hdWRpb19tdXRlZDoKKyAqIEB3ZWJWaWV3OiBhICNXZWJLaXRX
ZWJWaWV3CisgKgorICogR2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBAd2ViX3ZpZXcuCisgKgorICog
UmV0dXJuczogJVRSVUUlIGlmIEB3ZWJfdmlldyBhdWRpbyBpcyBtdXRlZCBvciAlRkFMU0UlIGlz
IGF1ZGlvIGlzIG5vdCBtdXRlZC4KKyAqCisgKiBTaW5jZTogMi4yNgorICovCitnYm9vbGVhbiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1ZGlvX211dGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7
CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBG
QUxTRSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS5nZXRNdXRlZCgpOworfQorCiAv
KioKICAqIHdlYmtpdF93ZWJfdmlld19nb19iYWNrOgogICogQHdlYl92aWV3OiBhICNXZWJLaXRX
ZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oCmluZGV4IGMxNTM5Y2MyNzg5ZTBjOTRhYTRhNWIxZmQzOGIwZTE1NTNkNTgxMWMuLjY3OWQx
NzA4YWM1OWU3YTVhZGI0OGNkMGNlMThiZTkzZmQzYjg3ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0zNTAsNiArMzUwLDEzIEBA
IHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdl
YktpdFdlYlZpZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19wbGF5
aW5nX2F1ZGlvICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlv
X211dGVkICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3
ZWJWaWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1ZGlvX211dGVkICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJWaWV3KTsKKwogV0VCS0lUX0FQSSBn
dWludDY0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQgICAgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDIwZDIwNDAwMTA2Mzc1MTAyNGRhMjQyZGU0MjFlZTVj
ZmVlNGQ2M2MuLmZmMzg5OGU1MGEzMTNkN2Q3OGJiY2MwMjM3NTIxYWJiMTJiNDFhZGYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQu
MC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2Nz
L3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjM3LDYgKzIzNyw4IEBAIHdlYmtpdF93
ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5n
CiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdf
YXVkaW8KK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQKK3dlYmtpdF93ZWJfdmlld19n
ZXRfYXVkaW9fbXV0ZWQKIHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jl
c3MKIHdlYmtpdF93ZWJfdmlld19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19z
ZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS93cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9X
ZWJLaXRXZWJWaWV3LmgKaW5kZXggMDE3NDM0ZGViZGY3MTYyMjNmN2Q2ZDAxZDZkNzk5Mzc0OWNi
OGQ0OC4uYTcyMDdhOWVkYmYzMWVmZmM4MDliYmZlODgxNjEzYzZhNWJhYTIxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTMzNiw2
ICszMzYsMTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92
aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmll
d19zZXRfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgKndlYlZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICBtdXRlZCk7CisKK1dF
QktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19nZXRfYXVkaW9fbXV0ZWQgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYlZpZXcpOworCiBX
RUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0x
LjAtc2VjdGlvbnMudHh0CmluZGV4IDFkMWQ1N2IxNzE4NTdlZDgxMTI1MzBlMjc2YjFlZWJhMmFi
ZWYzOTMuLjYzYWJlZDg1ZTgxNzFlZDQwNDIwOWFmM2UwNDU1MGUwNzdkMGMyZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQKQEAgLTIxNCw2ICsyMTQsOCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5
cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dlYl92aWV3
X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCit3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2F1ZGlvX211dGVkCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X2F1ZGlvX211dGVkCiB3
ZWJraXRfd2ViX3ZpZXdfZ2V0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNzCiB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2N1c3RvbV9jaGFyc2V0CiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2N1c3RvbV9jaGFyc2V0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA2YjU0ZDYzNDA5
MjU1MDVlODZkZTliZTQzNGQ4MDc5MmQzN2ZiNjExLi5kMmIyYWFlMzQyYWNkNWE0YjRhYTRkYmJk
NWFjZTU5ODJmMmI0MjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKQEAgLTU3MjcsNiArNTcyNywxMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TXV0ZWQoV2Vi
Q29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIHN0YXRlKQogICAgIGFjdGl2aXR5
U3RhdGVEaWRDaGFuZ2UoeyBBY3Rpdml0eVN0YXRlOjpJc0F1ZGlibGUsIEFjdGl2aXR5U3RhdGU6
OklzQ2FwdHVyaW5nTWVkaWEgfSk7CiB9CiAKK2Jvb2wgV2ViUGFnZVByb3h5OjpnZXRNdXRlZCgp
Cit7CisgICAgcmV0dXJuIChtX211dGVkU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0
ZWQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29s
IGVuYWJsZWQpCiB7CiAgICAgbV9tZWRpYUNhcHR1cmVFbmFibGVkID0gZW5hYmxlZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggMTIwMzM2OWFhODg3NzViZTg5YzIx
NTU3M2EzNDA5ZjQyZjM5MWEzZC4uMjU0NWI1YjU1OGFlN2JkMTY5NTZmZWI3YWU4MjhhOGE2NGUz
NzQyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEyNjAsNiAr
MTI2MCw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0TWVkaWFWb2x1bWUoZmxvYXQpOwogICAg
IHZvaWQgc2V0TXV0ZWQoV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzKTsK
KyAgICBib29sIGdldE11dGVkKCk7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2lu
ZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsg
cmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFD
YXB0dXJlRW5hYmxlZChib29sKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399004</attachid>
            <date>2020-05-11 01:52:26 -0700</date>
            <delta_ts>2020-05-12 02:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200511105224.patch</filename>
            <type>text/plain</type>
            <size>21563</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWI4NmFjMzYwZDg5NDFh
YjYwMWMyNzVjNTEyMDg3NzFhMWViYzg5Yi4uMDEzMmZhZWY4ZDEwMjRjYjY4OWRmNzBiZGQzNGI1
YWY0Mjg1NDI4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA1LTExICBKYW4t
TWljaGFlbCBCcnVtbWVyICA8amFuLmJydW1tZXJAdGFib3Mub3JnPgorCisgICAgICAgIEFkZCBp
c1BhZ2VNdXRlRGlkQ2hhbmdlIHRvIGluZm9ybSBhYm91dCBhdWRpbyBtdXRlIGNoYW5nZXMuCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRh
dGlvbiBpbiBNaW5pQnJvd3Nlci4KKworICAgICAgICAqIHBhZ2UvQ2hyb21lQ2xpZW50Lmg6Cisg
ICAgICAgIChXZWJDb3JlOjpDaHJvbWVDbGllbnQ6OmlzUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2V0TXV0ZWQp
OgorCiAyMDIwLTA0LTI5ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtXZWJYUl0gSW1wbGVtZW50IGlzU2Vzc2lvblN1cHBvcnRlZCgpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEyZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLjcwMzEzODEz
NTIyZjE4MDA4ODA2YjI2MDFmODdkNTQwMjNmNmY2MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUg
QEAKKzIwMjAtMDUtMTEgIEphbi1NaWNoYWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5v
cmc+CisKKyAgICAgICAgW0dUS11bV1BFXSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBw
b3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYx
MTkKKyAgICAgICAgTmVlZCB0aGUgYnVnIFVSTCAoT09QUyEpLgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oOgorICAgICAgICAoQVBJOjpVSUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2Vi
Vmlld0lzQXVkaW9NdXRlZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0dldFByb3Bl
cnR5KToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3
X2lzX2F1ZGlvX211dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2Vi
Vmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0
aW9ucy50eHQ6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6aXNBdWRpb011dGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojppc1BhZ2VNdXRlZERpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6dXBkYXRlUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFu
Z2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50
Lmg6CisKIDIwMjAtMDUtMDUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAog
ICAgICAgICBGaXggZGVwcmVjYXRlZCBOU0dyYXBoaWNzQ29udGV4dCBtZXRob2RzIHVzaW5nICdn
cmFwaGljc1BvcnQnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNsaWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWVDbGllbnQuaAppbmRleCAzNDNkYTJjMTIz
ODUyMWE4NjljMmE4YTc3YTczYWJkMjk1ZDRiNjUxLi5mNzcxNTAyNDZhYzVjYTdiNjkyMWRhMDRl
MDI0YjY4MDYwNTdlNDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZUNs
aWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKQEAgLTQ1Myw2
ICs0NTMsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgaXNQbGF5aW5nTWVkaWFEaWRD
aGFuZ2UoTWVkaWFQcm9kdWNlcjo6TWVkaWFTdGF0ZUZsYWdzLCB1aW50NjRfdCkgeyB9CiAgICAg
dmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoQXV0b3BsYXlFdmVudCwgT3B0aW9uU2V0
PEF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQorICAgIHZpcnR1YWwgdm9pZCBpc1BhZ2VNdXRlZERp
ZENoYW5nZSgpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgdmlydHVhbCB2
b2lkIGhhc01lZGlhU2Vzc2lvbldpdGhBY3RpdmVNZWRpYUVsZW1lbnRzRGlkQ2hhbmdlKGJvb2wp
IHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggZjVjNGQwOWVhN2ZiOWExZGZjYTkwYzkxNmIzZTY2
ZjE5N2VhNzUzZi4uZjAyMWUwOGFkNzZmODZlYzY4MjE0NzVkYjIyNjVhYzdhYTFhNDkwMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwCkBAIC0xODQ3LDYgKzE4NDcsOCBAQCB2b2lkIFBhZ2U6OnNldE11dGVk
KE1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRlZCkKICAgICBmb3JFYWNoRG9jdW1l
bnQoW10gKERvY3VtZW50JiBkb2N1bWVudCkgewogICAgICAgICBkb2N1bWVudC5wYWdlTXV0ZWRT
dGF0ZURpZENoYW5nZSgpOwogICAgIH0pOworCisgICAgY2hyb21lKCkuY2xpZW50KCkuaXNQYWdl
TXV0ZWREaWRDaGFuZ2UoKTsKIH0KIAogdm9pZCBQYWdlOjpzdG9wTWVkaWFDYXB0dXJlKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggYWNmN2QwNDA0NzM2
MzM1NTIxZDFiNGFhOWNmNDA4YTE1NDMxNWI4My4uOGNkMTRiYzRhZjc2ZTljNzQwOTI2Yjg3MDZk
Nzg1MjQxZWY0Nzc2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50
LmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWlu
Z01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2
b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1l
ZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmlydHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQo
V2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8
V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPikgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGFn
ZU11dGVkRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JikgeyB9CiAKICNpZiBFTkFCTEUo
TUVESUFfU0VTU0lPTikKICAgICB2aXJ0dWFsIHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRD
aGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFk
YXRhKikgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRVSUNsaWVudC5jcHAKaW5kZXggMDdkYTk2MTM4ZGIxMzMzY2U1YTQ5MDkzZGMyMTg3ZmQxMjAz
MjIxNC4uNDUyMjVkOTMzMmJmMWM5OGM3OTlmMzI0YjdhOGYxNDczOWIzZTM4MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApA
QCAtMzI3LDYgKzMyNywxMSBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5
aW5nQXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7CiAgICAgfQogCisgICAgdm9pZCBpc1BhZ2VNdXRl
ZERpZENoYW5nZShXZWJQYWdlUHJveHkmKSBmaW5hbAorICAgIHsKKyAgICAgICAgd2Via2l0V2Vi
Vmlld0lzQXVkaW9NdXRlZENoYW5nZWQobV93ZWJWaWV3KTsKKyAgICB9CisKICNpZiBFTkFCTEUo
UE9JTlRFUl9MT0NLKQogICAgIHZvaWQgcmVxdWVzdFBvaW50ZXJMb2NrKFdlYlBhZ2VQcm94eSog
cGFnZSkgZmluYWwKICAgICB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDhjNTRiNDIzZmY5MjY2YjgzMDczODVkZDEzYzNm
NDQ5MjRmYzJlNDUuLjdiNTlkYTkwMGM0YTU1MWZkYmQwZGViMzE0Y2E4ZGRiMzg2MWE3MWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCkBAIC0xOTksNyArMTk5LDggQEAgZW51bSB7CiAgICAgUFJPUF9JU19DT05UUk9MTEVEX0JZ
X0FVVE9NQVRJT04sCiAgICAgUFJPUF9BVVRPTUFUSU9OX1BSRVNFTlRBVElPTl9UWVBFLAogICAg
IFBST1BfRURJVEFCTEUsCi0gICAgUFJPUF9QQUdFX0lECisgICAgUFJPUF9QQUdFX0lELAorICAg
IFBST1BfSVNfQVVESU9fTVVURUQKIH07CiAKIHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1Jl
ZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3VyY2VzTWFwOwpAQCAtMzM3LDYg
KzMzOCwxMSBAQCB2b2lkIHdlYmtpdFdlYlZpZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQoV2ViS2l0
V2ViVmlldyogd2ViVmlldykKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyks
ICJpcy1wbGF5aW5nLWF1ZGlvIik7CiB9CiAKK3ZvaWQgd2Via2l0V2ViVmlld0lzQXVkaW9NdXRl
ZENoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX29iamVjdF9ub3RpZnko
R19PQkpFQ1Qod2ViVmlldyksICJpcy1hdWRpby1tdXRlZCIpOworfQorCiBjbGFzcyBQYWdlTG9h
ZFN0YXRlT2JzZXJ2ZXIgZmluYWwgOiBwdWJsaWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtODk2LDYgKzkwMiw5IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1CiAgICAgY2FzZSBQUk9QX1BBR0VfSUQ6CiAgICAgICAg
IGdfdmFsdWVfc2V0X3VpbnQ2NCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHdl
YlZpZXcpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0lTX0FVRElPX01VVEVEOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVk
aW9fbXV0ZWQod2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFt
U3BlYyk7CiAgICAgfQpAQCAtMTI2NSw2ICsxMjc0LDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAg
ICAgICAgICAgMCwgR19NQVhVSU5UNjQsIDAsCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aXMtYXVkaW8tbXV0ZWQ6
CisgICAgICoKKyAgICAgKiBXaGV0aGVyIHRoZSAjV2ViS2l0V2ViVmlldyBhdWRpbyBpcyBtdXRl
ZCBmcm9tIGEgcGFnZS4KKyAgICAgKiBUaGlzIHByb3BlcnR5IGJlY29tZXMgJVRSVUUgYXMgc29v
biBhcyB3ZWIgY29udGVudCBpcyBtdXRlZC4gT3RoZXJ3aXNlCisgICAgICogdGhlIHByb3BlcnR5
IGlzIHNldCBiYWNrIHRvICVGQUxTRS4KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjMwCisgICAg
ICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVj
dENsYXNzLAorICAgICAgICBQUk9QX0lTX0FVRElPX01VVEVELAorICAgICAgICBnX3BhcmFtX3Nw
ZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJpcy1hdWRpby1tdXRlZCIsCisgICAgICAgICAgICAi
SXMgQXVkaW8gTXV0ZWQiLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBhdWRpbyBp
cyBtdXRlZCIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBREFCTEUpKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hhbmdl
ZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUgc2ln
bmFsIGlzIGVtaXR0ZWQKQEAgLTMxNTgsNiArMzE4NiwzOSBAQCBnYm9vbGVhbiB3ZWJraXRfd2Vi
X3ZpZXdfaXNfcGxheWluZ19hdWRpbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVy
biBnZXRQYWdlKHdlYlZpZXcpLmlzUGxheWluZ0F1ZGlvKCk7CiB9CiAKKy8qKgorICogd2Via2l0
X3dlYl92aWV3X3NldF9hdWRpb19tdXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmll
dworICogQG11dGVkOiBtdXRlIGZsYWcKKyAqCisgKiBTZXRzIHRoZSBtdXRlIHN0YXRlIG9mIEB3
ZWJfdmlldy4KKyAqCisgKiBTaW5jZTogMi4yNgorICovCit2b2lkIHdlYmtpdF93ZWJfdmlld19z
ZXRfYXVkaW9fbXV0ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gbXV0ZWQpCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisg
ICAgZ2V0UGFnZSh3ZWJWaWV3KS5zZXRNdXRlZChtdXRlZCA/IFdlYkNvcmU6Ok1lZGlhUHJvZHVj
ZXI6OkF1ZGlvSXNNdXRlZCA6IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok5vbmVNdXRlZCk7Cit9
CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkOgorICogQHdlYl92aWV3
OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICogR2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBAd2ViX3Zp
ZXcuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgQHdlYl92aWV3IGF1ZGlvIGlzIG11dGVkIG9y
ICVGQUxTRSBpcyBhdWRpbyBpcyBub3QgbXV0ZWQuCisgKgorICogU2luY2U6IDIuMjYKKyAqLwor
Z2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc0F1ZGlvTXV0
ZWQoKTsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjazoKICAqIEB3ZWJfdmll
dzogYSAjV2ViS2l0V2ViVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggNWFiNzU3NGM5Mzc4ZjUyZGI4
N2NlNzUxNTc2MjdjMDRlOWIyZTk2Mi4uNDAxNjBjMGM1NWY4ZDA5YWE5NzdkM2MyMzMyZjkyMDNm
Nzc2YjkwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCkBAIC05MSw2ICs5MSw3IEBAIHZvaWQgd2Via2l0V2Vi
Vmlld0luc2VjdXJlQ29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3Vy
ZUNvbnRlbnRFCiBib29sIHdlYmtpdFdlYlZpZXdFbWl0U2hvd05vdGlmaWNhdGlvbihXZWJLaXRX
ZWJWaWV3KiwgV2ViS2l0Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9j
ZXNzVGVybWluYXRlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9u
UmVhc29uKTsKIHZvaWQgd2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZChXZWJLaXRX
ZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYlZpZXdJc0F1ZGlvTXV0ZWRDaGFuZ2VkKFdlYktpdFdl
YlZpZXcqKTsKIHZvaWQgd2Via2l0V2ViVmlld1NlbGVjdGlvbkRpZENoYW5nZShXZWJLaXRXZWJW
aWV3Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdSZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdp
bnMoV2ViS2l0V2ViVmlldyosIFdlYktpdDo6SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJt
aXNzaW9uUmVxdWVzdCYpOwogV2ViS2l0V2Vic2l0ZURhdGFNYW5hZ2VyKiB3ZWJraXRXZWJWaWV3
R2V0V2Vic2l0ZURhdGFNYW5hZ2VyKFdlYktpdFdlYlZpZXcqKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggYzE1MzljYzI3ODllMGM5
NGFhNGE1YjFmZDM4YjBlMTU1M2Q1ODExYy4uOThiOGI2YzAxZTM1MjQ3NzM1MDdmOWExNzlhYTk0
OWI2N2U3YWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmgKQEAgLTM1MCw2ICszNTAsMTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRp
bmcgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBn
Ym9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJ
IHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAg
ICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdf
aXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3
X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRl
eCAxYmM0MjcwYzlmNDBlOGZiOGM0ZmU2NmNlNmUzYmI1MGIzZmY5NzE3Li5lZDFlMGU0NTI1Nzhh
YjMyYjZlZmQzNDBlMDEwNWQ1NGI0YWQwY2Q5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9u
cy50eHQKQEAgLTIzOSw2ICsyMzksOCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19j
YWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX2xv
YWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCit3ZWJraXRfd2ViX3ZpZXdf
c2V0X2F1ZGlvX211dGVkCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQKIHdlYmtpdF93
ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRf
Y3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKaW5kZXggMmIy
ZDc4ZDFiYjUzYTJmZmRiNzBjMmE0YmRiYzg4NGFmNjAzNmY2MC4uZjRlYzUwNjRjNGNmMDljMDU4
NWUzMWE2M2IyM2Y2ODQwMTUyNWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTMzOSw2ICszMzksMTMgQEAgd2Via2l0X3dlYl92
aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwog
V0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwog
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXgg
MGMyZGM2NTE1YzY2Yjc5NTc3YTdkNTgwN2NhNGEwZmJjNWQwNzUzOS4uYTI5N2RlOTZhNDExNmY1
MDQwZDBhOGQ1ZTYxYTA0Mjg3NzY1MWQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMjE0LDYg
KzIxNCw4IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hlCiB3ZWJraXRfd2Vi
X3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZwogd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQK
K3dlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZAogd2Via2l0X3dlYl92aWV3X2dldF9lc3Rp
bWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fY2hhcnNldAog
d2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTJkYTFmNzZiNGE3MzYxMmJiODE1MDZhMzkwZmE3NjY5
YjY5NDViNS4uZDYwNzNkMWRmZTRhOGNhZGNmMjI4MzA4ZjlhNjhlYzgwMzc0N2M0YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTc2LDYgKzU5NzYsMTEg
QEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11
dGVkU3RhdGVGbGFncyBzdGF0ZSkKICAgICBhY3Rpdml0eVN0YXRlRGlkQ2hhbmdlKHsgQWN0aXZp
dHlTdGF0ZTo6SXNBdWRpYmxlLCBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhIH0pOwog
fQogCitib29sIFdlYlBhZ2VQcm94eTo6aXNBdWRpb011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1
cm4gKG1fbXV0ZWRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvSXNNdXRlZCk7Cit9CisKIHZv
aWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsK
ICAgICBtX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBlbmFibGVkOwpAQCAtODk2NiwxMSArODk3MSwy
MiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBkYXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlh
UHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBuZQogICAgIG1fcHJvY2Vzcy0+dXBkYXRlQXVkaWJs
ZU1lZGlhQXNzZXJ0aW9ucygpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6aXNQYWdlTXV0ZWRE
aWRDaGFuZ2UoKQoreworICAgIGlmICghbV9pc0Nsb3NlZCkKKyAgICAgICAgdXBkYXRlUGFnZU11
dGVkRGlkQ2hhbmdlKCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5Ojp2aWRlb0NvbnRyb2xzTWFu
YWdlckRpZENoYW5nZSgpCiB7CiAgICAgcGFnZUNsaWVudCgpLnZpZGVvQ29udHJvbHNNYW5hZ2Vy
RGlkQ2hhbmdlKCk7CiB9CiAKK3ZvaWQgV2ViUGFnZVByb3h5Ojp1cGRhdGVQYWdlTXV0ZWREaWRD
aGFuZ2UoKQoreworICAgIG1fdWlDbGllbnQtPmlzUGFnZU11dGVkRGlkQ2hhbmdlKCp0aGlzKTsK
K30KKwogYm9vbCBXZWJQYWdlUHJveHk6Omhhc0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2Vy
KCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk2NTIzZjJmZGVhN2I1ZWFkYTlhM2Mw
ZGNlYzExYTFiNzM3MDRjYzEuLmY5MjYyM2YyMTZjN2ZhNWRhMGZkYWYzNzI4M2NmZmVlNmU1ZTdh
ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzA0LDYgKzEz
MDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKICAgICB2
b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7Cisg
ICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdDsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFX
aGVuSW5XaW5kb3coYm9vbCk7CiAgICAgYm9vbCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93KCkg
Y29uc3QgeyByZXR1cm4gbV9tYXlTdGFydE1lZGlhV2hlbkluV2luZG93OyB9CiAgICAgdm9pZCBz
ZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wpOwpAQCAtMTQyOCw2ICsxNDI5LDggQEAgcHVibGlj
OgogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9TdHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlh
U3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZp
Y2U7IH0KICAgICBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFT
dGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlOyB9CiAgICAgV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZsYWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsg
cmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAgIHZvaWQgaXNQYWdlTXV0ZWREaWRDaGFuZ2UoKTsK
KyAgICB2b2lkIHVwZGF0ZVBhZ2VNdXRlZERpZENoYW5nZSgpOwogCiAgICAgdm9pZCBoYW5kbGVB
dXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpB
dXRvcGxheUV2ZW50RmxhZ3M+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDhmODBiYTQwODFkZGViZDVmZDI4Y2Q5OWM0MjNh
M2E2MDY3NTYxZWMuLmI2YzY1MTEwZWFhNWNjMjM4MTM1MWMwNTA2YTE5YWM1YzI5YTE0MjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4K
QEAgLTQ3OSw2ICs0NzksNyBAQCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgSXNQ
bGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWduZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1l
bnRJRCkKICAgICBIYW5kbGVBdXRvcGxheUV2ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRv
cGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBm
bGFncykKKyAgICBJc1BhZ2VNdXRlZERpZENoYW5nZSgpCiAKICNpZiBFTkFCTEUoTUVESUFfU0VT
U0lPTikKICAgICBIYXNNZWRpYVNlc3Npb25XaXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5n
ZShib29sIHN0YXRlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA1NmFhMTM2YWM0YTM3ODRk
NGI3YmEyNTUwMTMxODcyM2FlN2I1N2I5Li5lMWZjN2QzMDYxN2NhMTNhZGFmYWE4ZDQ0ZjJkNWFh
YjIwMDAwNWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMTE4Nyw2ICsxMTg3LDExIEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojppc1BsYXlpbmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1
Y2VyOjpNZWRpYVN0YXRlRmxhZ3Mgc3RhCiAgICAgbV9wYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6SXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2Uoc3RhdGUsIHNvdXJjZUVsZW1lbnRJRCkp
OwogfQogCit2b2lkIFdlYkNocm9tZUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UoKQorewor
ICAgIG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGFnZU11dGVkRGlkQ2hh
bmdlKCkpOworfQorCiB2b2lkIFdlYkNocm9tZUNsaWVudDo6aGFuZGxlQXV0b3BsYXlFdmVudChB
dXRvcGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykK
IHsKICAgICBtX3BhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBdXRvcGxh
eUV2ZW50KGV2ZW50LCBmbGFncykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IDJhZGVkMTMzMDg4
ODU2NjJkMTY4MmI4NDY1MGU4Y2EzMTVjZTUyZjMuLmFjM2ExM2JkN2ExZDM5M2U5MGQyMmRmNGNm
NjVlYmMyYjg2MzkyOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAgLTMzMSw2ICszMzEsNyBAQCBw
cml2YXRlOgogICAgIGJvb2wgc2hvdWxkVXNlVGlsZWRCYWNraW5nRm9yRnJhbWVWaWV3KGNvbnN0
IFdlYkNvcmU6OkZyYW1lVmlldyYpIGNvbnN0IGZpbmFsOwogCiAgICAgdm9pZCBpc1BsYXlpbmdN
ZWRpYURpZENoYW5nZShXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MsIHVp
bnQ2NF90KSBmaW5hbDsKKyAgICB2b2lkIGlzUGFnZU11dGVkRGlkQ2hhbmdlKCkgZmluYWw7CiAg
ICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9wbGF5RXZlbnQsIE9wdGlv
blNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KSBmaW5hbDsKIAogI2lmIEVOQUJMRShN
RURJQV9TRVNTSU9OKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDg1OTJlZmVkMjM0MTM5ZTRlZGE1OGVhYjljOGFjZGM0NjhmMWZiZjcuLmE2ZDQ0
NDAxMmM1NWY0OWE1MWFhYmQyYzY0NGYxZDA1Y2Y3NDEyMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNS0x
MSAgSmFuLU1pY2hhZWwgQnJ1bW1lciAgPGphbi5icnVtbWVyQHRhYm9zLm9yZz4KKworICAgICAg
ICBBZGQgbXV0ZSBidXR0b24gdG8gbm90ZWJvb2sgdGl0bGUuCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFi
LmM6CisgICAgICAgIChhdWRpb0NsaWNrZWQpOgorICAgICAgICAoYXVkaW9NdXRlZENoYW5nZWQp
OgorICAgICAgICAoYnJvd3NlclRhYkNvbnN0cnVjdGVkKToKKwogMjAyMC0wNS0wNSAgUm9zcyBL
aXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0VDTUEtNDAyXSBJ
bXBsZW1lbnQgSW50bC5Mb2NhbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9C
cm93c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCmluZGV4IDg1
NzkwOThkNmQ5YmY1ZjNlMTAzZTY5YTRhYTk1NzNiY2Y0NTlkYjYuLmJhMmY3NGMwZDA3OTkzZTEx
NjJhNGYyNjNmOTZiZmQxMzhmYjU5NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpA
QCAtNTcsNiArNTcsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogICAgIEd0a1dpZGdldCAqdGl0
bGVCb3g7CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUxhYmVsOwogICAgIEd0a1dpZGdldCAqdGl0bGVT
cGlubmVyOworICAgIEd0a1dpZGdldCAqdGl0bGVBdWRpb0J1dHRvbjsKICAgICBHdGtXaWRnZXQg
KnRpdGxlQ2xvc2VCdXR0b247CiB9OwogCkBAIC0zNjEsNiArMzYyLDI5IEBAIHN0YXRpYyBnYm9v
bGVhbiBpbnNwZWN0b3JDbG9zZWQoV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IsIEJyb3dz
ZXJUYWIgKnRhYikKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3N0YXRpYyB2b2lkIGF1ZGlvQ2xp
Y2tlZChHdGtCdXR0b24gKmJ1dHRvbiwgZ3BvaW50ZXIgdXNlcl9kYXRhKQoreworICAgIEJyb3dz
ZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKHVzZXJfZGF0YSk7CisgICAgZ2Jvb2xlYW4gbXV0ZWQg
PSB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGFiLT53ZWJWaWV3KTsKKworICAgIHdl
YmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQodGFiLT53ZWJWaWV3LCAhbXV0ZWQpOworfQor
CitzdGF0aWMgdm9pZCBhdWRpb011dGVkQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBH
UGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgdXNlcl9kYXRhKQoreworICAgIEJyb3dzZXJUYWIg
KnRhYiA9IEJST1dTRVJfVEFCKHVzZXJfZGF0YSk7CisgICAgR3RrV2lkZ2V0ICppbWFnZTsKKyAg
ICBnYm9vbGVhbiBtdXRlZDsKKworICAgIG11dGVkID0gd2Via2l0X3dlYl92aWV3X2lzX2F1ZGlv
X211dGVkKHRhYi0+d2ViVmlldyk7CisgICAgaWYgKCFtdXRlZCkKKyAgICAgICAgaW1hZ2UgPSBn
dGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJhdWRpby12b2x1bWUtaGlnaC1zeW1ib2xpYyIs
IEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZWxzZQorICAgICAgICBpbWFnZSA9IGd0a19pbWFn
ZV9uZXdfZnJvbV9pY29uX25hbWUoImF1ZGlvLXZvbHVtZS1tdXRlZC1zeW1ib2xpYyIsIEdUS19J
Q09OX1NJWkVfTUVOVSk7CisKKyAgICBndGtfYnV0dG9uX3NldF9pbWFnZShHVEtfQlVUVE9OKHRh
Yi0+dGl0bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKK30KKwogc3RhdGljIHZvaWQgYnJvd3NlclRh
YlNldFByb3BlcnR5KEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmFsdWUg
KnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKIHsKICAgICBCcm93c2VyVGFiICp0YWIgPSBCUk9X
U0VSX1RBQihvYmplY3QpOwpAQCAtNDU1LDEyICs0NzksMjMgQEAgc3RhdGljIHZvaWQgYnJvd3Nl
clRhYkNvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3QpCiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0
KEdUS19CT1godGFiLT50aXRsZUJveCksIGhib3gsIFRSVUUsIFRSVUUsIDApOwogICAgIGd0a193
aWRnZXRfc2hvdyhoYm94KTsKIAorICAgIHRhYi0+dGl0bGVBdWRpb0J1dHRvbiA9IGd0a19idXR0
b25fbmV3KCk7CisgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPnRpdGxlQXVkaW9CdXR0b24sICJj
bGlja2VkIiwgR19DQUxMQkFDSyhhdWRpb0NsaWNrZWQpLCB0YWIpOworICAgIGd0a19idXR0b25f
c2V0X3JlbGllZihHVEtfQlVUVE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiksIEdUS19SRUxJRUZf
Tk9ORSk7CisgICAgZ3RrX3dpZGdldF9zZXRfZm9jdXNfb25fY2xpY2sodGFiLT50aXRsZUF1ZGlv
QnV0dG9uLCBGQUxTRSk7CisKKyAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19m
cm9tX2ljb25fbmFtZSgiYXVkaW8tdm9sdW1lLWhpZ2gtc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpF
X01FTlUpOworICAgIGd0a19idXR0b25fc2V0X2ltYWdlKEdUS19CVVRUT04odGFiLT50aXRsZUF1
ZGlvQnV0dG9uKSwgaW1hZ2UpOworICAgIGd0a193aWRnZXRfc2hvdyhpbWFnZSk7CisKKyAgICBn
dGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0YWItPnRpdGxlQm94KSwgdGFiLT50aXRsZUF1ZGlv
QnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOworCiAgICAgdGFiLT50aXRsZUNsb3NlQnV0dG9uID0g
Z3RrX2J1dHRvbl9uZXcoKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3YXBwZWQodGFiLT50aXRs
ZUNsb3NlQnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZ3RrX3dpZGdldF9kZXN0cm95KSwg
dGFiKTsKICAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYoR1RLX0JVVFRPTih0YWItPnRpdGxlQ2xv
c2VCdXR0b24pLCBHVEtfUkVMSUVGX05PTkUpOwogICAgIGd0a193aWRnZXRfc2V0X2ZvY3VzX29u
X2NsaWNrKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiwgRkFMU0UpOwogCi0gICAgR3RrV2lkZ2V0ICpp
bWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoIndpbmRvdy1jbG9zZS1zeW1ib2xp
YyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21f
aWNvbl9uYW1lKCJ3aW5kb3ctY2xvc2Utc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOwog
ICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIodGFiLT50aXRsZUNsb3NlQnV0dG9u
KSwgaW1hZ2UpOwogICAgIGd0a193aWRnZXRfc2hvdyhpbWFnZSk7CiAKQEAgLTQ3NCw2ICs1MDks
OSBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkK
ICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgImxvYWQtZmFpbGVkLXdpdGgtdGxz
LWVycm9ycyIsIEdfQ0FMTEJBQ0sobG9hZEZhaWxlZFdpdGhUTFNlcnJvcnMpLCB0YWIpOwogICAg
IGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicGVybWlzc2lvbi1yZXF1ZXN0IiwgR19D
QUxMQkFDSyhkZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCksIHRhYik7CiAgICAgZ19zaWduYWxfY29u
bmVjdCh0YWItPndlYlZpZXcsICJydW4tY29sb3ItY2hvb3NlciIsIEdfQ0FMTEJBQ0socnVuQ29s
b3JDaG9vc2VyQ2FsbGJhY2spLCB0YWIpOworCisgICAgZ19vYmplY3RfYmluZF9wcm9wZXJ0eSh0
YWItPndlYlZpZXcsICJpcy1wbGF5aW5nLWF1ZGlvIiwgdGFiLT50aXRsZUF1ZGlvQnV0dG9uLCAi
dmlzaWJsZSIsIEdfQklORElOR19ERUZBVUxUIHwgR19CSU5ESU5HX1NZTkNfQ1JFQVRFKTsKKyAg
ICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgIm5vdGlmeTo6aXMtYXVkaW8tbXV0ZWQi
LCBHX0NBTExCQUNLKGF1ZGlvTXV0ZWRDaGFuZ2VkKSwgdGFiKTsKICNlbmRpZgogCiAgICAgV2Vi
S2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rv
cih0YWItPndlYlZpZXcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399110</attachid>
            <date>2020-05-12 02:13:33 -0700</date>
            <delta_ts>2020-05-12 13:22:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200512111332.patch</filename>
            <type>text/plain</type>
            <size>18557</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLjhmYTNhNzA1ZjBlOWY4Nzk5MzYxNGUzMWJlYWE5N2Nj
ZTk1ZDNhOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTIgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnRhdGlvbiBpbiBNaW5pQnJvd3Nl
ci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaDoKKyAgICAgICAgKEFQ
STo6VUlDbGllbnQ6OmlzUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdJc0F1ZGlvTXV0ZWRD
aGFuZ2VkKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3
ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0
X2F1ZGlvX211dGVkKToKKyAgICAgICAgKHdlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmlzQXVk
aW9NdXRlZCBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aXNQYWdlTXV0
ZWREaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnVwZGF0ZVBhZ2VN
dXRlZERpZENoYW5nZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpz
ZXRNdXRlZCk6CisKIDIwMjAtMDUtMDUgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNv
bT4KIAogICAgICAgICBGaXggZGVwcmVjYXRlZCBOU0dyYXBoaWNzQ29udGV4dCBtZXRob2RzIHVz
aW5nICdncmFwaGljc1BvcnQnCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVu
dC5oCmluZGV4IGFjZjdkMDQwNDczNjMzNTUyMWQxYjRhYTljZjQwOGExNTQzMTViODMuLjhjZDE0
YmM0YWY3NmU5Yzc0MDkyNmI4NzA2ZDc4NTI0MWVmNDc3NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0xNjAsNiArMTYwLDcgQEAgcHVibGljOgogICAg
IHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdNZWRpYURpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBtZWRpYUNhcHR1cmVTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MpIHsgfQogICAgIHZpcnR1YWwgdm9p
ZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViQ29yZTo6QXV0
b3BsYXlFdmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6OkF1dG9wbGF5RXZlbnRGbGFncz4pIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCBpc1BhZ2VNdXRlZERpZENoYW5nZShXZWJLaXQ6OldlYlBhZ2VQcm94
eSYpIHsgfQogCiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgdmlydHVhbCB2b2lkIG1l
ZGlhU2Vzc2lvbk1ldGFkYXRhRGlkQ2hhbmdlKFdlYktpdDo6V2ViUGFnZVByb3h5JiwgV2ViS2l0
OjpXZWJNZWRpYVNlc3Npb25NZXRhZGF0YSopIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IDA3ZGE5NjEzOGRiMTMz
M2NlNWE0OTA5M2RjMjE4N2ZkMTIwMzIyMTQuLjQ1MjI1ZDkzMzJiZjFjOThjNzk5ZjMyNGI3YThm
MTQ3MzliM2UzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTMyNyw2ICszMjcsMTEgQEAgcHJpdmF0ZToKICAgICAg
ICAgd2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZChtX3dlYlZpZXcpOwogICAgIH0K
IAorICAgIHZvaWQgaXNQYWdlTXV0ZWREaWRDaGFuZ2UoV2ViUGFnZVByb3h5JikgZmluYWwKKyAg
ICB7CisgICAgICAgIHdlYmtpdFdlYlZpZXdJc0F1ZGlvTXV0ZWRDaGFuZ2VkKG1fd2ViVmlldyk7
CisgICAgfQorCiAjaWYgRU5BQkxFKFBPSU5URVJfTE9DSykKICAgICB2b2lkIHJlcXVlc3RQb2lu
dGVyTG9jayhXZWJQYWdlUHJveHkqIHBhZ2UpIGZpbmFsCiAgICAgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA4YzU0YjQy
M2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li4xOGI1MDgyYzNkYzQ0MTRiZTczODlk
Mzc1ZDM1NGVhYzU0ZDlkYmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTk5LDcgKzE5OSw4IEBAIGVudW0gewogICAg
IFBST1BfSVNfQ09OVFJPTExFRF9CWV9BVVRPTUFUSU9OLAogICAgIFBST1BfQVVUT01BVElPTl9Q
UkVTRU5UQVRJT05fVFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAotICAgIFBST1BfUEFHRV9JRAor
ICAgIFBST1BfUEFHRV9JRCwKKyAgICBQUk9QX0lTX0FVRElPX01VVEVECiB9OwogCiB0eXBlZGVm
IEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+ID4gTG9hZGluZ1Jl
c291cmNlc01hcDsKQEAgLTMzNyw2ICszMzgsMTEgQEAgdm9pZCB3ZWJraXRXZWJWaWV3SXNQbGF5
aW5nQXVkaW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgZ19vYmplY3Rfbm90
aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtcGxheWluZy1hdWRpbyIpOwogfQogCit2b2lkIHdl
YmtpdFdlYlZpZXdJc0F1ZGlvTXV0ZWRDaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7
CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtYXVkaW8tbXV0ZWQi
KTsKK30KKwogY2xhc3MgUGFnZUxvYWRTdGF0ZU9ic2VydmVyIGZpbmFsIDogcHVibGljIFBhZ2VM
b2FkU3RhdGU6Ok9ic2VydmVyIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1Ymxp
YzoKQEAgLTg5Niw2ICs5MDIsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0UHJvcGVy
dHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAgIGNhc2Ug
UFJPUF9QQUdFX0lEOgogICAgICAgICBnX3ZhbHVlX3NldF91aW50NjQodmFsdWUsIHdlYmtpdF93
ZWJfdmlld19nZXRfcGFnZV9pZCh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
UFJPUF9JU19BVURJT19NVVRFRDoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwg
d2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7
CiAgICAgZGVmYXVsdDoKICAgICAgICAgR19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lE
KG9iamVjdCwgcHJvcElkLCBwYXJhbVNwZWMpOwogICAgIH0KQEAgLTEyNjUsNiArMTI3NCwyNSBA
QCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xh
c3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIDAsIEdfTUFYVUlOVDY0LCAwLAogICAgICAg
ICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CiAKKyAgICAvKioKKyAgICAgKiBXZWJLaXRX
ZWJWaWV3OmlzLWF1ZGlvLW11dGVkOgorICAgICAqCisgICAgICogV2hldGhlciB0aGUgI1dlYktp
dFdlYlZpZXcgYXVkaW8gaXMgbXV0ZWQgZnJvbSBhIHBhZ2UuCisgICAgICogVGhpcyBwcm9wZXJ0
eSBiZWNvbWVzICVUUlVFIGFzIHNvb24gYXMgd2ViIGNvbnRlbnQgaXMgbXV0ZWQuIE90aGVyd2lz
ZQorICAgICAqIHRoZSBwcm9wZXJ0eSBpcyBzZXQgYmFjayB0byAlRkFMU0UuCisgICAgICoKKyAg
ICAgKiBTaW5jZTogMi4zMAorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoCisgICAgICAgIGdPYmplY3RDbGFzcywKKyAgICAgICAgUFJPUF9JU19BVURJT19NVVRF
RCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiaXMtYXVkaW8t
bXV0ZWQiLAorICAgICAgICAgICAgIklzIEF1ZGlvIE11dGVkIiwKKyAgICAgICAgICAgIF8oIldo
ZXRoZXIgdGhlIHZpZXcgYXVkaW8gaXMgbXV0ZWQiKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAg
ICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKICAgICAvKioKICAgICAgKiBXZWJL
aXRXZWJWaWV3Ojpsb2FkLWNoYW5nZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdl
YlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCkBAIC0zMTU4LDYgKzMxODYsMzkg
QEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oV2ViS2l0V2ViVmll
dyogd2ViVmlldykKICAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc1BsYXlpbmdBdWRpbygp
OwogfQogCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQ6CisgKiBAd2Vi
X3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBtdXRlZDogbXV0ZSBmbGFnCisgKgorICogU2V0
cyB0aGUgbXV0ZSBzdGF0ZSBvZiBAd2ViX3ZpZXcuCisgKgorICogU2luY2U6IDIuMzAKKyAqLwor
dm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211dGVkKFdlYktpdFdlYlZpZXcqIHdlYlZp
ZXcsIGdib29sZWFuIG11dGVkKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpKTsKKworICAgIGdldFBhZ2Uod2ViVmlldykuc2V0TXV0ZWQobXV0ZWQg
PyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQgOiBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpOb25lTXV0ZWQpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19pc19hdWRp
b19tdXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIEdldHMgdGhl
IG11dGUgc3RhdGUgb2YgQHdlYl92aWV3LgorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIEB3ZWJf
dmlldyBhdWRpbyBpcyBtdXRlZCBvciAlRkFMU0UgaXMgYXVkaW8gaXMgbm90IG11dGVkLgorICoK
KyAqIFNpbmNlOiAyLjMwCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19hdWRpb19t
dXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0dXJuIGdldFBh
Z2Uod2ViVmlldykuaXNBdWRpb011dGVkKCk7Cit9CisKIC8qKgogICogd2Via2l0X3dlYl92aWV3
X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCmlu
ZGV4IDVhYjc1NzRjOTM3OGY1MmRiODdjZTc1MTU3NjI3YzA0ZTliMmU5NjIuLjQwMTYwYzBjNTVm
OGQwOWFhOTc3ZDNjMjMzMmY5MjAzZjc3NmI5MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaApAQCAtOTEsNiAr
OTEsNyBAQCB2b2lkIHdlYmtpdFdlYlZpZXdJbnNlY3VyZUNvbnRlbnREZXRlY3RlZChXZWJLaXRX
ZWJWaWV3KiwgV2ViS2l0SW5zZWN1cmVDb250ZW50RQogYm9vbCB3ZWJraXRXZWJWaWV3RW1pdFNo
b3dOb3RpZmljYXRpb24oV2ViS2l0V2ViVmlldyosIFdlYktpdE5vdGlmaWNhdGlvbiopOwogdm9p
ZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1Rlcm1pbmF0ZWQoV2ViS2l0V2ViVmlldyosIFdlYktp
dFdlYlByb2Nlc3NUZXJtaW5hdGlvblJlYXNvbik7CiB2b2lkIHdlYmtpdFdlYlZpZXdJc1BsYXlp
bmdBdWRpb0NoYW5nZWQoV2ViS2l0V2ViVmlldyopOwordm9pZCB3ZWJraXRXZWJWaWV3SXNBdWRp
b011dGVkQ2hhbmdlZChXZWJLaXRXZWJWaWV3Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdTZWxlY3Rp
b25EaWRDaGFuZ2UoV2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJraXRXZWJWaWV3UmVxdWVzdElu
c3RhbGxNaXNzaW5nTWVkaWFQbHVnaW5zKFdlYktpdFdlYlZpZXcqLCBXZWJLaXQ6Okluc3RhbGxN
aXNzaW5nTWVkaWFQbHVnaW5zUGVybWlzc2lvblJlcXVlc3QmKTsKIFdlYktpdFdlYnNpdGVEYXRh
TWFuYWdlciogd2Via2l0V2ViVmlld0dldFdlYnNpdGVEYXRhTWFuYWdlcihXZWJLaXRXZWJWaWV3
Kik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5o
CmluZGV4IGMxNTM5Y2MyNzg5ZTBjOTRhYTRhNWIxZmQzOGIwZTE1NTNkNTgxMWMuLjk4YjhiNmMw
MWUzNTI0NzczNTA3ZjlhMTc5YWE5NDliNjdlN2FiNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0zNTAsNiArMzUwLDEzIEBAIHdl
YmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktp
dFdlYlZpZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5n
X2F1ZGlvICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndl
Yl92aWV3KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211
dGVkICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJf
dmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgIG11dGVkKTsKKworV0VCS0lUX0FQSSBnYm9v
bGVhbgord2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIGd1
aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAgICAgICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKaW5kZXggMWJjNDI3MGM5ZjQwZThmYjhjNGZlNjZjZTZlM2JiNTBi
M2ZmOTcxNy4uZWQxZTBlNDUyNTc4YWIzMmI2ZWZkMzQwZTAxMDVkNTRiNGFkMGNkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4w
LXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CkBAIC0yMzksNiArMjM5LDggQEAgd2Via2l0X3dl
Yl92aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUKIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcK
IHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19h
dWRpbword2Via2l0X3dlYl92aWV3X3NldF9hdWRpb19tdXRlZAord2Via2l0X3dlYl92aWV3X2lz
X2F1ZGlvX211dGVkCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNz
CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1c3RvbV9jaGFyc2V0CiB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2N1c3RvbV9jaGFyc2V0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0V2ViVmlldy5oCmluZGV4IDJiMmQ3OGQxYmI1M2EyZmZkYjcwYzJhNGJkYmM4ODRhZjYwMzZm
NjAuLmY0ZWM1MDY0YzRjZjA5YzA1ODVlMzFhNjNiMjNmNjg0MDE1MjVmMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oCkBAIC0zMzksNiAr
MzM5LDEzIEBAIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmll
d19pc19wbGF5aW5nX2F1ZGlvICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSB2b2lkCit3ZWJraXRfd2ViX3ZpZXdf
c2V0X2F1ZGlvX211dGVkICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAgICAgICAgIG11dGVkKTsKKworV0VC
S0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBX
RUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0x
LjAtc2VjdGlvbnMudHh0CmluZGV4IDBjMmRjNjUxNWM2NmI3OTU3N2E3ZDU4MDdjYTRhMGZiYzVk
MDc1MzkuLmEyOTdkZTk2YTQxMTZmNTA0MGQwYThkNWU2MWEwNDI4Nzc2NTFkMDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQKQEAgLTIxNCw2ICsyMTQsOCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5
cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dlYl92aWV3
X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCit3ZWJraXRfd2Vi
X3ZpZXdfc2V0X2F1ZGlvX211dGVkCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQKIHdl
YmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmll
d19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2NoYXJzZXQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDUyZGExZjc2YjRh
NzM2MTJiYjgxNTA2YTM5MGZhNzY2OWI2OTQ1YjUuLmQ2MDczZDFkZmU0YThjYWRjZjIyODMwOGY5
YTY4ZWM4MDM3NDdjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cApAQCAtNTk3Niw2ICs1OTc2LDExIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNdXRlZChXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mgc3RhdGUpCiAgICAgYWN0aXZpdHlT
dGF0ZURpZENoYW5nZSh7IEFjdGl2aXR5U3RhdGU6OklzQXVkaWJsZSwgQWN0aXZpdHlTdGF0ZTo6
SXNDYXB0dXJpbmdNZWRpYSB9KTsKIH0KIAorYm9vbCBXZWJQYWdlUHJveHk6OmlzQXVkaW9NdXRl
ZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIChtX211dGVkU3RhdGUgJiBNZWRpYVByb2R1Y2VyOjpB
dWRpb0lzTXV0ZWQpOworfQorCiB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TWVkaWFDYXB0dXJlRW5h
YmxlZChib29sIGVuYWJsZWQpCiB7CiAgICAgbV9tZWRpYUNhcHR1cmVFbmFibGVkID0gZW5hYmxl
ZDsKQEAgLTg5NjYsMTEgKzg5NzEsMjIgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnVwZGF0ZVBsYXlp
bmdNZWRpYURpZENoYW5nZShNZWRpYVByb2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbmUKICAgICBt
X3Byb2Nlc3MtPnVwZGF0ZUF1ZGlibGVNZWRpYUFzc2VydGlvbnMoKTsKIH0KIAordm9pZCBXZWJQ
YWdlUHJveHk6OmlzUGFnZU11dGVkRGlkQ2hhbmdlKCkKK3sKKyAgICBpZiAoIW1faXNDbG9zZWQp
CisgICAgICAgIHVwZGF0ZVBhZ2VNdXRlZERpZENoYW5nZSgpOworfQorCiB2b2lkIFdlYlBhZ2VQ
cm94eTo6dmlkZW9Db250cm9sc01hbmFnZXJEaWRDaGFuZ2UoKQogewogICAgIHBhZ2VDbGllbnQo
KS52aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94
eTo6dXBkYXRlUGFnZU11dGVkRGlkQ2hhbmdlKCkKK3sKKyAgICBtX3VpQ2xpZW50LT5pc1BhZ2VN
dXRlZERpZENoYW5nZSgqdGhpcyk7Cit9CisKIGJvb2wgV2ViUGFnZVByb3h5OjpoYXNBY3RpdmVW
aWRlb0ZvckNvbnRyb2xzTWFuYWdlcigpIGNvbnN0CiB7CiAjaWYgRU5BQkxFKFZJREVPX1BSRVNF
TlRBVElPTl9NT0RFKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5
NjUyM2YyZmRlYTdiNWVhZGE5YTNjMGRjZWMxMWExYjczNzA0Y2MxLi5mOTI2MjNmMjE2YzdmYTVk
YTBmZGFmMzcyODNjZmZlZTZlNWU3YTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaApAQCAtMTMwNCw2ICsxMzA0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRp
YVZvbHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpNdXRlZFN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CiAgICAg
dm9pZCBzZXRNYXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3Rh
cnRNZWRpYVdoZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5J
bldpbmRvdzsgfQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKQEAgLTE0
MjgsNiArMTQyOSw4IEBAIHB1YmxpYzoKICAgICBib29sIGhhc0FjdGl2ZVZpZGVvU3RyZWFtKCkg
Y29uc3QgeyByZXR1cm4gbV9tZWRpYVN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6SGFz
QWN0aXZlVmlkZW9DYXB0dXJlRGV2aWNlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
TWVkaWFTdGF0ZUZsYWdzIG1lZGlhU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbWVkaWFT
dGF0ZTsgfQogICAgIFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBtdXRl
ZFN0YXRlRmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGU7IH0KKyAgICB2b2lkIGlz
UGFnZU11dGVkRGlkQ2hhbmdlKCk7CisgICAgdm9pZCB1cGRhdGVQYWdlTXV0ZWREaWRDaGFuZ2Uo
KTsKIAogICAgIHZvaWQgaGFuZGxlQXV0b3BsYXlFdmVudChXZWJDb3JlOjpBdXRvcGxheUV2ZW50
LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgppbmRleCA4ZjgwYmE0
MDgxZGRlYmQ1ZmQyOGNkOTljNDIzYTNhNjA2NzU2MWVjLi5iNmM2NTExMGVhYTVjYzIzODEzNTFj
MDUwNmExOWFjNWMyOWExNDI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC00NzksNiArNDc5LDcgQEAgbWVzc2FnZXMgLT4gV2Vi
UGFnZVByb3h5IHsKIAogICAgIElzUGxheWluZ01lZGlhRGlkQ2hhbmdlKHVuc2lnbmVkIHN0YXRl
LCB1aW50NjRfdCBzb3VyY2VFbGVtZW50SUQpCiAgICAgSGFuZGxlQXV0b3BsYXlFdmVudChlbnVt
OnVpbnQ4X3QgV2ViQ29yZTo6QXV0b3BsYXlFdmVudCBldmVudCwgT3B0aW9uU2V0PFdlYkNvcmU6
OkF1dG9wbGF5RXZlbnRGbGFncz4gZmxhZ3MpCisgICAgSXNQYWdlTXV0ZWREaWRDaGFuZ2UoKQog
CiAjaWYgRU5BQkxFKE1FRElBX1NFU1NJT04pCiAgICAgSGFzTWVkaWFTZXNzaW9uV2l0aEFjdGl2
ZU1lZGlhRWxlbWVudHNEaWRDaGFuZ2UoYm9vbCBzdGF0ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggM2ExZTRmZjM3M2VkMWZlMmY1NmM4ODY0
NTBkNzU3NzJjNDBiODA4OC4uM2IyYTc1OGY1NDU2YTEwY2RmNDYxNTlhNTI5ZmI5MjU4ODgxNzM0
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAg
LTUwNzgsNiArNTA3OCw4IEBAIHZvaWQgV2ViUGFnZTo6c2V0TWVkaWFWb2x1bWUoZmxvYXQgdm9s
dW1lKQogdm9pZCBXZWJQYWdlOjpzZXRNdXRlZChNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxh
Z3Mgc3RhdGUpCiB7CiAgICAgbV9wYWdlLT5zZXRNdXRlZChzdGF0ZSk7CisKKyAgICBzZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OklzUGFnZU11dGVkRGlkQ2hhbmdlKCkpOwogfQogCiB2b2lk
IFdlYlBhZ2U6OnN0b3BNZWRpYUNhcHR1cmUoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDg1OTJlZmVkMjM0MTM5ZTRlZGE1OGVhYjljOGFjZGM0
NjhmMWZiZjcuLjk5YTk2NzY4NjRkYmUxOWIwNjg1ZTQzNzVmODY2NmJmYWEyYjFlMmQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAyMC0wNS0xMiAgSmFuLU1pY2hhZWwgQnJ1bW1lciAgPGphbi5icnVtbWVyQHRhYm9z
Lm9yZz4KKworICAgICAgICBBZGQgbXV0ZSBidXR0b24gdG8gbm90ZWJvb2sgdGl0bGUuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE1pbmlCcm93c2Vy
L2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAgIChhdWRpb0NsaWNrZWQpOgorICAgICAgICAoYXVk
aW9NdXRlZENoYW5nZWQpOgorICAgICAgICAoYnJvd3NlclRhYkNvbnN0cnVjdGVkKToKKwogMjAy
MC0wNS0wNSAgUm9zcyBLaXJzbGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAg
ICAgW0VDTUEtNDAyXSBJbXBsZW1lbnQgSW50bC5Mb2NhbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL01p
bmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3Nl
clRhYi5jCmluZGV4IDg1NzkwOThkNmQ5YmY1ZjNlMTAzZTY5YTRhYTk1NzNiY2Y0NTlkYjYuLmJh
MmY3NGMwZDA3OTkzZTExNjJhNGYyNjNmOTZiZmQxMzhmYjU5NmYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3Rr
L0Jyb3dzZXJUYWIuYwpAQCAtNTcsNiArNTcsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogICAg
IEd0a1dpZGdldCAqdGl0bGVCb3g7CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUxhYmVsOwogICAgIEd0
a1dpZGdldCAqdGl0bGVTcGlubmVyOworICAgIEd0a1dpZGdldCAqdGl0bGVBdWRpb0J1dHRvbjsK
ICAgICBHdGtXaWRnZXQgKnRpdGxlQ2xvc2VCdXR0b247CiB9OwogCkBAIC0zNjEsNiArMzYyLDI5
IEBAIHN0YXRpYyBnYm9vbGVhbiBpbnNwZWN0b3JDbG9zZWQoV2ViS2l0V2ViSW5zcGVjdG9yICpp
bnNwZWN0b3IsIEJyb3dzZXJUYWIgKnRhYikKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3N0YXRp
YyB2b2lkIGF1ZGlvQ2xpY2tlZChHdGtCdXR0b24gKmJ1dHRvbiwgZ3BvaW50ZXIgdXNlcl9kYXRh
KQoreworICAgIEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKHVzZXJfZGF0YSk7CisgICAg
Z2Jvb2xlYW4gbXV0ZWQgPSB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGFiLT53ZWJW
aWV3KTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQodGFiLT53ZWJWaWV3
LCAhbXV0ZWQpOworfQorCitzdGF0aWMgdm9pZCBhdWRpb011dGVkQ2hhbmdlZChXZWJLaXRXZWJW
aWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgdXNlcl9kYXRhKQorewor
ICAgIEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKHVzZXJfZGF0YSk7CisgICAgR3RrV2lk
Z2V0ICppbWFnZTsKKyAgICBnYm9vbGVhbiBtdXRlZDsKKworICAgIG11dGVkID0gd2Via2l0X3dl
Yl92aWV3X2lzX2F1ZGlvX211dGVkKHRhYi0+d2ViVmlldyk7CisgICAgaWYgKCFtdXRlZCkKKyAg
ICAgICAgaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJhdWRpby12b2x1bWUt
aGlnaC1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZWxzZQorICAgICAgICBp
bWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImF1ZGlvLXZvbHVtZS1tdXRlZC1z
eW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisKKyAgICBndGtfYnV0dG9uX3NldF9pbWFn
ZShHVEtfQlVUVE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKK30KKwogc3RhdGlj
IHZvaWQgYnJvd3NlclRhYlNldFByb3BlcnR5KEdPYmplY3QgKm9iamVjdCwgZ3VpbnQgcHJvcElk
LCBjb25zdCBHVmFsdWUgKnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKIHsKICAgICBCcm93c2Vy
VGFiICp0YWIgPSBCUk9XU0VSX1RBQihvYmplY3QpOwpAQCAtNDU1LDEyICs0NzksMjMgQEAgc3Rh
dGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3QpCiAgICAgZ3Rr
X2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFiLT50aXRsZUJveCksIGhib3gsIFRSVUUsIFRSVUUs
IDApOwogICAgIGd0a193aWRnZXRfc2hvdyhoYm94KTsKIAorICAgIHRhYi0+dGl0bGVBdWRpb0J1
dHRvbiA9IGd0a19idXR0b25fbmV3KCk7CisgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPnRpdGxl
QXVkaW9CdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyhhdWRpb0NsaWNrZWQpLCB0YWIpOwor
ICAgIGd0a19idXR0b25fc2V0X3JlbGllZihHVEtfQlVUVE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRv
biksIEdUS19SRUxJRUZfTk9ORSk7CisgICAgZ3RrX3dpZGdldF9zZXRfZm9jdXNfb25fY2xpY2so
dGFiLT50aXRsZUF1ZGlvQnV0dG9uLCBGQUxTRSk7CisKKyAgICBHdGtXaWRnZXQgKmltYWdlID0g
Z3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgiYXVkaW8tdm9sdW1lLWhpZ2gtc3ltYm9saWMi
LCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIGd0a19idXR0b25fc2V0X2ltYWdlKEdUS19CVVRU
T04odGFiLT50aXRsZUF1ZGlvQnV0dG9uKSwgaW1hZ2UpOworICAgIGd0a193aWRnZXRfc2hvdyhp
bWFnZSk7CisKKyAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0YWItPnRpdGxlQm94KSwg
dGFiLT50aXRsZUF1ZGlvQnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOworCiAgICAgdGFiLT50aXRs
ZUNsb3NlQnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKICAgICBnX3NpZ25hbF9jb25uZWN0X3N3
YXBwZWQodGFiLT50aXRsZUNsb3NlQnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soZ3RrX3dp
ZGdldF9kZXN0cm95KSwgdGFiKTsKICAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYoR1RLX0JVVFRP
Tih0YWItPnRpdGxlQ2xvc2VCdXR0b24pLCBHVEtfUkVMSUVGX05PTkUpOwogICAgIGd0a193aWRn
ZXRfc2V0X2ZvY3VzX29uX2NsaWNrKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiwgRkFMU0UpOwogCi0g
ICAgR3RrV2lkZ2V0ICppbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoIndpbmRv
dy1jbG9zZS1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgaW1hZ2UgPSBndGtf
aW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5kb3ctY2xvc2Utc3ltYm9saWMiLCBHVEtfSUNP
Tl9TSVpFX01FTlUpOwogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlORVIodGFiLT50
aXRsZUNsb3NlQnV0dG9uKSwgaW1hZ2UpOwogICAgIGd0a193aWRnZXRfc2hvdyhpbWFnZSk7CiAK
QEAgLTQ3NCw2ICs1MDksOSBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09i
amVjdCAqZ09iamVjdCkKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgImxvYWQt
ZmFpbGVkLXdpdGgtdGxzLWVycm9ycyIsIEdfQ0FMTEJBQ0sobG9hZEZhaWxlZFdpdGhUTFNlcnJv
cnMpLCB0YWIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicGVybWlzc2lv
bi1yZXF1ZXN0IiwgR19DQUxMQkFDSyhkZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCksIHRhYik7CiAg
ICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJydW4tY29sb3ItY2hvb3NlciIsIEdf
Q0FMTEJBQ0socnVuQ29sb3JDaG9vc2VyQ2FsbGJhY2spLCB0YWIpOworCisgICAgZ19vYmplY3Rf
YmluZF9wcm9wZXJ0eSh0YWItPndlYlZpZXcsICJpcy1wbGF5aW5nLWF1ZGlvIiwgdGFiLT50aXRs
ZUF1ZGlvQnV0dG9uLCAidmlzaWJsZSIsIEdfQklORElOR19ERUZBVUxUIHwgR19CSU5ESU5HX1NZ
TkNfQ1JFQVRFKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgIm5vdGlmeTo6
aXMtYXVkaW8tbXV0ZWQiLCBHX0NBTExCQUNLKGF1ZGlvTXV0ZWRDaGFuZ2VkKSwgdGFiKTsKICNl
bmRpZgogCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IgPSB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X2luc3BlY3Rvcih0YWItPndlYlZpZXcpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399162</attachid>
            <date>2020-05-12 13:22:06 -0700</date>
            <delta_ts>2020-05-13 07:53:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200512222205.patch</filename>
            <type>text/plain</type>
            <size>19876</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLmFjYjY2ODQ1MTQ1Y2I1NjA4NDlhYzE3NmZiODNmZmVh
YjliYjljMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTIgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzQXVk
aW9NdXRlZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0dldFByb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19zZXRfYXVkaW9fbXV0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX2F1ZGlv
X211dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aXNBdWRpb011dGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
c1BhZ2VNdXRlZERpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBk
YXRlUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldE11dGVkKToKKwogMjAyMC0wNS0wNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZXByZWNhdGVkIE5TR3JhcGhpY3NDb250ZXh0IG1l
dGhvZHMgdXNpbmcgJ2dyYXBoaWNzUG9ydCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SVVJQ2xpZW50LmgKaW5kZXggYWNmN2QwNDA0NzM2MzM1NTIxZDFiNGFhOWNmNDA4YTE1NDMxNWI4
My4uOGNkMTRiYzRhZjc2ZTljNzQwOTI2Yjg3MDZkNzg1MjQxZWY0Nzc2MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTE2MCw2ICsxNjAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIGlzUGxheWluZ01lZGlhRGlkQ2hhbmdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIG1lZGlhQ2FwdHVyZVN0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncykgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGhhbmRsZUF1dG9wbGF5RXZlbnQoV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBXZWJD
b3JlOjpBdXRvcGxheUV2ZW50LCBPcHRpb25TZXQ8V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdz
PikgeyB9CisgICAgdmlydHVhbCB2b2lkIGlzUGFnZU11dGVkRGlkQ2hhbmdlKFdlYktpdDo6V2Vi
UGFnZVByb3h5JikgeyB9CiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICB2aXJ0dWFs
IHZvaWQgbWVkaWFTZXNzaW9uTWV0YWRhdGFEaWRDaGFuZ2UoV2ViS2l0OjpXZWJQYWdlUHJveHkm
LCBXZWJLaXQ6OldlYk1lZGlhU2Vzc2lvbk1ldGFkYXRhKikgeyB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggMDdkYTk2
MTM4ZGIxMzMzY2U1YTQ5MDkzZGMyMTg3ZmQxMjAzMjIxNC4uNDUyMjVkOTMzMmJmMWM5OGM3OTlm
MzI0YjdhOGYxNDczOWIzZTM4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMzI3LDYgKzMyNywxMSBAQCBwcml2YXRl
OgogICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKG1fd2ViVmlldyk7
CiAgICAgfQogCisgICAgdm9pZCBpc1BhZ2VNdXRlZERpZENoYW5nZShXZWJQYWdlUHJveHkmKSBm
aW5hbAorICAgIHsKKyAgICAgICAgd2Via2l0V2ViVmlld0lzQXVkaW9NdXRlZENoYW5nZWQobV93
ZWJWaWV3KTsKKyAgICB9CisKICNpZiBFTkFCTEUoUE9JTlRFUl9MT0NLKQogICAgIHZvaWQgcmVx
dWVzdFBvaW50ZXJMb2NrKFdlYlBhZ2VQcm94eSogcGFnZSkgZmluYWwKICAgICB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDhjNTRiNDIzZmY5MjY2YjgzMDczODVkZDEzYzNmNDQ5MjRmYzJlNDUuLjE4YjUwODJjM2RjNDQx
NGJlNzM4OWQzNzVkMzU0ZWFjNTRkOWRiYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xOTksNyArMTk5LDggQEAgZW51
bSB7CiAgICAgUFJPUF9JU19DT05UUk9MTEVEX0JZX0FVVE9NQVRJT04sCiAgICAgUFJPUF9BVVRP
TUFUSU9OX1BSRVNFTlRBVElPTl9UWVBFLAogICAgIFBST1BfRURJVEFCTEUsCi0gICAgUFJPUF9Q
QUdFX0lECisgICAgUFJPUF9QQUdFX0lELAorICAgIFBST1BfSVNfQVVESU9fTVVURUQKIH07CiAK
IHR5cGVkZWYgSGFzaE1hcDx1aW50NjRfdCwgR1JlZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gPiBM
b2FkaW5nUmVzb3VyY2VzTWFwOwpAQCAtMzM3LDYgKzMzOCwxMSBAQCB2b2lkIHdlYmtpdFdlYlZp
ZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBnX29i
amVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1wbGF5aW5nLWF1ZGlvIik7CiB9CiAK
K3ZvaWQgd2Via2l0V2ViVmlld0lzQXVkaW9NdXRlZENoYW5nZWQoV2ViS2l0V2ViVmlldyogd2Vi
VmlldykKK3sKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1hdWRp
by1tdXRlZCIpOworfQorCiBjbGFzcyBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIgZmluYWwgOiBwdWJs
aWMgUGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgpAQCAtODk2LDYgKzkwMiw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdH
ZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1CiAg
ICAgY2FzZSBQUk9QX1BBR0VfSUQ6CiAgICAgICAgIGdfdmFsdWVfc2V0X3VpbnQ2NCh2YWx1ZSwg
d2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHdlYlZpZXcpKTsKICAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBQUk9QX0lTX0FVRElPX01VVEVEOgorICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFu
KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQod2ViVmlldykpOworICAgICAg
ICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJP
UEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtMTI2NSw2ICsx
Mjc0LDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdl
YlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgMCwgR19NQVhVSU5UNjQsIDAs
CiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKIAorICAgIC8qKgorICAgICAq
IFdlYktpdFdlYlZpZXc6aXMtYXVkaW8tbXV0ZWQ6CisgICAgICoKKyAgICAgKiBXaGV0aGVyIHRo
ZSAjV2ViS2l0V2ViVmlldyBhdWRpbyBpcyBtdXRlZCBmcm9tIGEgcGFnZS4KKyAgICAgKiBUaGlz
IHByb3BlcnR5IGJlY29tZXMgJVRSVUUgYXMgc29vbiBhcyB3ZWIgY29udGVudCBpcyBtdXRlZC4g
T3RoZXJ3aXNlCisgICAgICogdGhlIHByb3BlcnR5IGlzIHNldCBiYWNrIHRvICVGQUxTRS4KKyAg
ICAgKgorICAgICAqIFNpbmNlOiAyLjMwCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5z
dGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0lTX0FV
RElPX01VVEVELAorICAgICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJp
cy1hdWRpby1tdXRlZCIsCisgICAgICAgICAgICAiSXMgQXVkaW8gTXV0ZWQiLAorICAgICAgICAg
ICAgXygiV2hldGhlciB0aGUgdmlldyBhdWRpbyBpcyBtdXRlZCIpLAorICAgICAgICAgICAgRkFM
U0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKKwogICAgIC8qKgogICAg
ICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAj
V2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0ZWQKQEAgLTMxNTgsNiAr
MzE4NiwzOSBAQCBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyhXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3KQogICAgIHJldHVybiBnZXRQYWdlKHdlYlZpZXcpLmlzUGxheWlu
Z0F1ZGlvKCk7CiB9CiAKKy8qKgorICogd2Via2l0X3dlYl92aWV3X3NldF9hdWRpb19tdXRlZDoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICogQG11dGVkOiBtdXRlIGZsYWcKKyAq
CisgKiBTZXRzIHRoZSBtdXRlIHN0YXRlIG9mIEB3ZWJfdmlldy4KKyAqCisgKiBTaW5jZTogMi4z
MAorICovCit2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgZ2Jvb2xlYW4gbXV0ZWQpCit7CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisgICAgZ2V0UGFnZSh3ZWJWaWV3KS5zZXRNdXRl
ZChtdXRlZCA/IFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6OkF1ZGlvSXNNdXRlZCA6IFdlYkNvcmU6
Ok1lZGlhUHJvZHVjZXI6Ok5vbmVNdXRlZCk7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3
X2lzX2F1ZGlvX211dGVkOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICog
R2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBAd2ViX3ZpZXcuCisgKgorICogUmV0dXJuczogJVRSVUUg
aWYgQHdlYl92aWV3IGF1ZGlvIGlzIG11dGVkIG9yICVGQUxTRSBpcyBhdWRpbyBpcyBub3QgbXV0
ZWQuCisgKgorICogU2luY2U6IDIuMzAKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lz
X2F1ZGlvX211dGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1
cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc0F1ZGlvTXV0ZWQoKTsKK30KKwogLyoqCiAgKiB3ZWJraXRf
d2ViX3ZpZXdfZ29fYmFjazoKICAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXdQcml2
YXRlLmgKaW5kZXggNWFiNzU3NGM5Mzc4ZjUyZGI4N2NlNzUxNTc2MjdjMDRlOWIyZTk2Mi4uNDAx
NjBjMGM1NWY4ZDA5YWE5NzdkM2MyMzMyZjkyMDNmNzc2YjkwMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCkBA
IC05MSw2ICs5MSw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0luc2VjdXJlQ29udGVudERldGVjdGVk
KFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFCiBib29sIHdlYmtpdFdlYlZp
ZXdFbWl0U2hvd05vdGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3KiwgV2ViS2l0Tm90aWZpY2F0aW9u
Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzVGVybWluYXRlZChXZWJLaXRXZWJWaWV3
KiwgV2ViS2l0V2ViUHJvY2Vzc1Rlcm1pbmF0aW9uUmVhc29uKTsKIHZvaWQgd2Via2l0V2ViVmll
d0lzUGxheWluZ0F1ZGlvQ2hhbmdlZChXZWJLaXRXZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYlZp
ZXdJc0F1ZGlvTXV0ZWRDaGFuZ2VkKFdlYktpdFdlYlZpZXcqKTsKIHZvaWQgd2Via2l0V2ViVmll
d1NlbGVjdGlvbkRpZENoYW5nZShXZWJLaXRXZWJWaWV3Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdS
ZXF1ZXN0SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnMoV2ViS2l0V2ViVmlldyosIFdlYktpdDo6
SW5zdGFsbE1pc3NpbmdNZWRpYVBsdWdpbnNQZXJtaXNzaW9uUmVxdWVzdCYpOwogV2ViS2l0V2Vi
c2l0ZURhdGFNYW5hZ2VyKiB3ZWJraXRXZWJWaWV3R2V0V2Vic2l0ZURhdGFNYW5hZ2VyKFdlYktp
dFdlYlZpZXcqKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmgKaW5kZXggYzE1MzljYzI3ODllMGM5NGFhNGE1YjFmZDM4YjBlMTU1M2Q1ODExYy4u
OThiOGI2YzAxZTM1MjQ3NzM1MDdmOWExNzlhYTk0OWI2N2U3YWI2OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTM1MCw2ICszNTAs
MTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lz
X3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRf
YXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRf
QVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJ
VF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00
LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmM0MjcwYzlmNDBlOGZiOGM0ZmU2NmNl
NmUzYmI1MGIzZmY5NzE3Li5lZDFlMGU0NTI1NzhhYjMyYjZlZmQzNDBlMDEwNWQ1NGI0YWQwY2Q5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTIzOSw2ICsyMzksOCBAQCB3
ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3Bf
bG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19w
bGF5aW5nX2F1ZGlvCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211dGVkCit3ZWJraXRfd2Vi
X3ZpZXdfaXNfYXVkaW9fbXV0ZWQKIHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRf
cHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJf
dmlld19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L3dwZS9XZWJLaXRXZWJWaWV3LmgKaW5kZXggMmIyZDc4ZDFiYjUzYTJmZmRiNzBjMmE0YmRiYzg4
NGFmNjAzNmY2MC4uZjRlYzUwNjRjNGNmMDljMDU4NWUzMWE2M2IyM2Y2ODQwMTUyNWYyOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAg
LTMzOSw2ICszMzksMTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0
X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2Vi
VmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93
ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQp
OworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dyk7CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAg
ICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2Rv
Y3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGMyZGM2NTE1YzY2Yjc5NTc3YTdkNTgwN2Nh
NGEwZmJjNWQwNzUzOS4uYTI5N2RlOTZhNDExNmY1MDQwZDBhOGQ1ZTYxYTA0Mjg3NzY1MWQwNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAt
c2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dApAQCAtMjE0LDYgKzIxNCw4IEBAIHdlYmtpdF93ZWJfdmlld19y
ZWxvYWRfYnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRf
d2ViX3ZpZXdfaXNfbG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dl
YmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQKK3dlYmtpdF93ZWJfdmlld19pc19hdWRpb19t
dXRlZAogd2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0
X3dlYl92aWV3X2dldF9jdXN0b21fY2hhcnNldAogd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21f
Y2hhcnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTJk
YTFmNzZiNGE3MzYxMmJiODE1MDZhMzkwZmE3NjY5YjY5NDViNS4uZDYwNzNkMWRmZTRhOGNhZGNm
MjI4MzA4ZjlhNjhlYzgwMzc0N2M0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01OTc2LDYgKzU5NzYsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE11
dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKICAgICBh
Y3Rpdml0eVN0YXRlRGlkQ2hhbmdlKHsgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlLCBBY3Rpdml0
eVN0YXRlOjpJc0NhcHR1cmluZ01lZGlhIH0pOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6aXNB
dWRpb011dGVkKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1fbXV0ZWRTdGF0ZSAmIE1lZGlhUHJv
ZHVjZXI6OkF1ZGlvSXNNdXRlZCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNh
cHR1cmVFbmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX21lZGlhQ2FwdHVyZUVuYWJsZWQg
PSBlbmFibGVkOwpAQCAtODk2NiwxMSArODk3MSwyMiBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6dXBk
YXRlUGxheWluZ01lZGlhRGlkQ2hhbmdlKE1lZGlhUHJvZHVjZXI6Ok1lZGlhU3RhdGVGbGFncyBu
ZQogICAgIG1fcHJvY2Vzcy0+dXBkYXRlQXVkaWJsZU1lZGlhQXNzZXJ0aW9ucygpOwogfQogCit2
b2lkIFdlYlBhZ2VQcm94eTo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UoKQoreworICAgIGlmICghbV9p
c0Nsb3NlZCkKKyAgICAgICAgdXBkYXRlUGFnZU11dGVkRGlkQ2hhbmdlKCk7Cit9CisKIHZvaWQg
V2ViUGFnZVByb3h5Ojp2aWRlb0NvbnRyb2xzTWFuYWdlckRpZENoYW5nZSgpCiB7CiAgICAgcGFn
ZUNsaWVudCgpLnZpZGVvQ29udHJvbHNNYW5hZ2VyRGlkQ2hhbmdlKCk7CiB9CiAKK3ZvaWQgV2Vi
UGFnZVByb3h5Ojp1cGRhdGVQYWdlTXV0ZWREaWRDaGFuZ2UoKQoreworICAgIG1fdWlDbGllbnQt
PmlzUGFnZU11dGVkRGlkQ2hhbmdlKCp0aGlzKTsKK30KKwogYm9vbCBXZWJQYWdlUHJveHk6Omhh
c0FjdGl2ZVZpZGVvRm9yQ29udHJvbHNNYW5hZ2VyKCkgY29uc3QKIHsKICNpZiBFTkFCTEUoVklE
RU9fUFJFU0VOVEFUSU9OX01PREUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5o
CmluZGV4IDk2NTIzZjJmZGVhN2I1ZWFkYTlhM2MwZGNlYzExYTFiNzM3MDRjYzEuLmY5MjYyM2Yy
MTZjN2ZhNWRhMGZkYWYzNzI4M2NmZmVlNmU1ZTdhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCkBAIC0xMzA0LDYgKzEzMDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lk
IHNldE1lZGlhVm9sdW1lKGZsb2F0KTsKICAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25z
dDsKICAgICB2b2lkIHNldE1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coYm9vbCk7CiAgICAgYm9v
bCBtYXlTdGFydE1lZGlhV2hlbkluV2luZG93KCkgY29uc3QgeyByZXR1cm4gbV9tYXlTdGFydE1l
ZGlhV2hlbkluV2luZG93OyB9CiAgICAgdm9pZCBzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wp
OwpAQCAtMTQyOCw2ICsxNDI5LDggQEAgcHVibGljOgogICAgIGJvb2wgaGFzQWN0aXZlVmlkZW9T
dHJlYW0oKSBjb25zdCB7IHJldHVybiBtX21lZGlhU3RhdGUgJiBXZWJDb3JlOjpNZWRpYVByb2R1
Y2VyOjpIYXNBY3RpdmVWaWRlb0NhcHR1cmVEZXZpY2U7IH0KICAgICBXZWJDb3JlOjpNZWRpYVBy
b2R1Y2VyOjpNZWRpYVN0YXRlRmxhZ3MgbWVkaWFTdGF0ZUZsYWdzKCkgY29uc3QgeyByZXR1cm4g
bV9tZWRpYVN0YXRlOyB9CiAgICAgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6TXV0ZWRTdGF0ZUZs
YWdzIG11dGVkU3RhdGVGbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fbXV0ZWRTdGF0ZTsgfQorICAg
IHZvaWQgaXNQYWdlTXV0ZWREaWRDaGFuZ2UoKTsKKyAgICB2b2lkIHVwZGF0ZVBhZ2VNdXRlZERp
ZENoYW5nZSgpOwogCiAgICAgdm9pZCBoYW5kbGVBdXRvcGxheUV2ZW50KFdlYkNvcmU6OkF1dG9w
bGF5RXZlbnQsIE9wdGlvblNldDxXZWJDb3JlOjpBdXRvcGxheUV2ZW50RmxhZ3M+KTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCmluZGV4
IDhmODBiYTQwODFkZGViZDVmZDI4Y2Q5OWM0MjNhM2E2MDY3NTYxZWMuLmI2YzY1MTEwZWFhNWNj
MjM4MTM1MWMwNTA2YTE5YWM1YzI5YTE0MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KQEAgLTQ3OSw2ICs0NzksNyBAQCBtZXNzYWdl
cyAtPiBXZWJQYWdlUHJveHkgewogCiAgICAgSXNQbGF5aW5nTWVkaWFEaWRDaGFuZ2UodW5zaWdu
ZWQgc3RhdGUsIHVpbnQ2NF90IHNvdXJjZUVsZW1lbnRJRCkKICAgICBIYW5kbGVBdXRvcGxheUV2
ZW50KGVudW06dWludDhfdCBXZWJDb3JlOjpBdXRvcGxheUV2ZW50IGV2ZW50LCBPcHRpb25TZXQ8
V2ViQ29yZTo6QXV0b3BsYXlFdmVudEZsYWdzPiBmbGFncykKKyAgICBJc1BhZ2VNdXRlZERpZENo
YW5nZSgpCiAKICNpZiBFTkFCTEUoTUVESUFfU0VTU0lPTikKICAgICBIYXNNZWRpYVNlc3Npb25X
aXRoQWN0aXZlTWVkaWFFbGVtZW50c0RpZENoYW5nZShib29sIHN0YXRlKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzYTFlNGZmMzczZWQxZmUy
ZjU2Yzg4NjQ1MGQ3NTc3MmM0MGI4MDg4Li4zYjJhNzU4ZjU0NTZhMTBjZGY0NjE1OWE1MjlmYjky
NTg4ODE3MzQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcApAQCAtNTA3OCw2ICs1MDc4LDggQEAgdm9pZCBXZWJQYWdlOjpzZXRNZWRpYVZvbHVtZShm
bG9hdCB2b2x1bWUpCiB2b2lkIFdlYlBhZ2U6OnNldE11dGVkKE1lZGlhUHJvZHVjZXI6Ok11dGVk
U3RhdGVGbGFncyBzdGF0ZSkKIHsKICAgICBtX3BhZ2UtPnNldE11dGVkKHN0YXRlKTsKKworICAg
IHNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6SXNQYWdlTXV0ZWREaWRDaGFuZ2UoKSk7CiB9
CiAKIHZvaWQgV2ViUGFnZTo6c3RvcE1lZGlhQ2FwdHVyZSgpCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODU5MmVmZWQyMzQxMzllNGVkYTU4ZWFi
OWM4YWNkYzQ2OGYxZmJmNy4uOTlhOTY3Njg2NGRiZTE5YjA2ODVlNDM3NWY4NjY2YmZhYTJiMWUy
ZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE1IEBACisyMDIwLTA1LTEyICBKYW4tTWljaGFlbCBCcnVtbWVyICA8amFuLmJydW1t
ZXJAdGFib3Mub3JnPgorCisgICAgICAgIEFkZCBtdXRlIGJ1dHRvbiB0byBub3RlYm9vayB0aXRs
ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NjEx
OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKGF1ZGlvQ2xpY2tlZCk6CisgICAg
ICAgIChhdWRpb011dGVkQ2hhbmdlZCk6CisgICAgICAgIChicm93c2VyVGFiQ29uc3RydWN0ZWQp
OgorCiAyMDIwLTA1LTA1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNvbT4K
IAogICAgICAgICBbRUNNQS00MDJdIEltcGxlbWVudCBJbnRsLkxvY2FsZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyVGFiLmMKaW5kZXggODU3OTA5OGQ2ZDliZjVmM2UxMDNlNjlhNGFhOTU3M2JjZjQ1
OWRiNi4uYmEyZjc0YzBkMDc5OTNlMTE2MmE0ZjI2M2Y5NmJmZDEzOGZiNTk2ZiAxMDA2NDQKLS0t
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYworKysgYi9Ub29scy9NaW5pQnJv
d3Nlci9ndGsvQnJvd3NlclRhYi5jCkBAIC01Nyw2ICs1Nyw3IEBAIHN0cnVjdCBfQnJvd3NlclRh
YiB7CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUJveDsKICAgICBHdGtXaWRnZXQgKnRpdGxlTGFiZWw7
CiAgICAgR3RrV2lkZ2V0ICp0aXRsZVNwaW5uZXI7CisgICAgR3RrV2lkZ2V0ICp0aXRsZUF1ZGlv
QnV0dG9uOwogICAgIEd0a1dpZGdldCAqdGl0bGVDbG9zZUJ1dHRvbjsKIH07CiAKQEAgLTM2MSw2
ICszNjIsMjkgQEAgc3RhdGljIGdib29sZWFuIGluc3BlY3RvckNsb3NlZChXZWJLaXRXZWJJbnNw
ZWN0b3IgKmluc3BlY3RvciwgQnJvd3NlclRhYiAqdGFiKQogICAgIHJldHVybiBGQUxTRTsKIH0K
IAorc3RhdGljIHZvaWQgYXVkaW9DbGlja2VkKEd0a0J1dHRvbiAqYnV0dG9uLCBncG9pbnRlciB1
c2VyX2RhdGEpCit7CisgICAgQnJvd3NlclRhYiAqdGFiID0gQlJPV1NFUl9UQUIodXNlcl9kYXRh
KTsKKyAgICBnYm9vbGVhbiBtdXRlZCA9IHdlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZCh0
YWItPndlYlZpZXcpOworCisgICAgd2Via2l0X3dlYl92aWV3X3NldF9hdWRpb19tdXRlZCh0YWIt
PndlYlZpZXcsICFtdXRlZCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1ZGlvTXV0ZWRDaGFuZ2VkKFdl
YktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciB1c2VyX2Rh
dGEpCit7CisgICAgQnJvd3NlclRhYiAqdGFiID0gQlJPV1NFUl9UQUIodXNlcl9kYXRhKTsKKyAg
ICBHdGtXaWRnZXQgKmltYWdlOworICAgIGdib29sZWFuIG11dGVkOworCisgICAgbXV0ZWQgPSB3
ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGFiLT53ZWJWaWV3KTsKKyAgICBpZiAoIW11
dGVkKQorICAgICAgICBpbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImF1ZGlv
LXZvbHVtZS1oaWdoLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBlbHNlCisg
ICAgICAgIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgiYXVkaW8tdm9sdW1l
LW11dGVkLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKworICAgIGd0a19idXR0b25f
c2V0X2ltYWdlKEdUS19CVVRUT04odGFiLT50aXRsZUF1ZGlvQnV0dG9uKSwgaW1hZ2UpOworfQor
CiBzdGF0aWMgdm9pZCBicm93c2VyVGFiU2V0UHJvcGVydHkoR09iamVjdCAqb2JqZWN0LCBndWlu
dCBwcm9wSWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQogewogICAg
IEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKG9iamVjdCk7CkBAIC00NTUsMTIgKzQ3OSwy
MyBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkK
ICAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0YWItPnRpdGxlQm94KSwgaGJveCwgVFJV
RSwgVFJVRSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGhib3gpOwogCisgICAgdGFiLT50aXRs
ZUF1ZGlvQnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHRh
Yi0+dGl0bGVBdWRpb0J1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGF1ZGlvQ2xpY2tlZCks
IHRhYik7CisgICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRUT04odGFiLT50aXRsZUF1
ZGlvQnV0dG9uKSwgR1RLX1JFTElFRl9OT05FKTsKKyAgICBndGtfd2lkZ2V0X3NldF9mb2N1c19v
bl9jbGljayh0YWItPnRpdGxlQXVkaW9CdXR0b24sIEZBTFNFKTsKKworICAgIEd0a1dpZGdldCAq
aW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJhdWRpby12b2x1bWUtaGlnaC1z
eW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2Uo
R1RLX0JVVFRPTih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBpbWFnZSk7CisgICAgZ3RrX3dpZGdl
dF9zaG93KGltYWdlKTsKKworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHRhYi0+dGl0
bGVCb3gpLCB0YWItPnRpdGxlQXVkaW9CdXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7CisKICAgICB0
YWItPnRpdGxlQ2xvc2VCdXR0b24gPSBndGtfYnV0dG9uX25ldygpOwogICAgIGdfc2lnbmFsX2Nv
bm5lY3Rfc3dhcHBlZCh0YWItPnRpdGxlQ2xvc2VCdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFD
SyhndGtfd2lkZ2V0X2Rlc3Ryb3kpLCB0YWIpOwogICAgIGd0a19idXR0b25fc2V0X3JlbGllZihH
VEtfQlVUVE9OKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiksIEdUS19SRUxJRUZfTk9ORSk7CiAgICAg
Z3RrX3dpZGdldF9zZXRfZm9jdXNfb25fY2xpY2sodGFiLT50aXRsZUNsb3NlQnV0dG9uLCBGQUxT
RSk7CiAKLSAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFt
ZSgid2luZG93LWNsb3NlLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBpbWFn
ZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoIndpbmRvdy1jbG9zZS1zeW1ib2xpYyIs
IEdUS19JQ09OX1NJWkVfTUVOVSk7CiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5F
Uih0YWItPnRpdGxlQ2xvc2VCdXR0b24pLCBpbWFnZSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGlt
YWdlKTsKIApAQCAtNDc0LDYgKzUwOSw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1
Y3RlZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3
LCAibG9hZC1mYWlsZWQtd2l0aC10bHMtZXJyb3JzIiwgR19DQUxMQkFDSyhsb2FkRmFpbGVkV2l0
aFRMU2Vycm9ycyksIHRhYik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJw
ZXJtaXNzaW9uLXJlcXVlc3QiLCBHX0NBTExCQUNLKGRlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KSwg
dGFiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgInJ1bi1jb2xvci1jaG9v
c2VyIiwgR19DQUxMQkFDSyhydW5Db2xvckNob29zZXJDYWxsYmFjayksIHRhYik7CisKKyAgICBn
X29iamVjdF9iaW5kX3Byb3BlcnR5KHRhYi0+d2ViVmlldywgImlzLXBsYXlpbmctYXVkaW8iLCB0
YWItPnRpdGxlQXVkaW9CdXR0b24sICJ2aXNpYmxlIiwgR19CSU5ESU5HX0RFRkFVTFQgfCBHX0JJ
TkRJTkdfU1lOQ19DUkVBVEUpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAi
bm90aWZ5Ojppcy1hdWRpby1tdXRlZCIsIEdfQ0FMTEJBQ0soYXVkaW9NdXRlZENoYW5nZWQpLCB0
YWIpOwogI2VuZGlmCiAKICAgICBXZWJLaXRXZWJJbnNwZWN0b3IgKmluc3BlY3RvciA9IHdlYmtp
dF93ZWJfdmlld19nZXRfaW5zcGVjdG9yKHRhYi0+d2ViVmlldyk7CmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNw
cAppbmRleCA3N2Y3NjE3MmU5MmZkOWE5MDY1YWU1ZmZiMmY4MjFlZDY3YmJiZDAxLi5jZDlmZGQ0
YjIwNWVhMzNhZTZiZGI5NGU1YzJlMjRmNDZiYTBkYjYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAK
QEAgLTExMzMsNiArMTEzMywxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1
ZGlvKElzUGxheWluZ0F1ZGlvV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaQogICAgIGdfYXNz
ZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKHRlc3QtPm1fd2ViVmll
dykpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzQXVkaW9NdXRlZChXZWJWaWV3VGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfd2Vi
X3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgd2Via2l0X3dlYl92
aWV3X3NldF9hdWRpb19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcsIFRSVUUpOworICAgIGdfYXNzZXJ0
X3RydWUod2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKHRlc3QtPm1fd2ViVmlldykpOwor
ICAgIHdlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQodGVzdC0+bV93ZWJWaWV3LCBGQUxT
RSk7CisgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKHRl
c3QtPm1fd2ViVmlldykpOworfQorCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0JhY2tncm91bmRD
b2xvcihXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKICNpZiBQTEFURk9STShH
VEspCkBAIC0xMzg5LDYgKzEzOTgsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAjaWYgUExBVEZPUk0o
V1BFKQogICAgIEZyYW1lRGlzcGxheWVkVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImZyYW1l
LWRpc3BsYXllZCIsIHRlc3RXZWJWaWV3RnJhbWVEaXNwbGF5ZWQpOwogI2VuZGlmCisgICAgV2Vi
Vmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJpcy1hdWRpby1tdXRlZCIsIHRlc3RXZWJW
aWV3SXNBdWRpb011dGVkKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399262</attachid>
            <date>2020-05-13 07:53:22 -0700</date>
            <delta_ts>2020-05-14 23:13:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200513165321.patch</filename>
            <type>text/plain</type>
            <size>14910</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLmFjYjY2ODQ1MTQ1Y2I1NjA4NDlhYzE3NmZiODNmZmVh
YjliYjljMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTIgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzQXVk
aW9NdXRlZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0dldFByb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19zZXRfYXVkaW9fbXV0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX2F1ZGlv
X211dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aXNBdWRpb011dGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
c1BhZ2VNdXRlZERpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBk
YXRlUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldE11dGVkKToKKwogMjAyMC0wNS0wNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZXByZWNhdGVkIE5TR3JhcGhpY3NDb250ZXh0IG1l
dGhvZHMgdXNpbmcgJ2dyYXBoaWNzUG9ydCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOGM1NGI0MjNmZjkyNjZiODMwNzM4
NWRkMTNjM2Y0NDkyNGZjMmU0NS4uYmY4NjAxNGNlOTFiMjJhMDVkYjcyMjVjNTI5NGMyNDQ3MmU1
Yjk0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAKQEAgLTE5OSw3ICsxOTksOCBAQCBlbnVtIHsKICAgICBQUk9QX0lTX0NPTlRS
T0xMRURfQllfQVVUT01BVElPTiwKICAgICBQUk9QX0FVVE9NQVRJT05fUFJFU0VOVEFUSU9OX1RZ
UEUsCiAgICAgUFJPUF9FRElUQUJMRSwKLSAgICBQUk9QX1BBR0VfSUQKKyAgICBQUk9QX1BBR0Vf
SUQsCisgICAgUFJPUF9JU19BVURJT19NVVRFRAogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBA
IC04OTYsNiArODk3LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1Bf
UEFHRV9JRDoKICAgICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2ViX3Zp
ZXdfZ2V0X3BhZ2VfaWQod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1Bf
SVNfQVVESU9fTVVURUQ6CisgICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtp
dF93ZWJfdmlld19pc19hdWRpb19tdXRlZCh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAg
IGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmpl
Y3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC0xMjY1LDYgKzEyNjksMjUgQEAgc3Rh
dGljIHZvaWQgd2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3
ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAgICAwLCBHX01BWFVJTlQ2NCwgMCwKICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzppcy1hdWRpby1tdXRlZDoKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlICNXZWJLaXRXZWJW
aWV3IGF1ZGlvIGlzIG11dGVkIGZyb20gYSBwYWdlLgorICAgICAqIFRoaXMgcHJvcGVydHkgYmVj
b21lcyAlVFJVRSBhcyBzb29uIGFzIHdlYiBjb250ZW50IGlzIG11dGVkLiBPdGhlcndpc2UKKyAg
ICAgKiB0aGUgcHJvcGVydHkgaXMgc2V0IGJhY2sgdG8gJUZBTFNFLgorICAgICAqCisgICAgICog
U2luY2U6IDIuMzAKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3Byb3BlcnR5
KAorICAgICAgICBnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfSVNfQVVESU9fTVVURUQsCisg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImlzLWF1ZGlvLW11dGVk
IiwKKyAgICAgICAgICAgICJJcyBBdWRpbyBNdXRlZCIsCisgICAgICAgICAgICBfKCJXaGV0aGVy
IHRoZSB2aWV3IGF1ZGlvIGlzIG11dGVkIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAg
ICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOworCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2Vi
Vmlldzo6bG9hZC1jaGFuZ2VkOgogICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3
IG9uIHdoaWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApAQCAtMzE1OCw2ICszMTgxLDQ1IEBAIGdi
b29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCiAgICAgcmV0dXJuIGdldFBhZ2Uod2ViVmlldykuaXNQbGF5aW5nQXVkaW8oKTsKIH0K
IAorc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0lzQXVkaW9NdXRlZENoYW5nZWQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKK3sKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyks
ICJpcy1hdWRpby1tdXRlZCIpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19zZXRfYXVk
aW9fbXV0ZWQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqIEBtdXRlZDogbXV0
ZSBmbGFnCisgKgorICogU2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBAd2ViX3ZpZXcuCisgKgorICog
U2luY2U6IDIuMzAKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211dGVkKFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIG11dGVkKQoreworICAgIGdfcmV0dXJuX2lm
X2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAgIGdldFBhZ2Uod2ViVmll
dykuc2V0TXV0ZWQobXV0ZWQgPyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQg
OiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpOb25lTXV0ZWQpOworICAgIHdlYmtpdFdlYlZpZXdJ
c0F1ZGlvTXV0ZWRDaGFuZ2VkKHdlYlZpZXcpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmll
d19pc19hdWRpb19tdXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAq
IEdldHMgdGhlIG11dGUgc3RhdGUgb2YgQHdlYl92aWV3LgorICoKKyAqIFJldHVybnM6ICVUUlVF
IGlmIEB3ZWJfdmlldyBhdWRpbyBpcyBtdXRlZCBvciAlRkFMU0UgaXMgYXVkaW8gaXMgbm90IG11
dGVkLgorICoKKyAqIFNpbmNlOiAyLjMwCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19p
c19hdWRpb19tdXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0
dXJuIGdldFBhZ2Uod2ViVmlldykuaXNBdWRpb011dGVkKCk7Cit9CisKIC8qKgogICogd2Via2l0
X3dlYl92aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggYzE1
MzljYzI3ODllMGM5NGFhNGE1YjFmZDM4YjBlMTU1M2Q1ODExYy4uOThiOGI2YzAxZTM1MjQ3NzM1
MDdmOWExNzlhYTk0OWI2N2U3YWI2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTM1MCw2ICszNTAsMTMgQEAgd2Via2l0X3dlYl92
aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwog
V0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwog
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9fbXV0ZWQgICAgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dAppbmRleCAxYmM0MjcwYzlmNDBlOGZiOGM0ZmU2NmNlNmUzYmI1MGIzZmY5NzE3Li5l
ZDFlMGU0NTI1NzhhYjMyYjZlZmQzNDBlMDEwNWQ1NGI0YWQwY2Q5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKQEAgLTIzOSw2ICsyMzksOCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVs
b2FkX2J5cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dl
Yl92aWV3X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCit3ZWJr
aXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211dGVkCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0
ZWQKIHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93
ZWJfdmlld19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2No
YXJzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0
V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3
LmgKaW5kZXggMmIyZDc4ZDFiYjUzYTJmZmRiNzBjMmE0YmRiYzg4NGFmNjAzNmY2MC4uZjRlYzUw
NjRjNGNmMDljMDU4NWUzMWE2M2IyM2Y2ODQwMTUyNWYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTMzOSw2ICszMzksMTMgQEAg
d2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2Vi
S2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlp
bmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAq
d2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfYXVkaW9f
bXV0ZWQgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndl
Yl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdi
b29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAg
ICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkg
Z3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50
eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9u
cy50eHQKaW5kZXggMGMyZGM2NTE1YzY2Yjc5NTc3YTdkNTgwN2NhNGEwZmJjNWQwNzUzOS4uYTI5
N2RlOTZhNDExNmY1MDQwZDBhOGQ1ZTYxYTA0Mjg3NzY1MWQwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4
dApAQCAtMjE0LDYgKzIxNCw4IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hl
CiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGlu
Zwogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dlYmtpdF93ZWJfdmlld19zZXRf
YXVkaW9fbXV0ZWQKK3dlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZAogd2Via2l0X3dlYl92
aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0
b21fY2hhcnNldAogd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNTJkYTFmNzZiNGE3MzYxMmJiODE1
MDZhMzkwZmE3NjY5YjY5NDViNS4uNjJiYThmYmQ1NWMxMDllYTVhZmJlMWMzYzA4OTkzZTE2NDZk
MzExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01OTc2
LDYgKzU5NzYsMTEgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNldE11dGVkKFdlYkNvcmU6Ok1lZGlh
UHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFncyBzdGF0ZSkKICAgICBhY3Rpdml0eVN0YXRlRGlkQ2hh
bmdlKHsgQWN0aXZpdHlTdGF0ZTo6SXNBdWRpYmxlLCBBY3Rpdml0eVN0YXRlOjpJc0NhcHR1cmlu
Z01lZGlhIH0pOwogfQogCitib29sIFdlYlBhZ2VQcm94eTo6aXNBdWRpb011dGVkKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gKG1fbXV0ZWRTdGF0ZSAmIE1lZGlhUHJvZHVjZXI6OkF1ZGlvSXNNdXRl
ZCk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRNZWRpYUNhcHR1cmVFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKICAgICBtX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSBlbmFibGVkOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5NjUyM2YyZmRlYTdiNWVhZGE5YTNj
MGRjZWMxMWExYjczNzA0Y2MxLi41N2Q5NjNlOTE3OGIxMjQ4ODM2NTA4ZTczNmYzYTc2MmY4NjY4
YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTMwNCw2ICsx
MzA0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7CiAgICAg
dm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOwor
ICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRNYXlTdGFydE1lZGlh
V2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdygp
IGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsgfQogICAgIHZvaWQg
c2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NTkyZWZlZDIzNDEzOWU0ZWRhNThlYWI5YzhhY2Rj
NDY4ZjFmYmY3Li45OWE5Njc2ODY0ZGJlMTliMDY4NWU0Mzc1Zjg2NjZiZmFhMmIxZTJkIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTUgQEAKKzIwMjAtMDUtMTIgIEphbi1NaWNoYWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJv
cy5vcmc+CisKKyAgICAgICAgQWRkIG11dGUgYnV0dG9uIHRvIG5vdGVib29rIHRpdGxlLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTE5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nl
ci9ndGsvQnJvd3NlclRhYi5jOgorICAgICAgICAoYXVkaW9DbGlja2VkKToKKyAgICAgICAgKGF1
ZGlvTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKGJyb3dzZXJUYWJDb25zdHJ1Y3RlZCk6CisKIDIw
MjAtMDUtMDUgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAg
ICAgIFtFQ01BLTQwMl0gSW1wbGVtZW50IEludGwuTG9jYWxlCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJUYWIuYwppbmRleCA4NTc5MDk4ZDZkOWJmNWYzZTEwM2U2OWE0YWE5NTczYmNmNDU5ZGI2Li5i
YTJmNzRjMGQwNzk5M2UxMTYyYTRmMjYzZjk2YmZkMTM4ZmI1OTZmIDEwMDY0NAotLS0gYS9Ub29s
cy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyVGFiLmMKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IF9Ccm93c2VyVGFiIHsKICAg
ICBHdGtXaWRnZXQgKnRpdGxlQm94OwogICAgIEd0a1dpZGdldCAqdGl0bGVMYWJlbDsKICAgICBH
dGtXaWRnZXQgKnRpdGxlU3Bpbm5lcjsKKyAgICBHdGtXaWRnZXQgKnRpdGxlQXVkaW9CdXR0b247
CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUNsb3NlQnV0dG9uOwogfTsKIApAQCAtMzYxLDYgKzM2Miwy
OSBAQCBzdGF0aWMgZ2Jvb2xlYW4gaW5zcGVjdG9yQ2xvc2VkKFdlYktpdFdlYkluc3BlY3RvciAq
aW5zcGVjdG9yLCBCcm93c2VyVGFiICp0YWIpCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCitzdGF0
aWMgdm9pZCBhdWRpb0NsaWNrZWQoR3RrQnV0dG9uICpidXR0b24sIGdwb2ludGVyIHVzZXJfZGF0
YSkKK3sKKyAgICBCcm93c2VyVGFiICp0YWIgPSBCUk9XU0VSX1RBQih1c2VyX2RhdGEpOworICAg
IGdib29sZWFuIG11dGVkID0gd2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKHRhYi0+d2Vi
Vmlldyk7CisKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2F1ZGlvX211dGVkKHRhYi0+d2ViVmll
dywgIW11dGVkKTsKK30KKworc3RhdGljIHZvaWQgYXVkaW9NdXRlZENoYW5nZWQoV2ViS2l0V2Vi
VmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIGdwb2ludGVyIHVzZXJfZGF0YSkKK3sK
KyAgICBCcm93c2VyVGFiICp0YWIgPSBCUk9XU0VSX1RBQih1c2VyX2RhdGEpOworICAgIEd0a1dp
ZGdldCAqaW1hZ2U7CisgICAgZ2Jvb2xlYW4gbXV0ZWQ7CisKKyAgICBtdXRlZCA9IHdlYmtpdF93
ZWJfdmlld19pc19hdWRpb19tdXRlZCh0YWItPndlYlZpZXcpOworICAgIGlmICghbXV0ZWQpCisg
ICAgICAgIGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgiYXVkaW8tdm9sdW1l
LWhpZ2gtc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIGVsc2UKKyAgICAgICAg
aW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJhdWRpby12b2x1bWUtbXV0ZWQt
c3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworCisgICAgZ3RrX2J1dHRvbl9zZXRfaW1h
Z2UoR1RLX0JVVFRPTih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBpbWFnZSk7Cit9CisKIHN0YXRp
YyB2b2lkIGJyb3dzZXJUYWJTZXRQcm9wZXJ0eShHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BJ
ZCwgY29uc3QgR1ZhbHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpCiB7CiAgICAgQnJvd3Nl
clRhYiAqdGFiID0gQlJPV1NFUl9UQUIob2JqZWN0KTsKQEAgLTQ1NSwxMiArNDc5LDIzIEBAIHN0
YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIGd0
a19ib3hfcGFja19zdGFydChHVEtfQk9YKHRhYi0+dGl0bGVCb3gpLCBoYm94LCBUUlVFLCBUUlVF
LCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3coaGJveCk7CiAKKyAgICB0YWItPnRpdGxlQXVkaW9C
dXR0b24gPSBndGtfYnV0dG9uX25ldygpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT50aXRs
ZUF1ZGlvQnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soYXVkaW9DbGlja2VkKSwgdGFiKTsK
KyAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYoR1RLX0JVVFRPTih0YWItPnRpdGxlQXVkaW9CdXR0
b24pLCBHVEtfUkVMSUVGX05PTkUpOworICAgIGd0a193aWRnZXRfc2V0X2ZvY3VzX29uX2NsaWNr
KHRhYi0+dGl0bGVBdWRpb0J1dHRvbiwgRkFMU0UpOworCisgICAgR3RrV2lkZ2V0ICppbWFnZSA9
IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImF1ZGlvLXZvbHVtZS1oaWdoLXN5bWJvbGlj
IiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBndGtfYnV0dG9uX3NldF9pbWFnZShHVEtfQlVU
VE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKKyAgICBndGtfd2lkZ2V0X3Nob3co
aW1hZ2UpOworCisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFiLT50aXRsZUJveCks
IHRhYi0+dGl0bGVBdWRpb0J1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKKwogICAgIHRhYi0+dGl0
bGVDbG9zZUJ1dHRvbiA9IGd0a19idXR0b25fbmV3KCk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9z
d2FwcGVkKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGd0a193
aWRnZXRfZGVzdHJveSksIHRhYik7CiAgICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRU
T04odGFiLT50aXRsZUNsb3NlQnV0dG9uKSwgR1RLX1JFTElFRl9OT05FKTsKICAgICBndGtfd2lk
Z2V0X3NldF9mb2N1c19vbl9jbGljayh0YWItPnRpdGxlQ2xvc2VCdXR0b24sIEZBTFNFKTsKIAot
ICAgIEd0a1dpZGdldCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5k
b3ctY2xvc2Utc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIGltYWdlID0gZ3Rr
X2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgid2luZG93LWNsb3NlLXN5bWJvbGljIiwgR1RLX0lD
T05fU0laRV9NRU5VKTsKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHRhYi0+
dGl0bGVDbG9zZUJ1dHRvbiksIGltYWdlKTsKICAgICBndGtfd2lkZ2V0X3Nob3coaW1hZ2UpOwog
CkBAIC00NzQsNiArNTA5LDkgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdP
YmplY3QgKmdPYmplY3QpCiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJsb2Fk
LWZhaWxlZC13aXRoLXRscy1lcnJvcnMiLCBHX0NBTExCQUNLKGxvYWRGYWlsZWRXaXRoVExTZXJy
b3JzKSwgdGFiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgInBlcm1pc3Np
b24tcmVxdWVzdCIsIEdfQ0FMTEJBQ0soZGVjaWRlUGVybWlzc2lvblJlcXVlc3QpLCB0YWIpOwog
ICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicnVuLWNvbG9yLWNob29zZXIiLCBH
X0NBTExCQUNLKHJ1bkNvbG9yQ2hvb3NlckNhbGxiYWNrKSwgdGFiKTsKKworICAgIGdfb2JqZWN0
X2JpbmRfcHJvcGVydHkodGFiLT53ZWJWaWV3LCAiaXMtcGxheWluZy1hdWRpbyIsIHRhYi0+dGl0
bGVBdWRpb0J1dHRvbiwgInZpc2libGUiLCBHX0JJTkRJTkdfREVGQVVMVCB8IEdfQklORElOR19T
WU5DX0NSRUFURSk7CisgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJub3RpZnk6
OmlzLWF1ZGlvLW11dGVkIiwgR19DQUxMQkFDSyhhdWRpb011dGVkQ2hhbmdlZCksIHRhYik7CiAj
ZW5kaWYKIAogICAgIFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yID0gd2Via2l0X3dlYl92
aWV3X2dldF9pbnNwZWN0b3IodGFiLT53ZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDc3Zjc2MTcyZTkyZmQ5YTkwNjVhZTVmZmIyZjgyMWVkNjdiYmJkMDEuLmNkOWZkZDRiMjA1ZWEz
M2FlNmJkYjk0ZTVjMmUyNGY0NmJhMGRiNjEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTEz
Myw2ICsxMTMzLDE1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8oSXNQ
bGF5aW5nQXVkaW9XZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pCiAgICAgZ19hc3NlcnRfZmFs
c2Uod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSk7CiB9
CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNBdWRpb011dGVkKFdlYlZpZXdUZXN0KiB0ZXN0
LCBnY29uc3Rwb2ludGVyKQoreworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19p
c19hdWRpb19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcpKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2F1ZGlvX211dGVkKHRlc3QtPm1fd2ViVmlldywgVFJVRSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh3
ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgd2Vi
a2l0X3dlYl92aWV3X3NldF9hdWRpb19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcsIEZBTFNFKTsKKyAg
ICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQodGVzdC0+bV93
ZWJWaWV3KSk7Cit9CisKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3QmFja2dyb3VuZENvbG9yKFdl
YlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewogI2lmIFBMQVRGT1JNKEdUSykKQEAg
LTEzODksNiArMTM5OCw3IEBAIHZvaWQgYmVmb3JlQWxsKCkKICNpZiBQTEFURk9STShXUEUpCiAg
ICAgRnJhbWVEaXNwbGF5ZWRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZnJhbWUtZGlzcGxh
eWVkIiwgdGVzdFdlYlZpZXdGcmFtZURpc3BsYXllZCk7CiAjZW5kaWYKKyAgICBXZWJWaWV3VGVz
dDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlzLWF1ZGlvLW11dGVkIiwgdGVzdFdlYlZpZXdJc0F1
ZGlvTXV0ZWQpOwogfQogCiB2b2lkIGFmdGVyQWxsKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399458</attachid>
            <date>2020-05-14 23:13:26 -0700</date>
            <delta_ts>2020-05-26 10:35:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200515081324.patch</filename>
            <type>text/plain</type>
            <size>14582</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLmFjYjY2ODQ1MTQ1Y2I1NjA4NDlhYzE3NmZiODNmZmVh
YjliYjljMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMjAtMDUtMTIgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpVSUNsaWVudDo6aXNQYWdlTXV0ZWREaWRDaGFuZ2UpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzQXVk
aW9NdXRlZENoYW5nZWQpOgorICAgICAgICAod2Via2l0V2ViVmlld0dldFByb3BlcnR5KToKKyAg
ICAgICAgKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgKHdlYmtpdF93ZWJf
dmlld19zZXRfYXVkaW9fbXV0ZWQpOgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX2F1ZGlv
X211dGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQ6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS93cGUvV2ViS2l0V2ViVmlldy5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6aXNBdWRpb011dGVkIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpp
c1BhZ2VNdXRlZERpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6dXBk
YXRlUGFnZU11dGVkRGlkQ2hhbmdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OnNldE11dGVkKToKKwogMjAyMC0wNS0wNSAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCBkZXByZWNhdGVkIE5TR3JhcGhpY3NDb250ZXh0IG1l
dGhvZHMgdXNpbmcgJ2dyYXBoaWNzUG9ydCcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOGM1NGI0MjNmZjkyNjZiODMwNzM4
NWRkMTNjM2Y0NDkyNGZjMmU0NS4uMTU4YmY0NGUxMTg0ZTc1NzljYWYyNmI2NDBlMzcwMDBjMjky
OTQyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
V2ViVmlldy5jcHAKQEAgLTE5OSw3ICsxOTksOCBAQCBlbnVtIHsKICAgICBQUk9QX0lTX0NPTlRS
T0xMRURfQllfQVVUT01BVElPTiwKICAgICBQUk9QX0FVVE9NQVRJT05fUFJFU0VOVEFUSU9OX1RZ
UEUsCiAgICAgUFJPUF9FRElUQUJMRSwKLSAgICBQUk9QX1BBR0VfSUQKKyAgICBQUk9QX1BBR0Vf
SUQsCisgICAgUFJPUF9JU19BVURJT19NVVRFRAogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2
NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBA
IC04MzQsNiArODM1LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld1NldFByb3BlcnR5KEdP
YmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBjb25zdCBHVmFsdWUKICAgICBjYXNlIFBST1Bf
RURJVEFCTEU6CiAgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfZWRpdGFibGUod2ViVmlldywg
Z192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBS
T1BfSVNfQVVESU9fTVVURUQ6CisgICAgICAgIHdlYmtpdF93ZWJfdmlld19zZXRfaXNfYXVkaW9f
bXV0ZWQod2ViVmlldywgZ192YWx1ZV9nZXRfYm9vbGVhbih2YWx1ZSkpOworICAgICAgICBicmVh
azsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlf
SUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpAQCAtODk2LDYgKzkwMCw5IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1
aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1CiAgICAgY2FzZSBQUk9QX1BBR0VfSUQ6CiAgICAgICAg
IGdfdmFsdWVfc2V0X3VpbnQ2NCh2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkKHdl
YlZpZXcpKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0lTX0FVRElPX01VVEVEOgor
ICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVk
aW9fbXV0ZWQod2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAg
ICBHX09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFt
U3BlYyk7CiAgICAgfQpAQCAtMTI2NSw2ICsxMjcyLDI1IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93
ZWJfdmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAg
ICAgICAgICAgMCwgR19NQVhVSU5UNjQsIDAsCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVB
REFCTEUpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aXMtYXVkaW8tbXV0ZWQ6
CisgICAgICoKKyAgICAgKiBXaGV0aGVyIHRoZSAjV2ViS2l0V2ViVmlldyBhdWRpbyBpcyBtdXRl
ZCBmcm9tIGEgcGFnZS4KKyAgICAgKiBUaGlzIHByb3BlcnR5IGJlY29tZXMgJVRSVUUgYXMgc29v
biBhcyB3ZWIgY29udGVudCBpcyBtdXRlZC4gT3RoZXJ3aXNlCisgICAgICogdGhlIHByb3BlcnR5
IGlzIHNldCBiYWNrIHRvICVGQUxTRS4KKyAgICAgKgorICAgICAqIFNpbmNlOiAyLjMwCisgICAg
ICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVj
dENsYXNzLAorICAgICAgICBQUk9QX0lTX0FVRElPX01VVEVELAorICAgICAgICBnX3BhcmFtX3Nw
ZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJpcy1hdWRpby1tdXRlZCIsCisgICAgICAgICAgICAi
SXMgQXVkaW8gTXV0ZWQiLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBhdWRpbyBp
cyBtdXRlZCIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1f
UkVBRFdSSVRFKSk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5n
ZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNp
Z25hbCBpcyBlbWl0dGVkCkBAIC0zMTU4LDYgKzMxODQsNDMgQEAgZ2Jvb2xlYW4gd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICByZXR1
cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc1BsYXlpbmdBdWRpbygpOwogfQogCisvKioKKyAqIHdlYmtp
dF93ZWJfdmlld19zZXRfaXNfYXVkaW9fbXV0ZWQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdl
YlZpZXcKKyAqIEBtdXRlZDogbXV0ZSBmbGFnCisgKgorICogU2V0cyB0aGUgbXV0ZSBzdGF0ZSBv
ZiBAd2ViX3ZpZXcuCisgKgorICogU2luY2U6IDIuMzAKKyAqLwordm9pZCB3ZWJraXRfd2ViX3Zp
ZXdfc2V0X2lzX2F1ZGlvX211dGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIG11
dGVkKQoreworICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcp
KTsKKworICAgIGlmICh3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgKHdlYlZpZXcpID09
IG11dGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBnZXRQYWdlKHdlYlZpZXcpLnNldE11dGVk
KG11dGVkID8gV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9Jc011dGVkIDogV2ViQ29yZTo6
TWVkaWFQcm9kdWNlcjo6Tm9uZU11dGVkKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qo
d2ViVmlldyksICJpcy1hdWRpby1tdXRlZCIpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmll
d19pc19hdWRpb19tdXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAq
IEdldHMgdGhlIG11dGUgc3RhdGUgb2YgQHdlYl92aWV3LgorICoKKyAqIFJldHVybnM6ICVUUlVF
IGlmIEB3ZWJfdmlldyBhdWRpbyBpcyBtdXRlZCBvciAlRkFMU0UgaXMgYXVkaW8gaXMgbm90IG11
dGVkLgorICoKKyAqIFNpbmNlOiAyLjMwCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19p
c19hdWRpb19tdXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3Zh
bF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0
dXJuIGdldFBhZ2Uod2ViVmlldykuaXNBdWRpb011dGVkKCk7Cit9CisKIC8qKgogICogd2Via2l0
X3dlYl92aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggYzE1
MzljYzI3ODllMGM5NGFhNGE1YjFmZDM4YjBlMTU1M2Q1ODExYy4uYmU2Njg0OWFmMjE5MmEzMWVk
MzlkNTM2MmYzYzUzMWQ3MjQ5OGU5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTM1MCw2ICszNTAsMTMgQEAgd2Via2l0X3dlYl92
aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwog
V0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwog
CitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfaXNfYXVkaW9fbXV0ZWQgICAg
ICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xl
YW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJr
aXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Vi
a2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rp
b25zLnR4dAppbmRleCAxYmM0MjcwYzlmNDBlOGZiOGM0ZmU2NmNlNmUzYmI1MGIzZmY5NzE3Li42
NDZlZWFmOGMxNDA4MzVmMGRhNTQyYTdhOGVhNDljNTY3NWQ4MjhkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3Rr
LTQuMC1zZWN0aW9ucy50eHQKQEAgLTIzOSw2ICsyMzksOCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVs
b2FkX2J5cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dl
Yl92aWV3X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCit3ZWJr
aXRfd2ViX3ZpZXdfc2V0X2lzX2F1ZGlvX211dGVkCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9f
bXV0ZWQKIHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtp
dF93ZWJfdmlld19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9t
X2NoYXJzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV2Vi
S2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJW
aWV3LmgKaW5kZXggMmIyZDc4ZDFiYjUzYTJmZmRiNzBjMmE0YmRiYzg4NGFmNjAzNmY2MC4uODI3
OTA1NmZiZDAyZDUyYmFhYTE2ZjZkNmFlZGZmMGM0ZWRiNDdjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTMzOSw2ICszMzksMTMg
QEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgICAo
V2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX3Bs
YXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAg
ICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmlld19zZXRfaXNf
YXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAg
KndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitXRUJLSVRfQVBJ
IGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQgICAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9B
UEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9u
cy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0
aW9ucy50eHQKaW5kZXggMGMyZGM2NTE1YzY2Yjc5NTc3YTdkNTgwN2NhNGEwZmJjNWQwNzUzOS4u
ZWYxMDA3NTg0Y2JkZjc0NDIyY2I4N2QzNDQwOTEzNzQxYTEwOWFmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25z
LnR4dApAQCAtMjE0LDYgKzIxNCw4IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2Nh
Y2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9h
ZGluZwogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dlYmtpdF93ZWJfdmlld19z
ZXRfaXNfYXVkaW9fbXV0ZWQKK3dlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZAogd2Via2l0
X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dl
dF9jdXN0b21fY2hhcnNldAogd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5NjUyM2YyZmRlYTdiNWVhZGE5
YTNjMGRjZWMxMWExYjczNzA0Y2MxLi40MWI0ZTgyMmY4YmIzMWJiYWU4NDExODAzNGFhNDM3NDY0
NjdiOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTMwNCw2
ICsxMzA0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7CiAg
ICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OworICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9Jc011dGVkOyB9OwogICAgIHZvaWQgc2V0TWF5
U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVu
SW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0K
ICAgICB2b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODU5MmVmZWQyMzQxMzllNGVkYTU4
ZWFiOWM4YWNkYzQ2OGYxZmJmNy4uOTlhOTY3Njg2NGRiZTE5YjA2ODVlNDM3NWY4NjY2YmZhYTJi
MWUyZCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE1IEBACisyMDIwLTA1LTEyICBKYW4tTWljaGFlbCBCcnVtbWVyICA8amFuLmJy
dW1tZXJAdGFib3Mub3JnPgorCisgICAgICAgIEFkZCBtdXRlIGJ1dHRvbiB0byBub3RlYm9vayB0
aXRsZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
NjExOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYzoKKyAgICAgICAgKGF1ZGlvQ2xpY2tlZCk6Cisg
ICAgICAgIChhdWRpb011dGVkQ2hhbmdlZCk6CisgICAgICAgIChicm93c2VyVGFiQ29uc3RydWN0
ZWQpOgorCiAyMDIwLTA1LTA1ICBSb3NzIEtpcnNsaW5nICA8cm9zcy5raXJzbGluZ0Bzb255LmNv
bT4KIAogICAgICAgICBbRUNNQS00MDJdIEltcGxlbWVudCBJbnRsLkxvY2FsZQpkaWZmIC0tZ2l0
IGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYyBiL1Rvb2xzL01pbmlCcm93c2Vy
L2d0ay9Ccm93c2VyVGFiLmMKaW5kZXggODU3OTA5OGQ2ZDliZjVmM2UxMDNlNjlhNGFhOTU3M2Jj
ZjQ1OWRiNi4uMzU0MDQ3NDY3MDJiZmNjYmE4MDk2ZGFkMTY4OGIwYjNlNGU0MDE5OSAxMDA2NDQK
LS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYworKysgYi9Ub29scy9NaW5p
QnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCkBAIC01Nyw2ICs1Nyw3IEBAIHN0cnVjdCBfQnJvd3Nl
clRhYiB7CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUJveDsKICAgICBHdGtXaWRnZXQgKnRpdGxlTGFi
ZWw7CiAgICAgR3RrV2lkZ2V0ICp0aXRsZVNwaW5uZXI7CisgICAgR3RrV2lkZ2V0ICp0aXRsZUF1
ZGlvQnV0dG9uOwogICAgIEd0a1dpZGdldCAqdGl0bGVDbG9zZUJ1dHRvbjsKIH07CiAKQEAgLTM2
MSw2ICszNjIsMjMgQEAgc3RhdGljIGdib29sZWFuIGluc3BlY3RvckNsb3NlZChXZWJLaXRXZWJJ
bnNwZWN0b3IgKmluc3BlY3RvciwgQnJvd3NlclRhYiAqdGFiKQogICAgIHJldHVybiBGQUxTRTsK
IH0KIAorc3RhdGljIHZvaWQgYXVkaW9DbGlja2VkKEd0a0J1dHRvbiAqYnV0dG9uLCBncG9pbnRl
ciB1c2VyRGF0YSkKK3sKKyAgICBCcm93c2VyVGFiICp0YWIgPSBCUk9XU0VSX1RBQih1c2VyRGF0
YSk7CisgICAgZ2Jvb2xlYW4gbXV0ZWQgPSB3ZWJraXRfd2ViX3ZpZXdfaXNfYXVkaW9fbXV0ZWQo
dGFiLT53ZWJWaWV3KTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfaXNfYXVkaW9fbXV0ZWQo
dGFiLT53ZWJWaWV3LCAhbXV0ZWQpOworfQorCitzdGF0aWMgdm9pZCBhdWRpb011dGVkQ2hhbmdl
ZChXZWJLaXRXZWJWaWV3ICp3ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgdXNl
ckRhdGEpCit7CisgICAgQnJvd3NlclRhYiAqdGFiID0gQlJPV1NFUl9UQUIodXNlckRhdGEpOwor
ICAgIGdib29sZWFuIG11dGVkID0gd2Via2l0X3dlYl92aWV3X2lzX2F1ZGlvX211dGVkKHRhYi0+
d2ViVmlldyk7CisgICAgR3RrV2lkZ2V0ICppbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29u
X25hbWUobXV0ZWQgPyAiYXVkaW8tdm9sdW1lLW11dGVkLXN5bWJvbGljIiA6ICJhdWRpby12b2x1
bWUtaGlnaC1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisKKyAgICBndGtfYnV0dG9u
X3NldF9pbWFnZShHVEtfQlVUVE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKK30K
Kwogc3RhdGljIHZvaWQgYnJvd3NlclRhYlNldFByb3BlcnR5KEdPYmplY3QgKm9iamVjdCwgZ3Vp
bnQgcHJvcElkLCBjb25zdCBHVmFsdWUgKnZhbHVlLCBHUGFyYW1TcGVjICpwc3BlYykKIHsKICAg
ICBCcm93c2VyVGFiICp0YWIgPSBCUk9XU0VSX1RBQihvYmplY3QpOwpAQCAtNDU1LDEyICs0NzMs
MjMgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3Qp
CiAgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFiLT50aXRsZUJveCksIGhib3gsIFRS
VUUsIFRSVUUsIDApOwogICAgIGd0a193aWRnZXRfc2hvdyhoYm94KTsKIAorICAgIHRhYi0+dGl0
bGVBdWRpb0J1dHRvbiA9IGd0a19idXR0b25fbmV3KCk7CisgICAgZ19zaWduYWxfY29ubmVjdCh0
YWItPnRpdGxlQXVkaW9CdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyhhdWRpb0NsaWNrZWQp
LCB0YWIpOworICAgIGd0a19idXR0b25fc2V0X3JlbGllZihHVEtfQlVUVE9OKHRhYi0+dGl0bGVB
dWRpb0J1dHRvbiksIEdUS19SRUxJRUZfTk9ORSk7CisgICAgZ3RrX3dpZGdldF9zZXRfZm9jdXNf
b25fY2xpY2sodGFiLT50aXRsZUF1ZGlvQnV0dG9uLCBGQUxTRSk7CisKKyAgICBHdGtXaWRnZXQg
KmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgiYXVkaW8tdm9sdW1lLWhpZ2gt
c3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIGd0a19idXR0b25fc2V0X2ltYWdl
KEdUS19CVVRUT04odGFiLT50aXRsZUF1ZGlvQnV0dG9uKSwgaW1hZ2UpOworICAgIGd0a193aWRn
ZXRfc2hvdyhpbWFnZSk7CisKKyAgICBndGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0YWItPnRp
dGxlQm94KSwgdGFiLT50aXRsZUF1ZGlvQnV0dG9uLCBGQUxTRSwgRkFMU0UsIDApOworCiAgICAg
dGFiLT50aXRsZUNsb3NlQnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKICAgICBnX3NpZ25hbF9j
b25uZWN0X3N3YXBwZWQodGFiLT50aXRsZUNsb3NlQnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJB
Q0soZ3RrX3dpZGdldF9kZXN0cm95KSwgdGFiKTsKICAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYo
R1RLX0JVVFRPTih0YWItPnRpdGxlQ2xvc2VCdXR0b24pLCBHVEtfUkVMSUVGX05PTkUpOwogICAg
IGd0a193aWRnZXRfc2V0X2ZvY3VzX29uX2NsaWNrKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiwgRkFM
U0UpOwogCi0gICAgR3RrV2lkZ2V0ICppbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25h
bWUoIndpbmRvdy1jbG9zZS1zeW1ib2xpYyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgaW1h
Z2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5kb3ctY2xvc2Utc3ltYm9saWMi
LCBHVEtfSUNPTl9TSVpFX01FTlUpOwogICAgIGd0a19jb250YWluZXJfYWRkKEdUS19DT05UQUlO
RVIodGFiLT50aXRsZUNsb3NlQnV0dG9uKSwgaW1hZ2UpOwogICAgIGd0a193aWRnZXRfc2hvdyhp
bWFnZSk7CiAKQEAgLTQ3NCw2ICs1MDMsOSBAQCBzdGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3Ry
dWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmll
dywgImxvYWQtZmFpbGVkLXdpdGgtdGxzLWVycm9ycyIsIEdfQ0FMTEJBQ0sobG9hZEZhaWxlZFdp
dGhUTFNlcnJvcnMpLCB0YWIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAi
cGVybWlzc2lvbi1yZXF1ZXN0IiwgR19DQUxMQkFDSyhkZWNpZGVQZXJtaXNzaW9uUmVxdWVzdCks
IHRhYik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJydW4tY29sb3ItY2hv
b3NlciIsIEdfQ0FMTEJBQ0socnVuQ29sb3JDaG9vc2VyQ2FsbGJhY2spLCB0YWIpOworCisgICAg
Z19vYmplY3RfYmluZF9wcm9wZXJ0eSh0YWItPndlYlZpZXcsICJpcy1wbGF5aW5nLWF1ZGlvIiwg
dGFiLT50aXRsZUF1ZGlvQnV0dG9uLCAidmlzaWJsZSIsIEdfQklORElOR19ERUZBVUxUIHwgR19C
SU5ESU5HX1NZTkNfQ1JFQVRFKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywg
Im5vdGlmeTo6aXMtYXVkaW8tbXV0ZWQiLCBHX0NBTExCQUNLKGF1ZGlvTXV0ZWRDaGFuZ2VkKSwg
dGFiKTsKICNlbmRpZgogCiAgICAgV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IgPSB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2luc3BlY3Rvcih0YWItPndlYlZpZXcpOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5j
cHAKaW5kZXggNzdmNzYxNzJlOTJmZDlhOTA2NWFlNWZmYjJmODIxZWQ2N2JiYmQwMS4uZTIwZjcz
ZmJlMTAzZDM5OTRhZThiMmVmZWRhM2ZkNGQzM2Y5MDZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAorKysgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3Bw
CkBAIC0xMTMzLDYgKzExMzMsMTUgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdJc1BsYXlpbmdB
dWRpbyhJc1BsYXlpbmdBdWRpb1dlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2kKICAgICBnX2Fz
c2VydF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyh0ZXN0LT5tX3dlYlZp
ZXcpKTsKIH0KIAorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdJc0F1ZGlvTXV0ZWQoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3dl
Yl92aWV3X2lzX2F1ZGlvX211dGVkKHRlc3QtPm1fd2ViVmlldykpOworICAgIHdlYmtpdF93ZWJf
dmlld19zZXRfaXNfYXVkaW9fbXV0ZWQodGVzdC0+bV93ZWJWaWV3LCBUUlVFKTsKKyAgICBnX2Fz
c2VydF90cnVlKHdlYmtpdF93ZWJfdmlld19pc19hdWRpb19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcp
KTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX2F1ZGlvX211dGVkKHRlc3QtPm1fd2ViVmll
dywgRkFMU0UpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19pc19hdWRpb19t
dXRlZCh0ZXN0LT5tX3dlYlZpZXcpKTsKK30KKwogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdCYWNr
Z3JvdW5kQ29sb3IoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CiAjaWYgUExB
VEZPUk0oR1RLKQpAQCAtMTM4OSw2ICsxMzk4LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogI2lmIFBM
QVRGT1JNKFdQRSkKICAgICBGcmFtZURpc3BsYXllZFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIs
ICJmcmFtZS1kaXNwbGF5ZWQiLCB0ZXN0V2ViVmlld0ZyYW1lRGlzcGxheWVkKTsKICNlbmRpZgor
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiaXMtYXVkaW8tbXV0ZWQiLCB0
ZXN0V2ViVmlld0lzQXVkaW9NdXRlZCk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400258</attachid>
            <date>2020-05-26 10:35:35 -0700</date>
            <delta_ts>2020-05-26 12:24:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200526193534.patch</filename>
            <type>text/plain</type>
            <size>14368</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLjkyYmY1MmU4NzZlMDMyZjZhY2I2ZDdjNTdkYWE2MzNl
MjBjYmE2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDUtMjYgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19pc19tdXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdl
YlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlv
bnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojppc0F1ZGlvTXV0ZWQgY29uc3QpOgorCiAyMDIwLTA1LTA1ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRlcHJlY2F0
ZWQgTlNHcmFwaGljc0NvbnRleHQgbWV0aG9kcyB1c2luZyAnZ3JhcGhpY3NQb3J0JwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRl
eCA4YzU0YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li41Zjg2MGMxMTcxNDFh
MTE2NWM3MDEzYzEyZWFiMzYzMjU5Y2M0NzNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTk5LDcgKzE5OSw4IEBAIGVu
dW0gewogICAgIFBST1BfSVNfQ09OVFJPTExFRF9CWV9BVVRPTUFUSU9OLAogICAgIFBST1BfQVVU
T01BVElPTl9QUkVTRU5UQVRJT05fVFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAotICAgIFBST1Bf
UEFHRV9JRAorICAgIFBST1BfUEFHRV9JRCwKKyAgICBQUk9QX0lTX01VVEVECiB9OwogCiB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+ID4gTG9hZGlu
Z1Jlc291cmNlc01hcDsKQEAgLTgzNCw2ICs4MzUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJW
aWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1
ZQogICAgIGNhc2UgUFJPUF9FRElUQUJMRToKICAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF9l
ZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9JU19NVVRFRDoKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3Nl
dF9pc19tdXRlZCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CisgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC04OTYsNiArOTAw
LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfUEFHRV9JRDoKICAg
ICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2Vf
aWQod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfTVVURUQ6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19tdXRl
ZCh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsK
ICAgICB9CkBAIC0xMjY1LDYgKzEyNzIsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAg
ICAwLCBHX01BWFVJTlQ2NCwgMCwKICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzppcy1tdXRlZDoKKyAgICAgKgorICAg
ICAqIFdoZXRoZXIgdGhlICNXZWJLaXRXZWJWaWV3IGF1ZGlvIGlzIG11dGVkLiBXaGVuIFRSVUUs
IGF1ZGlvIGlzIHNpbGVuY2VkLgorICAgICAqIEl0IG1heSBzdGlsbCBiZSBwbGF5aW5nLCBpLmUu
IFdlYktpdFdlYlZpZXc6aXMtcGxheWluZy1hdWRpbyBtYXkgYmUgVFJVRS4KKyAgICAgKgorICAg
ICAqIFNpbmNlOiAyLjMwCisgICAgICovCisgICAgZ19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9w
ZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0lTX01VVEVELAorICAg
ICAgICBnX3BhcmFtX3NwZWNfYm9vbGVhbigKKyAgICAgICAgICAgICJpcy1tdXRlZCIsCisgICAg
ICAgICAgICAiSXMgTXV0ZWQiLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBhdWRp
byBpcyBtdXRlZCIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBRFdSSVRFKSk7CisKICAgICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNo
YW5nZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhl
IHNpZ25hbCBpcyBlbWl0dGVkCkBAIC0zMTU4LDYgKzMxODMsNDMgQEAgZ2Jvb2xlYW4gd2Via2l0
X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBy
ZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc1BsYXlpbmdBdWRpbygpOwogfQogCisvKioKKyAqIHdl
YmtpdF93ZWJfdmlld19zZXRfaXNfbXV0ZWQ6CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZp
ZXcKKyAqIEBtdXRlZDogbXV0ZSBmbGFnCisgKgorICogU2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBA
d2ViX3ZpZXcuCisgKgorICogU2luY2U6IDIuMzAKKyAqLwordm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0X2lzX211dGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIG11dGVkKQorewor
ICAgIGdfcmV0dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpKTsKKworICAg
IGlmICh3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0ZWQgKHdlYlZpZXcpID09IG11dGVkKQorICAgICAg
ICByZXR1cm47CisKKyAgICBnZXRQYWdlKHdlYlZpZXcpLnNldE11dGVkKG11dGVkID8gV2ViQ29y
ZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9Jc011dGVkIDogV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6
Tm9uZU11dGVkKTsKKyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1t
dXRlZCIpOworfQorCisvKioKKyAqIHdlYmtpdF93ZWJfdmlld19pc19tdXRlZDoKKyAqIEB3ZWJf
dmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIEdldHMgdGhlIG11dGUgc3RhdGUgb2YgQHdl
Yl92aWV3LgorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIEB3ZWJfdmlldyBhdWRpbyBpcyBtdXRl
ZCBvciAlRkFMU0UgaXMgYXVkaW8gaXMgbm90IG11dGVkLgorICoKKyAqIFNpbmNlOiAyLjMwCisg
Ki8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19tdXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJW
aWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJW
aWV3KSwgRkFMU0UpOworCisgICAgcmV0dXJuIGdldFBhZ2Uod2ViVmlldykuaXNBdWRpb011dGVk
KCk7Cit9CisKIC8qKgogICogd2Via2l0X3dlYl92aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6
IGEgI1dlYktpdFdlYlZpZXcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmgKaW5kZXggYzE1MzljYzI3ODllMGM5NGFhNGE1YjFmZDM4YjBlMTU1M2Q1
ODExYy4uM2IzYThkNTdmNTBlYzU1ZWJkZDliY2M5MDVhMTFjM2ZhMTNmN2U2NSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTM1MCw2
ICszNTAsMTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92
aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJfdmll
d19zZXRfaXNfbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAg
ICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOworCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0ZWQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisK
IFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay00LjAtc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAppbmRleCAxYmM0MjcwYzlmNDBlOGZiOGM0
ZmU2NmNlNmUzYmI1MGIzZmY5NzE3Li5lYTI5MzIxMjM0NWRmN2Y5MjBjMTYyMmE5MWU2Y2RjM2Rl
ODA0MDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mv
d2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKQEAgLTIzOSw2ICsyMzks
OCBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3
X3N0b3BfbG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmll
d19pc19wbGF5aW5nX2F1ZGlvCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkCit3ZWJraXRf
d2ViX3ZpZXdfaXNfbXV0ZWQKIHdlYmtpdF93ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJv
Z3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRfY3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmll
d19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dw
ZS9XZWJLaXRXZWJWaWV3LmgKaW5kZXggMmIyZDc4ZDFiYjUzYTJmZmRiNzBjMmE0YmRiYzg4NGFm
NjAzNmY2MC4uNDM2MGY3NzU0YzhmYzAyNTBhMTBjMjI2Yjk1Y2JkODM2ZDM4M2ExYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmgKQEAgLTMz
OSw2ICszMzksMTMgQEAgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJIHZvaWQKK3dlYmtpdF93ZWJf
dmlld19zZXRfaXNfbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgKndlYl92aWV3LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZ2Jvb2xlYW4gICAgICAgICAgICAgICAgICAgbXV0ZWQpOwor
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0ZWQgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7
CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3Bl
LTEuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mv
d3BlLTEuMC1zZWN0aW9ucy50eHQKaW5kZXggMGMyZGM2NTE1YzY2Yjc5NTc3YTdkNTgwN2NhNGEw
ZmJjNWQwNzUzOS4uOTllMzQ1MzY0NzI0ZjJmMmI5ZWU4YWEwMzA2YzU0YzllZThiYTVmYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2Vj
dGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUt
MS4wLXNlY3Rpb25zLnR4dApAQCAtMjE0LDYgKzIxNCw4IEBAIHdlYmtpdF93ZWJfdmlld19yZWxv
YWRfYnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2Vi
X3ZpZXdfaXNfbG9hZGluZwogd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dlYmtp
dF93ZWJfdmlld19zZXRfaXNfbXV0ZWQKK3dlYmtpdF93ZWJfdmlld19pc19tdXRlZAogd2Via2l0
X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dl
dF9jdXN0b21fY2hhcnNldAogd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCA5NjUyM2YyZmRlYTdiNWVhZGE5
YTNjMGRjZWMxMWExYjczNzA0Y2MxLi40MWI0ZTgyMmY4YmIzMWJiYWU4NDExODAzNGFhNDM3NDY0
NjdiOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtMTMwNCw2
ICsxMzA0LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7CiAg
ICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3Mp
OworICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29uc3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlICYg
V2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9Jc011dGVkOyB9OwogICAgIHZvaWQgc2V0TWF5
U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsKICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVu
SW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX21heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0K
ICAgICB2b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJsZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODU5MmVmZWQyMzQxMzllNGVkYTU4
ZWFiOWM4YWNkYzQ2OGYxZmJmNy4uZTU0YTJkM2RiM2Y1M2NiNjc0YTdhOWJmNmY0NDc0OTBiN2Zm
NTc2OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDMwIEBACisyMDIwLTA1LTI2ICBKYW4tTWljaGFlbCBCcnVtbWVyICA8amFuLmJy
dW1tZXJAdGFib3Mub3JnPgorCisgICAgICAgIFtHVEtdW1dQRV0gQVBJIGZvciBXZWJWaWV3IGF1
ZGlvIG11dGUgc3VwcG9ydAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2MTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jOgorICAgICAgICAoYXVkaW9D
bGlja2VkKToKKyAgICAgICAgKGF1ZGlvTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKGJyb3dzZXJU
YWJDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHRlc3RXZWJWaWV3SXNBdWRpb011dGVk
KToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKKzIwMjAtMDUtMTIgIEphbi1NaWNoYWVsIEJydW1t
ZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgQWRkIG11dGUgYnV0dG9uIHRv
IG5vdGVib29rIHRpdGxlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTc2MTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jOgorICAgICAgICAoYXVkaW9D
bGlja2VkKToKKyAgICAgICAgKGF1ZGlvTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKGJyb3dzZXJU
YWJDb25zdHJ1Y3RlZCk6CisKIDIwMjAtMDUtMDUgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNs
aW5nQHNvbnkuY29tPgogCiAgICAgICAgIFtFQ01BLTQwMl0gSW1wbGVtZW50IEludGwuTG9jYWxl
CmRpZmYgLS1naXQgYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIvVG9vbHMv
TWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwppbmRleCA4NTc5MDk4ZDZkOWJmNWYzZTEwM2U2
OWE0YWE5NTczYmNmNDU5ZGI2Li44NjU1YjhiYmY5ZGJiNGFmNjIyYjQyY2RmZmJlOGM1ZWRhMWY1
YjE0IDEwMDY0NAotLS0gYS9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBi
L1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmMKQEAgLTU3LDYgKzU3LDcgQEAgc3Ry
dWN0IF9Ccm93c2VyVGFiIHsKICAgICBHdGtXaWRnZXQgKnRpdGxlQm94OwogICAgIEd0a1dpZGdl
dCAqdGl0bGVMYWJlbDsKICAgICBHdGtXaWRnZXQgKnRpdGxlU3Bpbm5lcjsKKyAgICBHdGtXaWRn
ZXQgKnRpdGxlQXVkaW9CdXR0b247CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUNsb3NlQnV0dG9uOwog
fTsKIApAQCAtMzYxLDYgKzM2MiwyMyBAQCBzdGF0aWMgZ2Jvb2xlYW4gaW5zcGVjdG9yQ2xvc2Vk
KFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yLCBCcm93c2VyVGFiICp0YWIpCiAgICAgcmV0
dXJuIEZBTFNFOwogfQogCitzdGF0aWMgdm9pZCBhdWRpb0NsaWNrZWQoR3RrQnV0dG9uICpidXR0
b24sIGdwb2ludGVyIHVzZXJEYXRhKQoreworICAgIEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJf
VEFCKHVzZXJEYXRhKTsKKyAgICBnYm9vbGVhbiBtdXRlZCA9IHdlYmtpdF93ZWJfdmlld19pc19t
dXRlZCh0YWItPndlYlZpZXcpOworCisgICAgd2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZCh0
YWItPndlYlZpZXcsICFtdXRlZCk7Cit9CisKK3N0YXRpYyB2b2lkIGF1ZGlvTXV0ZWRDaGFuZ2Vk
KFdlYktpdFdlYlZpZXcgKndlYlZpZXcsIEdQYXJhbVNwZWMgKnBzcGVjLCBncG9pbnRlciB1c2Vy
RGF0YSkKK3sKKyAgICBCcm93c2VyVGFiICp0YWIgPSBCUk9XU0VSX1RBQih1c2VyRGF0YSk7Cisg
ICAgZ2Jvb2xlYW4gbXV0ZWQgPSB3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0ZWQodGFiLT53ZWJWaWV3
KTsKKyAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSht
dXRlZCA/ICJhdWRpby12b2x1bWUtbXV0ZWQtc3ltYm9saWMiIDogImF1ZGlvLXZvbHVtZS1oaWdo
LXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKworICAgIGd0a19idXR0b25fc2V0X2lt
YWdlKEdUS19CVVRUT04odGFiLT50aXRsZUF1ZGlvQnV0dG9uKSwgaW1hZ2UpOworfQorCiBzdGF0
aWMgdm9pZCBicm93c2VyVGFiU2V0UHJvcGVydHkoR09iamVjdCAqb2JqZWN0LCBndWludCBwcm9w
SWQsIGNvbnN0IEdWYWx1ZSAqdmFsdWUsIEdQYXJhbVNwZWMgKnBzcGVjKQogewogICAgIEJyb3dz
ZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKG9iamVjdCk7CkBAIC00NTUsMTIgKzQ3MywyMyBAQCBz
dGF0aWMgdm9pZCBicm93c2VyVGFiQ29uc3RydWN0ZWQoR09iamVjdCAqZ09iamVjdCkKICAgICBn
dGtfYm94X3BhY2tfc3RhcnQoR1RLX0JPWCh0YWItPnRpdGxlQm94KSwgaGJveCwgVFJVRSwgVFJV
RSwgMCk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGhib3gpOwogCisgICAgdGFiLT50aXRsZUF1ZGlv
QnV0dG9uID0gZ3RrX2J1dHRvbl9uZXcoKTsKKyAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+dGl0
bGVBdWRpb0J1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGF1ZGlvQ2xpY2tlZCksIHRhYik7
CisgICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRUT04odGFiLT50aXRsZUF1ZGlvQnV0
dG9uKSwgR1RLX1JFTElFRl9OT05FKTsKKyAgICBndGtfd2lkZ2V0X3NldF9mb2N1c19vbl9jbGlj
ayh0YWItPnRpdGxlQXVkaW9CdXR0b24sIEZBTFNFKTsKKworICAgIEd0a1dpZGdldCAqaW1hZ2Ug
PSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJhdWRpby12b2x1bWUtaGlnaC1zeW1ib2xp
YyIsIEdUS19JQ09OX1NJWkVfTUVOVSk7CisgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2UoR1RLX0JV
VFRPTih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBpbWFnZSk7CisgICAgZ3RrX3dpZGdldF9zaG93
KGltYWdlKTsKKworICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHRhYi0+dGl0bGVCb3gp
LCB0YWItPnRpdGxlQXVkaW9CdXR0b24sIEZBTFNFLCBGQUxTRSwgMCk7CisKICAgICB0YWItPnRp
dGxlQ2xvc2VCdXR0b24gPSBndGtfYnV0dG9uX25ldygpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3Rf
c3dhcHBlZCh0YWItPnRpdGxlQ2xvc2VCdXR0b24sICJjbGlja2VkIiwgR19DQUxMQkFDSyhndGtf
d2lkZ2V0X2Rlc3Ryb3kpLCB0YWIpOwogICAgIGd0a19idXR0b25fc2V0X3JlbGllZihHVEtfQlVU
VE9OKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiksIEdUS19SRUxJRUZfTk9ORSk7CiAgICAgZ3RrX3dp
ZGdldF9zZXRfZm9jdXNfb25fY2xpY2sodGFiLT50aXRsZUNsb3NlQnV0dG9uLCBGQUxTRSk7CiAK
LSAgICBHdGtXaWRnZXQgKmltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgid2lu
ZG93LWNsb3NlLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBpbWFnZSA9IGd0
a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoIndpbmRvdy1jbG9zZS1zeW1ib2xpYyIsIEdUS19J
Q09OX1NJWkVfTUVOVSk7CiAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUih0YWIt
PnRpdGxlQ2xvc2VCdXR0b24pLCBpbWFnZSk7CiAgICAgZ3RrX3dpZGdldF9zaG93KGltYWdlKTsK
IApAQCAtNDc0LDYgKzUwMyw5IEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3RlZChH
T2JqZWN0ICpnT2JqZWN0KQogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAibG9h
ZC1mYWlsZWQtd2l0aC10bHMtZXJyb3JzIiwgR19DQUxMQkFDSyhsb2FkRmFpbGVkV2l0aFRMU2Vy
cm9ycyksIHRhYik7CiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJwZXJtaXNz
aW9uLXJlcXVlc3QiLCBHX0NBTExCQUNLKGRlY2lkZVBlcm1pc3Npb25SZXF1ZXN0KSwgdGFiKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgInJ1bi1jb2xvci1jaG9vc2VyIiwg
R19DQUxMQkFDSyhydW5Db2xvckNob29zZXJDYWxsYmFjayksIHRhYik7CisKKyAgICBnX29iamVj
dF9iaW5kX3Byb3BlcnR5KHRhYi0+d2ViVmlldywgImlzLXBsYXlpbmctYXVkaW8iLCB0YWItPnRp
dGxlQXVkaW9CdXR0b24sICJ2aXNpYmxlIiwgR19CSU5ESU5HX0RFRkFVTFQgfCBHX0JJTkRJTkdf
U1lOQ19DUkVBVEUpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAibm90aWZ5
Ojppcy1tdXRlZCIsIEdfQ0FMTEJBQ0soYXVkaW9NdXRlZENoYW5nZWQpLCB0YWIpOwogI2VuZGlm
CiAKICAgICBXZWJLaXRXZWJJbnNwZWN0b3IgKmluc3BlY3RvciA9IHdlYmtpdF93ZWJfdmlld19n
ZXRfaW5zcGVjdG9yKHRhYi0+d2ViVmlldyk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRleCA3N2Y3
NjE3MmU5MmZkOWE5MDY1YWU1ZmZiMmY4MjFlZDY3YmJiZDAxLi4xMjFiYmIzMGM4YWMzM2E4OTNm
NzM4MGY1OTZiMmUxZjIwNTNmZWM4IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKQEAgLTExMzMsNiAr
MTEzMywxNSBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1ZGlvKElzUGxheWlu
Z0F1ZGlvV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaQogICAgIGdfYXNzZXJ0X2ZhbHNlKHdl
YmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKHRlc3QtPm1fd2ViVmlldykpOwogfQogCitz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzQXVkaW9NdXRlZChXZWJWaWV3VGVzdCogdGVzdCwgZ2Nv
bnN0cG9pbnRlcikKK3sKKyAgICBnX2Fzc2VydF9mYWxzZSh3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0
ZWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZCh0
ZXN0LT5tX3dlYlZpZXcsIFRSVUUpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl92aWV3
X2lzX211dGVkKHRlc3QtPm1fd2ViVmlldykpOworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfaXNf
bXV0ZWQodGVzdC0+bV93ZWJWaWV3LCBGQUxTRSk7CisgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0
X3dlYl92aWV3X2lzX211dGVkKHRlc3QtPm1fd2ViVmlldykpOworfQorCiBzdGF0aWMgdm9pZCB0
ZXN0V2ViVmlld0JhY2tncm91bmRDb2xvcihXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikKIHsKICNpZiBQTEFURk9STShHVEspCkBAIC0xMzg5LDYgKzEzOTgsNyBAQCB2b2lkIGJlZm9y
ZUFsbCgpCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIEZyYW1lRGlzcGxheWVkVGVzdDo6YWRkKCJX
ZWJLaXRXZWJWaWV3IiwgImZyYW1lLWRpc3BsYXllZCIsIHRlc3RXZWJWaWV3RnJhbWVEaXNwbGF5
ZWQpOwogI2VuZGlmCisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJpcy1h
dWRpby1tdXRlZCIsIHRlc3RXZWJWaWV3SXNBdWRpb011dGVkKTsKIH0KIAogdm9pZCBhZnRlckFs
bCgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400268</attachid>
            <date>2020-05-26 12:24:23 -0700</date>
            <delta_ts>2020-05-29 10:14:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200526212421.patch</filename>
            <type>text/plain</type>
            <size>14037</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLjkyYmY1MmU4NzZlMDMyZjZhY2I2ZDdjNTdkYWE2MzNl
MjBjYmE2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDUtMjYgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19pc19tdXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdl
YlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlv
bnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojppc0F1ZGlvTXV0ZWQgY29uc3QpOgorCiAyMDIwLTA1LTA1ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRlcHJlY2F0
ZWQgTlNHcmFwaGljc0NvbnRleHQgbWV0aG9kcyB1c2luZyAnZ3JhcGhpY3NQb3J0JwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRl
eCA4YzU0YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li41MWM3NThkMmNlOGE3
NTVhNzcyM2JjMWZmZWRhNWQyNDY3YTFjMTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTk5LDcgKzE5OSw4IEBAIGVu
dW0gewogICAgIFBST1BfSVNfQ09OVFJPTExFRF9CWV9BVVRPTUFUSU9OLAogICAgIFBST1BfQVVU
T01BVElPTl9QUkVTRU5UQVRJT05fVFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAotICAgIFBST1Bf
UEFHRV9JRAorICAgIFBST1BfUEFHRV9JRCwKKyAgICBQUk9QX0lTX01VVEVECiB9OwogCiB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+ID4gTG9hZGlu
Z1Jlc291cmNlc01hcDsKQEAgLTgzNCw2ICs4MzUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJW
aWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1
ZQogICAgIGNhc2UgUFJPUF9FRElUQUJMRToKICAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF9l
ZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9JU19NVVRFRDoKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3Nl
dF9pc19tdXRlZCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CisgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC04OTYsNiArOTAw
LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfUEFHRV9JRDoKICAg
ICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2Vf
aWQod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfTVVURUQ6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19tdXRl
ZCh3ZWJWaWV3KSk7CisgICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JK
RUNUX1dBUk5fSU5WQUxJRF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsK
ICAgICB9CkBAIC0xMjY1LDYgKzEyNzIsMjQgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92aWV3
X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAgICAg
ICAwLCBHX01BWFVJTlQ2NCwgMCwKICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEQUJMRSkp
OwogCisgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzppcy1tdXRlZDoKKyAgICAgKgorICAg
ICAqIFdoZXRoZXIgdGhlICNXZWJLaXRXZWJWaWV3IGF1ZGlvIGlzIG11dGVkLiBXaGVuICVUUlVF
LCBhdWRpbyBpcyBzaWxlbmNlZC4KKyAgICAgKiBJdCBtYXkgc3RpbGwgYmUgcGxheWluZywgaS5l
LiBXZWJLaXRXZWJWaWV3OmlzLXBsYXlpbmctYXVkaW8gbWF5IGJlICVUUlVFLgorICAgICAqCisg
ICAgICogU2luY2U6IDIuMzAKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19pbnN0YWxsX3By
b3BlcnR5KAorICAgICAgICBnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfSVNfTVVURUQsCisg
ICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKAorICAgICAgICAgICAgImlzLW11dGVkIiwKKyAg
ICAgICAgICAgICJJcyBNdXRlZCIsCisgICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSB2aWV3IGF1
ZGlvIGlzIG11dGVkIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9Q
QVJBTV9SRUFEV1JJVEUpKTsKKwogICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQt
Y2hhbmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0
aGUgc2lnbmFsIGlzIGVtaXR0ZWQKQEAgLTMxNTgsNiArMzE4Myw0MyBAQCBnYm9vbGVhbiB3ZWJr
aXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICAg
IHJldHVybiBnZXRQYWdlKHdlYlZpZXcpLmlzUGxheWluZ0F1ZGlvKCk7CiB9CiAKKy8qKgorICog
d2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2Vi
VmlldworICogQG11dGVkOiBtdXRlIGZsYWcKKyAqCisgKiBTZXRzIHRoZSBtdXRlIHN0YXRlIG9m
IEB3ZWJfdmlldy4KKyAqCisgKiBTaW5jZTogMi4zMAorICovCit2b2lkIHdlYmtpdF93ZWJfdmll
d19zZXRfaXNfbXV0ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgZ2Jvb2xlYW4gbXV0ZWQpCit7
CisgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOworCisg
ICAgaWYgKHdlYmtpdF93ZWJfdmlld19pc19tdXRlZCAod2ViVmlldykgPT0gbXV0ZWQpCisgICAg
ICAgIHJldHVybjsKKworICAgIGdldFBhZ2Uod2ViVmlldykuc2V0TXV0ZWQobXV0ZWQgPyBXZWJD
b3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQgOiBXZWJDb3JlOjpNZWRpYVByb2R1Y2Vy
OjpOb25lTXV0ZWQpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImlz
LW11dGVkIik7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2lzX211dGVkOgorICogQHdl
Yl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgorICogR2V0cyB0aGUgbXV0ZSBzdGF0ZSBvZiBA
d2ViX3ZpZXcuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgQHdlYl92aWV3IGF1ZGlvIGlzIG11
dGVkIG9yICVGQUxTRSBpcyBhdWRpbyBpcyBub3QgbXV0ZWQuCisgKgorICogU2luY2U6IDIuMzAK
KyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX211dGVkKFdlYktpdFdlYlZpZXcqIHdl
YlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdl
YlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS5pc0F1ZGlvTXV0
ZWQoKTsKK30KKwogLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjazoKICAqIEB3ZWJfdmll
dzogYSAjV2ViS2l0V2ViVmlldwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFdlYlZpZXcuaAppbmRleCBjMTUzOWNjMjc4OWUwYzk0YWE0YTViMWZkMzhiMGUxNTUz
ZDU4MTFjLi4zYjNhOGQ1N2Y1MGVjNTVlYmRkOWJjYzkwNWExMWMzZmExM2Y3ZTY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzUw
LDYgKzM1MCwxMyBAQCB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRfd2Vi
X3ZpZXdfaXNfcGxheWluZ19hdWRpbyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dlYl92
aWV3X3NldF9pc19tdXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAg
ICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICBtdXRlZCk7CisK
K1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19pc19tdXRlZCAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsK
KwogV0VCS0lUX0FQSSBndWludDY0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQgICAgICAg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMudHh0CmluZGV4IDFiYzQyNzBjOWY0MGU4ZmI4
YzRmZTY2Y2U2ZTNiYjUwYjNmZjk3MTcuLmVhMjkzMjEyMzQ1ZGY3ZjkyMGMxNjIyYTkxZTZjZGMz
ZGU4MDQwN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvZG9j
cy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dApAQCAtMjM5LDYgKzIz
OSw4IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3Zp
ZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZwogd2Via2l0X3dlYl92
aWV3X2lzX3BsYXlpbmdfYXVkaW8KK3dlYmtpdF93ZWJfdmlld19zZXRfaXNfbXV0ZWQKK3dlYmtp
dF93ZWJfdmlld19pc19tdXRlZAogd2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9w
cm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fY2hhcnNldAogd2Via2l0X3dlYl92
aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFdlYlZpZXcuaAppbmRleCAyYjJkNzhkMWJiNTNhMmZmZGI3MGMyYTRiZGJjODg0
YWY2MDM2ZjYwLi40MzYwZjc3NTRjOGZjMDI1MGExMGMyMjZiOTVjYmQ4MzZkMzgzYTFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaApAQCAt
MzM5LDYgKzMzOSwxMyBAQCB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRfQVBJIGdib29sZWFuCiB3ZWJraXRf
d2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJW
aWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgdm9pZAord2Via2l0X3dl
Yl92aWV3X3NldF9pc19tdXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmll
dyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAgICAgICAgICAgICAgICBtdXRlZCk7
CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJfdmlld19pc19tdXRlZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKKwogV0VCS0lUX0FQSSBndWludDY0CiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2VfaWQgICAg
ICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmll
dyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9jcy93
cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvZG9j
cy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCAwYzJkYzY1MTVjNjZiNzk1NzdhN2Q1ODA3Y2E0
YTBmYmM1ZDA3NTM5Li45OWUzNDUzNjQ3MjRmMmYyYjllZThhYTAzMDZjNTRjOWVlOGJhNWZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL2RvY3Mvd3BlLTEuMC1z
ZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dw
ZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0yMTQsNiArMjE0LDggQEAgd2Via2l0X3dlYl92aWV3X3Jl
bG9hZF9ieXBhc3NfY2FjaGUKIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcKIHdlYmtpdF93
ZWJfdmlld19pc19sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbword2Vi
a2l0X3dlYl92aWV3X3NldF9pc19tdXRlZAord2Via2l0X3dlYl92aWV3X2lzX211dGVkCiB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNzCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2N1c3RvbV9jaGFyc2V0CiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2N1c3RvbV9jaGFyc2V0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDk2NTIzZjJmZGVhN2I1ZWFk
YTlhM2MwZGNlYzExYTFiNzM3MDRjYzEuLjQxYjRlODIyZjhiYjMxYmJhZTg0MTE4MDM0YWE0Mzc0
NjQ2N2I5OTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMzA0
LDYgKzEzMDQsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldE1lZGlhVm9sdW1lKGZsb2F0KTsK
ICAgICB2b2lkIHNldE11dGVkKFdlYkNvcmU6Ok1lZGlhUHJvZHVjZXI6Ok11dGVkU3RhdGVGbGFn
cyk7CisgICAgYm9vbCBpc0F1ZGlvTXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkU3RhdGUg
JiBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQ7IH07CiAgICAgdm9pZCBzZXRN
YXlTdGFydE1lZGlhV2hlbkluV2luZG93KGJvb2wpOwogICAgIGJvb2wgbWF5U3RhcnRNZWRpYVdo
ZW5JbldpbmRvdygpIGNvbnN0IHsgcmV0dXJuIG1fbWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdzsg
fQogICAgIHZvaWQgc2V0TWVkaWFDYXB0dXJlRW5hYmxlZChib29sKTsKZGlmZiAtLWdpdCBhL1Rv
b2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NTkyZWZlZDIzNDEzOWU0ZWRh
NThlYWI5YzhhY2RjNDY4ZjFmYmY3Li4xZDM4ZmE0YzM2YzFkZmY3OGUzM2M3ZWRjZDI4OTIzYTE4
ZTNmZTdjIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTggQEAKKzIwMjAtMDUtMjYgIEphbi1NaWNoYWVsIEJydW1tZXIgIDxqYW4u
YnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BFXSBBUEkgZm9yIFdlYlZpZXcg
YXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIE1pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFiLmM6CisgICAgICAgIChhdWRp
b0NsaWNrZWQpOgorICAgICAgICAoYXVkaW9NdXRlZENoYW5nZWQpOgorICAgICAgICAoYnJvd3Nl
clRhYkNvbnN0cnVjdGVkKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdM
aWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAodGVzdFdlYlZpZXdJc0F1ZGlvTXV0
ZWQpOgorICAgICAgICAoYmVmb3JlQWxsKToKKwogMjAyMC0wNS0wNSAgUm9zcyBLaXJzbGluZyAg
PHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW0VDTUEtNDAyXSBJbXBsZW1lbnQg
SW50bC5Mb2NhbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyVGFi
LmMgYi9Ub29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCmluZGV4IDg1NzkwOThkNmQ5
YmY1ZjNlMTAzZTY5YTRhYTk1NzNiY2Y0NTlkYjYuLjg2NTViOGJiZjlkYmI0YWY2MjJiNDJjZGZm
YmU4YzVlZGExZjViMTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2Vy
VGFiLmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJUYWIuYwpAQCAtNTcsNiAr
NTcsNyBAQCBzdHJ1Y3QgX0Jyb3dzZXJUYWIgewogICAgIEd0a1dpZGdldCAqdGl0bGVCb3g7CiAg
ICAgR3RrV2lkZ2V0ICp0aXRsZUxhYmVsOwogICAgIEd0a1dpZGdldCAqdGl0bGVTcGlubmVyOwor
ICAgIEd0a1dpZGdldCAqdGl0bGVBdWRpb0J1dHRvbjsKICAgICBHdGtXaWRnZXQgKnRpdGxlQ2xv
c2VCdXR0b247CiB9OwogCkBAIC0zNjEsNiArMzYyLDIzIEBAIHN0YXRpYyBnYm9vbGVhbiBpbnNw
ZWN0b3JDbG9zZWQoV2ViS2l0V2ViSW5zcGVjdG9yICppbnNwZWN0b3IsIEJyb3dzZXJUYWIgKnRh
YikKICAgICByZXR1cm4gRkFMU0U7CiB9CiAKK3N0YXRpYyB2b2lkIGF1ZGlvQ2xpY2tlZChHdGtC
dXR0b24gKmJ1dHRvbiwgZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgQnJvd3NlclRhYiAqdGFi
ID0gQlJPV1NFUl9UQUIodXNlckRhdGEpOworICAgIGdib29sZWFuIG11dGVkID0gd2Via2l0X3dl
Yl92aWV3X2lzX211dGVkKHRhYi0+d2ViVmlldyk7CisKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2lzX211dGVkKHRhYi0+d2ViVmlldywgIW11dGVkKTsKK30KKworc3RhdGljIHZvaWQgYXVkaW9N
dXRlZENoYW5nZWQoV2ViS2l0V2ViVmlldyAqd2ViVmlldywgR1BhcmFtU3BlYyAqcHNwZWMsIGdw
b2ludGVyIHVzZXJEYXRhKQoreworICAgIEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKHVz
ZXJEYXRhKTsKKyAgICBnYm9vbGVhbiBtdXRlZCA9IHdlYmtpdF93ZWJfdmlld19pc19tdXRlZCh0
YWItPndlYlZpZXcpOworICAgIEd0a1dpZGdldCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21f
aWNvbl9uYW1lKG11dGVkID8gImF1ZGlvLXZvbHVtZS1tdXRlZC1zeW1ib2xpYyIgOiAiYXVkaW8t
dm9sdW1lLWhpZ2gtc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworCisgICAgZ3RrX2J1
dHRvbl9zZXRfaW1hZ2UoR1RLX0JVVFRPTih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBpbWFnZSk7
Cit9CisKIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJTZXRQcm9wZXJ0eShHT2JqZWN0ICpvYmplY3Qs
IGd1aW50IHByb3BJZCwgY29uc3QgR1ZhbHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpCiB7
CiAgICAgQnJvd3NlclRhYiAqdGFiID0gQlJPV1NFUl9UQUIob2JqZWN0KTsKQEAgLTQ1NSwxMiAr
NDczLDIzIEBAIHN0YXRpYyB2b2lkIGJyb3dzZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2Jq
ZWN0KQogICAgIGd0a19ib3hfcGFja19zdGFydChHVEtfQk9YKHRhYi0+dGl0bGVCb3gpLCBoYm94
LCBUUlVFLCBUUlVFLCAwKTsKICAgICBndGtfd2lkZ2V0X3Nob3coaGJveCk7CiAKKyAgICB0YWIt
PnRpdGxlQXVkaW9CdXR0b24gPSBndGtfYnV0dG9uX25ldygpOworICAgIGdfc2lnbmFsX2Nvbm5l
Y3QodGFiLT50aXRsZUF1ZGlvQnV0dG9uLCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soYXVkaW9DbGlj
a2VkKSwgdGFiKTsKKyAgICBndGtfYnV0dG9uX3NldF9yZWxpZWYoR1RLX0JVVFRPTih0YWItPnRp
dGxlQXVkaW9CdXR0b24pLCBHVEtfUkVMSUVGX05PTkUpOworICAgIGd0a193aWRnZXRfc2V0X2Zv
Y3VzX29uX2NsaWNrKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiwgRkFMU0UpOworCisgICAgR3RrV2lk
Z2V0ICppbWFnZSA9IGd0a19pbWFnZV9uZXdfZnJvbV9pY29uX25hbWUoImF1ZGlvLXZvbHVtZS1o
aWdoLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKKyAgICBndGtfYnV0dG9uX3NldF9p
bWFnZShHVEtfQlVUVE9OKHRhYi0+dGl0bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKKyAgICBndGtf
d2lkZ2V0X3Nob3coaW1hZ2UpOworCisgICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFi
LT50aXRsZUJveCksIHRhYi0+dGl0bGVBdWRpb0J1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKKwog
ICAgIHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiA9IGd0a19idXR0b25fbmV3KCk7CiAgICAgZ19zaWdu
YWxfY29ubmVjdF9zd2FwcGVkKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiwgImNsaWNrZWQiLCBHX0NB
TExCQUNLKGd0a193aWRnZXRfZGVzdHJveSksIHRhYik7CiAgICAgZ3RrX2J1dHRvbl9zZXRfcmVs
aWVmKEdUS19CVVRUT04odGFiLT50aXRsZUNsb3NlQnV0dG9uKSwgR1RLX1JFTElFRl9OT05FKTsK
ICAgICBndGtfd2lkZ2V0X3NldF9mb2N1c19vbl9jbGljayh0YWItPnRpdGxlQ2xvc2VCdXR0b24s
IEZBTFNFKTsKIAotICAgIEd0a1dpZGdldCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNv
bl9uYW1lKCJ3aW5kb3ctY2xvc2Utc3ltYm9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAg
IGltYWdlID0gZ3RrX2ltYWdlX25ld19mcm9tX2ljb25fbmFtZSgid2luZG93LWNsb3NlLXN5bWJv
bGljIiwgR1RLX0lDT05fU0laRV9NRU5VKTsKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09O
VEFJTkVSKHRhYi0+dGl0bGVDbG9zZUJ1dHRvbiksIGltYWdlKTsKICAgICBndGtfd2lkZ2V0X3No
b3coaW1hZ2UpOwogCkBAIC00NzQsNiArNTAzLDkgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNv
bnN0cnVjdGVkKEdPYmplY3QgKmdPYmplY3QpCiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndl
YlZpZXcsICJsb2FkLWZhaWxlZC13aXRoLXRscy1lcnJvcnMiLCBHX0NBTExCQUNLKGxvYWRGYWls
ZWRXaXRoVExTZXJyb3JzKSwgdGFiKTsKICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmll
dywgInBlcm1pc3Npb24tcmVxdWVzdCIsIEdfQ0FMTEJBQ0soZGVjaWRlUGVybWlzc2lvblJlcXVl
c3QpLCB0YWIpOwogICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicnVuLWNvbG9y
LWNob29zZXIiLCBHX0NBTExCQUNLKHJ1bkNvbG9yQ2hvb3NlckNhbGxiYWNrKSwgdGFiKTsKKwor
ICAgIGdfb2JqZWN0X2JpbmRfcHJvcGVydHkodGFiLT53ZWJWaWV3LCAiaXMtcGxheWluZy1hdWRp
byIsIHRhYi0+dGl0bGVBdWRpb0J1dHRvbiwgInZpc2libGUiLCBHX0JJTkRJTkdfREVGQVVMVCB8
IEdfQklORElOR19TWU5DX0NSRUFURSk7CisgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZp
ZXcsICJub3RpZnk6OmlzLW11dGVkIiwgR19DQUxMQkFDSyhhdWRpb011dGVkQ2hhbmdlZCksIHRh
Yik7CiAjZW5kaWYKIAogICAgIFdlYktpdFdlYkluc3BlY3RvciAqaW5zcGVjdG9yID0gd2Via2l0
X3dlYl92aWV3X2dldF9pbnNwZWN0b3IodGFiLT53ZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3Bw
CmluZGV4IDc3Zjc2MTcyZTkyZmQ5YTkwNjVhZTVmZmIyZjgyMWVkNjdiYmJkMDEuLjEyMWJiYjMw
YzhhYzMzYTg5M2Y3MzgwZjU5NmIyZTFmMjA1M2ZlYzggMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApA
QCAtMTEzMyw2ICsxMTMzLDE1IEBAIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVk
aW8oSXNQbGF5aW5nQXVkaW9XZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pCiAgICAgZ19hc3Nl
cnRfZmFsc2Uod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3
KSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNBdWRpb011dGVkKFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJf
dmlld19pc19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcpKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0
X2lzX211dGVkKHRlc3QtPm1fd2ViVmlldywgVFJVRSk7CisgICAgZ19hc3NlcnRfdHJ1ZSh3ZWJr
aXRfd2ViX3ZpZXdfaXNfbXV0ZWQodGVzdC0+bV93ZWJWaWV3KSk7CisgICAgd2Via2l0X3dlYl92
aWV3X3NldF9pc19tdXRlZCh0ZXN0LT5tX3dlYlZpZXcsIEZBTFNFKTsKKyAgICBnX2Fzc2VydF9m
YWxzZSh3ZWJraXRfd2ViX3ZpZXdfaXNfbXV0ZWQodGVzdC0+bV93ZWJWaWV3KSk7Cit9CisKIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3QmFja2dyb3VuZENvbG9yKFdlYlZpZXdUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQogewogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTEzODksNiArMTM5OCw3IEBA
IHZvaWQgYmVmb3JlQWxsKCkKICNpZiBQTEFURk9STShXUEUpCiAgICAgRnJhbWVEaXNwbGF5ZWRU
ZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZnJhbWUtZGlzcGxheWVkIiwgdGVzdFdlYlZpZXdG
cmFtZURpc3BsYXllZCk7CiAjZW5kaWYKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJW
aWV3IiwgImlzLWF1ZGlvLW11dGVkIiwgdGVzdFdlYlZpZXdJc0F1ZGlvTXV0ZWQpOwogfQogCiB2
b2lkIGFmdGVyQWxsKCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>400597</attachid>
            <date>2020-05-29 10:14:51 -0700</date>
            <delta_ts>2020-05-29 15:35:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-176119-20200529191449.patch</filename>
            <type>text/plain</type>
            <size>14082</size>
            <attacher name="Jan-Michael Brummer">jan.brummer</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxMjIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU5ZTFhZTM1NDAzNDAwZmEy
ZTQ1NTk5ODM1MzllMGE5ZDQzMWRjZWYuLjkyYmY1MmU4NzZlMDMyZjZhY2I2ZDdjNTdkYWE2MzNl
MjBjYmE2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDUtMjYgIEphbi1NaWNo
YWVsIEJydW1tZXIgIDxqYW4uYnJ1bW1lckB0YWJvcy5vcmc+CisKKyAgICAgICAgW0dUS11bV1BF
XSBBUEkgZm9yIFdlYlZpZXcgYXVkaW8gbXV0ZSBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzYxMTkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0IGltcGxlbWVudGVkIGluIFRlc3RXZWJL
aXRXZWJWaWV3LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld1NldFByb3BlcnR5KToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdHZXRQcm9wZXJ0eSk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dCk6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkKToKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19pc19tdXRlZCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0
ay00LjAtc2VjdGlvbnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdl
YlZpZXcuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlv
bnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViUGFnZVByb3h5Ojppc0F1ZGlvTXV0ZWQgY29uc3QpOgorCiAyMDIwLTA1LTA1ICBE
YXZpZCBLaWx6ZXIgIDxkZGtpbHplckBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IGRlcHJlY2F0
ZWQgTlNHcmFwaGljc0NvbnRleHQgbWV0aG9kcyB1c2luZyAnZ3JhcGhpY3NQb3J0JwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAppbmRl
eCA4YzU0YjQyM2ZmOTI2NmI4MzA3Mzg1ZGQxM2MzZjQ0OTI0ZmMyZTQ1Li5hODg5NTUwOTAyM2Y4
Nzg0ODY3OGM4MjcwYTRmMTc3YWNjOTk0ZWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTk5LDcgKzE5OSw4IEBAIGVu
dW0gewogICAgIFBST1BfSVNfQ09OVFJPTExFRF9CWV9BVVRPTUFUSU9OLAogICAgIFBST1BfQVVU
T01BVElPTl9QUkVTRU5UQVRJT05fVFlQRSwKICAgICBQUk9QX0VESVRBQkxFLAotICAgIFBST1Bf
UEFHRV9JRAorICAgIFBST1BfUEFHRV9JRCwKKyAgICBQUk9QX0lTX01VVEVECiB9OwogCiB0eXBl
ZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8V2ViS2l0V2ViUmVzb3VyY2U+ID4gTG9hZGlu
Z1Jlc291cmNlc01hcDsKQEAgLTgzNCw2ICs4MzUsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJW
aWV3U2V0UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIGNvbnN0IEdWYWx1
ZQogICAgIGNhc2UgUFJPUF9FRElUQUJMRToKICAgICAgICAgd2Via2l0X3dlYl92aWV3X3NldF9l
ZGl0YWJsZSh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CiAgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgUFJPUF9JU19NVVRFRDoKKyAgICAgICAgd2Via2l0X3dlYl92aWV3X3Nl
dF9pc19tdXRlZCh3ZWJWaWV3LCBnX3ZhbHVlX2dldF9ib29sZWFuKHZhbHVlKSk7CisgICAgICAg
IGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJRF9QUk9Q
RVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC04OTYsNiArOTAw
LDkgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVj
dCwgZ3VpbnQgcHJvcElkLCBHVmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfUEFHRV9JRDoKICAg
ICAgICAgZ192YWx1ZV9zZXRfdWludDY0KHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3BhZ2Vf
aWQod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfTVVURUQ6Cisg
ICAgICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19nZXRfaXNf
bXV0ZWQod2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBH
X09CSkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3Bl
Yyk7CiAgICAgfQpAQCAtMTI2NSw2ICsxMjcyLDI0IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJf
dmlld19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAg
ICAgICAgMCwgR19NQVhVSU5UNjQsIDAsCiAgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFC
TEUpKTsKIAorICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aXMtbXV0ZWQ6CisgICAgICoK
KyAgICAgKiBXaGV0aGVyIHRoZSAjV2ViS2l0V2ViVmlldyBhdWRpbyBpcyBtdXRlZC4gV2hlbiAl
VFJVRSwgYXVkaW8gaXMgc2lsZW5jZWQuCisgICAgICogSXQgbWF5IHN0aWxsIGJlIHBsYXlpbmcs
IGkuZS4gI1dlYktpdFdlYlZpZXc6aXMtcGxheWluZy1hdWRpbyBtYXkgYmUgJVRSVUUuCisgICAg
ICoKKyAgICAgKiBTaW5jZTogMi4zMAorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3Rh
bGxfcHJvcGVydHkoCisgICAgICAgIGdPYmplY3RDbGFzcywKKyAgICAgICAgUFJPUF9JU19NVVRF
RCwKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAgICAiaXMtbXV0ZWQi
LAorICAgICAgICAgICAgIklzIE11dGVkIiwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHZp
ZXcgYXVkaW8gaXMgbXV0ZWQiKSwKKyAgICAgICAgICAgIEZBTFNFLAorICAgICAgICAgICAgV0VC
S0lUX1BBUkFNX1JFQURXUklURSkpOworCiAgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6
bG9hZC1jaGFuZ2VkOgogICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdo
aWNoIHRoZSBzaWduYWwgaXMgZW1pdHRlZApAQCAtMzE1OCw2ICszMTgzLDQzIEBAIGdib29sZWFu
IHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcp
CiAgICAgcmV0dXJuIGdldFBhZ2Uod2ViVmlldykuaXNQbGF5aW5nQXVkaW8oKTsKIH0KIAorLyoq
CisgKiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkOgorICogQHdlYl92aWV3OiBhICNXZWJL
aXRXZWJWaWV3CisgKiBAbXV0ZWQ6IG11dGUgZmxhZworICoKKyAqIFNldHMgdGhlIG11dGUgc3Rh
dGUgb2YgQHdlYl92aWV3LgorICoKKyAqIFNpbmNlOiAyLjMwCisgKi8KK3ZvaWQgd2Via2l0X3dl
Yl92aWV3X3NldF9pc19tdXRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBnYm9vbGVhbiBtdXRl
ZCkKK3sKKyAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSk7
CisKKyAgICBpZiAod2Via2l0X3dlYl92aWV3X2dldF9pc19tdXRlZCAod2ViVmlldykgPT0gbXV0
ZWQpCisgICAgICAgIHJldHVybjsKKworICAgIGdldFBhZ2Uod2ViVmlldykuc2V0TXV0ZWQobXV0
ZWQgPyBXZWJDb3JlOjpNZWRpYVByb2R1Y2VyOjpBdWRpb0lzTXV0ZWQgOiBXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpOb25lTXV0ZWQpOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJW
aWV3KSwgImlzLW11dGVkIik7Cit9CisKKy8qKgorICogd2Via2l0X3dlYl92aWV3X2dldF9pc19t
dXRlZDoKKyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIEdldHMgdGhlIG11
dGUgc3RhdGUgb2YgQHdlYl92aWV3LgorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIEB3ZWJfdmll
dyBhdWRpbyBpcyBtdXRlZCBvciAlRkFMU0UgaXMgYXVkaW8gaXMgbm90IG11dGVkLgorICoKKyAq
IFNpbmNlOiAyLjMwCisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19nZXRfaXNfbXV0ZWQo
V2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJL
SVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKworICAgIHJldHVybiBnZXRQYWdlKHdl
YlZpZXcpLmlzQXVkaW9NdXRlZCgpOworfQorCiAvKioKICAqIHdlYmtpdF93ZWJfdmlld19nb19i
YWNrOgogICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCmluZGV4IGMxNTM5Y2MyNzg5ZTBjOTRh
YTRhNWIxZmQzOGIwZTE1NTNkNTgxMWMuLjEzMTM2MGMzZGQwZWJmY2ExMWM2ZTcxNDg2ZTYxMTZk
N2RmMTBiY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oCkBAIC0zNTAsNiArMzUwLDEzIEBAIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcKIFdFQktJVF9BUEkgZ2Jv
b2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvICAgICAgICAgICAgICAgICAg
ICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsKIAorV0VCS0lUX0FQSSB2
b2lkCit3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVkICAgICAgICAgICAgICAgICAgICAgICAg
IChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdib29sZWFuICAgICAgICAgICAg
ICAgICAgIG11dGVkKTsKKworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2dl
dF9pc19tdXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19n
ZXRfcGFnZV9pZCAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAg
ICAgICAgKndlYl92aWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLTQuMC1zZWN0aW9ucy50eHQKaW5kZXgg
MWJjNDI3MGM5ZjQwZThmYjhjNGZlNjZjZTZlM2JiNTBiM2ZmOTcxNy4uOWRiY2FkZTU0ZjdhOTM3
ZTM2OWI3NzZkZDI3OTg2MTEzMDAwNTg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstNC4wLXNlY3Rpb25zLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay00LjAtc2VjdGlvbnMu
dHh0CkBAIC0yMzksNiArMjM5LDggQEAgd2Via2l0X3dlYl92aWV3X3JlbG9hZF9ieXBhc3NfY2Fj
aGUKIHdlYmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19sb2Fk
aW5nCiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbword2Via2l0X3dlYl92aWV3X3Nl
dF9pc19tdXRlZAord2Via2l0X3dlYl92aWV3X2dldF9pc19tdXRlZAogd2Via2l0X3dlYl92aWV3
X2dldF9lc3RpbWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21f
Y2hhcnNldAogd2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dlYktpdFdlYlZpZXcuaAppbmRleCAyYjJkNzhkMWJi
NTNhMmZmZGI3MGMyYTRiZGJjODg0YWY2MDM2ZjYwLi4yNjRmZTY4Y2YyZGY1MGNmYTU2YTlmNzIz
NWM4Y2MxZDU1MDdkM2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
d3BlL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3Bl
L1dlYktpdFdlYlZpZXcuaApAQCAtMzM5LDYgKzMzOSwxMyBAQCB3ZWJraXRfd2ViX3ZpZXdfaXNf
bG9hZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3CiBXRUJLSVRf
QVBJIGdib29sZWFuCiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyAgICAgICAgICAg
ICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJ
VF9BUEkgdm9pZAord2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZCAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnYm9vbGVhbiAgICAg
ICAgICAgICAgICAgICBtdXRlZCk7CisKK1dFQktJVF9BUEkgZ2Jvb2xlYW4KK3dlYmtpdF93ZWJf
dmlld19nZXRfaXNfbXV0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcg
ICAgICAgICAgICAgKndlYl92aWV3KTsKKwogV0VCS0lUX0FQSSBndWludDY0CiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3BhZ2VfaWQgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3
ICAgICAgICAgICAgICp3ZWJfdmlldyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS93cGUvZG9jcy93cGUtMS4wLXNlY3Rpb25zLnR4dAppbmRleCAwYzJkYzY1
MTVjNjZiNzk1NzdhN2Q1ODA3Y2E0YTBmYmM1ZDA3NTM5Li5mMzRjZGE4MDVlOTkzZDc0NmY5ZmRm
OTNlODUyZWI0MGNmODBmOWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvd3BlL2RvY3Mvd3BlLTEuMC1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9kb2NzL3dwZS0xLjAtc2VjdGlvbnMudHh0CkBAIC0yMTQsNiArMjE0LDgg
QEAgd2Via2l0X3dlYl92aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUKIHdlYmtpdF93ZWJfdmlld19z
dG9wX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdf
aXNfcGxheWluZ19hdWRpbword2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZAord2Via2l0X3dl
Yl92aWV3X2dldF9pc19tdXRlZAogd2Via2l0X3dlYl92aWV3X2dldF9lc3RpbWF0ZWRfbG9hZF9w
cm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fY2hhcnNldAogd2Via2l0X3dlYl92
aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
aAppbmRleCA5NjUyM2YyZmRlYTdiNWVhZGE5YTNjMGRjZWMxMWExYjczNzA0Y2MxLi40MWI0ZTgy
MmY4YmIzMWJiYWU4NDExODAzNGFhNDM3NDY0NjdiOTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaApAQCAtMTMwNCw2ICsxMzA0LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBzZXRNZWRpYVZvbHVtZShmbG9hdCk7CiAgICAgdm9pZCBzZXRNdXRlZChXZWJDb3JlOjpNZWRp
YVByb2R1Y2VyOjpNdXRlZFN0YXRlRmxhZ3MpOworICAgIGJvb2wgaXNBdWRpb011dGVkKCkgY29u
c3QgeyByZXR1cm4gbV9tdXRlZFN0YXRlICYgV2ViQ29yZTo6TWVkaWFQcm9kdWNlcjo6QXVkaW9J
c011dGVkOyB9OwogICAgIHZvaWQgc2V0TWF5U3RhcnRNZWRpYVdoZW5JbldpbmRvdyhib29sKTsK
ICAgICBib29sIG1heVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3coKSBjb25zdCB7IHJldHVybiBtX21h
eVN0YXJ0TWVkaWFXaGVuSW5XaW5kb3c7IH0KICAgICB2b2lkIHNldE1lZGlhQ2FwdHVyZUVuYWJs
ZWQoYm9vbCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggODU5MmVmZWQyMzQxMzllNGVkYTU4ZWFiOWM4YWNkYzQ2OGYxZmJmNy4uMWQzOGZhNGMz
NmMxZGZmNzhlMzNjN2VkY2QyODkyM2ExOGUzZmU3YyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTI2ICBK
YW4tTWljaGFlbCBCcnVtbWVyICA8amFuLmJydW1tZXJAdGFib3Mub3JnPgorCisgICAgICAgIFtH
VEtdW1dQRV0gQVBJIGZvciBXZWJWaWV3IGF1ZGlvIG11dGUgc3VwcG9ydAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc2MTE5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9ndGsvQnJv
d3NlclRhYi5jOgorICAgICAgICAoYXVkaW9DbGlja2VkKToKKyAgICAgICAgKGF1ZGlvTXV0ZWRD
aGFuZ2VkKToKKyAgICAgICAgKGJyb3dzZXJUYWJDb25zdHJ1Y3RlZCk6CisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAg
ICAgKHRlc3RXZWJWaWV3SXNBdWRpb011dGVkKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKIDIw
MjAtMDUtMDUgIFJvc3MgS2lyc2xpbmcgIDxyb3NzLmtpcnNsaW5nQHNvbnkuY29tPgogCiAgICAg
ICAgIFtFQ01BLTQwMl0gSW1wbGVtZW50IEludGwuTG9jYWxlCmRpZmYgLS1naXQgYS9Ub29scy9N
aW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dz
ZXJUYWIuYwppbmRleCA4NTc5MDk4ZDZkOWJmNWYzZTEwM2U2OWE0YWE5NTczYmNmNDU5ZGI2Li5i
OTE2NzYzYjY0ZjdiMWZjMzhjYjU1OGJmMDYxZDQwZjFkYTI4N2I2IDEwMDY0NAotLS0gYS9Ub29s
cy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlclRhYi5jCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL2d0
ay9Ccm93c2VyVGFiLmMKQEAgLTU3LDYgKzU3LDcgQEAgc3RydWN0IF9Ccm93c2VyVGFiIHsKICAg
ICBHdGtXaWRnZXQgKnRpdGxlQm94OwogICAgIEd0a1dpZGdldCAqdGl0bGVMYWJlbDsKICAgICBH
dGtXaWRnZXQgKnRpdGxlU3Bpbm5lcjsKKyAgICBHdGtXaWRnZXQgKnRpdGxlQXVkaW9CdXR0b247
CiAgICAgR3RrV2lkZ2V0ICp0aXRsZUNsb3NlQnV0dG9uOwogfTsKIApAQCAtMzYxLDYgKzM2Miwy
MyBAQCBzdGF0aWMgZ2Jvb2xlYW4gaW5zcGVjdG9yQ2xvc2VkKFdlYktpdFdlYkluc3BlY3RvciAq
aW5zcGVjdG9yLCBCcm93c2VyVGFiICp0YWIpCiAgICAgcmV0dXJuIEZBTFNFOwogfQogCitzdGF0
aWMgdm9pZCBhdWRpb0NsaWNrZWQoR3RrQnV0dG9uICpidXR0b24sIGdwb2ludGVyIHVzZXJEYXRh
KQoreworICAgIEJyb3dzZXJUYWIgKnRhYiA9IEJST1dTRVJfVEFCKHVzZXJEYXRhKTsKKyAgICBn
Ym9vbGVhbiBtdXRlZCA9IHdlYmtpdF93ZWJfdmlld19nZXRfaXNfbXV0ZWQodGFiLT53ZWJWaWV3
KTsKKworICAgIHdlYmtpdF93ZWJfdmlld19zZXRfaXNfbXV0ZWQodGFiLT53ZWJWaWV3LCAhbXV0
ZWQpOworfQorCitzdGF0aWMgdm9pZCBhdWRpb011dGVkQ2hhbmdlZChXZWJLaXRXZWJWaWV3ICp3
ZWJWaWV3LCBHUGFyYW1TcGVjICpwc3BlYywgZ3BvaW50ZXIgdXNlckRhdGEpCit7CisgICAgQnJv
d3NlclRhYiAqdGFiID0gQlJPV1NFUl9UQUIodXNlckRhdGEpOworICAgIGdib29sZWFuIG11dGVk
ID0gd2Via2l0X3dlYl92aWV3X2dldF9pc19tdXRlZCh0YWItPndlYlZpZXcpOworICAgIEd0a1dp
ZGdldCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKG11dGVkID8gImF1ZGlv
LXZvbHVtZS1tdXRlZC1zeW1ib2xpYyIgOiAiYXVkaW8tdm9sdW1lLWhpZ2gtc3ltYm9saWMiLCBH
VEtfSUNPTl9TSVpFX01FTlUpOworCisgICAgZ3RrX2J1dHRvbl9zZXRfaW1hZ2UoR1RLX0JVVFRP
Tih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBpbWFnZSk7Cit9CisKIHN0YXRpYyB2b2lkIGJyb3dz
ZXJUYWJTZXRQcm9wZXJ0eShHT2JqZWN0ICpvYmplY3QsIGd1aW50IHByb3BJZCwgY29uc3QgR1Zh
bHVlICp2YWx1ZSwgR1BhcmFtU3BlYyAqcHNwZWMpCiB7CiAgICAgQnJvd3NlclRhYiAqdGFiID0g
QlJPV1NFUl9UQUIob2JqZWN0KTsKQEAgLTQ1NSwxMiArNDczLDIzIEBAIHN0YXRpYyB2b2lkIGJy
b3dzZXJUYWJDb25zdHJ1Y3RlZChHT2JqZWN0ICpnT2JqZWN0KQogICAgIGd0a19ib3hfcGFja19z
dGFydChHVEtfQk9YKHRhYi0+dGl0bGVCb3gpLCBoYm94LCBUUlVFLCBUUlVFLCAwKTsKICAgICBn
dGtfd2lkZ2V0X3Nob3coaGJveCk7CiAKKyAgICB0YWItPnRpdGxlQXVkaW9CdXR0b24gPSBndGtf
YnV0dG9uX25ldygpOworICAgIGdfc2lnbmFsX2Nvbm5lY3QodGFiLT50aXRsZUF1ZGlvQnV0dG9u
LCAiY2xpY2tlZCIsIEdfQ0FMTEJBQ0soYXVkaW9DbGlja2VkKSwgdGFiKTsKKyAgICBndGtfYnV0
dG9uX3NldF9yZWxpZWYoR1RLX0JVVFRPTih0YWItPnRpdGxlQXVkaW9CdXR0b24pLCBHVEtfUkVM
SUVGX05PTkUpOworICAgIGd0a193aWRnZXRfc2V0X2ZvY3VzX29uX2NsaWNrKHRhYi0+dGl0bGVB
dWRpb0J1dHRvbiwgRkFMU0UpOworCisgICAgR3RrV2lkZ2V0ICppbWFnZSA9IGd0a19pbWFnZV9u
ZXdfZnJvbV9pY29uX25hbWUoImF1ZGlvLXZvbHVtZS1oaWdoLXN5bWJvbGljIiwgR1RLX0lDT05f
U0laRV9NRU5VKTsKKyAgICBndGtfYnV0dG9uX3NldF9pbWFnZShHVEtfQlVUVE9OKHRhYi0+dGl0
bGVBdWRpb0J1dHRvbiksIGltYWdlKTsKKyAgICBndGtfd2lkZ2V0X3Nob3coaW1hZ2UpOworCisg
ICAgZ3RrX2JveF9wYWNrX3N0YXJ0KEdUS19CT1godGFiLT50aXRsZUJveCksIHRhYi0+dGl0bGVB
dWRpb0J1dHRvbiwgRkFMU0UsIEZBTFNFLCAwKTsKKwogICAgIHRhYi0+dGl0bGVDbG9zZUJ1dHRv
biA9IGd0a19idXR0b25fbmV3KCk7CiAgICAgZ19zaWduYWxfY29ubmVjdF9zd2FwcGVkKHRhYi0+
dGl0bGVDbG9zZUJ1dHRvbiwgImNsaWNrZWQiLCBHX0NBTExCQUNLKGd0a193aWRnZXRfZGVzdHJv
eSksIHRhYik7CiAgICAgZ3RrX2J1dHRvbl9zZXRfcmVsaWVmKEdUS19CVVRUT04odGFiLT50aXRs
ZUNsb3NlQnV0dG9uKSwgR1RLX1JFTElFRl9OT05FKTsKICAgICBndGtfd2lkZ2V0X3NldF9mb2N1
c19vbl9jbGljayh0YWItPnRpdGxlQ2xvc2VCdXR0b24sIEZBTFNFKTsKIAotICAgIEd0a1dpZGdl
dCAqaW1hZ2UgPSBndGtfaW1hZ2VfbmV3X2Zyb21faWNvbl9uYW1lKCJ3aW5kb3ctY2xvc2Utc3lt
Ym9saWMiLCBHVEtfSUNPTl9TSVpFX01FTlUpOworICAgIGltYWdlID0gZ3RrX2ltYWdlX25ld19m
cm9tX2ljb25fbmFtZSgid2luZG93LWNsb3NlLXN5bWJvbGljIiwgR1RLX0lDT05fU0laRV9NRU5V
KTsKICAgICBndGtfY29udGFpbmVyX2FkZChHVEtfQ09OVEFJTkVSKHRhYi0+dGl0bGVDbG9zZUJ1
dHRvbiksIGltYWdlKTsKICAgICBndGtfd2lkZ2V0X3Nob3coaW1hZ2UpOwogCkBAIC00NzQsNiAr
NTAzLDkgQEAgc3RhdGljIHZvaWQgYnJvd3NlclRhYkNvbnN0cnVjdGVkKEdPYmplY3QgKmdPYmpl
Y3QpCiAgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJsb2FkLWZhaWxlZC13aXRo
LXRscy1lcnJvcnMiLCBHX0NBTExCQUNLKGxvYWRGYWlsZWRXaXRoVExTZXJyb3JzKSwgdGFiKTsK
ICAgICBnX3NpZ25hbF9jb25uZWN0KHRhYi0+d2ViVmlldywgInBlcm1pc3Npb24tcmVxdWVzdCIs
IEdfQ0FMTEJBQ0soZGVjaWRlUGVybWlzc2lvblJlcXVlc3QpLCB0YWIpOwogICAgIGdfc2lnbmFs
X2Nvbm5lY3QodGFiLT53ZWJWaWV3LCAicnVuLWNvbG9yLWNob29zZXIiLCBHX0NBTExCQUNLKHJ1
bkNvbG9yQ2hvb3NlckNhbGxiYWNrKSwgdGFiKTsKKworICAgIGdfb2JqZWN0X2JpbmRfcHJvcGVy
dHkodGFiLT53ZWJWaWV3LCAiaXMtcGxheWluZy1hdWRpbyIsIHRhYi0+dGl0bGVBdWRpb0J1dHRv
biwgInZpc2libGUiLCBHX0JJTkRJTkdfREVGQVVMVCB8IEdfQklORElOR19TWU5DX0NSRUFURSk7
CisgICAgZ19zaWduYWxfY29ubmVjdCh0YWItPndlYlZpZXcsICJub3RpZnk6OmlzLW11dGVkIiwg
R19DQUxMQkFDSyhhdWRpb011dGVkQ2hhbmdlZCksIHRhYik7CiAjZW5kaWYKIAogICAgIFdlYktp
dFdlYkluc3BlY3RvciAqaW5zcGVjdG9yID0gd2Via2l0X3dlYl92aWV3X2dldF9pbnNwZWN0b3Io
dGFiLT53ZWJWaWV3KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2ViS2l0V2ViVmlldy5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFdlYktpdFdlYlZpZXcuY3BwCmluZGV4IDc3Zjc2MTcyZTkyZmQ5YTkw
NjVhZTVmZmIyZjgyMWVkNjdiYmJkMDEuLmIwM2M5OTYyNmYzMGFjYzY5MjIzZDk1NGFmYjhlNDIx
YWViNDVhZjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRHTGliL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcApAQCAtMTEzMyw2ICsxMTMzLDE1IEBAIHN0
YXRpYyB2b2lkIHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8oSXNQbGF5aW5nQXVkaW9XZWJWaWV3
VGVzdCogdGVzdCwgZ2NvbnN0cG9pCiAgICAgZ19hc3NlcnRfZmFsc2Uod2Via2l0X3dlYl92aWV3
X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSk7CiB9CiAKK3N0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3SXNBdWRpb011dGVkKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQor
eworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJfdmlld19nZXRfaXNfbXV0ZWQodGVzdC0+
bV93ZWJWaWV3KSk7CisgICAgd2Via2l0X3dlYl92aWV3X3NldF9pc19tdXRlZCh0ZXN0LT5tX3dl
YlZpZXcsIFRSVUUpOworICAgIGdfYXNzZXJ0X3RydWUod2Via2l0X3dlYl92aWV3X2dldF9pc19t
dXRlZCh0ZXN0LT5tX3dlYlZpZXcpKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdfc2V0X2lzX211dGVk
KHRlc3QtPm1fd2ViVmlldywgRkFMU0UpOworICAgIGdfYXNzZXJ0X2ZhbHNlKHdlYmtpdF93ZWJf
dmlld19nZXRfaXNfbXV0ZWQodGVzdC0+bV93ZWJWaWV3KSk7Cit9CisKIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3QmFja2dyb3VuZENvbG9yKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVy
KQogewogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTEzODksNiArMTM5OCw3IEBAIHZvaWQgYmVmb3Jl
QWxsKCkKICNpZiBQTEFURk9STShXUEUpCiAgICAgRnJhbWVEaXNwbGF5ZWRUZXN0OjphZGQoIldl
YktpdFdlYlZpZXciLCAiZnJhbWUtZGlzcGxheWVkIiwgdGVzdFdlYlZpZXdGcmFtZURpc3BsYXll
ZCk7CiAjZW5kaWYKKyAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlzLWF1
ZGlvLW11dGVkIiwgdGVzdFdlYlZpZXdJc0F1ZGlvTXV0ZWQpOwogfQogCiB2b2lkIGFmdGVyQWxs
KCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>