<?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>189927</bug_id>
          
          <creation_ts>2018-09-24 13:53:50 -0700</creation_ts>
          <short_desc>UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it</short_desc>
          <delta_ts>2018-09-27 13:38:16 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>190007</dependson>
    
    <dependson>190048</dependson>
    
    <dependson>190052</dependson>
          <blocked>184183</blocked>
    
    <blocked>189973</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1462864</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-24 13:53:50 -0700</bug_when>
    <thetext>UIProcess should process incoming sync IPC from WebProcess when waiting for a sync IPC reply from it in order to avoid deadlocks. This is not an issue currently because the WebProcess does process incoming sync IPC when waiting for a sync IPC reply. However, we plan to change this in the future in order to avoid security bugs caused by re-entering WebCore at unsafe times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1462865</commentid>
    <comment_count>1</comment_count>
      <attachid>350678</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-24 14:01:26 -0700</bug_when>
    <thetext>Created attachment 350678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463283</commentid>
    <comment_count>2</comment_count>
      <attachid>350678</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 12:41:52 -0700</bug_when>
    <thetext>Comment on attachment 350678
Patch

Clearing flags on attachment: 350678

Committed r236471: &lt;https://trac.webkit.org/changeset/236471&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463284</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-25 12:41:53 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463285</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-25 12:42:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/44770430&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463449</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-25 18:25:26 -0700</bug_when>
    <thetext>I think this patch is causing the following flaky crash:
ASSERTION FAILED: frame
/Volumes/Data/WebKit/OpenSource/Source/WebKit/UIProcess/WebPageProxy.cpp(4017) : void WebKit::WebPageProxy::decidePolicyForNavigationAction(uint64_t, const WebCore::SecurityOriginData &amp;, uint64_t, WebKit::NavigationActionData &amp;&amp;, const WebKit::FrameInfoData &amp;, uint64_t, const WebCore::ResourceRequest &amp;, WebCore::ResourceRequest &amp;&amp;, WebCore::ResourceResponse &amp;&amp;, const WebKit::UserData &amp;, WebCore::ShouldSkipSafeBrowsingCheck, Ref&lt;WebKit::WebPageProxy::PolicyDecisionSender&gt; &amp;&amp;)
1   0x102077b59 WTFCrash
2   0x106c54b6b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1074e07d3 WebKit::WebPageProxy::decidePolicyForNavigationAction(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, WTF::Ref&lt;WebKit::WebPageProxy::PolicyDecisionSender, WTF::DumbPtrTraits&lt;WebKit::WebPageProxy::PolicyDecisionSender&gt; &gt;&amp;&amp;)
4   0x1074e0521 WebKit::WebPageProxy::decidePolicyForNavigationActionAsync(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long)
5   0x107db34b6 void IPC::callMemberFunctionImpl&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long), std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, WebCore::ResourceResponse, WebKit::UserData, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long&gt;, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul, 11ul&gt;(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long), std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, WebCore::ResourceResponse, WebKit::UserData, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul, 11ul&gt;)
6   0x107db24b0 void IPC::callMemberFunction&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long), std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, WebCore::ResourceResponse, WebKit::UserData, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long&gt;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul, 11ul&gt; &gt;(std::__1::tuple&lt;unsigned long long, WebCore::SecurityOriginData, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, WebCore::ResourceResponse, WebKit::UserData, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long&gt;&amp;&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long))
7   0x107d953e5 void IPC::handleMessage&lt;Messages::WebPageProxy::DecidePolicyForNavigationActionAsync, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long)&gt;(IPC::Decoder&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, WebCore::SecurityOriginData const&amp;, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData const&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WebCore::ShouldSkipSafeBrowsingCheck, unsigned long long))
8   0x107d8c692 WebKit::WebPageProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
9   0x106cef60a IPC::MessageReceiverMap::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
10  0x1072d2dc4 WebKit::ChildProcessProxy::dispatchMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
11  0x107542b3d WebKit::WebProcessProxy::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
12  0x106c9b65a IPC::Connection::dispatchMessage(IPC::Decoder&amp;)
13  0x106c8e291 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)
14  0x106c99255 IPC::Connection::dispatchIncomingMessages()
15  0x106cb8bc2 IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14::operator()()
16  0x106cb8ae9 WTF::Function&lt;void ()&gt;::CallableWrapper&lt;IPC::Connection::enqueueIncomingMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;)::$_14&gt;::call()
17  0x10209ed4d WTF::Function&lt;void ()&gt;::operator()() const
18  0x1020f6ca3 WTF::RunLoop::performWork()
19  0x1020f7634 WTF::RunLoop::performWork(void*)


Which indicates that the decidePolicyForNavigationActionAsync IPC is processed *before* the DidCreateMainFrame / DidCreateSubFrame one :( This is likely due to DidCreateMainFrame / DidCreateSubFrame async IPC getting sent with IPC::SendOption::DispatchMessageEvenWhenWaitingForSyncReply option, similarly to synchronous IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463451</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-25 18:28:00 -0700</bug_when>
    <thetext>Reverted r236471 and r236480 for reason:

Seems to be causing some flaky crashes

Committed r236492: &lt;https://trac.webkit.org/changeset/236492&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463638</commentid>
    <comment_count>7</comment_count>
      <attachid>350868</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-26 09:58:12 -0700</bug_when>
    <thetext>Created attachment 350868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463646</commentid>
    <comment_count>8</comment_count>
      <attachid>350868</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-26 10:56:23 -0700</bug_when>
    <thetext>Comment on attachment 350868
Patch

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

&gt; Source/WebKit/ChangeLog:34
&gt; +        Drop DispatchMessageEvenWhenWaitingForSyncReply SendOption when sending the

This is the change I made compared to the previous iteration of the patch, in order to address the flaky crashes on the bots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463654</commentid>
    <comment_count>9</comment_count>
      <attachid>350868</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2018-09-26 11:12:44 -0700</bug_when>
    <thetext>Comment on attachment 350868
Patch

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

r=me

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3361
&gt; +    if (m_mainFrame &amp;&amp; m_mainFrame-&gt;frameID() == frameID)
&gt; +        return;

Probably deserves a comment that we do this because of decidePolicyForNavigationActionSync.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3387
&gt; +    if (m_process-&gt;webFrame(frameID))
&gt; +        return;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463659</commentid>
    <comment_count>10</comment_count>
      <attachid>350868</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-26 11:38:36 -0700</bug_when>
    <thetext>Comment on attachment 350868
Patch

Clearing flags on attachment: 350868

Committed r236512: &lt;https://trac.webkit.org/changeset/236512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463660</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-26 11:38:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463662</commentid>
    <comment_count>12</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-26 11:45:34 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #9)
&gt; Comment on attachment 350868 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=350868&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3361
&gt; &gt; +    if (m_mainFrame &amp;&amp; m_mainFrame-&gt;frameID() == frameID)
&gt; &gt; +        return;
&gt; 
&gt; Probably deserves a comment that we do this because of
&gt; decidePolicyForNavigationActionSync.
&gt; 
&gt; &gt; Source/WebKit/UIProcess/WebPageProxy.cpp:3387
&gt; &gt; +    if (m_process-&gt;webFrame(frameID))
&gt; &gt; +        return;
&gt; 
&gt; Ditto.

Done in &lt;https://trac.webkit.org/changeset/236513&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464045</commentid>
    <comment_count>13</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2018-09-27 10:47:10 -0700</bug_when>
    <thetext>Looks like after https://trac.webkit.org/changeset/236512/webkit two tests have become flakey failures. 

editing/pasteboard/emacs-ctrl-a-k-y.html
fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html

These two tests seem to be failing due to a race condition

Diff:
--- /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt
+++ /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/fast/scrolling/scroll-animator-overlay-scrollbars-clicked-actual.txt
@@ -1,9 +1,9 @@
 CONSOLE MESSAGE: line 14: MainFrameView: didAddVerticalScrollbar
 CONSOLE MESSAGE: line 14: MainFrameView: didAddHorizontalScrollbar
 CONSOLE MESSAGE: line 14: FrameView: didAddVerticalScrollbar
-CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
 CONSOLE MESSAGE: line 14: MainFrameView: mouseEnteredContentArea
 CONSOLE MESSAGE: line 14: MainFrameView: mouseMovedInContentArea
+CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
 CONSOLE MESSAGE: line 16: MainFrameView: mouseEnteredVerticalScrollbar
 CONSOLE MESSAGE: line 16: FrameView: mouseEnteredContentArea
 CONSOLE MESSAGE: line 16: MainFrameView: mouseMovedInContentArea

I was able to confirm this flakiness using 
run-webkit-tests --root testbuild-236512 editing/pasteboard/emacs-ctrl-a-k-y.html --iterations 500 -f

running this on 236511 causes no failures. 

History:
https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.html#showAllRuns=true&amp;tests=fast%2Fscrolling%2Fscroll-animator-overlay-scrollbars-clicked.html%20editing%2Fpasteboard%2Femacs-ctrl-a-k-y.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464054</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-27 10:51:58 -0700</bug_when>
    <thetext>(In reply to Truitt Savell from comment #13)
&gt; Looks like after https://trac.webkit.org/changeset/236512/webkit two tests
&gt; have become flakey failures. 
&gt; 
&gt; editing/pasteboard/emacs-ctrl-a-k-y.html
&gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html
&gt; 
&gt; These two tests seem to be failing due to a race condition
&gt; 
&gt; Diff:
&gt; ---
&gt; /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/
&gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt
&gt; +++
&gt; /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/
&gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked-actual.txt
&gt; @@ -1,9 +1,9 @@
&gt;  CONSOLE MESSAGE: line 14: MainFrameView: didAddVerticalScrollbar
&gt;  CONSOLE MESSAGE: line 14: MainFrameView: didAddHorizontalScrollbar
&gt;  CONSOLE MESSAGE: line 14: FrameView: didAddVerticalScrollbar
&gt; -CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
&gt;  CONSOLE MESSAGE: line 14: MainFrameView: mouseEnteredContentArea
&gt;  CONSOLE MESSAGE: line 14: MainFrameView: mouseMovedInContentArea
&gt; +CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
&gt;  CONSOLE MESSAGE: line 16: MainFrameView: mouseEnteredVerticalScrollbar
&gt;  CONSOLE MESSAGE: line 16: FrameView: mouseEnteredContentArea
&gt;  CONSOLE MESSAGE: line 16: MainFrameView: mouseMovedInContentArea
&gt; 
&gt; I was able to confirm this flakiness using 
&gt; run-webkit-tests --root testbuild-236512
&gt; editing/pasteboard/emacs-ctrl-a-k-y.html --iterations 500 -f
&gt; 
&gt; running this on 236511 causes no failures. 
&gt; 
&gt; History:
&gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; html#showAllRuns=true&amp;tests=fast%2Fscrolling%2Fscroll-animator-overlay-
&gt; scrollbars-clicked.html%20editing%2Fpasteboard%2Femacs-ctrl-a-k-y.html

Ok, I will look into it. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464059</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2018-09-27 11:02:08 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Truitt Savell from comment #13)
&gt; &gt; Looks like after https://trac.webkit.org/changeset/236512/webkit two tests
&gt; &gt; have become flakey failures. 
&gt; &gt; 
&gt; &gt; editing/pasteboard/emacs-ctrl-a-k-y.html
&gt; &gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked.html
&gt; &gt; 
&gt; &gt; These two tests seem to be failing due to a race condition
&gt; &gt; 
&gt; &gt; Diff:
&gt; &gt; ---
&gt; &gt; /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/
&gt; &gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked-expected.txt
&gt; &gt; +++
&gt; &gt; /Volumes/Data/slave/highsierra-release-tests-wk2/build/layout-test-results/
&gt; &gt; fast/scrolling/scroll-animator-overlay-scrollbars-clicked-actual.txt
&gt; &gt; @@ -1,9 +1,9 @@
&gt; &gt;  CONSOLE MESSAGE: line 14: MainFrameView: didAddVerticalScrollbar
&gt; &gt;  CONSOLE MESSAGE: line 14: MainFrameView: didAddHorizontalScrollbar
&gt; &gt;  CONSOLE MESSAGE: line 14: FrameView: didAddVerticalScrollbar
&gt; &gt; -CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
&gt; &gt;  CONSOLE MESSAGE: line 14: MainFrameView: mouseEnteredContentArea
&gt; &gt;  CONSOLE MESSAGE: line 14: MainFrameView: mouseMovedInContentArea
&gt; &gt; +CONSOLE MESSAGE: line 14: FrameView: willRemoveVerticalScrollbar
&gt; &gt;  CONSOLE MESSAGE: line 16: MainFrameView: mouseEnteredVerticalScrollbar
&gt; &gt;  CONSOLE MESSAGE: line 16: FrameView: mouseEnteredContentArea
&gt; &gt;  CONSOLE MESSAGE: line 16: MainFrameView: mouseMovedInContentArea
&gt; &gt; 
&gt; &gt; I was able to confirm this flakiness using 
&gt; &gt; run-webkit-tests --root testbuild-236512
&gt; &gt; editing/pasteboard/emacs-ctrl-a-k-y.html --iterations 500 -f
&gt; &gt; 
&gt; &gt; running this on 236511 causes no failures. 
&gt; &gt; 
&gt; &gt; History:
&gt; &gt; https://webkit-test-results.webkit.org/dashboards/flakiness_dashboard.
&gt; &gt; html#showAllRuns=true&amp;tests=fast%2Fscrolling%2Fscroll-animator-overlay-
&gt; &gt; scrollbars-clicked.html%20editing%2Fpasteboard%2Femacs-ctrl-a-k-y.html
&gt; 
&gt; Ok, I will look into it. Thanks.

Please do not rollout the patch on its own as it would cause IPC deadlocks because of the follow-up patches that landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350678</attachid>
            <date>2018-09-24 14:01:26 -0700</date>
            <delta_ts>2018-09-26 09:58:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189927-20180924140126.patch</filename>
            <type>text/plain</type>
            <size>21377</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBhNzc4MmNmZGI5YjMwMGE0
YWViNTFhYTY1ZGVmZTczZWE0YTgwOGMuLmJlYTU0NjQyN2Q1NzAzN2YwZGZjZTdjZTA0NDc3MjU1
YzQzMzZlNzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzUgQEAKKzIwMTgtMDktMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVSVByb2Nlc3Mgc2hvdWxkIHByb2Nl
c3MgaW5jb21pbmcgc3luYyBJUEMgZnJvbSBXZWJQcm9jZXNzIHdoZW4gd2FpdGluZyBmb3IgYSBz
eW5jIElQQyByZXBseSBmcm9tIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODk5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVSVByb2Nlc3Mgc2hvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luYyBJUEMg
ZnJvbSBXZWJQcm9jZXNzIHdoZW4gd2FpdGluZyBmb3IgYSBzeW5jIElQQyByZXBseSBmcm9tIGl0
CisgICAgICAgIGluIG9yZGVyIHRvIGF2b2lkIGRlYWRsb2Nrcy4gVGhpcyBpcyBub3QgYW4gaXNz
dWUgY3VycmVudGx5IGJlY2F1c2UgdGhlIFdlYlByb2Nlc3MgZG9lcyBwcm9jZXNzCisgICAgICAg
IGluY29taW5nIHN5bmMgSVBDIHdoZW4gd2FpdGluZyBmb3IgYSBzeW5jIElQQyByZXBseS4gSG93
ZXZlciwgd2UgcGxhbiB0byBjaGFuZ2UgdGhpcyBpbiB0aGUgZnV0dXJlCisgICAgICAgIGluIG9y
ZGVyIHRvIGF2b2lkIGJ1Z3MgY2F1c2VkIGJ5IHJlLWVudGVyaW5nIFdlYkNvcmUgYXQgdW5zYWZl
IHRpbWVzLgorCisgICAgICAgIFRoZSByZWFzb24gdGhlIFVJUHJvY2VzcyBwcmV2aW91c2x5IGRp
ZCBub3QgZG8gb3V0IG9mIG9yZGVyIHN5bmMgSVBDIHByb2Nlc3Mgd2FzIHRvIGF2b2lkIHByb2Nl
c3NpbmcKKyAgICAgICAgYSBzeW5jaHJvbm91cyBwb2xpY3kgZGVjaXNpb24gSVBDIGZvciBhIGZy
YW1lSUQgaXQgZGlkIG5vdCBrbm93IGFib3V0IHlldCwgZHVlIHRvIHRoZSBEaWRDcmVhdGVNYWlu
RnJhbWUgLworICAgICAgICBEaWRDcmVhdGVTdWJmcmFtZSBJUEMgbWVzc2FnZXMgYmVpbmcgYXN5
bmNocm9ub3VzLiBUbyBhZGRyZXNzIHRoaXMgaXNzdWUsIHRoZSBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYworICAgICAgICBJUEMgaGFuZGxlciBub3cgY2FsbHMgZGlkQ3JlYXRl
TWFpbkZyYW1lKCkgLyBkaWRDcmVhdGVTdWJmcmFtZSgpIGFzIG5lZWRlZCBpZiBpdCBkb2VzIG5v
dCBrbm93IGFib3V0CisgICAgICAgIHRoZSBmcmFtZSB5ZXQuIE5vdGUgdGhhdCBzeW5jaHJvbm91
cyBwb2xpY3kgZGVjaXNpb25zIGFyZSByYXJlIGFuZCBhcmUgY3VycmVudGx5IG9ubHkgbmVlZGVk
IGJ5IGluaXRpYWwKKyAgICAgICAgYWJvdXQ6YmxhbmsgYW5kIGZyYWdtZW50IG5hdmlnYXRpb25z
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKwogMjAxOC0w
OS0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIyMzYzNjguCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcAppbmRleCBiODAwNGRlMzRmMWQ2ZDk1NmNjZWY4MDFhYmVmY2YxOGZjOGM0NTY2Li40
ZDYxNjM5YzNiNjYzYjJkMWNiMWNiNTMzMWI4MjU4OGIzM2E4NWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMzNTcsNiArMzM1Nyw5IEBAIHZvaWQgV2Vi
UGFnZVByb3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAKIHZvaWQgV2ViUGFnZVByb3h5Ojpk
aWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKIHsKKyAgICBpZiAobV9tYWluRnJh
bWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSA9PSBmcmFtZUlEKQorICAgICAgICByZXR1cm47
CisKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50KCkpOwogCiAg
ICAgTUVTU0FHRV9DSEVDSyghbV9tYWluRnJhbWUpOwpAQCAtMzM3OSw2ICszMzgyLDEwIEBAIHZv
aWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFtZUlEKQogICAg
IFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAKICAgICBNRVNT
QUdFX0NIRUNLKG1fbWFpbkZyYW1lKTsKKworICAgIGlmIChtX3Byb2Nlc3MtPndlYkZyYW1lKGZy
YW1lSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBNRVNTQUdFX0NIRUNLKG1fcHJvY2Vzcy0+
Y2FuQ3JlYXRlRnJhbWUoZnJhbWVJRCkpOwogICAgIAogICAgIFJlZlB0cjxXZWJGcmFtZVByb3h5
PiBzdWJGcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNyZWF0ZSh0aGlzLCBmcmFtZUlEKTsKQEAgLTM5
OTYsMTIgKzQwMDMsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJyb3dzaW5nQ2hl
Y2soY29uc3QgVVJMJiwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3gKIAogdm9pZCBXZWJQYWdl
UHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50NjRfdCBmcmFt
ZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmln
aW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwgdWludDY0
X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgc2hvdWxkU2tpcFNh
ZmVCcm93c2luZ0NoZWNrLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewotICAgIGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb24oZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdh
dGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgZnJhbWVJbmZvRGF0YSwgb3Jp
Z2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVj
aywgUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklEXSAoYXV0by4uLiBhcmdzKSB7CisgICAg
YXV0byogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0Vf
Q0hFQ0soZnJhbWUpOworCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqZnJh
bWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9u
QWN0aW9uRGF0YSksIGZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJl
cXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJE
YXRhLCBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIFBvbGljeURlY2lzaW9uU2VuZGVyOjpj
cmVhdGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWVJRCwgbGlz
dGVuZXJJRF0gKGF1dG8uLi4gYXJncykgewogICAgICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBsaXN0ZW5lcklE
LCBhcmdzLi4uKSwgbV9wYWdlSUQpOwogICAgIH0pKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRf
dCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRh
dGEsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0
X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3Jp
Z2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmIHVz
ZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgc2hvdWxkU2tpcFNh
ZmVCcm93c2luZ0NoZWNrLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2VuZGVyKQordm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oV2ViRnJhbWVQ
cm94eSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1
cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYm
IG5hdmlnYXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2Us
IGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93c2lu
Z0NoZWNrIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgUmVmPFBvbGljeURlY2lzaW9uU2Vu
ZGVyPiYmIHNlbmRlcikKIHsKICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94eTo6ZGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAtIE9yaWdpbmFsIFVSTCAlcywgY3VycmVudCB0YXJn
ZXQgVVJMICVzIiwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0ZjgoKS5kYXRhKCks
IHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTQwMTMsOCArNDAy
Myw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9u
KHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgaWYgKCFmcm9tQVBJKQogICAgICAg
ICBtX3BhZ2VMb2FkU3RhdGUuY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFuc2FjdGlvbik7
CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwocmVx
dWVzdC51cmwoKSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwob3JpZ2luYWxSZXF1ZXN0LnVybCgp
KTsKIApAQCAtNDA1MSwzMSArNDA1OSwzMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDbwogICAg
IG5hdmlnYXRpb24tPnNldFJlcXVlc3Rlck9yaWdpbihuYXZpZ2F0aW9uQWN0aW9uRGF0YS5yZXF1
ZXN0ZXJPcmlnaW4pOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQotICAgIGlmIChm
cmFtZS0+ZGlkSGFuZGxlQ29udGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0aW9uKHJlcXVlc3QpKQor
ICAgIGlmIChmcmFtZS5kaWRIYW5kbGVDb250ZW50RmlsdGVyVW5ibG9ja05hdmlnYXRpb24ocmVx
dWVzdCkpCiAgICAgICAgIHJldHVybiByZWNlaXZlZFBvbGljeURlY2lzaW9uKFBvbGljeUFjdGlv
bjo6SWdub3JlLCBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuZXdOYXZpZ2F0aW9uSUQp
LCBzdGQ6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJB
TShuZXdOYXZpZ2F0aW9uSUQpOwogI2VuZGlmCiAKLSAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJl
ZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
bWFrZVJlZigqdGhpcyksIGZyYW1lID0gbWFrZVJlZigqZnJhbWUpLCBzZW5kZXIgPSBXVEZNb3Zl
KHNlbmRlciksIG5hdmlnYXRpb25dIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9u
LCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxTYWZlQnJvd3Np
bmdSZXN1bHQ+PiYmKSBtdXRhYmxlIHsKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFt
ZS5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKSwgZnJhbWUgPSBtYWtlUmVmKGZyYW1lKSwgc2VuZGVyID0gV1RGTW92ZShzZW5kZXIp
LCBuYXZpZ2F0aW9uXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpX
ZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxSZWY8U2FmZUJyb3dzaW5nUmVzdWx0
Pj4mJikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBkbyBzb21ldGhpbmcgd2l0aCB0aGUg
U2FmZUJyb3dzaW5nUmVzdWx0cy4KICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9uUG9saWN5RGVj
aXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50LCBmcmFtZSwgcG9saWNpZXMsIFdURk1vdmUoc2VuZGVyKSk7CiAgICAgfSwgc2hv
dWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrID09IFNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjazo6
WWVzID8gU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObyA6IFNob3VsZEV4cGVjdFNh
ZmVCcm93c2luZ1Jlc3VsdDo6WWVzKSk7CiAgICAgaWYgKHNob3VsZFNraXBTYWZlQnJvd3NpbmdD
aGVjayA9PSBTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2s6Ok5vKQogICAgICAgICBiZWdpblNh
ZmVCcm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGxpc3RlbmVyKTsKIAotICAgIEFQSTo6TmF2
aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLT5pc01haW5GcmFtZSgpID8gbmF2
aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7CisgICAgQVBJOjpOYXZpZ2F0aW9uKiBtYWluRnJhbWVO
YXZpZ2F0aW9uID0gZnJhbWUuaXNNYWluRnJhbWUoKSA/IG5hdmlnYXRpb24uZ2V0KCkgOiBudWxs
cHRyOwogICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBtX3Byb2Nlc3MtPndl
YkZyYW1lKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKIAogICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3JlKCkucmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUt
PmxvZ0ZyYW1lTmF2aWdhdGlvbigqZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9hZFN0YXRlLnVy
bCgpKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CisgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS0+bG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBVUkwoVVJMKCks
IG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9uc2UudXJsKCkp
OwogCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQotICAgICAgICBtX3BvbGljeUNsaWVudC0+ZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqdGhpcywgZnJhbWUsIFdURk1vdmUobmF2aWdh
dGlvbkFjdGlvbkRhdGEpLCBvcmlnaW5hdGluZ0ZyYW1lLCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUobGlzdGVuZXIpLCBtX3Byb2Nlc3MtPnRyYW5zZm9ybUhhbmRs
ZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAgbV9wb2xpY3lD
bGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKnRoaXMsICZmcmFtZSwgV1RG
TW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWUsIG9yaWdpbmFsUmVx
dWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShsaXN0ZW5lciksIG1fcHJvY2Vzcy0+dHJh
bnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkpOwogICAgIGVs
c2UgewotICAgICAgICBhdXRvIGRlc3RpbmF0aW9uRnJhbWVJbmZvID0gQVBJOjpGcmFtZUluZm86
OmNyZWF0ZSgqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmlnaW4oKSk7Cisg
ICAgICAgIGF1dG8gZGVzdGluYXRpb25GcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3JlYXRl
KGZyYW1lLCBmcmFtZVNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpOwogICAgICAgICBS
ZWZQdHI8QVBJOjpGcmFtZUluZm8+IHNvdXJjZUZyYW1lSW5mbzsKLSAgICAgICAgaWYgKCFmcm9t
QVBJICYmIG9yaWdpbmF0aW5nRnJhbWUgPT0gZnJhbWUpCisgICAgICAgIGlmICghZnJvbUFQSSAm
JiBvcmlnaW5hdGluZ0ZyYW1lID09ICZmcmFtZSkKICAgICAgICAgICAgIHNvdXJjZUZyYW1lSW5m
byA9IGRlc3RpbmF0aW9uRnJhbWVJbmZvLmNvcHlSZWYoKTsKICAgICAgICAgZWxzZSBpZiAoIWZy
b21BUEkpCiAgICAgICAgICAgICBzb3VyY2VGcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5mbzo6Y3Jl
YXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQgPyBtX3Byb2Nl
c3MtPndlYlBhZ2Uob3JpZ2luYXRpbmdQYWdlSUQpIDogbnVsbHB0cik7CkBAIC00MDkxLDExICs0
MDk5LDIzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9zaG91bGRTdXBwcmVzc0Fw
cExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gZmFsc2U7CiB9CiAKLXZvaWQg
V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1aW50NjRf
dCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJp
dHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0YSwg
dWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVz
dCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRh
dGEmIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgc2hvdWxk
U2tpcFNhZmVCcm93c2luZ0NoZWNrLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkpCit2b2lkIFdl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3Qg
ZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRp
b25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IEZyYW1lSW5mb0RhdGEm
IGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9u
c2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93
c2luZ0NoZWNrIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYm
IHJlcGx5KQogewogICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0
ZShXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBhdXRvKiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAvLyBUaGlzIHN5bmNocm9u
b3VzIElQQyBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgYmVmb3JlIHRoZSBhc3luY2hyb25vdXMgRGlk
Q3JlYXRlTWFpbkZyYW1lIC8gRGlkQ3JlYXRlU3ViZnJhbWUgb25lIHNvIHdlIGRvIG5vdCBrbm93
IGFib3V0IHRoaXMgZnJhbWVJRCB5ZXQuCisgICAgICAgIGlmIChpc01haW5GcmFtZSkKKyAgICAg
ICAgICAgIGRpZENyZWF0ZU1haW5GcmFtZShmcmFtZUlEKTsKKyAgICAgICAgZWxzZQorICAgICAg
ICAgICAgZGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWVJRCk7CisKKyAgICAgICAgZnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgICAgICBSRUxFQVNFX0FTU0VSVChmcmFtZSk7
CisgICAgfQogICAgIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oZnJhbWVJ
RCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25B
Y3Rpb25EYXRhKSwgZnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVx
dWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRh
dGEsIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgc2VuZGVyLmNvcHlSZWYoKSk7CisgICAg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmln
aW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIGZyYW1lSW5m
b0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBzaG91bGRTa2lwU2FmZUJy
b3dzaW5nQ2hlY2ssIHNlbmRlci5jb3B5UmVmKCkpOwogCiAgICAgLy8gSWYgdGhlIGNsaWVudCBk
aWQgbm90IHJlc3BvbmQgc3luY2hyb25vdXNseSwgcHJvY2VlZCB3aXRoIHRoZSBsb2FkLgogICAg
IHNlbmRlci0+c2VuZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBEb3dubG9hZElE
KCksIHN0ZDo6bnVsbG9wdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDIzNWJlZTRkZmU3ODU0ZDEyYTFhNGQ0NWZkNWI5OTJiZjA5ZjA0NjkuLjJiNjc1YTY5MjI4
NGEyNjkyYzdkNzExNDhjZjQ3ZmZkZjM5ZGVhODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xNDM0LDkgKzE0MzQsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBk
aWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpOwogCi0gICAgdm9pZCBk
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBjb25zdCBGcmFtZUluZm9EYXRh
JiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiwg
V2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrLCBSZWY8UG9saWN5RGVjaXNpb25T
ZW5kZXI+JiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXZWJG
cmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3Vy
aXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYs
IGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25z
ZSwgY29uc3QgVXNlckRhdGEmLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ss
IFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9u
SUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRf
dCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmln
aW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBXZWJDb3JlOjpT
aG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIHVpbnQ2NF90IGxpc3RlbmVySUQpOwotICAgIHZv
aWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1
aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYm
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVk
UmVwbHkmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYyh1
aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwg
TmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVpbnQ2NF90IG9y
aWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFs
UmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJlc291cmNlUmVz
cG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFdlYkNvcmU6OlNob3Vs
ZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIE5hdmlnYXRpb25B
Y3Rpb25EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsKICAgICB2b2lk
IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6
OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdh
dGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3QgV2ViQ29yZTo6
UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxpc3RlbmVy
SUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVudFBvbGljeSh1
aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwgY29uc3QgVXNl
ckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNz
YWdlcy5pbgppbmRleCA0Y2ZjN2Y2MGExZGFmNjA0MzE5Y2Q3NjdlMjcwZDM3MjMzZDA5Y2E5Li44
ZTY1MjUxMTJmYzY1YzBlMTBhYWMwZWFmZWIzNmViMTk4MDk1NDQ2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0xMDgsNyArMTA4
LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFBvbGljeSBtZXNzYWdlcwog
ICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90IGxp
c3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlv
bklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1lSW5mb0Rh
dGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
b3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgV2ViQ29y
ZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJEYXRhIHVz
ZXJEYXRhLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjayBzaG91bGRT
a2lwU2FmZUJyb3dzaW5nQ2hlY2ssIHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAgRGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZp
Z2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5hdmlnYXRpb25B
Y3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0aW5nRnJhbWVJ
bmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktpdDo6VXNlckRh
dGEgdXNlckRhdGEsIGVudW0gV2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrIHNo
b3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaykgLT4gKGVudW0gV2ViQ29yZTo6UG9saWN5QWN0aW9u
IHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6OkRvd25sb2Fk
SUQgZG93bmxvYWRJRCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xpY2llc0RhdGE+
IHdlYnNpdGVQb2xpY2llcykgRGVsYXllZAorICAgIERlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0cnVjdCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2
aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0aW9u
QWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0ZyYW1l
SW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwg
V2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVzZXJE
YXRhIHVzZXJEYXRhLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjayBz
aG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2spIC0+IChlbnVtIFdlYkNvcmU6OlBvbGljeUFjdGlv
biBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0OjpEb3dubG9h
ZElEIGRvd25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9saWNpZXNEYXRh
PiB3ZWJzaXRlUG9saWNpZXMpIERlbGF5ZWQKICAgICBEZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0
YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0
YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3Qs
IFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEg
dXNlckRhdGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3QgZnJhbWVJRCwg
V2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1c2VyRGF0YSkK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggNzAzYThhMDRhZjg2Y2Q4Mjg1
NmNkNjk2NGZlN2VhYTk4ZDZmN2ZlZi4uMjQ3MzU2ODc0ODVmODIyYzNmMTAzN2MwMjVhMTcwZmQ3
NWM0ODQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04OTQsNyArODk0
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICAgICAgRG93bmxvYWRJRCBkb3dubG9h
ZElEOwogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+IHdlYnNpdGVQ
b2xpY2llczsKIAotICAgICAgICBpZiAoIXdlYlBhZ2UtPnNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKG1fZnJhbWUtPmZy
YW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoY29yZUZyYW1lKSwgZG9jdW1l
bnRMb2FkZXItPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgb3JpZ2luYXRp
bmdGcmFtZUluZm9EYXRhLCBvcmlnaW5hdGluZ1BhZ2VJRCwgbmF2aWdhdGlvbkFjdGlvbi5yZXNv
dXJjZVJlcXVlc3QoKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgVXNlckRhdGEoV2ViUHJv
Y2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQo
KSkuZ2V0KCkpLCBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2spLCBNZXNzYWdlczo6V2ViUGFn
ZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6UmVwbHkocG9saWN5
QWN0aW9uLCBuZXdOYXZpZ2F0aW9uSUQsIGRvd25sb2FkSUQsIHdlYnNpdGVQb2xpY2llcykpKSB7
CisgICAgICAgIGlmICghd2ViUGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMobV9mcmFtZS0+ZnJhbWVJRCgpLCBt
X2ZyYW1lLT5pc01haW5GcmFtZSgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21GcmFtZShjb3Jl
RnJhbWUpLCBkb2N1bWVudExvYWRlci0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRpb25BY3Rpb25E
YXRhLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlELCBuYXZpZ2F0
aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LCByZWRpcmVjdFJlc3BvbnNlLCBV
c2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVz
KHVzZXJEYXRhLmdldCgpKS5nZXQoKSksIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjayksIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpSZXBseShwb2xpY3lBY3Rpb24sIG5ld05hdmlnYXRpb25JRCwgZG93bmxvYWRJRCwgd2Vic2l0
ZVBvbGljaWVzKSkpIHsKICAgICAgICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQb2xpY3lEZWNp
c2lvbihsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7IH0pOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5jcHAKaW5kZXggZTg2OGI1YWYxNmFhMmQ2MTNhOTgyMTFmYmI1OTZmZWJjY2E4YzE0ZC4u
OTY1ZjY2NmUxN2YyMDc3NzRmMzQ2N2MzNDg4NTMwYTM0ZGZhZjYyZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApAQCAtMjUxLDEyICsyNTEsNiBAQCB2b2lkIFdlYlBy
b2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikK
ICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlhbGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAK
ICAgICBtX3dlYkNvbm5lY3Rpb24gPSBXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZSh0
aGlzKTsKLQotICAgIC8vIEluIG9yZGVyIHRvIGVuc3VyZSB0aGF0IHRoZSBhc3luY2hyb25vdXMg
bWVzc2FnZXMgdGhhdCBhcmUgdXNlZCBmb3Igbm90aWZ5aW5nIHRoZSBVSSBwcm9jZXNzCi0gICAg
Ly8gYWJvdXQgd2hlbiBXZWJGcmFtZSBvYmplY3RzIGNvbWUgYW5kIGdvIGFyZSBhbHdheXMgZGVs
aXZlcmVkIGJlZm9yZSB0aGUgc3luY2hyb25vdXMgcG9saWN5IG1lc3NhZ2VzLAotICAgIC8vIHVz
ZSB0aGlzIGZsYWcgdG8gZm9yY2Ugc3luY2hyb25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBh
cyBhc3luY2hyb25vdXMgbWVzc2FnZXMgaW4gdGhlIFVJIHByb2Nlc3MKLSAgICAvLyB1bmxlc3Mg
d2hlbiBkb2luZyBzbyB3b3VsZCBsZWFkIHRvIGEgZGVhZGxvY2suCi0gICAgY29ubmVjdGlvbi0+
c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Q
cm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUpOwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmluaXRp
YWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJz
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350868</attachid>
            <date>2018-09-26 09:58:12 -0700</date>
            <delta_ts>2018-09-26 11:38:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189927-20180926095811.patch</filename>
            <type>text/plain</type>
            <size>23972</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDYyMWNlZWQ5YWYyOTFiNTRi
Y2M5OGRkNjQ1NzE4NjA3MjM4YjU3MjEuLmRiMzJiNTMxNzQzNDRjOWI2OWZmYWE0NjA1MTNlNzM3
MGU3OWY1NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAgQEAKKzIwMTgtMDktMjYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBVSVByb2Nlc3Mgc2hvdWxkIHByb2Nl
c3MgaW5jb21pbmcgc3luYyBJUEMgZnJvbSBXZWJQcm9jZXNzIHdoZW4gd2FpdGluZyBmb3IgYSBz
eW5jIElQQyByZXBseSBmcm9tIGl0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODk5MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBVSVByb2Nlc3Mgc2hvdWxkIHByb2Nlc3MgaW5jb21pbmcgc3luYyBJUEMg
ZnJvbSBXZWJQcm9jZXNzIHdoZW4gd2FpdGluZyBmb3IgYSBzeW5jIElQQyByZXBseSBmcm9tIGl0
CisgICAgICAgIGluIG9yZGVyIHRvIGF2b2lkIGRlYWRsb2Nrcy4gVGhpcyBpcyBub3QgYW4gaXNz
dWUgY3VycmVudGx5IGJlY2F1c2UgdGhlIFdlYlByb2Nlc3MgZG9lcyBwcm9jZXNzCisgICAgICAg
IGluY29taW5nIHN5bmMgSVBDIHdoZW4gd2FpdGluZyBmb3IgYSBzeW5jIElQQyByZXBseS4gSG93
ZXZlciwgd2UgcGxhbiB0byBjaGFuZ2UgdGhpcyBpbiB0aGUgZnV0dXJlCisgICAgICAgIGluIG9y
ZGVyIHRvIGF2b2lkIGJ1Z3MgY2F1c2VkIGJ5IHJlLWVudGVyaW5nIFdlYkNvcmUgYXQgdW5zYWZl
IHRpbWVzLgorCisgICAgICAgIFRoZSByZWFzb24gdGhlIFVJUHJvY2VzcyBwcmV2aW91c2x5IGRp
ZCBub3QgZG8gb3V0IG9mIG9yZGVyIHN5bmMgSVBDIHByb2Nlc3Mgd2FzIHRvIGF2b2lkIHByb2Nl
c3NpbmcKKyAgICAgICAgYSBzeW5jaHJvbm91cyBwb2xpY3kgZGVjaXNpb24gSVBDIGZvciBhIGZy
YW1lSUQgaXQgZGlkIG5vdCBrbm93IGFib3V0IHlldCwgZHVlIHRvIHRoZSBEaWRDcmVhdGVNYWlu
RnJhbWUgLworICAgICAgICBEaWRDcmVhdGVTdWJmcmFtZSBJUEMgbWVzc2FnZXMgYmVpbmcgYXN5
bmNocm9ub3VzLiBUbyBhZGRyZXNzIHRoaXMgaXNzdWUsIHRoZSBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uU3luYworICAgICAgICBJUEMgaGFuZGxlciBub3cgY2FsbHMgZGlkQ3JlYXRl
TWFpbkZyYW1lKCkgLyBkaWRDcmVhdGVTdWJmcmFtZSgpIGFzIG5lZWRlZCBpZiBpdCBkb2VzIG5v
dCBrbm93IGFib3V0CisgICAgICAgIHRoZSBmcmFtZSB5ZXQuIE5vdGUgdGhhdCBzeW5jaHJvbm91
cyBwb2xpY3kgZGVjaXNpb25zIGFyZSByYXJlIGFuZCBhcmUgY3VycmVudGx5IG9ubHkgbmVlZGVk
IGJ5IGluaXRpYWwKKyAgICAgICAgYWJvdXQ6YmxhbmsgYW5kIGZyYWdtZW50IG5hdmlnYXRpb25z
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkQ3JlYXRlTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uU3luYyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERlY2lkZVBvbGljeUZvck5hdmln
YXRpb25BY3Rpb24pOgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3JlTWFpbkZyYW1lKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWU6OmNyZWF0ZVN1YmZyYW1lKToKKyAgICAgICAgRHJv
cCBEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgU2VuZE9wdGlvbiB3
aGVuIHNlbmRpbmcgdGhlCisgICAgICAgIERpZENyZWF0ZU1haW5GcmFtZSAvIERpZENyZWF0ZVN1
YmZyYW1lIElQQy4gUHJldmlvdXNseSwgdGhpcyBTZW5kT3B0aW9uIGhhcworICAgICAgICBubyBl
ZmZlY3QgYmVjYXVzZSB0aGUgSVBDOjpDb25uZWN0aW9uIHdvdWxkIGhhdmUgdGhlCisgICAgICAg
IG1fb25seVNlbmRNZXNzYWdlc0FzRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Q
cm9jZXNzaW5nU3VjaEFNZXNzYWdlCisgICAgICAgIGZsYWcgc2V0IHRvIHRydWUuIEhvd2V2ZXIs
IG5vdyB0aGF0IHdlIHN0b3Agc2V0dGluZyB0aGlzIGZsYWcgb24gdGhlIElQQworICAgICAgICBj
b25uZWN0aW9uIGZyb20gdGhlIFdlYlByb2Nlc3MgdG8gdGhlIFVJUHJvY2VzcywgaXQgd291bGQg
bGVhZCB0byB0aG9zZQorICAgICAgICBJUEMgbWVzc2FnZXMgZ2V0dGluZyBwcm9jZXNzZWQgb3V0
IG9mIG9yZGVyIHdpdGggcmVnYXJkcyB0byB0aGUKKyAgICAgICAgRGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFzeW5jIGFzeW5jaHJvbm91cyBJUEMuIERpZENyZWF0ZU1haW5GcmFtZSB3b3VsZAor
ICAgICAgICBzb21ldGltZXMgZ2V0IHByb2Nlc3NlZCAqYWZ0ZXIqIHRoZSBEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uQXN5bmMgSVBDCisgICAgICAgIGFuZCB3ZSB3b3VsZCBub3Qga25vdyBhYm91
dCB0aGUgZnJhbWVJRCB5ZXQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbik6CisK
IDIwMTgtMDktMjYgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT04gKFBTT04pOiBXaGl0ZSBvciBCbGFjayBmbGFzaCBvY2N1cnMgd2hlbiBwcm9j
ZXNzIHN3YXBwaW5nIG9uIG5hdmlnYXRpb24gb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcAppbmRleCBkYjdiMTA5NjUyOTk0OTVlNGY1N2Q1NGE5MzYyZjBhMTYx
NDEyMWFiLi42ZjdmZGM4ODE3MzIzOTg3MDE2MTcwYjNjNWRhYjQwYzM4MTRiMjhjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMzNTcsNiArMzM1Nyw5IEBA
IHZvaWQgV2ViUGFnZVByb3h5OjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiAKIHZvaWQgV2ViUGFn
ZVByb3h5OjpkaWRDcmVhdGVNYWluRnJhbWUodWludDY0X3QgZnJhbWVJRCkKIHsKKyAgICBpZiAo
bV9tYWluRnJhbWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSA9PSBmcmFtZUlEKQorICAgICAg
ICByZXR1cm47CisKICAgICBQYWdlQ2xpZW50UHJvdGVjdG9yIHByb3RlY3RvcihwYWdlQ2xpZW50
KCkpOwogCiAgICAgTUVTU0FHRV9DSEVDSyghbV9tYWluRnJhbWUpOwpAQCAtMzM3OSw2ICszMzgy
LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkaWRDcmVhdGVTdWJmcmFtZSh1aW50NjRfdCBmcmFt
ZUlEKQogICAgIFBhZ2VDbGllbnRQcm90ZWN0b3IgcHJvdGVjdG9yKHBhZ2VDbGllbnQoKSk7CiAK
ICAgICBNRVNTQUdFX0NIRUNLKG1fbWFpbkZyYW1lKTsKKworICAgIGlmIChtX3Byb2Nlc3MtPndl
YkZyYW1lKGZyYW1lSUQpKQorICAgICAgICByZXR1cm47CisKICAgICBNRVNTQUdFX0NIRUNLKG1f
cHJvY2Vzcy0+Y2FuQ3JlYXRlRnJhbWUoZnJhbWVJRCkpOwogICAgIAogICAgIFJlZlB0cjxXZWJG
cmFtZVByb3h5PiBzdWJGcmFtZSA9IFdlYkZyYW1lUHJveHk6OmNyZWF0ZSh0aGlzLCBmcmFtZUlE
KTsKQEAgLTM5OTYsMTIgKzQwMDMsMTUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmJlZ2luU2FmZUJy
b3dzaW5nQ2hlY2soY29uc3QgVVJMJiwgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3gKIAogdm9p
ZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25Bc3luYyh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEm
JiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvRGF0
YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgc2hv
dWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrLCB1aW50NjRfdCBsaXN0ZW5lcklEKQogewotICAgIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdp
biwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgZnJhbWVJbmZv
RGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0
KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdXNlckRhdGEsIHNob3VsZFNraXBTYWZlQnJv
d3NpbmdDaGVjaywgUG9saWN5RGVjaXNpb25TZW5kZXI6OmNyZWF0ZShbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZUlELCBsaXN0ZW5lcklEXSAoYXV0by4uLiBhcmdz
KSB7CisgICAgYXV0byogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAg
IE1FU1NBR0VfQ0hFQ0soZnJhbWUpOworCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbigqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShu
YXZpZ2F0aW9uQWN0aW9uRGF0YSksIGZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlELCBv
cmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25z
ZSksIHVzZXJEYXRhLCBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIFBvbGljeURlY2lzaW9u
U2VuZGVyOjpjcmVhdGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJh
bWVJRCwgbGlzdGVuZXJJRF0gKGF1dG8uLi4gYXJncykgewogICAgICAgICBtX3Byb2Nlc3MtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRpZFJlY2VpdmVQb2xpY3lEZWNpc2lvbihmcmFtZUlELCBs
aXN0ZW5lcklELCBhcmdzLi4uKSwgbV9wYWdlSUQpOwogICAgIH0pKTsKIH0KIAotdm9pZCBXZWJQ
YWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24odWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2lu
LCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlv
bkFjdGlvbkRhdGEsIGNvbnN0IEZyYW1lSW5mb0RhdGEmIG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0
YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0
LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNl
ckRhdGEmIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2sgc2hv
dWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrLCBSZWY8UG9saWN5RGVjaXNpb25TZW5kZXI+JiYgc2Vu
ZGVyKQordm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24o
V2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
ZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0
aW9uRGF0YSYmIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBjb25zdCBGcmFtZUluZm9EYXRhJiBvcmln
aW5hdGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0
UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkU2tpcFNh
ZmVCcm93c2luZ0NoZWNrIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgUmVmPFBvbGljeURl
Y2lzaW9uU2VuZGVyPiYmIHNlbmRlcikKIHsKICAgICBMT0coTG9hZGluZywgIldlYlBhZ2VQcm94
eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiAtIE9yaWdpbmFsIFVSTCAlcywgY3Vy
cmVudCB0YXJnZXQgVVJMICVzIiwgb3JpZ2luYWxSZXF1ZXN0LnVybCgpLnN0cmluZygpLnV0Zjgo
KS5kYXRhKCksIHJlcXVlc3QudXJsKCkuc3RyaW5nKCkudXRmOCgpLmRhdGEoKSk7CiAKQEAgLTQw
MTMsOCArNDAyMyw2IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgaWYgKCFmcm9tQVBJ
KQogICAgICAgICBtX3BhZ2VMb2FkU3RhdGUuY2xlYXJQZW5kaW5nQVBJUmVxdWVzdFVSTCh0cmFu
c2FjdGlvbik7CiAKLSAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcHJvY2Vzcy0+d2ViRnJh
bWUoZnJhbWVJRCk7Ci0gICAgTUVTU0FHRV9DSEVDSyhmcmFtZSk7CiAgICAgTUVTU0FHRV9DSEVD
S19VUkwocmVxdWVzdC51cmwoKSk7CiAgICAgTUVTU0FHRV9DSEVDS19VUkwob3JpZ2luYWxSZXF1
ZXN0LnVybCgpKTsKIApAQCAtNDA1MSwzMSArNDA1OSwzMSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBjb25zdCBX
ZWJDbwogICAgIG5hdmlnYXRpb24tPnNldFJlcXVlc3Rlck9yaWdpbihuYXZpZ2F0aW9uQWN0aW9u
RGF0YS5yZXF1ZXN0ZXJPcmlnaW4pOwogCiAjaWYgRU5BQkxFKENPTlRFTlRfRklMVEVSSU5HKQot
ICAgIGlmIChmcmFtZS0+ZGlkSGFuZGxlQ29udGVudEZpbHRlclVuYmxvY2tOYXZpZ2F0aW9uKHJl
cXVlc3QpKQorICAgIGlmIChmcmFtZS5kaWRIYW5kbGVDb250ZW50RmlsdGVyVW5ibG9ja05hdmln
YXRpb24ocmVxdWVzdCkpCiAgICAgICAgIHJldHVybiByZWNlaXZlZFBvbGljeURlY2lzaW9uKFBv
bGljeUFjdGlvbjo6SWdub3JlLCBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuZXdOYXZp
Z2F0aW9uSUQpLCBzdGQ6Om51bGxvcHQsIFdURk1vdmUoc2VuZGVyKSk7CiAjZWxzZQogICAgIFVO
VVNFRF9QQVJBTShuZXdOYXZpZ2F0aW9uSUQpOwogI2VuZGlmCiAKLSAgICBhdXRvIGxpc3RlbmVy
ID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lMaXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1lID0gbWFrZVJlZigqZnJhbWUpLCBzZW5kZXIg
PSBXVEZNb3ZlKHNlbmRlciksIG5hdmlnYXRpb25dIChXZWJDb3JlOjpQb2xpY3lBY3Rpb24gcG9s
aWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgVmVjdG9yPFJlZjxT
YWZlQnJvd3NpbmdSZXN1bHQ+PiYmKSBtdXRhYmxlIHsKKyAgICBhdXRvIGxpc3RlbmVyID0gbWFr
ZVJlZihmcmFtZS5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKSwgZnJhbWUgPSBtYWtlUmVmKGZyYW1lKSwgc2VuZGVyID0gV1RGTW92
ZShzZW5kZXIpLCBuYXZpZ2F0aW9uXSAoV2ViQ29yZTo6UG9saWN5QWN0aW9uIHBvbGljeUFjdGlv
biwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFZlY3RvcjxSZWY8U2FmZUJyb3dz
aW5nUmVzdWx0Pj4mJikgbXV0YWJsZSB7CiAgICAgICAgIC8vIEZJWE1FOiBkbyBzb21ldGhpbmcg
d2l0aCB0aGUgU2FmZUJyb3dzaW5nUmVzdWx0cy4KICAgICAgICAgcmVjZWl2ZWROYXZpZ2F0aW9u
UG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgpLCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgcG9saWNpZXMsIFdURk1vdmUoc2VuZGVyKSk7CiAg
ICAgfSwgc2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrID09IFNob3VsZFNraXBTYWZlQnJvd3Np
bmdDaGVjazo6WWVzID8gU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0OjpObyA6IFNob3Vs
ZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6WWVzKSk7CiAgICAgaWYgKHNob3VsZFNraXBTYWZl
QnJvd3NpbmdDaGVjayA9PSBTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2s6Ok5vKQogICAgICAg
ICBiZWdpblNhZmVCcm93c2luZ0NoZWNrKHJlcXVlc3QudXJsKCksIGxpc3RlbmVyKTsKIAotICAg
IEFQSTo6TmF2aWdhdGlvbiogbWFpbkZyYW1lTmF2aWdhdGlvbiA9IGZyYW1lLT5pc01haW5GcmFt
ZSgpID8gbmF2aWdhdGlvbi5nZXQoKSA6IG51bGxwdHI7CisgICAgQVBJOjpOYXZpZ2F0aW9uKiBt
YWluRnJhbWVOYXZpZ2F0aW9uID0gZnJhbWUuaXNNYWluRnJhbWUoKSA/IG5hdmlnYXRpb24uZ2V0
KCkgOiBudWxscHRyOwogICAgIFdlYkZyYW1lUHJveHkqIG9yaWdpbmF0aW5nRnJhbWUgPSBtX3By
b2Nlc3MtPndlYkZyYW1lKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YS5mcmFtZUlEKTsKIAogICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgPSB3ZWJzaXRlRGF0YVN0b3Jl
KCkucmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUtPmxvZ0ZyYW1lTmF2aWdhdGlvbigqZnJhbWUsIFVSTChVUkwoKSwgbV9wYWdlTG9h
ZFN0YXRlLnVybCgpKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZS51cmwoKSk7CisgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS0+bG9nRnJhbWVOYXZpZ2F0aW9uKGZyYW1lLCBV
UkwoVVJMKCksIG1fcGFnZUxvYWRTdGF0ZS51cmwoKSksIHJlcXVlc3QsIHJlZGlyZWN0UmVzcG9u
c2UudXJsKCkpOwogCiAgICAgaWYgKG1fcG9saWN5Q2xpZW50KQotICAgICAgICBtX3BvbGljeUNs
aWVudC0+ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqdGhpcywgZnJhbWUsIFdURk1v
dmUobmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBvcmlnaW5hdGluZ0ZyYW1lLCBvcmlnaW5hbFJlcXVl
c3QsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUobGlzdGVuZXIpLCBtX3Byb2Nlc3MtPnRyYW5z
Zm9ybUhhbmRsZXNUb09iamVjdHModXNlckRhdGEub2JqZWN0KCkpLmdldCgpKTsKKyAgICAgICAg
bV9wb2xpY3lDbGllbnQtPmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24oKnRoaXMsICZm
cmFtZSwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIG9yaWdpbmF0aW5nRnJhbWUsIG9y
aWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShsaXN0ZW5lciksIG1fcHJv
Y2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0KCkp
OwogICAgIGVsc2UgewotICAgICAgICBhdXRvIGRlc3RpbmF0aW9uRnJhbWVJbmZvID0gQVBJOjpG
cmFtZUluZm86OmNyZWF0ZSgqZnJhbWUsIGZyYW1lU2VjdXJpdHlPcmlnaW4uc2VjdXJpdHlPcmln
aW4oKSk7CisgICAgICAgIGF1dG8gZGVzdGluYXRpb25GcmFtZUluZm8gPSBBUEk6OkZyYW1lSW5m
bzo6Y3JlYXRlKGZyYW1lLCBmcmFtZVNlY3VyaXR5T3JpZ2luLnNlY3VyaXR5T3JpZ2luKCkpOwog
ICAgICAgICBSZWZQdHI8QVBJOjpGcmFtZUluZm8+IHNvdXJjZUZyYW1lSW5mbzsKLSAgICAgICAg
aWYgKCFmcm9tQVBJICYmIG9yaWdpbmF0aW5nRnJhbWUgPT0gZnJhbWUpCisgICAgICAgIGlmICgh
ZnJvbUFQSSAmJiBvcmlnaW5hdGluZ0ZyYW1lID09ICZmcmFtZSkKICAgICAgICAgICAgIHNvdXJj
ZUZyYW1lSW5mbyA9IGRlc3RpbmF0aW9uRnJhbWVJbmZvLmNvcHlSZWYoKTsKICAgICAgICAgZWxz
ZSBpZiAoIWZyb21BUEkpCiAgICAgICAgICAgICBzb3VyY2VGcmFtZUluZm8gPSBBUEk6OkZyYW1l
SW5mbzo6Y3JlYXRlKG9yaWdpbmF0aW5nRnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQg
PyBtX3Byb2Nlc3MtPndlYlBhZ2Uob3JpZ2luYXRpbmdQYWdlSUQpIDogbnVsbHB0cik7CkBAIC00
MDkxLDExICs0MDk5LDIzIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvCiAgICAgbV9zaG91bGRT
dXBwcmVzc0FwcExpbmtzSW5OZXh0TmF2aWdhdGlvblBvbGljeURlY2lzaW9uID0gZmFsc2U7CiB9
CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Yyh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZy
YW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgY29uc3QgRnJhbWVJbmZvRGF0YSYgZnJhbWVJ
bmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29u
c3QgVXNlckRhdGEmIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hl
Y2sgc2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYgcmVwbHkp
Cit2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMo
dWludDY0X3QgZnJhbWVJRCwgYm9vbCBpc01haW5GcmFtZSwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQs
IE5hdmlnYXRpb25BY3Rpb25EYXRhJiYgbmF2aWdhdGlvbkFjdGlvbkRhdGEsIGNvbnN0IEZyYW1l
SW5mb0RhdGEmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25z
dCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGly
ZWN0UmVzcG9uc2UsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgV2ViQ29yZTo6U2hvdWxkU2tp
cFNhZmVCcm93c2luZ0NoZWNrIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5
ZWRSZXBseSYmIHJlcGx5KQogewogICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5k
ZXI6OmNyZWF0ZShXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBhdXRvKiBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7CisgICAgaWYgKCFmcmFtZSkgeworICAgICAgICAvLyBUaGlz
IHN5bmNocm9ub3VzIElQQyBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgYmVmb3JlIHRoZSBhc3luY2hy
b25vdXMgRGlkQ3JlYXRlTWFpbkZyYW1lIC8gRGlkQ3JlYXRlU3ViZnJhbWUgb25lIHNvIHdlIGRv
IG5vdCBrbm93IGFib3V0IHRoaXMgZnJhbWVJRCB5ZXQuCisgICAgICAgIGlmIChpc01haW5GcmFt
ZSkKKyAgICAgICAgICAgIGRpZENyZWF0ZU1haW5GcmFtZShmcmFtZUlEKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgZGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWVJRCk7CisKKyAgICAgICAgZnJh
bWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgICAgICBSRUxFQVNFX0FTU0VS
VChmcmFtZSk7CisgICAgfQogICAgIAotICAgIGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rp
b24oZnJhbWVJRCwgZnJhbWVTZWN1cml0eU9yaWdpbiwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5h
dmlnYXRpb25BY3Rpb25EYXRhKSwgZnJhbWVJbmZvRGF0YSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9y
aWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWRpcmVjdFJlc3BvbnNl
KSwgdXNlckRhdGEsIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgc2VuZGVyLmNvcHlSZWYo
KSk7CisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbigqZnJhbWUsIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIG5hdmlnYXRpb25JRCwgV1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSks
IGZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1v
dmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBzaG91bGRT
a2lwU2FmZUJyb3dzaW5nQ2hlY2ssIHNlbmRlci5jb3B5UmVmKCkpOwogCiAgICAgLy8gSWYgdGhl
IGNsaWVudCBkaWQgbm90IHJlc3BvbmQgc3luY2hyb25vdXNseSwgcHJvY2VlZCB3aXRoIHRoZSBs
b2FkLgogICAgIHNlbmRlci0+c2VuZChQb2xpY3lBY3Rpb246OlVzZSwgbmF2aWdhdGlvbklELCBE
b3dubG9hZElEKCksIHN0ZDo6bnVsbG9wdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IDBmMjI2ZmIwYmYwYmNkMTJkZmViM2QyNGMwMDllODlkNWRkNGZkZWYuLjc0
ZmUwMTZjYzdiOGI4M2UyMjQxY2Y0NGNiZTlhODJlZWM3Zjc0NjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDM1LDkgKzE0MzUsOSBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBkaWREZXN0cm95TmF2aWdhdGlvbih1aW50NjRfdCBuYXZpZ2F0aW9uSUQpOwogCi0g
ICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKHVpbnQ2NF90IGZyYW1lSUQs
IGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwg
dWludDY0X3QgbmF2aWdhdGlvbklELCBOYXZpZ2F0aW9uQWN0aW9uRGF0YSYmLCBjb25zdCBGcmFt
ZUluZm9EYXRhJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
JiwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UsIGNvbnN0IFVz
ZXJEYXRhJiwgV2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93c2luZ0NoZWNrLCBSZWY8UG9saWN5
RGVjaXNpb25TZW5kZXI+JiYpOworICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvbihXZWJGcmFtZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBm
cmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rp
b25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJ
RCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNv
cmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJl
Y3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dz
aW5nQ2hlY2ssIFJlZjxQb2xpY3lEZWNpc2lvblNlbmRlcj4mJik7CiAgICAgdm9pZCBkZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmModWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50NjRfdCBu
YXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNvbnN0IEZyYW1lSW5mb0RhdGEm
LCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1
ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwgY29uc3QgVXNlckRhdGEmLCBX
ZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIHVpbnQ2NF90IGxpc3RlbmVySUQp
OwotICAgIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3Qg
ZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBmcmFtZVNlY3VyaXR5
T3JpZ2luLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRhJiYsIGNv
bnN0IEZyYW1lSW5mb0RhdGEmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1BhZ2VJRCwgY29uc3QgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNl
UmVxdWVzdCYmLCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCBXZWJDb3JlOjpTaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
OjpEZWxheWVkUmVwbHkmJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYyh1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFpbkZyYW1lLCBjb25zdCBXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmln
YXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiwgY29uc3QgRnJhbWVJbmZvRGF0YSYsIHVp
bnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qm
IG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYsIFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3BvbnNlLCBjb25zdCBVc2VyRGF0YSYsIFdlYkNv
cmU6OlNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaywgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmKTsKICAg
ICB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbih1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIE5h
dmlnYXRpb25BY3Rpb25EYXRhJiYsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBjb25zdCBT
dHJpbmcmIGZyYW1lTmFtZSwgdWludDY0X3QgbGlzdGVuZXJJRCwgY29uc3QgVXNlckRhdGEmKTsK
ICAgICB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0
X3QgbmF2aWdhdGlvbklELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiwgY29uc3Qg
V2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVpbnQ2NF90
IGxpc3RlbmVySUQsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCB1bmFibGVUb0ltcGxlbWVu
dFBvbGljeSh1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiwg
Y29uc3QgVXNlckRhdGEmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5tZXNzYWdlcy5pbgppbmRleCA1ZTY3YzYwZmY1MDgwN2VmMDVkZDRiODFmZjY5YmQ1YzU0
NzI2NGE5Li4xYmI1YzZlNTc3NWYwZDA5MDg1NTc4OTVlZDMwMWQ4ZDVkY2Y1YThjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0x
MDgsNyArMTA4LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICAjIFBvbGljeSBt
ZXNzYWdlcwogICAgIERlY2lkZVBvbGljeUZvclJlc3BvbnNlKHVpbnQ2NF90IGZyYW1lSUQsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgYm9vbCBjYW5TaG93TUlNRVR5cGUsIHVp
bnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6VXNlckRhdGEgdXNlckRhdGEpCiAgICAgRGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKHVpbnQ2NF90IGZyYW1lSUQsIHN0cnVjdCBX
ZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWludDY0X3Qg
bmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBuYXZpZ2F0
aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5hdGluZ0Zy
YW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVz
dCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJLaXQ6OlVz
ZXJEYXRhIHVzZXJEYXRhLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVj
ayBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2ssIHVpbnQ2NF90IGxpc3RlbmVySUQpCi0gICAg
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgc3Ry
dWN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCB1aW50
NjRfdCBuYXZpZ2F0aW9uSUQsIHN0cnVjdCBXZWJLaXQ6Ok5hdmlnYXRpb25BY3Rpb25EYXRhIG5h
dmlnYXRpb25BY3Rpb25EYXRhLCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIG9yaWdpbmF0
aW5nRnJhbWVJbmZvRGF0YSwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCBvcmlnaW5hbFJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCBy
ZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlIHJlZGlyZWN0UmVzcG9uc2UsIFdlYktp
dDo6VXNlckRhdGEgdXNlckRhdGEsIGVudW0gV2ViQ29yZTo6U2hvdWxkU2tpcFNhZmVCcm93c2lu
Z0NoZWNrIHNob3VsZFNraXBTYWZlQnJvd3NpbmdDaGVjaykgLT4gKGVudW0gV2ViQ29yZTo6UG9s
aWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgdWludDY0X3QgbmV3TmF2aWdhdGlvbklELCBXZWJLaXQ6
OkRvd25sb2FkSUQgZG93bmxvYWRJRCwgc3RkOjpvcHRpb25hbDxXZWJLaXQ6OldlYnNpdGVQb2xp
Y2llc0RhdGE+IHdlYnNpdGVQb2xpY2llcykgRGVsYXllZAorICAgIERlY2lkZVBvbGljeUZvck5h
dmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJhbWUsIHN0
cnVjdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEgZnJhbWVTZWN1cml0eU9yaWdpbiwgdWlu
dDY0X3QgbmF2aWdhdGlvbklELCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9uQWN0aW9uRGF0YSBu
YXZpZ2F0aW9uQWN0aW9uRGF0YSwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBvcmlnaW5h
dGluZ0ZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlELCBXZWJDb3JlOjpS
ZXNvdXJjZVJlcXVlc3Qgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSByZWRpcmVjdFJlc3BvbnNlLCBXZWJL
aXQ6OlVzZXJEYXRhIHVzZXJEYXRhLCBlbnVtIFdlYkNvcmU6OlNob3VsZFNraXBTYWZlQnJvd3Np
bmdDaGVjayBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2spIC0+IChlbnVtIFdlYkNvcmU6OlBv
bGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIHVpbnQ2NF90IG5ld05hdmlnYXRpb25JRCwgV2ViS2l0
OjpEb3dubG9hZElEIGRvd25sb2FkSUQsIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpXZWJzaXRlUG9s
aWNpZXNEYXRhPiB3ZWJzaXRlUG9saWNpZXMpIERlbGF5ZWQKICAgICBEZWNpZGVQb2xpY3lGb3JO
ZXdXaW5kb3dBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgc3RydWN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSBmcmFtZVNlY3VyaXR5T3JpZ2luLCBzdHJ1Y3QgV2ViS2l0OjpOYXZpZ2F0aW9u
QWN0aW9uRGF0YSBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIFN0cmluZyBmcmFtZU5hbWUsIHVpbnQ2NF90IGxpc3RlbmVySUQsIFdlYktpdDo6
VXNlckRhdGEgdXNlckRhdGEpCiAgICAgVW5hYmxlVG9JbXBsZW1lbnRQb2xpY3kodWludDY0X3Qg
ZnJhbWVJRCwgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciBlcnJvciwgV2ViS2l0OjpVc2VyRGF0YSB1
c2VyRGF0YSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKaW5kZXggMWI4NTU4MzU1
NzQ5ZmQ2OTU2MjZmODA5NzY1NTNmMzAyODZmZjE2NC4uMDJjNWI5ZWIwNjlkNWVmMjYxNWIxMTI4
NzM3YjIyYzg2YmYzMDNlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC04
OTQsNyArODk0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICAgICAgRG93bmxvYWRJ
RCBkb3dubG9hZElEOwogICAgICAgICBzdGQ6Om9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+
IHdlYnNpdGVQb2xpY2llczsKIAotICAgICAgICBpZiAoIXdlYlBhZ2UtPnNlbmRTeW5jKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKG1f
ZnJhbWUtPmZyYW1lSUQoKSwgU2VjdXJpdHlPcmlnaW5EYXRhOjpmcm9tRnJhbWUoY29yZUZyYW1l
KSwgZG9jdW1lbnRMb2FkZXItPm5hdmlnYXRpb25JRCgpLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
b3JpZ2luYXRpbmdGcmFtZUluZm9EYXRhLCBvcmlnaW5hdGluZ1BhZ2VJRCwgbmF2aWdhdGlvbkFj
dGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwgcmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSwgVXNlckRh
dGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2Vy
RGF0YS5nZXQoKSkuZ2V0KCkpLCBzaG91bGRTa2lwU2FmZUJyb3dzaW5nQ2hlY2spLCBNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYzo6UmVw
bHkocG9saWN5QWN0aW9uLCBuZXdOYXZpZ2F0aW9uSUQsIGRvd25sb2FkSUQsIHdlYnNpdGVQb2xp
Y2llcykpKSB7CisgICAgICAgIGlmICghd2ViUGFnZS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMobV9mcmFtZS0+ZnJh
bWVJRCgpLCBtX2ZyYW1lLT5pc01haW5GcmFtZSgpLCBTZWN1cml0eU9yaWdpbkRhdGE6OmZyb21G
cmFtZShjb3JlRnJhbWUpLCBkb2N1bWVudExvYWRlci0+bmF2aWdhdGlvbklEKCksIG5hdmlnYXRp
b25BY3Rpb25EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIG9yaWdpbmF0aW5nUGFnZUlE
LCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0LCByZWRpcmVjdFJl
c3BvbnNlLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3Rz
VG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSksIHNob3VsZFNraXBTYWZlQnJvd3NpbmdD
aGVjayksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25B
Y3Rpb25TeW5jOjpSZXBseShwb2xpY3lBY3Rpb24sIG5ld05hdmlnYXRpb25JRCwgZG93bmxvYWRJ
RCwgd2Vic2l0ZVBvbGljaWVzKSkpIHsKICAgICAgICAgICAgIG1fZnJhbWUtPmRpZFJlY2VpdmVQ
b2xpY3lEZWNpc2lvbihsaXN0ZW5lcklELCBQb2xpY3lBY3Rpb246Oklnbm9yZSwgMCwgeyB9LCB7
IH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKaW5kZXggN2MyZGUzZWUxZjQ0MmUxMGE0MTc2
M2NhYTM1OWMxY2I1ZGQxOTAwNy4uMjU2MDc2OWZiZTRiNWIzN2MxMmQyZTdlMTg0MmQwMWMzZTkx
NDRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJh
bWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cApAQCAtMTExLDcgKzExMSw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQo
KQogUmVmPFdlYkZyYW1lPiBXZWJGcmFtZTo6Y3JlYXRlV2l0aENvcmVNYWluRnJhbWUoV2ViUGFn
ZSogcGFnZSwgV2ViQ29yZTo6RnJhbWUqIGNvcmVGcmFtZSkKIHsKICAgICBhdXRvIGZyYW1lID0g
Y3JlYXRlKHN0ZDo6dW5pcXVlX3B0cjxXZWJGcmFtZUxvYWRlckNsaWVudD4oc3RhdGljX2Nhc3Q8
V2ViRnJhbWVMb2FkZXJDbGllbnQqPigmY29yZUZyYW1lLT5sb2FkZXIoKS5jbGllbnQoKSkpKTsK
LSAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFt
ZShmcmFtZS0+ZnJhbWVJRCgpKSwgcGFnZS0+cGFnZUlEKCksIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKKyAgICBwYWdlLT5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1haW5GcmFtZShmcmFtZS0+ZnJhbWVJ
RCgpKSwgcGFnZS0+cGFnZUlEKCkpOwogCiAgICAgZnJhbWUtPm1fY29yZUZyYW1lID0gY29yZUZy
YW1lOwogICAgIGZyYW1lLT5tX2NvcmVGcmFtZS0+dHJlZSgpLnNldE5hbWUoU3RyaW5nKCkpOwpA
QCAtMTIyLDcgKzEyMiw3IEBAIFJlZjxXZWJGcmFtZT4gV2ViRnJhbWU6OmNyZWF0ZVdpdGhDb3Jl
TWFpbkZyYW1lKFdlYlBhZ2UqIHBhZ2UsIFdlYkNvcmU6OkZyYW1lKiBjCiBSZWY8V2ViRnJhbWU+
IFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcmIGZy
YW1lTmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQpCiB7CiAgICAgYXV0
byBmcmFtZSA9IGNyZWF0ZShzdGQ6Om1ha2VfdW5pcXVlPFdlYkZyYW1lTG9hZGVyQ2xpZW50Pigp
KTsKLSAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZVN1YmZy
YW1lKGZyYW1lLT5mcmFtZUlEKCkpLCBwYWdlLT5wYWdlSUQoKSwgSVBDOjpTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOworICAgIHBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1l
SUQoKSksIHBhZ2UtPnBhZ2VJRCgpKTsKIAogICAgIGF1dG8gY29yZUZyYW1lID0gRnJhbWU6OmNy
ZWF0ZShwYWdlLT5jb3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIGZyYW1lLT5tX2ZyYW1lTG9hZGVy
Q2xpZW50LmdldCgpKTsKICAgICBmcmFtZS0+bV9jb3JlRnJhbWUgPSBjb3JlRnJhbWUucHRyKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKaW5kZXggYTk2N2M1OGIwMTA0
ODJkYjA1NmYxY2RlYTliYjg3NTc3NWY1MDkyMS4uZjkyMzg1YjUwYjEzMWY0OWYyMzNkMDhjYTcy
MmQ4NWZiOGNlNTdhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcApA
QCAtMjUxLDEyICsyNTEsNiBAQCB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9u
KElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbikKICAgICAgICAgc3VwcGxlbWVudC0+aW5pdGlh
bGl6ZUNvbm5lY3Rpb24oY29ubmVjdGlvbik7CiAKICAgICBtX3dlYkNvbm5lY3Rpb24gPSBXZWJD
b25uZWN0aW9uVG9VSVByb2Nlc3M6OmNyZWF0ZSh0aGlzKTsKLQotICAgIC8vIEluIG9yZGVyIHRv
IGVuc3VyZSB0aGF0IHRoZSBhc3luY2hyb25vdXMgbWVzc2FnZXMgdGhhdCBhcmUgdXNlZCBmb3Ig
bm90aWZ5aW5nIHRoZSBVSSBwcm9jZXNzCi0gICAgLy8gYWJvdXQgd2hlbiBXZWJGcmFtZSBvYmpl
Y3RzIGNvbWUgYW5kIGdvIGFyZSBhbHdheXMgZGVsaXZlcmVkIGJlZm9yZSB0aGUgc3luY2hyb25v
dXMgcG9saWN5IG1lc3NhZ2VzLAotICAgIC8vIHVzZSB0aGlzIGZsYWcgdG8gZm9yY2Ugc3luY2hy
b25vdXMgbWVzc2FnZXMgdG8gYmUgdHJlYXRlZCBhcyBhc3luY2hyb25vdXMgbWVzc2FnZXMgaW4g
dGhlIFVJIHByb2Nlc3MKLSAgICAvLyB1bmxlc3Mgd2hlbiBkb2luZyBzbyB3b3VsZCBsZWFkIHRv
IGEgZGVhZGxvY2suCi0gICAgY29ubmVjdGlvbi0+c2V0T25seVNlbmRNZXNzYWdlc0FzRGlzcGF0
Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseVdoZW5Qcm9jZXNzaW5nU3VjaEFNZXNzYWdlKHRydWUp
OwogfQogCiB2b2lkIFdlYlByb2Nlc3M6OmluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>