<?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>222590</bug_id>
          
          <creation_ts>2021-03-02 03:49:27 -0800</creation_ts>
          <short_desc>Maybe-regression(STP121): window.open flakily returning null</short_desc>
          <delta_ts>2021-03-17 10:09:15 -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>Frames</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Sneddon [:gsnedders]">gsnedders</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>robert</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1734804</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-03-02 03:49:27 -0800</bug_when>
    <thetext>e.g. see: https://wpt.fyi/results/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html?q=seq%28status%3Aok%7Cstatus%3Apass%20status%3Aok%7Cstatus%3Apass%20status%3Aok%7Cstatus%3Apass%20status%3A%21ok%26status%3A%21pass%20status%3A%21ok%26status%3A%21pass%20status%3A%21ok%26status%3A%21pass%20%29&amp;run_id=5635506173902848&amp;run_id=5722139221032960&amp;run_id=5714889316237312&amp;run_id=5731985836212224&amp;run_id=5670691686842368&amp;run_id=6262793999220736

That it reproduces 100% of the time on Azure Pipelines but only ~15% of the time locally, which makes me suspect this is some sort of race condition where CI always loses due to relatively low performance.

The code here is pretty simple:

  var currentUrl = &apos;http://&apos; + window.location.host + &apos;/common/blank.html&apos;;
  var win = window.open(currentUrl, &apos;&apos;, &apos;height=1,width=1&apos;);
  this.add_cleanup(function() { win.close(); });
  win.onload = this.step_func_done(function () {
    ...

This is throwing when trying to set win.onload as win is null. It shouldn&apos;t be, it should be a WindowProxy. (Note that WPT is run with WebKitJavaScriptCanOpenWindowsAutomatically set to 1.)

We also see window.open returning null in html/browsers/windows/browsing-context-names/choose-_blank-001.html, which is even simpler:

  var window1 = window.open(&apos;about:blank&apos;, &apos;_blank&apos;);
  var window2 = window.open(&apos;about:blank&apos;, &apos;_blank&apos;);
  var window3 = window.open(&apos;about:blank&apos;, &apos;_blank&apos;);
  ...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737525</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 03:50:15 -0800</bug_when>
    <thetext>&lt;rdar://problem/75211786&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738312</commentid>
    <comment_count>2</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-10 16:33:01 -0800</bug_when>
    <thetext>The test is not flaky when run as part as of test suite it seems..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738314</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-10 16:36:40 -0800</bug_when>
    <thetext>OK, If I load http://w3c-test.org/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html?label=experimental&amp;label=master&amp;aligned in STP 121 I do see one of the subtests failing. I also see the popup blocking notification in the URL bar so it is likely a Safari-side issue..</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738315</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-10 16:40:30 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #3)
&gt; OK, If I load
&gt; http://w3c-test.org/html/browsers/the-window-object/apis-for-creating-and-
&gt; navigating-browsing-contexts-by-name/creating_browsing_context_test_01.
&gt; html?label=experimental&amp;label=master&amp;aligned in STP 121 I do see one of the
&gt; subtests failing. I also see the popup blocking notification in the URL bar
&gt; so it is likely a Safari-side issue..

Actually, it was because I had popups disabled for this site. The per-site settings from my system Safari do not apply to STP it seems. Once I allowed popups on w3c-test.org, I no longer expected any issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738316</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-10 16:41:44 -0800</bug_when>
    <thetext>@Sam Sneddon: How do you reproduce? (even flakily).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738509</commentid>
    <comment_count>6</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-11 10:07:57 -0800</bug_when>
    <thetext>URL on wpt.live: http://wpt.live/html/browsers/the-window-object/apis-for-creating-and-navigating-browsing-contexts-by-name/creating_browsing_context_test_01.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1738531</commentid>
    <comment_count>7</comment_count>
    <who name="Sam Sneddon [:gsnedders]">gsnedders</who>
    <bug_when>2021-03-11 10:55:45 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #5)
&gt; @Sam Sneddon: How do you reproduce? (even flakily).

From a WPT checkout:

./wpt run --webdriver-binary=/Applications/Safari\ Technology\ Preview.app/Contents/MacOS/safaridriver --rerun 100 --pause-on-unexpected --log-mach - --log-mach-level info safari html/browsers/windows/browsing-context-names/choose-_blank-001.html

(assuming popups have already been allowed)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739680</commentid>
    <comment_count>8</comment_count>
      <attachid>423246</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 14:51:45 -0700</bug_when>
    <thetext>Created attachment 423246
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739686</commentid>
    <comment_count>9</comment_count>
      <attachid>423246</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-15 15:08:43 -0700</bug_when>
    <thetext>Comment on attachment 423246
Patch

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

&gt; Source/WebKit/ChangeLog:15
&gt; +        DidCommitLoadForFrame IPC (as well as preceeding load-related messages to maintain relative ordering).

typo: &quot;preceding&quot;

I understand the benefit of setting the flag. What is the risk of setting this flag on DidCommitLoadForFrame?

&gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:156
&gt; +        WKRetainPtr&lt;WKContextRef&gt; context = adoptWK(WKContextCreateWithConfiguration(nullptr));

auto?

&gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:165
&gt; +        WKRetainPtr&lt;WKStringRef&gt; htmlString = Util::toWK(&quot;&lt;script&gt;open(&apos;about:blank&apos;, &apos;_blank&apos;)&lt;/script&gt;&quot;);

auto?

&gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:166
&gt; +        auto blankURL = adoptWK(WKURLCreateWithUTF8CString(&quot;about:blank&quot;));

Seems unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739689</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 15:12:24 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Comment on attachment 423246 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423246&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:15
&gt; &gt; +        DidCommitLoadForFrame IPC (as well as preceeding load-related messages to maintain relative ordering).
&gt; 
&gt; typo: &quot;preceding&quot;
&gt; 
&gt; I understand the benefit of setting the flag. What is the risk of setting
&gt; this flag on DidCommitLoadForFrame?

I guess the risk is that DidCommitLoadForFrame now gets processed out of order with regards to another async IPC message.

&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:156
&gt; &gt; +        WKRetainPtr&lt;WKContextRef&gt; context = adoptWK(WKContextCreateWithConfiguration(nullptr));
&gt; 
&gt; auto?
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:165
&gt; &gt; +        WKRetainPtr&lt;WKStringRef&gt; htmlString = Util::toWK(&quot;&lt;script&gt;open(&apos;about:blank&apos;, &apos;_blank&apos;)&lt;/script&gt;&quot;);
&gt; 
&gt; auto?
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:166
&gt; &gt; +        auto blankURL = adoptWK(WKURLCreateWithUTF8CString(&quot;about:blank&quot;));
&gt; 
&gt; Seems unused.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739690</commentid>
    <comment_count>11</comment_count>
      <attachid>423251</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 15:13:30 -0700</bug_when>
    <thetext>Created attachment 423251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739691</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-15 15:13:54 -0700</bug_when>
    <thetext>r=me too

I guess this fix is right but it makes me think that our current design is a little sketchy.

Under what conditions will sync IPC get processed before preceding async IPC? Perhaps a better approach would be to offer an option to annotate the *sync* IPC as allowing preceding async IPC to process first. Then we could adopt that option for CreateNewPage, or maybe for all sync IPC from WebContent. It feels clearer and more future-proof to annotate the IPC that depends on preceding IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739697</commentid>
    <comment_count>13</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 15:19:49 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #12)
&gt; r=me too
&gt; 
&gt; I guess this fix is right but it makes me think that our current design is a
&gt; little sketchy.

I 100% agree that the current design is super fragile.

&gt; Under what conditions will sync IPC get processed before preceding async
&gt; IPC? 

My understanding of the code is that it happens when the destination process is waiting on a sync IPC reply. To avoid deadlocks, we dispatch sync IPC when a process is waiting for a sync IPC reply. In such cases, the sync IPC message may just the line and get processes other async IPC that was sent shortly before it.

&gt; Perhaps a better approach would be to offer an option to annotate the
&gt; *sync* IPC as allowing preceding async IPC to process first. Then we could
&gt; adopt that option for CreateNewPage, or maybe for all sync IPC from
&gt; WebContent. It feels clearer and more future-proof to annotate the IPC that
&gt; depends on preceding IPC.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739772</commentid>
    <comment_count>14</comment_count>
      <attachid>423251</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-15 17:52:22 -0700</bug_when>
    <thetext>Comment on attachment 423251
Patch

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

&gt; Tools/TestWebKitAPI/Tests/WebKit/ModalAlertsSPI.cpp:155
&gt; +        openedWebView = nil;

Should we be nulling this out after running tests? Why leave the last WebView allocated after testing? I think we’d to do that at the end of the ModalAlertsSPI test above, and also here, we could null things out after instead of before.

Also, should this be nullptr instead of nil?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739810</commentid>
    <comment_count>15</comment_count>
      <attachid>423287</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-15 20:04:57 -0700</bug_when>
    <thetext>Created attachment 423287
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1739959</commentid>
    <comment_count>16</comment_count>
      <attachid>423336</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 08:57:55 -0700</bug_when>
    <thetext>Created attachment 423336
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740083</commentid>
    <comment_count>17</comment_count>
      <attachid>423372</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 11:52:50 -0700</bug_when>
    <thetext>Created attachment 423372
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740183</commentid>
    <comment_count>18</comment_count>
      <attachid>423372</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-16 14:08:13 -0700</bug_when>
    <thetext>Comment on attachment 423372
Patch

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

&gt; Source/WebKit/Platform/IPC/Connection.cpp:152
&gt; +        // Preserve ordering my dispatching pending async messages first.

my =&gt; by</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740185</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 14:09:49 -0700</bug_when>
    <thetext>(In reply to Geoffrey Garen from comment #18)
&gt; Comment on attachment 423372 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=423372&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Platform/IPC/Connection.cpp:152
&gt; &gt; +        // Preserve ordering my dispatching pending async messages first.
&gt; 
&gt; my =&gt; by

Will fix. Sadly it looks like I still have a few layout test failures to figure out :/ This is going me quite a bit of trouble...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740309</commentid>
    <comment_count>20</comment_count>
      <attachid>423415</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 16:54:26 -0700</bug_when>
    <thetext>Created attachment 423415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740343</commentid>
    <comment_count>21</comment_count>
      <attachid>423422</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-16 18:46:25 -0700</bug_when>
    <thetext>Created attachment 423422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740708</commentid>
    <comment_count>22</comment_count>
      <attachid>423488</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-17 08:22:39 -0700</bug_when>
    <thetext>Created attachment 423488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740731</commentid>
    <comment_count>23</comment_count>
      <attachid>423488</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-03-17 09:27:42 -0700</bug_when>
    <thetext>Comment on attachment 423488
Patch

Requesting review again since I have changed the approach to match Geoff&apos;s proposal.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740740</commentid>
    <comment_count>24</comment_count>
      <attachid>423488</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-03-17 09:43:40 -0700</bug_when>
    <thetext>Comment on attachment 423488
Patch

r=me

I... can&apos;t believe this worked? :P But I love it!

Another way to think of MaintainOrderingWithAsyncMessages is that it&apos;s a way to say &quot;this sync IPC is actually sent as more than one message, with the final message being marked sync -- but it would be crazy to take all those messages and package them up into one giant sync message, so we use this flag instead&quot;.

I bet we can remove DispatchMessageEvenWhenWaitingForSyncReply now, and replace it with MaintainOrderingWithAsyncMessages. The benefit would be that we annotate the message that needs the behavior, rather than the unrelated messages that just get caught in the fray -- so our code becomes more precise, which hopefully makes it more robust.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740755</commentid>
    <comment_count>25</comment_count>
      <attachid>423488</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-03-17 10:03:07 -0700</bug_when>
    <thetext>Comment on attachment 423488
Patch

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        To address the issue, introduce a new IPC::SendSyncOption::MaintainOrderingWithAsyncMessages flag and
&gt; +        use it on WebPageProxy::CreateNewPage sync IPC so that it gets processed in order with surrounding async
&gt; +        messages.

Very exciting, so much better solution.

To extend and refine this in the future:

I think we should explore how far we can go in changing all sync messages to have this behavior. Would that hurt performance in any significant way? If not, I’m not sure we need sync messages that jump the line at all. Having one less wrong choice you could make could be a plus for future WebKit programmers.

Or it’s possible that all sync messages in some particular connection might want this behavior, like all from web process to UI process.

No rush to do this, but I think this could be a help long term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740763</commentid>
    <comment_count>26</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-17 10:09:12 -0700</bug_when>
    <thetext>Committed r274565: &lt;https://commits.webkit.org/r274565&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 423488.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423246</attachid>
            <date>2021-03-15 14:51:45 -0700</date>
            <delta_ts>2021-03-15 15:13:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210315145144.patch</filename>
            <type>text/plain</type>
            <size>8270</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDgzMjhhZGM4NmE1M2UxMzYy
NWU0ZGMwZTYxNDM0N2MxNThjMmUwMzQuLmVmZjZmOTlkMTRjZWQ0YTJiZjYyMGZhNGM4MWNmNDU4
NTIzOWUxNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRD
b21taXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFn
ZSBpcworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg
V2ViUGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhl
CisgICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3
YXMgY2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5p
bmcgaWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2Fk
LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIGFkZGVkIHRoZSBTZW5kT3B0aW9u
OjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBvbiB0aGUK
KyAgICAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyAoYXMgd2VsbCBhcyBwcmVjZWVkaW5n
IGxvYWQtcmVsYXRlZCBtZXNzYWdlcyB0byBtYWludGFpbiByZWxhdGl2ZSBvcmRlcmluZykuCisg
ICAgICAgIFRoaXMgZ3VhcmFudGVlcyB0aGF0IHRoZSBEaWRDb21taXRMb2FkRm9yRnJhbWUgSVBD
IHdpbGwgYWx3YXlzIGdldCBwcm9jZXNzZWQgKmJlZm9yZSogdGhlCisgICAgICAgIFdlYlBhZ2VQ
cm94eTo6Q3JlYXRlV2ViUGFnZSBJUEMgKGZvciB0aGUgcGFnZSB0aGF0IHdhcyBqdXN0IGNvbW1p
dHRlZCkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9h
ZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdlYktpdDo6
V2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZCk6CisK
IDIwMjEtMDMtMTUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSBnZXRVc2VyTWVkaWEgZGVsZWdhdGUgdG8gZXhwb3NlIGZyYW1lIGluZm8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxv
YWRlckNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IDM2NTEyMDI1ZWNlYWNkZDM1NWFmZmM1OWRl
ZTE0ZmRkM2I3MDdmZTAuLmYyYzIyNDM4YjdlYTg0ZDI5NzY3ZGM0NGRkMjZhZTZmMjY4NzJlNDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
cmFtZUxvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcgKzUyOSw3IEBAIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQo
KQogICAgIGF1dG8mIHVucmVhY2hhYmxlVVJMID0gcHJvdmlzaW9uYWxMb2FkZXIudW5yZWFjaGFi
bGVVUkwoKTsKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFt
ZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgcHJvdmlzaW9uYWxMb2FkZXIu
cmVxdWVzdCgpLCBwcm92aXNpb25hbExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLCB1bnJlYWNo
YWJsZVVSTCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1f
ZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBwcm92aXNpb25hbExvYWRlci5yZXF1
ZXN0KCksIHByb3Zpc2lvbmFsTG9hZGVyLm5hdmlnYXRpb25JRCgpLCB1cmwsIHVucmVhY2hhYmxl
VVJMLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9I
YW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHN0YXRpYyBjb25zdGV4
cHIgdW5zaWduZWQgbWF4VGl0bGVMZW5ndGggPSAxMDAwOyAvLyBDbG9zZXN0IHBvd2VyIG9mIDEw
IGFib3ZlIHRoZSBXM0MgcmVjb21tZW5kYXRpb24gZm9yIFRpdGxlIGxlbmd0aC4KQEAgLTU3MSw3
ICs1NzEsOSBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExv
YWQoT3B0aW9uYWw8SGFzSW5zZWN1cmVDb250ZW50PiBoYQogICAgICAgICB1c2VkTGVnYWN5VExT
ID0gdXNlZExlZ2FjeVRMU0Zyb21QYWdlQ2FjaGUgPT0gVXNlZExlZ2FjeVRMUzo6WWVzOwogICAg
IAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQo
KSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIGRvY3VtZW50TG9h
ZGVyLm5hdmlnYXRpb25JRCgpLCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLm1pbWVUeXBlKCks
IG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5s
b2FkZXIoKS5sb2FkVHlwZSgpLCB2YWx1ZU9yQ29tcHV0ZShkb2N1bWVudExvYWRlci5yZXNwb25z
ZSgpLmNlcnRpZmljYXRlSW5mbygpLCBbXSB7IHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oKTsgfSks
IHVzZWRMZWdhY3lUTFMsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5pc1BsdWdp
bkRvY3VtZW50KCksIGhhc0luc2VjdXJlQ29udGVudCwgZG9jdW1lbnRMb2FkZXIubW91c2VFdmVu
dFBvbGljeSgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmpl
Y3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICAvLyBXZSBwYXNzIHRo
ZSBTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkg
ZmxhZyBiZWNhdXNlIHdlIHdhbnQgdG8gbWFrZSBzdXJlIHRoZSBVSVByb2Nlc3Mga25vd3Mgd2Un
dmUgY29tbWl0dGVkIHRoZSBsb2FkICpiZWZvcmUqCisgICAgLy8gaXQgcmVjZWl2ZXMgc3luY2hy
b25vdXMgSVBDIGZvciBvdGhlciBvcGVyYXRpb25zIChlLmcuIEpTIGFsZXJ0cywgd2luZG93Lm9w
ZW4pLgorICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0
TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVu
dExvYWRlci5yZXF1ZXN0KCksIGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgpLCBkb2N1bWVu
dExvYWRlci5yZXNwb25zZSgpLm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJv
dmlkZXIsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCB2YWx1ZU9y
Q29tcHV0ZShkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLCBbXSB7
IHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oKTsgfSksIHVzZWRMZWdhY3lUTFMsIG1fZnJhbWUtPmNv
cmVGcmFtZSgpLT5kb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50KCksIGhhc0luc2VjdXJlQ29u
dGVudCwgZG9jdW1lbnRMb2FkZXIubW91c2VFdmVudFBvbGljeSgpLCBVc2VyRGF0YShXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgp
KS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSk7CiAgICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lLnB0cigp
KTsKIH0KIApAQCAtNjA3LDcgKzYwOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRp
c3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAKICAg
ICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1l
ID0gbV9mcmFtZS0+Y29yZUZyYW1lKCk7Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJ
RCgpLCBtX2ZyYW1lLT5pbmZvKCksIHJlcXVlc3QsIG5hdmlnYXRpb25JRCwgY29yZUZyYW1lLT5s
b2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLnN0cmluZygpLCBl
cnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7Cisg
ICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIHJlcXVl
c3QsIG5hdmlnYXRpb25JRCwgY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJv
ckJlaW5nSGFuZGxlZFVSTCgpLnN0cmluZygpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywg
VXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxl
cyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3Nh
Z2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxv
YWQgbGlzdGVuZXIsIG5vdGlmeSBpdC4KICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciog
bG9hZExpc3RlbmVyID0gbV9mcmFtZS0+bG9hZExpc3RlbmVyKCkpCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTMyNzkxODhmNTU4NmZkMThhMDg0
MDFmOTQxOWVkMDJlM2RjZWZhMS4uMWUxNTAwMmI4MDIzMTBkM2RhNjQ3MTVlMGYyM2RkYjBjOGMw
NDhmYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE3IEBACisyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5j
b20+CisKKyAgICAgICAgTWF5YmUtcmVncmVzc2lvbihTVFAxMjEpOiB3aW5kb3cub3BlbiBmbGFr
aWx5IHJldHVybmluZyBudWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMjI1OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1MjExNzg2PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBBUEkgdGVz
dCBjb3ZlcmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFs
QWxlcnRzU1BJLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrRnJhbWVMb2FkU3Rh
dGVBbmRDcmVhdGVOZXdQYWdlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAy
MDIxLTAzLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBV
cGRhdGUgZ2V0VXNlck1lZGlhIGRlbGVnYXRlIHRvIGV4cG9zZSBmcmFtZSBpbmZvCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAKaW5k
ZXggN2JjMzUyNGYyYmRiOWRiZDdhNDM1YTNjYzZhZDM4MzJlOTQ0ZWRkNS4uODFmZjkyYWI1ZDBi
NTNlNjA1Y2I2YzhkN2IwNzhlZmU5OThkNDc2MiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcApAQCAtMTM5LDYgKzEzOSwzNiBA
QCBURVNUKFdlYktpdCwgTW9kYWxBbGVydHNTUEkpCiAgICAgVXRpbDo6cnVuKCZkb25lKTsKIH0K
IAorc3RhdGljIFdLUGFnZVJlZiBjaGVja0ZyYW1lTG9hZFN0YXRlQW5kQ3JlYXRlTmV3UGFnZShX
S1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHVybFJlcXVlc3QsIFdLRGljdGlvbmFyeVJl
ZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRv
biBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50SW5mbykKK3sKKyAgICBhdXRvIG1haW5G
cmFtZSA9IFdLUGFnZUdldE1haW5GcmFtZShwYWdlKTsKKyAgICBBU1NFUlQobWFpbkZyYW1lKTsK
KyAgICBFWFBFQ1RfRVEoa1dLRnJhbWVMb2FkU3RhdGVDb21taXR0ZWQsIFdLRnJhbWVHZXRGcmFt
ZUxvYWRTdGF0ZShtYWluRnJhbWUpKTsKKyAgICBkb25lID0gdHJ1ZTsKKyAgICByZXR1cm4gY3Jl
YXRlTmV3UGFnZShwYWdlLCB1cmxSZXF1ZXN0LCBmZWF0dXJlcywgbW9kaWZpZXJzLCBtb3VzZUJ1
dHRvbiwgY2xpZW50SW5mbyk7Cit9CisKK1RFU1QoV2ViS2l0LCBDcmVhdGVOZXdQYWdlRGVsZWdh
dGVGcmFtZUxvYWRTdGF0ZSkKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgMjU7ICsr
aSkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAgICAgIG9wZW5lZFdlYlZpZXcgPSBuaWw7
CisgICAgICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gY29udGV4dCA9IGFkb3B0V0soV0tD
b250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOworICAgICAgICBQbGF0Zm9y
bVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgICAgICBXS1BhZ2VVSUNsaWVu
dFY1IHVpQ2xpZW50OworICAgICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGll
bnQpKTsKKyAgICAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNTsKKyAgICAgICAgdWlDbGll
bnQuY3JlYXRlTmV3UGFnZSA9IGNoZWNrRnJhbWVMb2FkU3RhdGVBbmRDcmVhdGVOZXdQYWdlOwor
ICAgICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5i
YXNlKTsKKworICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gaHRtbFN0cmluZyA9IFV0
aWw6OnRvV0soIjxzY3JpcHQ+b3BlbignYWJvdXQ6YmxhbmsnLCAnX2JsYW5rJyk8L3NjcmlwdD4i
KTsKKyAgICAgICAgYXV0byBibGFua1VSTCA9IGFkb3B0V0soV0tVUkxDcmVhdGVXaXRoVVRGOENT
dHJpbmcoImFib3V0OmJsYW5rIikpOworICAgICAgICBXS1BhZ2VMb2FkSFRNTFN0cmluZyh3ZWJW
aWV3LnBhZ2UoKSwgaHRtbFN0cmluZy5nZXQoKSwgbnVsbHB0cik7CisgICAgICAgIFV0aWw6OnJ1
bigmZG9uZSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCiAKICNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423251</attachid>
            <date>2021-03-15 15:13:30 -0700</date>
            <delta_ts>2021-03-15 20:04:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210315151330.patch</filename>
            <type>text/plain</type>
            <size>8120</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDkzMmRiYTM1MWZhYTkyNzU0
M2YwYmMxNTc0NmU0MDQ4MmVmYmY0MzcuLmEyOTZhYmFkZjUyN2NmODg0MTUzNWU2MGIzMjc5NjQ4
MzY3NjlmNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRDb21t
aXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFnZSBp
cworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgV2Vi
UGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhlCisg
ICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3YXMg
Y2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5pbmcg
aWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2FkLgor
CisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIGFkZGVkIHRoZSBTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBvbiB0aGUKKyAg
ICAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyAoYXMgd2VsbCBhcyBwcmVjZWRpbmcgbG9h
ZC1yZWxhdGVkIG1lc3NhZ2VzIHRvIG1haW50YWluIHJlbGF0aXZlIG9yZGVyaW5nKS4KKyAgICAg
ICAgVGhpcyBndWFyYW50ZWVzIHRoYXQgdGhlIERpZENvbW1pdExvYWRGb3JGcmFtZSBJUEMgd2ls
bCBhbHdheXMgZ2V0IHByb2Nlc3NlZCAqYmVmb3JlKiB0aGUKKyAgICAgICAgV2ViUGFnZVByb3h5
OjpDcmVhdGVXZWJQYWdlIElQQyAoZm9yIHRoZSBwYWdlIHRoYXQgd2FzIGp1c3QgY29tbWl0dGVk
KS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJD
bGllbnQuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0
Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
cmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKToKKwogMjAy
MS0wMy0xNSAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
RW5mb3JjZSBzdWJjb21tYW5kIGZpbHRlcmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKaW5kZXggMzY1MTIwMjVlY2VhY2RkMzU1YWZmYzU5ZGVlMTRmZGQzYjcwN2ZlMC4uZjJjMjI0
MzhiN2VhODRkMjk3NjdkYzQ0ZGQyNmFlNmYyNjg3MmU0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2Fk
ZXJDbGllbnQuY3BwCkBAIC01MjksNyArNTI5LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVu
dDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCgpCiAgICAgYXV0byYgdW5yZWFjaGFi
bGVVUkwgPSBwcm92aXNpb25hbExvYWRlci51bnJlYWNoYWJsZVVSTCgpOwogCiAgICAgLy8gTm90
aWZ5IHRoZSBVSVByb2Nlc3MuCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwg
bV9mcmFtZS0+aW5mbygpLCBwcm92aXNpb25hbExvYWRlci5yZXF1ZXN0KCksIHByb3Zpc2lvbmFs
TG9hZGVyLm5hdmlnYXRpb25JRCgpLCB1cmwsIHVucmVhY2hhYmxlVVJMLCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2Zy
YW1lLT5pbmZvKCksIHByb3Zpc2lvbmFsTG9hZGVyLnJlcXVlc3QoKSwgcHJvdmlzaW9uYWxMb2Fk
ZXIubmF2aWdhdGlvbklEKCksIHVybCwgdW5yZWFjaGFibGVVUkwsIFVzZXJEYXRhKFdlYlByb2Nl
c3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkp
LmdldCgpKSksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5KTsKIH0KIAogc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhUaXRsZUxl
bmd0aCA9IDEwMDA7IC8vIENsb3Nlc3QgcG93ZXIgb2YgMTAgYWJvdmUgdGhlIFczQyByZWNvbW1l
bmRhdGlvbiBmb3IgVGl0bGUgbGVuZ3RoLgpAQCAtNTcxLDcgKzU3MSw5IEBAIHZvaWQgV2ViRnJh
bWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZChPcHRpb25hbDxIYXNJbnNlY3Vy
ZUNvbnRlbnQ+IGhhCiAgICAgICAgIHVzZWRMZWdhY3lUTFMgPSB1c2VkTGVnYWN5VExTRnJvbVBh
Z2VDYWNoZSA9PSBVc2VkTGVnYWN5VExTOjpZZXM7CiAgICAgCiAgICAgLy8gTm90aWZ5IHRoZSBV
SVByb2Nlc3MuCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRD
b21taXRMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGRv
Y3VtZW50TG9hZGVyLnJlcXVlc3QoKSwgZG9jdW1lbnRMb2FkZXIubmF2aWdhdGlvbklEKCksIGRv
Y3VtZW50TG9hZGVyLnJlc3BvbnNlKCkubWltZVR5cGUoKSwgbV9mcmFtZUhhc0N1c3RvbUNvbnRl
bnRQcm92aWRlciwgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCksIHZh
bHVlT3JDb21wdXRlKGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCks
IFtdIHsgcmV0dXJuIENlcnRpZmljYXRlSW5mbygpOyB9KSwgdXNlZExlZ2FjeVRMUywgbV9mcmFt
ZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCktPmlzUGx1Z2luRG9jdW1lbnQoKSwgaGFzSW5zZWN1
cmVDb250ZW50LCBkb2N1bWVudExvYWRlci5tb3VzZUV2ZW50UG9saWN5KCksIFVzZXJEYXRhKFdl
YlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEu
Z2V0KCkpLmdldCgpKSkpOworICAgIC8vIFdlIHBhc3MgdGhlIFNlbmRPcHRpb246OkRpc3BhdGNo
TWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBmbGFnIGJlY2F1c2Ugd2Ugd2FudCB0
byBtYWtlIHN1cmUgdGhlIFVJUHJvY2VzcyBrbm93cyB3ZSd2ZSBjb21taXR0ZWQgdGhlIGxvYWQg
KmJlZm9yZSoKKyAgICAvLyBpdCByZWNlaXZlcyBzeW5jaHJvbm91cyBJUEMgZm9yIG90aGVyIG9w
ZXJhdGlvbnMgKGUuZy4gSlMgYWxlcnRzLCB3aW5kb3cub3BlbikuCisgICAgd2ViUGFnZS0+c2Vu
ZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDb21taXRMb2FkRm9yRnJhbWUobV9mcmFtZS0+
ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3QoKSwgZG9j
dW1lbnRMb2FkZXIubmF2aWdhdGlvbklEKCksIGRvY3VtZW50TG9hZGVyLnJlc3BvbnNlKCkubWlt
ZVR5cGUoKSwgbV9mcmFtZUhhc0N1c3RvbUNvbnRlbnRQcm92aWRlciwgbV9mcmFtZS0+Y29yZUZy
YW1lKCktPmxvYWRlcigpLmxvYWRUeXBlKCksIHZhbHVlT3JDb21wdXRlKGRvY3VtZW50TG9hZGVy
LnJlc3BvbnNlKCkuY2VydGlmaWNhdGVJbmZvKCksIFtdIHsgcmV0dXJuIENlcnRpZmljYXRlSW5m
bygpOyB9KSwgdXNlZExlZ2FjeVRMUywgbV9mcmFtZS0+Y29yZUZyYW1lKCktPmRvY3VtZW50KCkt
PmlzUGx1Z2luRG9jdW1lbnQoKSwgaGFzSW5zZWN1cmVDb250ZW50LCBkb2N1bWVudExvYWRlci5t
b3VzZUV2ZW50UG9saWN5KCksIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5z
Zm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9w
dGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKICAgICB3
ZWJQYWdlLT5kaWRDb21taXRMb2FkKG1fZnJhbWUucHRyKCkpOwogfQogCkBAIC02MDcsNyArNjA5
LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9u
YWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGUKIAogICAgIC8vIE5vdGlmeSB0aGUgVUlQcm9j
ZXNzLgogICAgIFdlYkNvcmU6OkZyYW1lKiBjb3JlRnJhbWUgPSBtX2ZyYW1lLT5jb3JlRnJhbWUo
KTsKLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92
aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwg
cmVxdWVzdCwgbmF2aWdhdGlvbklELCBjb3JlRnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsTG9h
ZEVycm9yQmVpbmdIYW5kbGVkVVJMKCkuc3RyaW5nKCksIGVycm9yLCB3aWxsQ29udGludWVMb2Fk
aW5nLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9I
YW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3Nh
Z2VzOjpXZWJQYWdlUHJveHk6OkRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1l
LT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgcmVxdWVzdCwgbmF2aWdhdGlvbklELCBjb3Jl
RnJhbWUtPmxvYWRlcigpLnByb3Zpc2lvbmFsTG9hZEVycm9yQmVpbmdIYW5kbGVkVVJMKCkuc3Ry
aW5nKCksIGVycm9yLCB3aWxsQ29udGludWVMb2FkaW5nLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpz
aW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQo
KSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5IGl0
LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2ZyYW1l
LT5sb2FkTGlzdGVuZXIoKSkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAwOTgwMmRkZDljNDg1MDQ4NGY5MDM4ZjJjZWY3NTNlYWM0ODdjNTBmLi42
MWFjMDMyYjk0YjFlMWE4M2RkNzk3ZmJjZDNmOTJkNTJhMWM4NTYxIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MDMtMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1y
ZWdyZXNzaW9uKFNUUDEyMSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Y2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2UpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDMtMTUgIEFha2FzaCBKYWluICA8
YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAgICAgICAgIERlbGV0ZSB1bnVzZWQgYnVpbGQtbGF1
bmNoZXItZG1nIHNjcmlwdApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQvTW9kYWxBbGVydHNTUEkuY3BwCmluZGV4IDdiYzM1MjRmMmJkYjlkYmQ3YTQzNWEzY2M2YWQz
ODMyZTk0NGVkZDUuLjcwZjA0Yzg4Y2E3ZjFhZmQ4NTM4MDZiOTFkYmQ0ZTI4ODg1ZjYxMmEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJ
LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQ
SS5jcHAKQEAgLTEzOSw2ICsxMzksMzUgQEAgVEVTVChXZWJLaXQsIE1vZGFsQWxlcnRzU1BJKQog
ICAgIFV0aWw6OnJ1bigmZG9uZSk7CiB9CiAKK3N0YXRpYyBXS1BhZ2VSZWYgY2hlY2tGcmFtZUxv
YWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2UoV0tQYWdlUmVmIHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiB1
cmxSZXF1ZXN0LCBXS0RpY3Rpb25hcnlSZWYgZmVhdHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9k
aWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVu
dEluZm8pCit7CisgICAgYXV0byBtYWluRnJhbWUgPSBXS1BhZ2VHZXRNYWluRnJhbWUocGFnZSk7
CisgICAgQVNTRVJUKG1haW5GcmFtZSk7CisgICAgRVhQRUNUX0VRKGtXS0ZyYW1lTG9hZFN0YXRl
Q29tbWl0dGVkLCBXS0ZyYW1lR2V0RnJhbWVMb2FkU3RhdGUobWFpbkZyYW1lKSk7CisgICAgZG9u
ZSA9IHRydWU7CisgICAgcmV0dXJuIGNyZWF0ZU5ld1BhZ2UocGFnZSwgdXJsUmVxdWVzdCwgZmVh
dHVyZXMsIG1vZGlmaWVycywgbW91c2VCdXR0b24sIGNsaWVudEluZm8pOworfQorCitURVNUKFdl
YktpdCwgQ3JlYXRlTmV3UGFnZURlbGVnYXRlRnJhbWVMb2FkU3RhdGUpCit7CisgICAgZm9yICh1
bnNpZ25lZCBpID0gMDsgaSA8IDI1OyArK2kpIHsKKyAgICAgICAgZG9uZSA9IGZhbHNlOworICAg
ICAgICBvcGVuZWRXZWJWaWV3ID0gbmlsOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdL
KFdLQ29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAgICAgICAgUGxh
dGZvcm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICAgICAgV0tQYWdlVUlD
bGllbnRWNSB1aUNsaWVudDsKKyAgICAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVp
Q2xpZW50KSk7CisgICAgICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAgICAgIHVp
Q2xpZW50LmNyZWF0ZU5ld1BhZ2UgPSBjaGVja0ZyYW1lTG9hZFN0YXRlQW5kQ3JlYXRlTmV3UGFn
ZTsKKyAgICAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGll
bnQuYmFzZSk7CisKKyAgICAgICAgYXV0byBodG1sU3RyaW5nID0gVXRpbDo6dG9XSygiPHNjcmlw
dD5vcGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnKTwvc2NyaXB0PiIpOworICAgICAgICBXS1Bh
Z2VMb2FkSFRNTFN0cmluZyh3ZWJWaWV3LnBhZ2UoKSwgaHRtbFN0cmluZy5nZXQoKSwgbnVsbHB0
cik7CisgICAgICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgfQorfQorCiB9IC8vIG5hbWVzcGFj
ZSBUZXN0V2ViS2l0QVBJCiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423287</attachid>
            <date>2021-03-15 20:04:57 -0700</date>
            <delta_ts>2021-03-16 16:54:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210315200456.patch</filename>
            <type>text/plain</type>
            <size>12159</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwNWNjMWM5MDdlZGFlNzJk
NGJlZTk1ZjNkMjU1ZDM1MDQ1ZTYwMjUuLjk2NmUzNWNkNzBlMDlhYTQ3OGY1NDYzOWI5ZjA4ZTkz
ZWI5MGZlODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTUgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRDb21t
aXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFnZSBp
cworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgV2Vi
UGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhlCisg
ICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3YXMg
Y2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5pbmcg
aWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2FkLgor
CisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIGFkZGVkIHRoZSBTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBvbiB0aGUKKyAg
ICAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyAoYXMgd2VsbCBhcyBvdGhlciBsb2FkLXJl
bGF0ZWQgbWVzc2FnZXMgdG8gbWFpbnRhaW4gcmVsYXRpdmUgb3JkZXJpbmcpLgorICAgICAgICBU
aGlzIGd1YXJhbnRlZXMgdGhhdCB0aGUgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyB3aWxsIGFs
d2F5cyBnZXQgcHJvY2Vzc2VkICpiZWZvcmUqIHRoZQorICAgICAgICBXZWJQYWdlUHJveHk6OkNy
ZWF0ZVdlYlBhZ2UgSVBDIChmb3IgdGhlIHBhZ2UgdGhhdCB3YXMganVzdCBjb21taXR0ZWQpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDIxLTAz
LTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQXZvaWQgaGVh
cCBhbGxvY2F0aW9uIGluIFJlbW90ZUF1ZGlvRGVzdGluYXRpb25Qcm94eTo6cmVuZGVyUXVhbnR1
bSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcAppbmRleCAzNjUxMjAyNWVjZWFjZGQz
NTVhZmZjNTlkZWUxNGZkZDNiNzA3ZmUwLi5hYzMwODRhZTVkY2FlY2Q1ZTlkZWU1OGQ2ZjIwNWNj
YWFiZmYxNGJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAKQEAgLTUyOSw3ICs1
MjksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZFN0YXJ0UHJvdmlz
aW9uYWxMb2FkKCkKICAgICBhdXRvJiB1bnJlYWNoYWJsZVVSTCA9IHByb3Zpc2lvbmFsTG9hZGVy
LnVucmVhY2hhYmxlVVJMKCk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3
ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFN0YXJ0UHJvdmlzaW9uYWxM
b2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIHByb3Zpc2lv
bmFsTG9hZGVyLnJlcXVlc3QoKSwgcHJvdmlzaW9uYWxMb2FkZXIubmF2aWdhdGlvbklEKCksIHVy
bCwgdW5yZWFjaGFibGVVUkwsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5z
Zm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSkpOworICAgIHdlYlBh
Z2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkU3RhcnRQcm92aXNpb25hbExvYWRG
b3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgcHJvdmlzaW9uYWxM
b2FkZXIucmVxdWVzdCgpLCBwcm92aXNpb25hbExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLCB1
bnJlYWNoYWJsZVVSTCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3Jt
T2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSwgSVBDOjpTZW5kT3B0aW9u
OjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogfQogCiBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1heFRpdGxlTGVuZ3RoID0gMTAwMDsgLy8gQ2xvc2VzdCBw
b3dlciBvZiAxMCBhYm92ZSB0aGUgVzNDIHJlY29tbWVuZGF0aW9uIGZvciBUaXRsZSBsZW5ndGgu
CkBAIC01NzEsNyArNTcxLDkgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
aWRDb21taXRMb2FkKE9wdGlvbmFsPEhhc0luc2VjdXJlQ29udGVudD4gaGEKICAgICAgICAgdXNl
ZExlZ2FjeVRMUyA9IHVzZWRMZWdhY3lUTFNGcm9tUGFnZUNhY2hlID09IFVzZWRMZWdhY3lUTFM6
OlllczsKICAgICAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENvbW1pdExvYWRGb3JGcmFtZShtX2ZyYW1l
LT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgZG9jdW1lbnRMb2FkZXIucmVxdWVzdCgpLCBk
b2N1bWVudExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5t
aW1lVHlwZSgpLCBtX2ZyYW1lSGFzQ3VzdG9tQ29udGVudFByb3ZpZGVyLCBtX2ZyYW1lLT5jb3Jl
RnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUoKSwgdmFsdWVPckNvbXB1dGUoZG9jdW1lbnRMb2Fk
ZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUluZm8oKSwgW10geyByZXR1cm4gQ2VydGlmaWNhdGVJ
bmZvKCk7IH0pLCB1c2VkTGVnYWN5VExTLCBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQo
KS0+aXNQbHVnaW5Eb2N1bWVudCgpLCBoYXNJbnNlY3VyZUNvbnRlbnQsIGRvY3VtZW50TG9hZGVy
Lm1vdXNlRXZlbnRQb2xpY3koKSwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJh
bnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgLy8g
V2UgcGFzcyB0aGUgU2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5IGZsYWcgYmVjYXVzZSB3ZSB3YW50IHRvIG1ha2Ugc3VyZSB0aGUgVUlQcm9jZXNz
IGtub3dzIHdlJ3ZlIGNvbW1pdHRlZCB0aGUgbG9hZCAqYmVmb3JlKgorICAgIC8vIGl0IHJlY2Vp
dmVzIHN5bmNocm9ub3VzIElQQyBmb3Igb3RoZXIgb3BlcmF0aW9ucyAoZS5nLiBKUyBhbGVydHMs
IHdpbmRvdy5vcGVuKS4KKyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkRpZENvbW1pdExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8o
KSwgZG9jdW1lbnRMb2FkZXIucmVxdWVzdCgpLCBkb2N1bWVudExvYWRlci5uYXZpZ2F0aW9uSUQo
KSwgZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5taW1lVHlwZSgpLCBtX2ZyYW1lSGFzQ3VzdG9t
Q29udGVudFByb3ZpZGVyLCBtX2ZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCkubG9hZFR5cGUo
KSwgdmFsdWVPckNvbXB1dGUoZG9jdW1lbnRMb2FkZXIucmVzcG9uc2UoKS5jZXJ0aWZpY2F0ZUlu
Zm8oKSwgW10geyByZXR1cm4gQ2VydGlmaWNhdGVJbmZvKCk7IH0pLCB1c2VkTGVnYWN5VExTLCBt
X2ZyYW1lLT5jb3JlRnJhbWUoKS0+ZG9jdW1lbnQoKS0+aXNQbHVnaW5Eb2N1bWVudCgpLCBoYXNJ
bnNlY3VyZUNvbnRlbnQsIGRvY3VtZW50TG9hZGVyLm1vdXNlRXZlbnRQb2xpY3koKSwgVXNlckRh
dGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2Vy
RGF0YS5nZXQoKSkuZ2V0KCkpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVu
V2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogICAgIHdlYlBhZ2UtPmRpZENvbW1pdExvYWQobV9m
cmFtZS5wdHIoKSk7CiB9CiAKQEAgLTYwNyw3ICs2MDksNyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVy
Q2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJv
ciYgZQogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCiAgICAgV2ViQ29yZTo6RnJhbWUq
IGNvcmVGcmFtZSA9IG1fZnJhbWUtPmNvcmVGcmFtZSgpOwotICAgIHdlYlBhZ2UtPnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFpbFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCByZXF1ZXN0LCBuYXZpZ2F0aW9uSUQsIGNv
cmVGcmFtZS0+bG9hZGVyKCkucHJvdmlzaW9uYWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwoKS5z
dHJpbmcoKSwgZXJyb3IsIHdpbGxDb250aW51ZUxvYWRpbmcsIFVzZXJEYXRhKFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdl
dCgpKSkpOworICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFp
bFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5m
bygpLCByZXF1ZXN0LCBuYXZpZ2F0aW9uSUQsIGNvcmVGcmFtZS0+bG9hZGVyKCkucHJvdmlzaW9u
YWxMb2FkRXJyb3JCZWluZ0hhbmRsZWRVUkwoKS5zdHJpbmcoKSwgZXJyb3IsIHdpbGxDb250aW51
ZUxvYWRpbmcsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAogICAgIC8vIElmIHdl
IGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpAQCAtNjMx
LDcgKzYzMyw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbExv
YWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5k
bGVMb2FkZXJDbGllbnQoKS5kaWRGYWlsTG9hZFdpdGhFcnJvckZvckZyYW1lKCp3ZWJQYWdlLCBt
X2ZyYW1lLCBlcnJvciwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3Mu
Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsTG9hZEZv
ckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRl
ci5yZXF1ZXN0KCksIG5hdmlnYXRpb25JRCwgZXJyb3IsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNp
bmdsZXRvbigpLnRyYW5zZm9ybU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgp
KSkpOworICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkRmFpbExv
YWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgZG9jdW1lbnRM
b2FkZXIucmVxdWVzdCgpLCBuYXZpZ2F0aW9uSUQsIGVycm9yLCBVc2VyRGF0YShXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5n
ZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0Zv
clN5bmNSZXBseSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwgbm90aWZ5
IGl0LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIgPSBtX2Zy
YW1lLT5sb2FkTGlzdGVuZXIoKSkKQEAgLTY1Miw3ICs2NTQsNyBAQCB2b2lkIFdlYkZyYW1lTG9h
ZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZpbmlzaERvY3VtZW50TG9hZCgpCiAgICAgd2ViUGFnZS0+
aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFt
ZSgqd2ViUGFnZSwgbV9mcmFtZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVBy
b2Nlc3MuCi0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5p
c2hEb2N1bWVudExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlEKCksIG5hdmlnYXRpb25JRCwg
VXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxl
cyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFt
ZUlEKCksIG5hdmlnYXRpb25JRCwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJh
bnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSwgSVBDOjpTZW5k
T3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogCiAg
ICAgd2ViUGFnZS0+ZGlkRmluaXNoRG9jdW1lbnRMb2FkKG1fZnJhbWUpOwogfQpAQCAtNjcyLDcg
KzY3NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNoTG9h
ZCgpCiAgICAgd2ViUGFnZS0+aW5qZWN0ZWRCdW5kbGVMb2FkZXJDbGllbnQoKS5kaWRGaW5pc2hM
b2FkRm9yRnJhbWUoKndlYlBhZ2UsIG1fZnJhbWUsIHVzZXJEYXRhKTsKIAogICAgIC8vIE5vdGlm
eSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGlkRmluaXNoTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5m
bygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIG5hdmlnYXRpb25JRCwgVXNlckRhdGEoV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5n
ZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRGaW5pc2hMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZv
KCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3QoKSwgbmF2aWdhdGlvbklELCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSk7CiAKICAgICAvLyBJZiB3ZSBoYXZlIGEgbG9hZCBsaXN0ZW5lciwg
bm90aWZ5IGl0LgogICAgIGlmIChXZWJGcmFtZTo6TG9hZExpc3RlbmVyKiBsb2FkTGlzdGVuZXIg
PSBtX2ZyYW1lLT5sb2FkTGlzdGVuZXIoKSkKQEAgLTEyMTMsNyArMTIxNSw3IEBAIHZvaWQgV2Vi
RnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnkoKQogICAgIGRhdGEub3JpZ2lu
YWxSZXF1ZXN0ID0gbG9hZGVyLT5vcmlnaW5hbFJlcXVlc3RDb3B5KCk7CiAgICAgZGF0YS5yZXNw
b25zZSA9IGxvYWRlci0+cmVzcG9uc2UoKTsKIAotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6
OldlYlBhZ2VQcm94eTo6RGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoZGF0YSwgbV9mcmFt
ZS0+ZnJhbWVJRCgpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWROYXZpZ2F0ZVdpdGhOYXZpZ2F0aW9uRGF0YShkYXRhLCBtX2ZyYW1lLT5mcmFtZUlEKCkp
LCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3Rv
cnlSZWRpcmVjdExpbmtzKCkKQEAgLTEyMjgsMTMgKzEyMzAsMTMgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKQogICAgIC8vIENs
aWVudCByZWRpcmVjdAogICAgIGlmICghbG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhp
c3RvcnkoKS5pc051bGwoKSkgewogICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRpZFBlcmZvcm1DbGllbnRSZWRpcmVjdCgKLSAgICAgICAgICAgIGxvYWRlci0+
Y2xpZW50UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCksIGxvYWRlci0+Y2xpZW50UmVkaXJlY3RE
ZXN0aW5hdGlvbkZvckhpc3RvcnkoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSk7CisgICAgICAgICAg
ICBsb2FkZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLCBsb2FkZXItPmNsaWVu
dFJlZGlyZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5KCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIElQ
Qzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5
KTsKICAgICB9CiAKICAgICAvLyBTZXJ2ZXIgcmVkaXJlY3QKICAgICBpZiAoIWxvYWRlci0+c2Vy
dmVyUmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCkuaXNOdWxsKCkpIHsKICAgICAgICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3Qo
Ci0gICAgICAgICAgICBsb2FkZXItPnNlcnZlclJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLCBs
b2FkZXItPnNlcnZlclJlZGlyZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5KCksIG1fZnJhbWUtPmZy
YW1lSUQoKSkpOworICAgICAgICAgICAgbG9hZGVyLT5zZXJ2ZXJSZWRpcmVjdFNvdXJjZUZvckhp
c3RvcnkoKSwgbG9hZGVyLT5zZXJ2ZXJSZWRpcmVjdERlc3RpbmF0aW9uRm9ySGlzdG9yeSgpLCBt
X2ZyYW1lLT5mcmFtZUlEKCkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTEyZGNjM2IwOWUxYmQ2ZTViYjMwMDc3
ZGQ4NjAzYjFkYjZkNDMwNi4uNWQ1NzhiZjczN2E1NGU4ZDc1OGQxYTNiMTNiY2YxMGIxMzFhYTFk
OSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIxLTAzLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CisKKyAgICAgICAgTWF5YmUtcmVncmVzc2lvbihTVFAxMjEpOiB3aW5kb3cub3BlbiBmbGFraWx5
IHJldHVybmluZyBudWxsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjI1OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1MjExNzg2PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIEFkZCBBUEkgdGVzdCBjb3Zl
cmFnZS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRz
U1BJLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrRnJhbWVMb2FkU3RhdGVBbmRD
cmVhdGVOZXdQYWdlKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorCiAyMDIxLTAz
LTE1ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgUkVHUkVTU0lPTihyMjcxNjQyKSBBbm90aGVyIGFwcCB3YXMgcmVseWluZyBvbiBET01XaW5k
b3cgcmV1c2UKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01v
ZGFsQWxlcnRzU1BJLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFs
QWxlcnRzU1BJLmNwcAppbmRleCA3YmMzNTI0ZjJiZGI5ZGJkN2E0MzVhM2NjNmFkMzgzMmU5NDRl
ZGQ1Li43MGYwNGM4OGNhN2YxYWZkODUzODA2YjkxZGJkNGUyODg4NWY2MTJhIDEwMDY0NAotLS0g
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAKKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwCkBA
IC0xMzksNiArMTM5LDM1IEBAIFRFU1QoV2ViS2l0LCBNb2RhbEFsZXJ0c1NQSSkKICAgICBVdGls
OjpydW4oJmRvbmUpOwogfQogCitzdGF0aWMgV0tQYWdlUmVmIGNoZWNrRnJhbWVMb2FkU3RhdGVB
bmRDcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlcXVlc3RSZWYgdXJsUmVxdWVz
dCwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywg
V0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQor
eworICAgIGF1dG8gbWFpbkZyYW1lID0gV0tQYWdlR2V0TWFpbkZyYW1lKHBhZ2UpOworICAgIEFT
U0VSVChtYWluRnJhbWUpOworICAgIEVYUEVDVF9FUShrV0tGcmFtZUxvYWRTdGF0ZUNvbW1pdHRl
ZCwgV0tGcmFtZUdldEZyYW1lTG9hZFN0YXRlKG1haW5GcmFtZSkpOworICAgIGRvbmUgPSB0cnVl
OworICAgIHJldHVybiBjcmVhdGVOZXdQYWdlKHBhZ2UsIHVybFJlcXVlc3QsIGZlYXR1cmVzLCBt
b2RpZmllcnMsIG1vdXNlQnV0dG9uLCBjbGllbnRJbmZvKTsKK30KKworVEVTVChXZWJLaXQsIENy
ZWF0ZU5ld1BhZ2VEZWxlZ2F0ZUZyYW1lTG9hZFN0YXRlKQoreworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCAyNTsgKytpKSB7CisgICAgICAgIGRvbmUgPSBmYWxzZTsKKyAgICAgICAgb3Bl
bmVkV2ViVmlldyA9IG5pbDsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRl
eHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgICAgIFBsYXRmb3JtV2Vi
VmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworCisgICAgICAgIFdLUGFnZVVJQ2xpZW50VjUg
dWlDbGllbnQ7CisgICAgICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkp
OworICAgICAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA1OworICAgICAgICB1aUNsaWVudC5j
cmVhdGVOZXdQYWdlID0gY2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2U7CisgICAg
ICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2Up
OworCisgICAgICAgIGF1dG8gaHRtbFN0cmluZyA9IFV0aWw6OnRvV0soIjxzY3JpcHQ+b3Blbign
YWJvdXQ6YmxhbmsnLCAnX2JsYW5rJyk8L3NjcmlwdD4iKTsKKyAgICAgICAgV0tQYWdlTG9hZEhU
TUxTdHJpbmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0KCksIG51bGxwdHIpOworICAg
ICAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgVGVzdFdl
YktpdEFQSQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423336</attachid>
            <date>2021-03-16 08:57:55 -0700</date>
            <delta_ts>2021-03-16 11:52:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210316085755.patch</filename>
            <type>text/plain</type>
            <size>4888</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZDZjMGI0ZGM1ZDg0OWQ4
YzI5MmU2ZDg4YWRiMjFlOThiZDhmMzAuLjZjMjg3MDJkNzE0YjZhM2U3MGI3MmM0ZmIyMzU1ZDRh
Y2U1YjRhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRD
b21taXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFn
ZSBpcworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg
V2ViUGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhl
CisgICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3
YXMgY2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5p
bmcgaWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2Fk
LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIHVwZGF0ZWQgdGhlIElQQzo6Q29u
bmVjdGlvbiBjb2RlIHNvIHRoYXQgYXN5bmMgbWVzc2FnZXMgdGhhdCBhcmUgd2VyZSBhbHJlYWR5
IHF1ZXVlZAorICAgICAgICBnZXQgcHJvY2Vzc2VkIGJlZm9yZSB0aGUgc3luYyBtZXNzYWdlLCBp
biBvcmRlciB0byBtYWludGFpbiBvcmRlcmluZy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0
ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisKIDIwMjEtMDMtMTYgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gU3RvcCB1
c2luZyBnX21lbWR1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCA0NDA2YjhhODdjNGUwNzhmNGQ3N2YxNzMzY2Q1NzRjMzVjOWMwYWJiLi43ZWZiOTYwN2Ni
ZDVhNTc4ZWVkOGFmMDE0MTQ2YzNmYjUxOGQ0Y2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMTQ5LDYgKzE0OSwxMCBAQCBib29sIENvbm5lY3Rpb246
OlN5bmNNZXNzYWdlU3RhdGU6OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29u
bmVjdGlvbgogICAgIHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsK
ICAgICAgICAgc2hvdWxkRGlzcGF0Y2ggPSBtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc1dv
cmtTZXQuYWRkKCZjb25uZWN0aW9uKS5pc05ld0VudHJ5OworICAgICAgICAvLyBQcmVzZXJ2ZSBv
cmRlcmluZyBteSBkaXNwYXRjaGluZyBwZW5kaW5nIGFzeW5jIG1lc3NhZ2VzIGZpcnN0LgorICAg
ICAgICBBU1NFUlQoY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2FnZXNNdXRleC5pc0hlbGQoKSk7
CisgICAgICAgIHdoaWxlICghY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2FnZXMuaXNFbXB0eSgp
KQorICAgICAgICAgICAgbV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVw
bHkuYXBwZW5kKENvbm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgeyBjb25uZWN0aW9uLCBjb25u
ZWN0aW9uLm1faW5jb21pbmdNZXNzYWdlcy50YWtlRmlyc3QoKSB9KTsKICAgICAgICAgbV9tZXNz
YWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKENvbm5lY3Rpb25B
bmRJbmNvbWluZ01lc3NhZ2UgeyBjb25uZWN0aW9uLCBXVEZNb3ZlKG1lc3NhZ2UpIH0pOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDk1MjcwNjRkODQ3ZWYxZTkyYTlhOTBkNjU2MmJhYjkzYzM4MTA4OTMuLmEzZDg5MzU3ZjEwZWQw
MzYzNmVjMTJmZmUzMTY2OGQ3MDJmZGY5NDggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wMy0xNiAgQ2hyaXMg
RHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIE1heWJlLXJlZ3Jlc3Npb24oU1RQ
MTIxKTogd2luZG93Lm9wZW4gZmxha2lseSByZXR1cm5pbmcgbnVsbAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyNTkwCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS83NTIxMTc4Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgQVBJIHRlc3QgY292ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHA6CisgICAgICAgIChUZXN0V2ViS2l0
QVBJOjpURVNUKToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OmNoZWNrRnJhbWVMb2FkU3RhdGVB
bmRDcmVhdGVOZXdQYWdlKToKKwogMjAyMS0wMy0xNiAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVy
ZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbRVdTXSBydW4tbGF5b3V0LXRlc3Rz
LXdpdGhvdXQtcGF0Y2ggc3RlcCBzaG91bGQgb25seSByZXRyeSB0aGUgdGVzdHMgdGhhdCBmYWls
ZWQgb24gdGhlIHByZXZpb3VzIHN0ZXBzLgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwCmluZGV4IDdiYzM1MjRmMmJkYjlkYmQ3YTQz
NWEzY2M2YWQzODMyZTk0NGVkZDUuLjg0MzBhMmU4NWE3YjBlMmFhZDYwZjFlYjNmODM4YTc1NDc0
ZGVhNWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFs
QWxlcnRzU1BJLmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2Rh
bEFsZXJ0c1NQSS5jcHAKQEAgLTEzNyw2ICsxMzcsMzYgQEAgVEVTVChXZWJLaXQsIE1vZGFsQWxl
cnRzU1BJKQogICAgIFdLUGFnZUxvYWRVUkwod2ViVmlldy5wYWdlKCksIHVybC5nZXQoKSk7CiAK
ICAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIG9wZW5lZFdlYlZpZXcgPSBuaWw7Cit9CisKK3N0
YXRpYyBXS1BhZ2VSZWYgY2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2UoV0tQYWdl
UmVmIHBhZ2UsIFdLVVJMUmVxdWVzdFJlZiB1cmxSZXF1ZXN0LCBXS0RpY3Rpb25hcnlSZWYgZmVh
dHVyZXMsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24gbW91
c2VCdXR0b24sIGNvbnN0IHZvaWQgKmNsaWVudEluZm8pCit7CisgICAgYXV0byBtYWluRnJhbWUg
PSBXS1BhZ2VHZXRNYWluRnJhbWUocGFnZSk7CisgICAgQVNTRVJUKG1haW5GcmFtZSk7CisgICAg
RVhQRUNUX0VRKGtXS0ZyYW1lTG9hZFN0YXRlQ29tbWl0dGVkLCBXS0ZyYW1lR2V0RnJhbWVMb2Fk
U3RhdGUobWFpbkZyYW1lKSk7CisgICAgZG9uZSA9IHRydWU7CisgICAgcmV0dXJuIGNyZWF0ZU5l
d1BhZ2UocGFnZSwgdXJsUmVxdWVzdCwgZmVhdHVyZXMsIG1vZGlmaWVycywgbW91c2VCdXR0b24s
IGNsaWVudEluZm8pOworfQorCitURVNUKFdlYktpdCwgQ3JlYXRlTmV3UGFnZURlbGVnYXRlRnJh
bWVMb2FkU3RhdGUpCit7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IDI1OyArK2kpIHsK
KyAgICAgICAgZG9uZSA9IGZhbHNlOworICAgICAgICBhdXRvIGNvbnRleHQgPSBhZG9wdFdLKFdL
Q29udGV4dENyZWF0ZVdpdGhDb25maWd1cmF0aW9uKG51bGxwdHIpKTsKKyAgICAgICAgUGxhdGZv
cm1XZWJWaWV3IHdlYlZpZXcoY29udGV4dC5nZXQoKSk7CisKKyAgICAgICAgV0tQYWdlVUlDbGll
bnRWNSB1aUNsaWVudDsKKyAgICAgICAgbWVtc2V0KCZ1aUNsaWVudCwgMCwgc2l6ZW9mKHVpQ2xp
ZW50KSk7CisgICAgICAgIHVpQ2xpZW50LmJhc2UudmVyc2lvbiA9IDU7CisgICAgICAgIHVpQ2xp
ZW50LmNyZWF0ZU5ld1BhZ2UgPSBjaGVja0ZyYW1lTG9hZFN0YXRlQW5kQ3JlYXRlTmV3UGFnZTsK
KyAgICAgICAgV0tQYWdlU2V0UGFnZVVJQ2xpZW50KHdlYlZpZXcucGFnZSgpLCAmdWlDbGllbnQu
YmFzZSk7CisKKyAgICAgICAgYXV0byBodG1sU3RyaW5nID0gVXRpbDo6dG9XSygiPHNjcmlwdD5v
cGVuKCdhYm91dDpibGFuaycsICdfYmxhbmsnKTwvc2NyaXB0PiIpOworICAgICAgICBXS1BhZ2VM
b2FkSFRNTFN0cmluZyh3ZWJWaWV3LnBhZ2UoKSwgaHRtbFN0cmluZy5nZXQoKSwgbnVsbHB0cik7
CisgICAgICAgIFV0aWw6OnJ1bigmZG9uZSk7CisgICAgICAgIG9wZW5lZFdlYlZpZXcgPSBuaWw7
CisgICAgfQogfQogCiB9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423372</attachid>
            <date>2021-03-16 11:52:50 -0700</date>
            <delta_ts>2021-03-16 16:43:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210316115249.patch</filename>
            <type>text/plain</type>
            <size>9380</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NDgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI1ZDZjMGI0ZGM1ZDg0OWQ4
YzI5MmU2ZDg4YWRiMjFlOThiZDhmMzAuLjZjMjg3MDJkNzE0YjZhM2U3MGI3MmM0ZmIyMzU1ZDRh
Y2U1YjRhZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRD
b21taXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFn
ZSBpcworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg
V2ViUGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhl
CisgICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3
YXMgY2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5p
bmcgaWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2Fk
LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIHVwZGF0ZWQgdGhlIElQQzo6Q29u
bmVjdGlvbiBjb2RlIHNvIHRoYXQgYXN5bmMgbWVzc2FnZXMgdGhhdCBhcmUgd2VyZSBhbHJlYWR5
IHF1ZXVlZAorICAgICAgICBnZXQgcHJvY2Vzc2VkIGJlZm9yZSB0aGUgc3luYyBtZXNzYWdlLCBp
biBvcmRlciB0byBtYWludGFpbiBvcmRlcmluZy4KKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6U3luY01lc3NhZ2VTdGF0
ZTo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisKIDIwMjEtMDMtMTYgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gU3RvcCB1
c2luZyBnX21lbWR1cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcApp
bmRleCA0NDA2YjhhODdjNGUwNzhmNGQ3N2YxNzMzY2Q1NzRjMzVjOWMwYWJiLi43NzAzNDIwNTZl
MDExNGY1ZTc4ZGQyYjhjYzVmYjcwZGFjZWQ1OWY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1BsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L0lQQy9Db25uZWN0aW9uLmNwcApAQCAtMTQ5LDYgKzE0OSwxNiBAQCBib29sIENvbm5lY3Rpb246
OlN5bmNNZXNzYWdlU3RhdGU6OnByb2Nlc3NJbmNvbWluZ01lc3NhZ2UoQ29ubmVjdGlvbiYgY29u
bmVjdGlvbgogICAgIHsKICAgICAgICAgYXV0byBsb2NrZXIgPSBob2xkTG9jayhtX211dGV4KTsK
ICAgICAgICAgc2hvdWxkRGlzcGF0Y2ggPSBtX2RpZFNjaGVkdWxlRGlzcGF0Y2hNZXNzYWdlc1dv
cmtTZXQuYWRkKCZjb25uZWN0aW9uKS5pc05ld0VudHJ5OworICAgICAgICAvLyBQcmVzZXJ2ZSBv
cmRlcmluZyBteSBkaXNwYXRjaGluZyBwZW5kaW5nIGFzeW5jIG1lc3NhZ2VzIGZpcnN0LgorICAg
ICAgICBBU1NFUlQoY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2FnZXNNdXRleC5pc0hlbGQoKSk7
CisgICAgICAgIERlcXVlPHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPj4gcmVtYWluaW5nSW5jb21p
bmdNZXNzYWdlczsKKyAgICAgICAgd2hpbGUgKCFjb25uZWN0aW9uLm1faW5jb21pbmdNZXNzYWdl
cy5pc0VtcHR5KCkpIHsKKyAgICAgICAgICAgIGlmIChjb25uZWN0aW9uLm1faW5jb21pbmdNZXNz
YWdlcy5maXJzdCgpLT5pZ25vcmVzRnVsbHlTeW5jaHJvbm91c01vZGUoKSkKKyAgICAgICAgICAg
ICAgICByZW1haW5pbmdJbmNvbWluZ01lc3NhZ2VzLmFwcGVuZChjb25uZWN0aW9uLm1faW5jb21p
bmdNZXNzYWdlcy50YWtlRmlyc3QoKSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAg
ICAgbV9tZXNzYWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKENv
bm5lY3Rpb25BbmRJbmNvbWluZ01lc3NhZ2UgeyBjb25uZWN0aW9uLCBjb25uZWN0aW9uLm1faW5j
b21pbmdNZXNzYWdlcy50YWtlRmlyc3QoKSB9KTsKKyAgICAgICAgfQorICAgICAgICBjb25uZWN0
aW9uLm1faW5jb21pbmdNZXNzYWdlcyA9IFdURk1vdmUocmVtYWluaW5nSW5jb21pbmdNZXNzYWdl
cyk7CiAgICAgICAgIG1fbWVzc2FnZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5
LmFwcGVuZChDb25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlIHsgY29ubmVjdGlvbiwgV1RGTW92
ZShtZXNzYWdlKSB9KTsKICAgICB9CiAKQEAgLTQ1Miw2ICs0NjIsOCBAQCBib29sIENvbm5lY3Rp
b246OnNlbmRNZXNzYWdlKFVuaXF1ZVJlZjxFbmNvZGVyPiYmIGVuY29kZXIsIE9wdGlvblNldDxT
ZW5kT3B0aW9uPgogICAgICAgICB3cmFwcGVkTWVzc2FnZS0+d3JhcEZvclRlc3RpbmcoV1RGTW92
ZShlbmNvZGVyKSk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxib29sPihzZW5kU3luY01l
c3NhZ2Uoc3luY1JlcXVlc3RJRCwgV1RGTW92ZSh3cmFwcGVkTWVzc2FnZSksIFRpbWVvdXQ6Omlu
ZmluaXR5KCksIHsgfSkpOwogICAgIH0KKyAgICBpZiAoc2VuZE9wdGlvbnMuY29udGFpbnMoU2Vu
ZE9wdGlvbjo6SWdub3JlRnVsbHlTeW5jaHJvbm91c01vZGUpKQorICAgICAgICBlbmNvZGVyLT5z
ZXRJZ25vcmVzRnVsbHlTeW5jaHJvbm91c01vZGUoKTsKIAogICAgIGlmIChzZW5kT3B0aW9ucy5j
b250YWlucyhTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5j
UmVwbHkpCiAgICAgICAgICYmICghbV9vbmx5U2VuZE1lc3NhZ2VzQXNEaXNwYXRjaFdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5V2hlblByb2Nlc3NpbmdTdWNoQU1lc3NhZ2UKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvRGVjb2Rlci5jcHAKaW5kZXggMTBjMTU5ZTZmNTIxMjI2YTEwNGVlNWI2NjYyNjE1
M2I4YjJiNjEwOC4uZmM2YTBjZjRiZmM3ZGI4ZGI0YWViY2Q0YzcwNDJiZWFlMWM2OWE0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5jcHAKQEAgLTE0Nyw2ICsxNDcsMTEgQEAg
Ym9vbCBEZWNvZGVyOjpzaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKSBj
b25zdAogICAgIHJldHVybiBtX21lc3NhZ2VGbGFncy5jb250YWlucyhNZXNzYWdlRmxhZ3M6OlVz
ZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyk7CiB9CiAKK2Jvb2wgRGVjb2Rlcjo6aWdu
b3Jlc0Z1bGx5U3luY2hyb25vdXNNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9tZXNzYWdl
RmxhZ3MuY29udGFpbnMoTWVzc2FnZUZsYWdzOjpJZ25vcmVGdWxseVN5bmNocm9ub3VzTW9kZSk7
Cit9CisKICNpZiBQTEFURk9STShNQUMpCiB2b2lkIERlY29kZXI6OnNldEltcG9ydGFuY2VBc3Nl
cnRpb24oc3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+IGFzc2VydGlvbikKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaCBiL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuaAppbmRleCAwZjNhYzIzYjRjNWI3Y2YyODVm
YTU5MDdmMTYxNmUwZGI3MTU2ZmJjLi5kZjM3NTY3MzE0YjY4NmY3YzI0OTFjNGEzYTJjMTAxZTRi
YzAxMDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgK
KysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCkBAIC02NCw2ICs2NCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGlzU3luY01lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtZXNz
YWdlSXNTeW5jKG1lc3NhZ2VOYW1lKCkpOyB9CiAgICAgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGlu
Z0ZvclN5bmNSZXBseSBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBs
eSgpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0
aW5nKCkgY29uc3Q7CisgICAgYm9vbCBpZ25vcmVzRnVsbHlTeW5jaHJvbm91c01vZGUoKSBjb25z
dDsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNldEltcG9ydGFuY2VBc3NlcnRpb24o
c3RkOjp1bmlxdWVfcHRyPEltcG9ydGFuY2VBc3NlcnRpb24+KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuY3BwIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvRW5jb2Rlci5jcHAKaW5kZXggZWM5ZThjZmJlNTc1Mjc3OTQ4MjViZmZkNGY0YWRmYWQ0
YjUyNGU5Yi4uYjMxYTRmNTBlMDc1ZDNmN2QwOWY0ODIxY2VjN2FlMGQzZDBlNDEzNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAKQEAgLTEyMyw2ICsxMjMsMTEgQEAgdm9p
ZCBFbmNvZGVyOjpzZXRGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKQogICAgIG1lc3Nh
Z2VGbGFncygpLmFkZChNZXNzYWdlRmxhZ3M6OlVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVz
dGluZyk7CiB9CiAKK3ZvaWQgRW5jb2Rlcjo6c2V0SWdub3Jlc0Z1bGx5U3luY2hyb25vdXNNb2Rl
KCkKK3sKKyAgICBtZXNzYWdlRmxhZ3MoKS5hZGQoTWVzc2FnZUZsYWdzOjpJZ25vcmVGdWxseVN5
bmNocm9ub3VzTW9kZSk7Cit9CisKIHZvaWQgRW5jb2Rlcjo6d3JhcEZvclRlc3RpbmcoVW5pcXVl
UmVmPEVuY29kZXI+JiYgb3JpZ2luYWwpCiB7CiAgICAgQVNTRVJUKGlzU3luY01lc3NhZ2UoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmgKaW5kZXggNWFhZGVjYzcyNzFlNjUxZTdk
YjAyMzE5YWY3NTEzNDYxYjA3YzVmZi4uNjQ2ZmIyOGUxOWM0M2I1MmYyMGU3Y2EwNzc0NTQ1NDk2
MGMyOGJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0VuY29kZXIuaApAQCAtNTYsNiArNTYs
NyBAQCBwdWJsaWM6CiAgICAgU2hvdWxkRGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBz
aG91bGREaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0OwogCiAg
ICAgdm9pZCBzZXRGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHNl
dElnbm9yZXNGdWxseVN5bmNocm9ub3VzTW9kZSgpOwogCiAgICAgdm9pZCB3cmFwRm9yVGVzdGlu
ZyhVbmlxdWVSZWY8RW5jb2Rlcj4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL01lc3NhZ2VGbGFncy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVz
c2FnZUZsYWdzLmgKaW5kZXggYzM1MzY0YTg1NDU2YjljZDcxZTFlY2JkZDU4YWJhZjgzY2ZlZjE1
Mi4uYjkxN2Q1NjdiNDAyMWQ1YWZhZmQwNWEwMGE1ZjFmZmYwNmQzNzE1NSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmgKKysrIGIvU291cmNlL1dl
YktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmgKQEAgLTMxLDYgKzMxLDcgQEAgZW51bSBj
bGFzcyBNZXNzYWdlRmxhZ3MgOiB1aW50OF90IHsKICAgICBEaXNwYXRjaE1lc3NhZ2VXaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSA9IDEgPDwgMCwKICAgICBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGlu
Z0ZvclVuYm91bmRlZFN5bmNSZXBseSA9IDEgPDwgMSwKICAgICBVc2VGdWxseVN5bmNocm9ub3Vz
TW9kZUZvclRlc3RpbmcgPSAxIDw8IDIsCisgICAgSWdub3JlRnVsbHlTeW5jaHJvbm91c01vZGUg
PSAxIDw8IDMsCiB9OwogCiBlbnVtIGNsYXNzIFNob3VsZERpc3BhdGNoV2hlbldhaXRpbmdGb3JT
eW5jUmVwbHkgOiB1aW50OF90IHsKQEAgLTQ4LDcgKzQ5LDggQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxJUEM6Ok1lc3NhZ2VGbGFncz4gewogICAgICAgICBJUEM6Ok1lc3NhZ2VGbGFn
cywKICAgICAgICAgSVBDOjpNZXNzYWdlRmxhZ3M6OkRpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5n
Rm9yU3luY1JlcGx5LAogICAgICAgICBJUEM6Ok1lc3NhZ2VGbGFnczo6RGlzcGF0Y2hNZXNzYWdl
V2hlbldhaXRpbmdGb3JVbmJvdW5kZWRTeW5jUmVwbHksCi0gICAgICAgIElQQzo6TWVzc2FnZUZs
YWdzOjpVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcKKyAgICAgICAgSVBDOjpNZXNz
YWdlRmxhZ3M6OlVzZUZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZywKKyAgICAgICAgSVBD
OjpNZXNzYWdlRmxhZ3M6Oklnbm9yZUZ1bGx5U3luY2hyb25vdXNNb2RlCiAgICAgPjsKIH07CiAK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4MzM1
ZDJkZjY3OThmMDNjNGFlZTg5ZmVkYjExMjY4ZTE5YWZiNzBiLi4yMzI0NmQ0NzFiZTNmNWQyMzUz
MzhiMTk0ZWVkYTIzODgzMDE4MGIyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEyMSk6
IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpjaGVja0ZyYW1lTG9hZFN0YXRlQW5kQ3Jl
YXRlTmV3UGFnZSk6CisKIDIwMjEtMDMtMTYgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBw
bGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0gRGVjb2RlIG11bHRpcGxlIGNvbW1pdCBy
ZXByZXNlbnRhdGlvbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0L01vZGFsQWxlcnRzU1BJLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L01vZGFsQWxlcnRzU1BJLmNwcAppbmRleCA3YmMzNTI0ZjJiZGI5ZGJkN2E0MzVhM2NjNmFkMzgz
MmU5NDRlZGQ1Li44NDMwYTJlODVhN2IwZTJhYWQ2MGYxZWIzZjgzOGE3NTQ3NGRlYTVmIDEwMDY0
NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQSS5j
cHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEku
Y3BwCkBAIC0xMzcsNiArMTM3LDM2IEBAIFRFU1QoV2ViS2l0LCBNb2RhbEFsZXJ0c1NQSSkKICAg
ICBXS1BhZ2VMb2FkVVJMKHdlYlZpZXcucGFnZSgpLCB1cmwuZ2V0KCkpOwogCiAgICAgVXRpbDo6
cnVuKCZkb25lKTsKKyAgICBvcGVuZWRXZWJWaWV3ID0gbmlsOworfQorCitzdGF0aWMgV0tQYWdl
UmVmIGNoZWNrRnJhbWVMb2FkU3RhdGVBbmRDcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBX
S1VSTFJlcXVlc3RSZWYgdXJsUmVxdWVzdCwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2
ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBj
b25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIGF1dG8gbWFpbkZyYW1lID0gV0tQYWdlR2V0
TWFpbkZyYW1lKHBhZ2UpOworICAgIEFTU0VSVChtYWluRnJhbWUpOworICAgIEVYUEVDVF9FUShr
V0tGcmFtZUxvYWRTdGF0ZUNvbW1pdHRlZCwgV0tGcmFtZUdldEZyYW1lTG9hZFN0YXRlKG1haW5G
cmFtZSkpOworICAgIGRvbmUgPSB0cnVlOworICAgIHJldHVybiBjcmVhdGVOZXdQYWdlKHBhZ2Us
IHVybFJlcXVlc3QsIGZlYXR1cmVzLCBtb2RpZmllcnMsIG1vdXNlQnV0dG9uLCBjbGllbnRJbmZv
KTsKK30KKworVEVTVChXZWJLaXQsIENyZWF0ZU5ld1BhZ2VEZWxlZ2F0ZUZyYW1lTG9hZFN0YXRl
KQoreworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCAyNTsgKytpKSB7CisgICAgICAgIGRv
bmUgPSBmYWxzZTsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRvcHRXSyhXS0NvbnRleHRDcmVh
dGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgICAgIFBsYXRmb3JtV2ViVmlldyB3
ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworCisgICAgICAgIFdLUGFnZVVJQ2xpZW50VjUgdWlDbGll
bnQ7CisgICAgICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVvZih1aUNsaWVudCkpOworICAg
ICAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA1OworICAgICAgICB1aUNsaWVudC5jcmVhdGVO
ZXdQYWdlID0gY2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2U7CisgICAgICAgIFdL
UGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVpQ2xpZW50LmJhc2UpOworCisg
ICAgICAgIGF1dG8gaHRtbFN0cmluZyA9IFV0aWw6OnRvV0soIjxzY3JpcHQ+b3BlbignYWJvdXQ6
YmxhbmsnLCAnX2JsYW5rJyk8L3NjcmlwdD4iKTsKKyAgICAgICAgV0tQYWdlTG9hZEhUTUxTdHJp
bmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0KCksIG51bGxwdHIpOworICAgICAgICBV
dGlsOjpydW4oJmRvbmUpOworICAgICAgICBvcGVuZWRXZWJWaWV3ID0gbmlsOworICAgIH0KIH0K
IAogfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="commit-queue"
          id="442763"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423415</attachid>
            <date>2021-03-16 16:54:26 -0700</date>
            <delta_ts>2021-03-16 18:46:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210316165426.patch</filename>
            <type>text/plain</type>
            <size>12907</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTMyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1MThjMWUwN2U3NzZhYjk4
NWMyMTIwM2U1ZjIzYTE1ZjI2NDI4M2EuLjY5NmE1YjQ2OTMzNWQ1NTgwNzEyNTZjNmNmMTg0YmVk
OWJiNTRjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRDb21t
aXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFnZSBp
cworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgV2Vi
UGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhlCisg
ICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3YXMg
Y2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5pbmcg
aWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2FkLgor
CisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIGFkZGVkIHRoZSBTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBvbiB0aGUKKyAg
ICAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyAoYXMgd2VsbCBhcyBvdGhlciBsb2FkLXJl
bGF0ZWQgbWVzc2FnZXMgdG8gbWFpbnRhaW4gcmVsYXRpdmUgb3JkZXJpbmcpLgorICAgICAgICBU
aGlzIGd1YXJhbnRlZXMgdGhhdCB0aGUgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyB3aWxsIGFs
d2F5cyBnZXQgcHJvY2Vzc2VkICpiZWZvcmUqIHRoZQorICAgICAgICBXZWJQYWdlUHJveHk6OkNy
ZWF0ZVdlYlBhZ2UgSVBDIChmb3IgdGhlIHBhZ2UgdGhhdCB3YXMganVzdCBjb21taXR0ZWQpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDIxLTAz
LTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1Nd
IGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFu
IGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDM2NTEyMDI1ZWNlYWNkZDM1NWFmZmM1OWRlZTE0ZmRkM2I3MDdmZTAuLmFj
MzA4NGFlNWRjYWVjZDVlOWRlZTU4ZDZmMjA1Y2NhYWJmZjE0YmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKQogICAgIGF1dG8mIHVucmVh
Y2hhYmxlVVJMID0gcHJvdmlzaW9uYWxMb2FkZXIudW5yZWFjaGFibGVVUkwoKTsKIAogICAgIC8v
IE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlE
KCksIG1fZnJhbWUtPmluZm8oKSwgcHJvdmlzaW9uYWxMb2FkZXIucmVxdWVzdCgpLCBwcm92aXNp
b25hbExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLCB1bnJlYWNoYWJsZVVSTCwgVXNlckRhdGEo
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0
YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwg
bV9mcmFtZS0+aW5mbygpLCBwcm92aXNpb25hbExvYWRlci5yZXF1ZXN0KCksIHByb3Zpc2lvbmFs
TG9hZGVyLm5hdmlnYXRpb25JRCgpLCB1cmwsIHVucmVhY2hhYmxlVVJMLCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4VGl0
bGVMZW5ndGggPSAxMDAwOyAvLyBDbG9zZXN0IHBvd2VyIG9mIDEwIGFib3ZlIHRoZSBXM0MgcmVj
b21tZW5kYXRpb24gZm9yIFRpdGxlIGxlbmd0aC4KQEAgLTU3MSw3ICs1NzEsOSBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5z
ZWN1cmVDb250ZW50PiBoYQogICAgICAgICB1c2VkTGVnYWN5VExTID0gdXNlZExlZ2FjeVRMU0Zy
b21QYWdlQ2FjaGUgPT0gVXNlZExlZ2FjeVRMUzo6WWVzOwogICAgIAogICAgIC8vIE5vdGlmeSB0
aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygp
LCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgp
LCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgp
LCB2YWx1ZU9yQ29tcHV0ZShkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5m
bygpLCBbXSB7IHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oKTsgfSksIHVzZWRMZWdhY3lUTFMsIG1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50KCksIGhhc0lu
c2VjdXJlQ29udGVudCwgZG9jdW1lbnRMb2FkZXIubW91c2VFdmVudFBvbGljeSgpLCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICAvLyBXZSBwYXNzIHRoZSBTZW5kT3B0aW9uOjpEaXNw
YXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBiZWNhdXNlIHdlIHdh
bnQgdG8gbWFrZSBzdXJlIHRoZSBVSVByb2Nlc3Mga25vd3Mgd2UndmUgY29tbWl0dGVkIHRoZSBs
b2FkICpiZWZvcmUqCisgICAgLy8gaXQgcmVjZWl2ZXMgc3luY2hyb25vdXMgSVBDIGZvciBvdGhl
ciBvcGVyYXRpb25zIChlLmcuIEpTIGFsZXJ0cywgd2luZG93Lm9wZW4pLgorICAgIHdlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCks
IGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgpLCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNv
cmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCB2YWx1ZU9yQ29tcHV0ZShkb2N1bWVudExv
YWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLCBbXSB7IHJldHVybiBDZXJ0aWZpY2F0
ZUluZm8oKTsgfSksIHVzZWRMZWdhY3lUTFMsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVu
dCgpLT5pc1BsdWdpbkRvY3VtZW50KCksIGhhc0luc2VjdXJlQ29udGVudCwgZG9jdW1lbnRMb2Fk
ZXIubW91c2VFdmVudFBvbGljeSgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50
cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpLCBJUEM6OlNl
bmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAg
ICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lLnB0cigpKTsKIH0KIApAQCAtNjA3LDcg
KzYwOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAKICAgICAvLyBOb3RpZnkgdGhlIFVJ
UHJvY2Vzcy4KICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29yZUZy
YW1lKCk7Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZv
KCksIHJlcXVlc3QsIG5hdmlnYXRpb25JRCwgY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25h
bExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLnN0cmluZygpLCBlcnJvciwgd2lsbENvbnRpbnVl
TG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIHJlcXVlc3QsIG5hdmlnYXRpb25JRCwg
Y29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgp
LnN0cmluZygpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSku
Z2V0KCkpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxvYWQgbGlzdGVuZXIsIG5vdGlm
eSBpdC4KICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciogbG9hZExpc3RlbmVyID0gbV9m
cmFtZS0+bG9hZExpc3RlbmVyKCkpCkBAIC02MzEsNyArNjMzLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoKndlYlBhZ2UsIG1fZnJhbWUsIGVycm9yLCB1c2VyRGF0YSk7CiAK
ICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZhaWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBt
X2ZyYW1lLT5pbmZvKCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3QoKSwgbmF2aWdhdGlvbklELCBl
cnJvciwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1Rv
SGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQo
KSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIG5hdmlnYXRpb25J
RCwgZXJyb3IsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAogICAgIC8vIElmIHdl
IGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpAQCAtNjUy
LDcgKzY1NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKCkKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgp
LmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKCp3ZWJQYWdlLCBtX2ZyYW1lLCB1c2VyRGF0
YSk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgbmF2aWdhdGlvbklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsK
KyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbmF2aWdhdGlvbklELCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKICAgICB3ZWJQYWdlLT5kaWRGaW5pc2hEb2N1bWVu
dExvYWQobV9mcmFtZSk7CiB9CkBAIC02NzIsNyArNjc0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1
bmRsZUxvYWRlckNsaWVudCgpLmRpZEZpbmlzaExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFt
ZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCi0gICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hMb2FkRm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3Qo
KSwgbmF2aWdhdGlvbklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaExvYWRGb3JGcmFtZShtX2Zy
YW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgZG9jdW1lbnRMb2FkZXIucmVxdWVzdCgp
LCBuYXZpZ2F0aW9uSUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9y
bU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAogICAgIC8v
IElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1l
OjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpA
QCAtMTIxMyw3ICsxMjE1LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBkYXRlR2xv
YmFsSGlzdG9yeSgpCiAgICAgZGF0YS5vcmlnaW5hbFJlcXVlc3QgPSBsb2FkZXItPm9yaWdpbmFs
UmVxdWVzdENvcHkoKTsKICAgICBkYXRhLnJlc3BvbnNlID0gbG9hZGVyLT5yZXNwb25zZSgpOwog
Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YShkYXRhLCBtX2ZyYW1lLT5mcmFtZUlEKCkpKTsKKyAgICB3ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZE5hdmlnYXRlV2l0aE5hdmlnYXRpb25E
YXRhKGRhdGEsIG1fZnJhbWUtPmZyYW1lSUQoKSksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hN
ZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIH0KIAogdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6dXBkYXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKQpAQCAtMTIyOCwx
MyArMTIzMCwxMyBAQCB2b2lkIFdlYkZyYW1lTG9hZGVyQ2xpZW50Ojp1cGRhdGVHbG9iYWxIaXN0
b3J5UmVkaXJlY3RMaW5rcygpCiAgICAgLy8gQ2xpZW50IHJlZGlyZWN0CiAgICAgaWYgKCFsb2Fk
ZXItPmNsaWVudFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLmlzTnVsbCgpKSB7CiAgICAgICAg
IHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkUGVyZm9ybUNsaWVudFJl
ZGlyZWN0KAotICAgICAgICAgICAgbG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3Rv
cnkoKSwgbG9hZGVyLT5jbGllbnRSZWRpcmVjdERlc3RpbmF0aW9uRm9ySGlzdG9yeSgpLCBtX2Zy
YW1lLT5mcmFtZUlEKCkpKTsKKyAgICAgICAgICAgIGxvYWRlci0+Y2xpZW50UmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5KCksIGxvYWRlci0+Y2xpZW50UmVkaXJlY3REZXN0aW5hdGlvbkZvckhpc3Rv
cnkoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3Nh
Z2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogICAgIH0KIAogICAgIC8vIFNlcnZlciBy
ZWRpcmVjdAogICAgIGlmICghbG9hZGVyLT5zZXJ2ZXJSZWRpcmVjdFNvdXJjZUZvckhpc3Rvcnko
KS5pc051bGwoKSkgewogICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJv
eHk6OkRpZFBlcmZvcm1TZXJ2ZXJSZWRpcmVjdCgKLSAgICAgICAgICAgIGxvYWRlci0+c2VydmVy
UmVkaXJlY3RTb3VyY2VGb3JIaXN0b3J5KCksIGxvYWRlci0+c2VydmVyUmVkaXJlY3REZXN0aW5h
dGlvbkZvckhpc3RvcnkoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSk7CisgICAgICAgICAgICBsb2Fk
ZXItPnNlcnZlclJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLCBsb2FkZXItPnNlcnZlclJlZGly
ZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5KCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIElQQzo6U2Vu
ZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKICAg
ICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNw
cAppbmRleCBmOWQ5MzJlMDBhNDljM2ZmYzM0MTdmYmEyYWNhMmM4Y2NkYjZhMWRiLi5mYjdhZDg4
NDA4Y2VhZmVkZWNlOWRmMjUxYWZlMTU0YzQyZmI3NmI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCkBAIC0xMDQsNyArMTA0LDcgQEAgc3RhdGlj
IHVpbnQ2NF90IGdlbmVyYXRlTGlzdGVuZXJJRCgpCiAKIHZvaWQgV2ViRnJhbWU6OmluaXRXaXRo
Q29yZU1haW5GcmFtZShXZWJQYWdlJiBwYWdlLCBGcmFtZSYgY29yZUZyYW1lKQogewotICAgIHBh
Z2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJ
RCgpKSk7CisgICAgcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZENyZWF0ZU1h
aW5GcmFtZShmcmFtZUlEKCkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKICAgICBtX2NvcmVGcmFtZSA9IG1ha2VXZWFrUHRy
KGNvcmVGcmFtZSk7CiAgICAgbV9jb3JlRnJhbWUtPnRyZWUoKS5zZXROYW1lKFN0cmluZygpKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCAyMmZj
NjAwNGIwYjIxYjI4MjNlMjVjOTgyMzM4MGJkZWNhZGIzMGVhLi4wYTlkZjA2OTc1Zjk0NWY0Zjc0
OTU2MTZhODM3MTBjMDhlNmNkYTdlIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIv
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEyMSk6
IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAg
ICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6Y2hl
Y2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2UpOgorICAgICAgICAoVGVzdFdlYktpdEFQ
STo6VEVTVCk6CisKIDIwMjEtMDMtMTYgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtyZXN1bHRzZGJweV0gQWxsb3cgdXNlciB0byBjaGFuZ2UgY29tbWl0
IHJlcHJlc2VudGF0aW9uCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdC9Nb2RhbEFsZXJ0c1NQSS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dC9Nb2RhbEFsZXJ0c1NQSS5jcHAKaW5kZXggN2JjMzUyNGYyYmRiOWRiZDdhNDM1YTNjYzZhZDM4
MzJlOTQ0ZWRkNS4uNzBmMDRjODhjYTdmMWFmZDg1MzgwNmI5MWRiZDRlMjg4ODVmNjEyYSAxMDA2
NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEku
Y3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJ
LmNwcApAQCAtMTM5LDYgKzEzOSwzNSBAQCBURVNUKFdlYktpdCwgTW9kYWxBbGVydHNTUEkpCiAg
ICAgVXRpbDo6cnVuKCZkb25lKTsKIH0KIAorc3RhdGljIFdLUGFnZVJlZiBjaGVja0ZyYW1lTG9h
ZFN0YXRlQW5kQ3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVmIHVy
bFJlcXVlc3QsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xpZW50
SW5mbykKK3sKKyAgICBhdXRvIG1haW5GcmFtZSA9IFdLUGFnZUdldE1haW5GcmFtZShwYWdlKTsK
KyAgICBBU1NFUlQobWFpbkZyYW1lKTsKKyAgICBFWFBFQ1RfRVEoa1dLRnJhbWVMb2FkU3RhdGVD
b21taXR0ZWQsIFdLRnJhbWVHZXRGcmFtZUxvYWRTdGF0ZShtYWluRnJhbWUpKTsKKyAgICBkb25l
ID0gdHJ1ZTsKKyAgICByZXR1cm4gY3JlYXRlTmV3UGFnZShwYWdlLCB1cmxSZXF1ZXN0LCBmZWF0
dXJlcywgbW9kaWZpZXJzLCBtb3VzZUJ1dHRvbiwgY2xpZW50SW5mbyk7Cit9CisKK1RFU1QoV2Vi
S2l0LCBDcmVhdGVOZXdQYWdlRGVsZWdhdGVGcmFtZUxvYWRTdGF0ZSkKK3sKKyAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgMjU7ICsraSkgeworICAgICAgICBkb25lID0gZmFsc2U7CisgICAg
ICAgIG9wZW5lZFdlYlZpZXcgPSBuaWw7CisgICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0so
V0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3VyYXRpb24obnVsbHB0cikpOworICAgICAgICBQbGF0
Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0LmdldCgpKTsKKworICAgICAgICBXS1BhZ2VVSUNs
aWVudFY1IHVpQ2xpZW50OworICAgICAgICBtZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlD
bGllbnQpKTsKKyAgICAgICAgdWlDbGllbnQuYmFzZS52ZXJzaW9uID0gNTsKKyAgICAgICAgdWlD
bGllbnQuY3JlYXRlTmV3UGFnZSA9IGNoZWNrRnJhbWVMb2FkU3RhdGVBbmRDcmVhdGVOZXdQYWdl
OworICAgICAgICBXS1BhZ2VTZXRQYWdlVUlDbGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVu
dC5iYXNlKTsKKworICAgICAgICBhdXRvIGh0bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8c2NyaXB0
Pm9wZW4oJ2Fib3V0OmJsYW5rJywgJ19ibGFuaycpPC9zY3JpcHQ+Iik7CisgICAgICAgIFdLUGFn
ZUxvYWRIVE1MU3RyaW5nKHdlYlZpZXcucGFnZSgpLCBodG1sU3RyaW5nLmdldCgpLCBudWxscHRy
KTsKKyAgICAgICAgVXRpbDo6cnVuKCZkb25lKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423422</attachid>
            <date>2021-03-16 18:46:25 -0700</date>
            <delta_ts>2021-03-17 08:22:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210316184624.patch</filename>
            <type>text/plain</type>
            <size>15078</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU1MThjMWUwN2U3NzZhYjk4
NWMyMTIwM2U1ZjIzYTE1ZjI2NDI4M2EuLjY5NmE1YjQ2OTMzNWQ1NTgwNzEyNTZjNmNmMTg0YmVk
OWJiNTRjNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMjEtMDMtMTYgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAg
ICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRDb21t
aXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlV2ViUGFnZSBp
cworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUgV2Vi
UGFnZVByb3h5OjpDcmVhdGVXZWJQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhlCisg
ICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3YXMg
Y2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5pbmcg
aWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2FkLgor
CisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBJIGFkZGVkIHRoZSBTZW5kT3B0aW9uOjpE
aXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBvbiB0aGUKKyAg
ICAgICAgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyAoYXMgd2VsbCBhcyBvdGhlciBsb2FkLXJl
bGF0ZWQgbWVzc2FnZXMgdG8gbWFpbnRhaW4gcmVsYXRpdmUgb3JkZXJpbmcpLgorICAgICAgICBU
aGlzIGd1YXJhbnRlZXMgdGhhdCB0aGUgRGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQyB3aWxsIGFs
d2F5cyBnZXQgcHJvY2Vzc2VkICpiZWZvcmUqIHRoZQorICAgICAgICBXZWJQYWdlUHJveHk6OkNy
ZWF0ZVdlYlBhZ2UgSVBDIChmb3IgdGhlIHBhZ2UgdGhhdCB3YXMganVzdCBjb21taXR0ZWQpLgor
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVu
dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERp
ZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1l
TG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQpOgorCiAyMDIxLTAz
LTE2ICBEZXZpbiBSb3Vzc28gIDxkcm91c3NvQGFwcGxlLmNvbT4KIAogICAgICAgICBbbWFjT1Nd
IGNoYW5nZSBmb3IgdGhlIGxhbmd1YWdlL3N1YnRpdGxlIHRyYWNrcyBidXR0b24gdG8gdXNlIGFu
IGBOU01lbnVgIGluc3RlYWQgb2Ygd2ViIGNvbnRlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGll
bnQuY3BwCmluZGV4IDM2NTEyMDI1ZWNlYWNkZDM1NWFmZmM1OWRlZTE0ZmRkM2I3MDdmZTAuLjE1
MzJiYWE2MjU4N2MyZWZlYTAzMGVjNTk1M2Q1YWQ4Nzc3OWE0OTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZyYW1l
TG9hZGVyQ2xpZW50LmNwcApAQCAtNTI5LDcgKzUyOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJD
bGllbnQ6OmRpc3BhdGNoRGlkU3RhcnRQcm92aXNpb25hbExvYWQoKQogICAgIGF1dG8mIHVucmVh
Y2hhYmxlVVJMID0gcHJvdmlzaW9uYWxMb2FkZXIudW5yZWFjaGFibGVVUkwoKTsKIAogICAgIC8v
IE5vdGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZShtX2ZyYW1lLT5mcmFtZUlE
KCksIG1fZnJhbWUtPmluZm8oKSwgcHJvdmlzaW9uYWxMb2FkZXIucmVxdWVzdCgpLCBwcm92aXNp
b25hbExvYWRlci5uYXZpZ2F0aW9uSUQoKSwgdXJsLCB1bnJlYWNoYWJsZVVSTCwgVXNlckRhdGEo
V2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0
YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVBy
b3h5OjpEaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwg
bV9mcmFtZS0+aW5mbygpLCBwcm92aXNpb25hbExvYWRlci5yZXF1ZXN0KCksIHByb3Zpc2lvbmFs
TG9hZGVyLm5hdmlnYXRpb25JRCgpLCB1cmwsIHVucmVhY2hhYmxlVVJMLCBVc2VyRGF0YShXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdl
dCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2Fp
dGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHN0YXRpYyBjb25zdGV4cHIgdW5zaWduZWQgbWF4VGl0
bGVMZW5ndGggPSAxMDAwOyAvLyBDbG9zZXN0IHBvd2VyIG9mIDEwIGFib3ZlIHRoZSBXM0MgcmVj
b21tZW5kYXRpb24gZm9yIFRpdGxlIGxlbmd0aC4KQEAgLTU3MSw3ICs1NzEsOSBAQCB2b2lkIFdl
YkZyYW1lTG9hZGVyQ2xpZW50OjpkaXNwYXRjaERpZENvbW1pdExvYWQoT3B0aW9uYWw8SGFzSW5z
ZWN1cmVDb250ZW50PiBoYQogICAgICAgICB1c2VkTGVnYWN5VExTID0gdXNlZExlZ2FjeVRMU0Zy
b21QYWdlQ2FjaGUgPT0gVXNlZExlZ2FjeVRMUzo6WWVzOwogICAgIAogICAgIC8vIE5vdGlmeSB0
aGUgVUlQcm9jZXNzLgotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygp
LCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgp
LCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0b21D
b250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgp
LCB2YWx1ZU9yQ29tcHV0ZShkb2N1bWVudExvYWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5m
bygpLCBbXSB7IHJldHVybiBDZXJ0aWZpY2F0ZUluZm8oKTsgfSksIHVzZWRMZWdhY3lUTFMsIG1f
ZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVudCgpLT5pc1BsdWdpbkRvY3VtZW50KCksIGhhc0lu
c2VjdXJlQ29udGVudCwgZG9jdW1lbnRMb2FkZXIubW91c2VFdmVudFBvbGljeSgpLCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICAvLyBXZSBwYXNzIHRoZSBTZW5kT3B0aW9uOjpEaXNw
YXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkgZmxhZyBiZWNhdXNlIHdlIHdh
bnQgdG8gbWFrZSBzdXJlIHRoZSBVSVByb2Nlc3Mga25vd3Mgd2UndmUgY29tbWl0dGVkIHRoZSBs
b2FkICpiZWZvcmUqCisgICAgLy8gaXQgcmVjZWl2ZXMgc3luY2hyb25vdXMgSVBDIGZvciBvdGhl
ciBvcGVyYXRpb25zIChlLmcuIEpTIGFsZXJ0cywgd2luZG93Lm9wZW4pLgorICAgIHdlYlBhZ2Ut
PnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCks
IGRvY3VtZW50TG9hZGVyLm5hdmlnYXRpb25JRCgpLCBkb2N1bWVudExvYWRlci5yZXNwb25zZSgp
Lm1pbWVUeXBlKCksIG1fZnJhbWVIYXNDdXN0b21Db250ZW50UHJvdmlkZXIsIG1fZnJhbWUtPmNv
cmVGcmFtZSgpLT5sb2FkZXIoKS5sb2FkVHlwZSgpLCB2YWx1ZU9yQ29tcHV0ZShkb2N1bWVudExv
YWRlci5yZXNwb25zZSgpLmNlcnRpZmljYXRlSW5mbygpLCBbXSB7IHJldHVybiBDZXJ0aWZpY2F0
ZUluZm8oKTsgfSksIHVzZWRMZWdhY3lUTFMsIG1fZnJhbWUtPmNvcmVGcmFtZSgpLT5kb2N1bWVu
dCgpLT5pc1BsdWdpbkRvY3VtZW50KCksIGhhc0luc2VjdXJlQ29udGVudCwgZG9jdW1lbnRMb2Fk
ZXIubW91c2VFdmVudFBvbGljeSgpLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50
cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpLCBJUEM6OlNl
bmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAg
ICAgd2ViUGFnZS0+ZGlkQ29tbWl0TG9hZChtX2ZyYW1lLnB0cigpKTsKIH0KIApAQCAtNjA3LDcg
KzYwOSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmFpbFByb3Zp
c2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAKICAgICAvLyBOb3RpZnkgdGhlIFVJ
UHJvY2Vzcy4KICAgICBXZWJDb3JlOjpGcmFtZSogY29yZUZyYW1lID0gbV9mcmFtZS0+Y29yZUZy
YW1lKCk7Ci0gICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWls
UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZv
KCksIHJlcXVlc3QsIG5hdmlnYXRpb25JRCwgY29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25h
bExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgpLnN0cmluZygpLCBlcnJvciwgd2lsbENvbnRpbnVl
TG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0
c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChN
ZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsUHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIHJlcXVlc3QsIG5hdmlnYXRpb25JRCwg
Y29yZUZyYW1lLT5sb2FkZXIoKS5wcm92aXNpb25hbExvYWRFcnJvckJlaW5nSGFuZGxlZFVSTCgp
LnN0cmluZygpLCBlcnJvciwgd2lsbENvbnRpbnVlTG9hZGluZywgVXNlckRhdGEoV2ViUHJvY2Vz
czo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1RvSGFuZGxlcyh1c2VyRGF0YS5nZXQoKSku
Z2V0KCkpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRjaE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdG
b3JTeW5jUmVwbHkpOwogCiAgICAgLy8gSWYgd2UgaGF2ZSBhIGxvYWQgbGlzdGVuZXIsIG5vdGlm
eSBpdC4KICAgICBpZiAoV2ViRnJhbWU6OkxvYWRMaXN0ZW5lciogbG9hZExpc3RlbmVyID0gbV9m
cmFtZS0+bG9hZExpc3RlbmVyKCkpCkBAIC02MzEsNyArNjMzLDcgQEAgdm9pZCBXZWJGcmFtZUxv
YWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnJv
cikKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgpLmRpZEZhaWxMb2Fk
V2l0aEVycm9yRm9yRnJhbWUoKndlYlBhZ2UsIG1fZnJhbWUsIGVycm9yLCB1c2VyRGF0YSk7CiAK
ICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkRpZEZhaWxMb2FkRm9yRnJhbWUobV9mcmFtZS0+ZnJhbWVJRCgpLCBt
X2ZyYW1lLT5pbmZvKCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3QoKSwgbmF2aWdhdGlvbklELCBl
cnJvciwgVXNlckRhdGEoV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkudHJhbnNmb3JtT2JqZWN0c1Rv
SGFuZGxlcyh1c2VyRGF0YS5nZXQoKSkuZ2V0KCkpKSk7CisgICAgd2ViUGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpEaWRGYWlsTG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQo
KSwgbV9mcmFtZS0+aW5mbygpLCBkb2N1bWVudExvYWRlci5yZXF1ZXN0KCksIG5hdmlnYXRpb25J
RCwgZXJyb3IsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9wdGlvbjo6RGlz
cGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAogICAgIC8vIElmIHdl
IGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1lOjpMb2Fk
TGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpAQCAtNjUy
LDcgKzY1NCw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OmRpc3BhdGNoRGlkRmluaXNo
RG9jdW1lbnRMb2FkKCkKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1bmRsZUxvYWRlckNsaWVudCgp
LmRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKCp3ZWJQYWdlLCBtX2ZyYW1lLCB1c2VyRGF0
YSk7CiAKICAgICAvLyBOb3RpZnkgdGhlIFVJUHJvY2Vzcy4KLSAgICB3ZWJQYWdlLT5zZW5kKE1l
c3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaERvY3VtZW50TG9hZEZvckZyYW1lKG1fZnJh
bWUtPmZyYW1lSUQoKSwgbmF2aWdhdGlvbklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsK
KyAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvckZyYW1lKG1fZnJhbWUtPmZyYW1lSUQoKSwgbmF2aWdhdGlvbklELCBVc2VyRGF0
YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJE
YXRhLmdldCgpKS5nZXQoKSkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5X
aGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiAKICAgICB3ZWJQYWdlLT5kaWRGaW5pc2hEb2N1bWVu
dExvYWQobV9mcmFtZSk7CiB9CkBAIC02NzIsNyArNjc0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRl
ckNsaWVudDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkKICAgICB3ZWJQYWdlLT5pbmplY3RlZEJ1
bmRsZUxvYWRlckNsaWVudCgpLmRpZEZpbmlzaExvYWRGb3JGcmFtZSgqd2ViUGFnZSwgbV9mcmFt
ZSwgdXNlckRhdGEpOwogCiAgICAgLy8gTm90aWZ5IHRoZSBVSVByb2Nlc3MuCi0gICAgd2ViUGFn
ZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWRGaW5pc2hMb2FkRm9yRnJhbWUobV9m
cmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1lLT5pbmZvKCksIGRvY3VtZW50TG9hZGVyLnJlcXVlc3Qo
KSwgbmF2aWdhdGlvbklELCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsKKyAgICB3ZWJQYWdl
LT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZEZpbmlzaExvYWRGb3JGcmFtZShtX2Zy
YW1lLT5mcmFtZUlEKCksIG1fZnJhbWUtPmluZm8oKSwgZG9jdW1lbnRMb2FkZXIucmVxdWVzdCgp
LCBuYXZpZ2F0aW9uSUQsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9y
bU9iamVjdHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSksIElQQzo6U2VuZE9wdGlv
bjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKIAogICAgIC8v
IElmIHdlIGhhdmUgYSBsb2FkIGxpc3RlbmVyLCBub3RpZnkgaXQuCiAgICAgaWYgKFdlYkZyYW1l
OjpMb2FkTGlzdGVuZXIqIGxvYWRMaXN0ZW5lciA9IG1fZnJhbWUtPmxvYWRMaXN0ZW5lcigpKQpA
QCAtMTAyMiw3ICsxMDI0LDcgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hE
ZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKGNvbnN0IE5hdmlnYXQKICAgICB9CiAKICAg
ICBBU1NFUlQocG9saWN5RGVjaXNpb25Nb2RlID09IFBvbGljeURlY2lzaW9uTW9kZTo6QXN5bmNo
cm9ub3VzKTsKLSAgICBpZiAoIXdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkFzeW5jKG1fZnJhbWUtPmZyYW1lSUQoKSwg
bV9mcmFtZS0+aW5mbygpLCByZXF1ZXN0SWRlbnRpZmllciwgZG9jdW1lbnRMb2FkZXItPm5hdmln
YXRpb25JRCgpLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwgb3JpZ2luYXRpbmdGcmFtZUluZm9EYXRh
LCBvcmlnaW5hdGluZ1BhZ2VJRCwgbmF2aWdhdGlvbkFjdGlvbi5yZXNvdXJjZVJlcXVlc3QoKSwg
cmVxdWVzdCwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IHJlcXVlc3QuaHR0cEJvZHkoKSB9LCBy
ZWRpcmVjdFJlc3BvbnNlLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS50cmFuc2Zv
cm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSksIGxpc3RlbmVySUQpKSkg
eworICAgIGlmICghd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uQXN5bmMobV9mcmFtZS0+ZnJhbWVJRCgpLCBtX2ZyYW1l
LT5pbmZvKCksIHJlcXVlc3RJZGVudGlmaWVyLCBkb2N1bWVudExvYWRlci0+bmF2aWdhdGlvbklE
KCksIG5hdmlnYXRpb25BY3Rpb25EYXRhLCBvcmlnaW5hdGluZ0ZyYW1lSW5mb0RhdGEsIG9yaWdp
bmF0aW5nUGFnZUlELCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291cmNlUmVxdWVzdCgpLCByZXF1ZXN0
LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgcmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZGlyZWN0
UmVzcG9uc2UsIFVzZXJEYXRhKFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLnRyYW5zZm9ybU9iamVj
dHNUb0hhbmRsZXModXNlckRhdGEuZ2V0KCkpLmdldCgpKSwgbGlzdGVuZXJJRCksIElQQzo6U2Vu
ZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KSkgewog
ICAgICAgICBXRUJGUkFNRUxPQURFUkNMSUVOVF9SRUxFQVNFX0xPR19FUlJPUihOZXR3b3JrLCAi
ZGlzcGF0Y2hEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOiBpZ25vcmluZyBiZWNhdXNl
IG9mIGZhaWxpbmcgdG8gc2VuZCBhc3luYyBJUEMiKTsKICAgICAgICAgbV9mcmFtZS0+ZGlkUmVj
ZWl2ZVBvbGljeURlY2lzaW9uKGxpc3RlbmVySUQsIFBvbGljeURlY2lzaW9uIHsgcmVxdWVzdElk
ZW50aWZpZXIsIFdURjo6bnVsbG9wdCwgUG9saWN5QWN0aW9uOjpJZ25vcmUsIDAsIHsgfSwgeyB9
IH0pOwogICAgIH0KQEAgLTEyMTMsNyArMTIxNSw3IEBAIHZvaWQgV2ViRnJhbWVMb2FkZXJDbGll
bnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnkoKQogICAgIGRhdGEub3JpZ2luYWxSZXF1ZXN0ID0gbG9h
ZGVyLT5vcmlnaW5hbFJlcXVlc3RDb3B5KCk7CiAgICAgZGF0YS5yZXNwb25zZSA9IGxvYWRlci0+
cmVzcG9uc2UoKTsKIAotICAgIHdlYlBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RGlkTmF2aWdhdGVXaXRoTmF2aWdhdGlvbkRhdGEoZGF0YSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSk7
CisgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEaWROYXZpZ2F0ZVdp
dGhOYXZpZ2F0aW9uRGF0YShkYXRhLCBtX2ZyYW1lLT5mcmFtZUlEKCkpLCBJUEM6OlNlbmRPcHRp
b246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5bmNSZXBseSk7CiB9CiAKIHZv
aWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OnVwZGF0ZUdsb2JhbEhpc3RvcnlSZWRpcmVjdExpbmtz
KCkKQEAgLTEyMjgsMTMgKzEyMzAsMTMgQEAgdm9pZCBXZWJGcmFtZUxvYWRlckNsaWVudDo6dXBk
YXRlR2xvYmFsSGlzdG9yeVJlZGlyZWN0TGlua3MoKQogICAgIC8vIENsaWVudCByZWRpcmVjdAog
ICAgIGlmICghbG9hZGVyLT5jbGllbnRSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKS5pc051bGwo
KSkgewogICAgICAgICB3ZWJQYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRpZFBl
cmZvcm1DbGllbnRSZWRpcmVjdCgKLSAgICAgICAgICAgIGxvYWRlci0+Y2xpZW50UmVkaXJlY3RT
b3VyY2VGb3JIaXN0b3J5KCksIGxvYWRlci0+Y2xpZW50UmVkaXJlY3REZXN0aW5hdGlvbkZvckhp
c3RvcnkoKSwgbV9mcmFtZS0+ZnJhbWVJRCgpKSk7CisgICAgICAgICAgICBsb2FkZXItPmNsaWVu
dFJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLCBsb2FkZXItPmNsaWVudFJlZGlyZWN0RGVzdGlu
YXRpb25Gb3JIaXN0b3J5KCksIG1fZnJhbWUtPmZyYW1lSUQoKSksIElQQzo6U2VuZE9wdGlvbjo6
RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9yU3luY1JlcGx5KTsKICAgICB9CiAKICAg
ICAvLyBTZXJ2ZXIgcmVkaXJlY3QKICAgICBpZiAoIWxvYWRlci0+c2VydmVyUmVkaXJlY3RTb3Vy
Y2VGb3JIaXN0b3J5KCkuaXNOdWxsKCkpIHsKICAgICAgICAgd2ViUGFnZS0+c2VuZChNZXNzYWdl
czo6V2ViUGFnZVByb3h5OjpEaWRQZXJmb3JtU2VydmVyUmVkaXJlY3QoCi0gICAgICAgICAgICBs
b2FkZXItPnNlcnZlclJlZGlyZWN0U291cmNlRm9ySGlzdG9yeSgpLCBsb2FkZXItPnNlcnZlclJl
ZGlyZWN0RGVzdGluYXRpb25Gb3JIaXN0b3J5KCksIG1fZnJhbWUtPmZyYW1lSUQoKSkpOworICAg
ICAgICAgICAgbG9hZGVyLT5zZXJ2ZXJSZWRpcmVjdFNvdXJjZUZvckhpc3RvcnkoKSwgbG9hZGVy
LT5zZXJ2ZXJSZWRpcmVjdERlc3RpbmF0aW9uRm9ySGlzdG9yeSgpLCBtX2ZyYW1lLT5mcmFtZUlE
KCkpLCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2FnZUV2ZW5XaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJGcmFtZS5jcHAKaW5kZXggZjlkOTMyZTAwYTQ5YzNmZmMzNDE3ZmJhMmFjYTJjOGNjZGI2
YTFkYi4uNjNlZDZiNjgzNTUzM2VlOWNjM2Q2NzRjM2Q3YmI3MWY5ODQyMjIyZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViRnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkZyYW1lLmNwcApAQCAtMTA0LDcgKzEw
NCw3IEBAIHN0YXRpYyB1aW50NjRfdCBnZW5lcmF0ZUxpc3RlbmVySUQoKQogCiB2b2lkIFdlYkZy
YW1lOjppbml0V2l0aENvcmVNYWluRnJhbWUoV2ViUGFnZSYgcGFnZSwgRnJhbWUmIGNvcmVGcmFt
ZSkKIHsKLSAgICBwYWdlLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlTWFp
bkZyYW1lKGZyYW1lSUQoKSkpOworICAgIHBhZ2Uuc2VuZChNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEaWRDcmVhdGVNYWluRnJhbWUoZnJhbWVJRCgpKSwgSVBDOjpTZW5kT3B0aW9uOjpEaXNwYXRj
aE1lc3NhZ2VFdmVuV2hlbldhaXRpbmdGb3JTeW5jUmVwbHkpOwogCiAgICAgbV9jb3JlRnJhbWUg
PSBtYWtlV2Vha1B0cihjb3JlRnJhbWUpOwogICAgIG1fY29yZUZyYW1lLT50cmVlKCkuc2V0TmFt
ZShTdHJpbmcoKSk7CkBAIC0xMTQsNyArMTE0LDcgQEAgdm9pZCBXZWJGcmFtZTo6aW5pdFdpdGhD
b3JlTWFpbkZyYW1lKFdlYlBhZ2UmIHBhZ2UsIEZyYW1lJiBjb3JlRnJhbWUpCiBSZWY8V2ViRnJh
bWU+IFdlYkZyYW1lOjpjcmVhdGVTdWJmcmFtZShXZWJQYWdlKiBwYWdlLCBjb25zdCBTdHJpbmcm
IGZyYW1lTmFtZSwgSFRNTEZyYW1lT3duZXJFbGVtZW50KiBvd25lckVsZW1lbnQpCiB7CiAgICAg
YXV0byBmcmFtZSA9IGNyZWF0ZSgpOwotICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2VQ
cm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1lSUQoKSkpOworICAgIHBhZ2UtPnNl
bmQoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RGlkQ3JlYXRlU3ViZnJhbWUoZnJhbWUtPmZyYW1l
SUQoKSksIElQQzo6U2VuZE9wdGlvbjo6RGlzcGF0Y2hNZXNzYWdlRXZlbldoZW5XYWl0aW5nRm9y
U3luY1JlcGx5KTsKIAogICAgIGF1dG8gY29yZUZyYW1lID0gRnJhbWU6OmNyZWF0ZShwYWdlLT5j
b3JlUGFnZSgpLCBvd25lckVsZW1lbnQsIG1ha2VVbmlxdWVSZWY8V2ViRnJhbWVMb2FkZXJDbGll
bnQ+KGZyYW1lLmdldCgpKSk7CiAgICAgZnJhbWUtPm1fY29yZUZyYW1lID0gbWFrZVdlYWtQdHIo
Y29yZUZyYW1lLmdldCgpKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0No
YW5nZUxvZwppbmRleCAyMjRjYTE5ZjBlMDcxYTZlMDE2ZTFjZTZkYTFkMGMzOWU3MDJkYjg4Li5l
YWY2ZTM2ODYwMWJjMjJiNzdhMjcwNjk3NDNjOWUzMWQ0YzU3ZjlhIDEwMDY0NAotLS0gYS9Ub29s
cy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjEt
MDMtMTYgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1y
ZWdyZXNzaW9uKFNUUDEyMSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgorCisgICAgICAgICog
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6Y2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5ld1BhZ2UpOgorICAg
ICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjEtMDMtMTYgIEpvaG4gV2lsYW5kZXIg
IDx3aWxhbmRlckBhcHBsZS5jb20+CiAKICAgICAgICAgUENNOiBVc2UgYWRvcHRXSyBpbiBUZXN0
SW52b2NhdGlvbjo6ZGlkUmVjZWl2ZVN5bmNocm9ub3VzTWVzc2FnZUZyb21JbmplY3RlZEJ1bmRs
ZSgpJ3MgaGFuZGxpbmcgb2YgIlNldFByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25S
ZXBvcnRVUkxzRm9yVGVzdGluZyIKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcAppbmRleCA3YmMzNTI0ZjJiZGI5ZGJkN2E0MzVhM2Nj
NmFkMzgzMmU5NDRlZGQ1Li43MGYwNGM4OGNhN2YxYWZkODUzODA2YjkxZGJkNGUyODg4NWY2MTJh
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0
c1NQSS5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVy
dHNTUEkuY3BwCkBAIC0xMzksNiArMTM5LDM1IEBAIFRFU1QoV2ViS2l0LCBNb2RhbEFsZXJ0c1NQ
SSkKICAgICBVdGlsOjpydW4oJmRvbmUpOwogfQogCitzdGF0aWMgV0tQYWdlUmVmIGNoZWNrRnJh
bWVMb2FkU3RhdGVBbmRDcmVhdGVOZXdQYWdlKFdLUGFnZVJlZiBwYWdlLCBXS1VSTFJlcXVlc3RS
ZWYgdXJsUmVxdWVzdCwgV0tEaWN0aW9uYXJ5UmVmIGZlYXR1cmVzLCBXS0V2ZW50TW9kaWZpZXJz
IG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBjb25zdCB2b2lkICpj
bGllbnRJbmZvKQoreworICAgIGF1dG8gbWFpbkZyYW1lID0gV0tQYWdlR2V0TWFpbkZyYW1lKHBh
Z2UpOworICAgIEFTU0VSVChtYWluRnJhbWUpOworICAgIEVYUEVDVF9FUShrV0tGcmFtZUxvYWRT
dGF0ZUNvbW1pdHRlZCwgV0tGcmFtZUdldEZyYW1lTG9hZFN0YXRlKG1haW5GcmFtZSkpOworICAg
IGRvbmUgPSB0cnVlOworICAgIHJldHVybiBjcmVhdGVOZXdQYWdlKHBhZ2UsIHVybFJlcXVlc3Qs
IGZlYXR1cmVzLCBtb2RpZmllcnMsIG1vdXNlQnV0dG9uLCBjbGllbnRJbmZvKTsKK30KKworVEVT
VChXZWJLaXQsIENyZWF0ZU5ld1BhZ2VEZWxlZ2F0ZUZyYW1lTG9hZFN0YXRlKQoreworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCAyNTsgKytpKSB7CisgICAgICAgIGRvbmUgPSBmYWxzZTsK
KyAgICAgICAgb3BlbmVkV2ViVmlldyA9IG5pbDsKKyAgICAgICAgYXV0byBjb250ZXh0ID0gYWRv
cHRXSyhXS0NvbnRleHRDcmVhdGVXaXRoQ29uZmlndXJhdGlvbihudWxscHRyKSk7CisgICAgICAg
IFBsYXRmb3JtV2ViVmlldyB3ZWJWaWV3KGNvbnRleHQuZ2V0KCkpOworCisgICAgICAgIFdLUGFn
ZVVJQ2xpZW50VjUgdWlDbGllbnQ7CisgICAgICAgIG1lbXNldCgmdWlDbGllbnQsIDAsIHNpemVv
Zih1aUNsaWVudCkpOworICAgICAgICB1aUNsaWVudC5iYXNlLnZlcnNpb24gPSA1OworICAgICAg
ICB1aUNsaWVudC5jcmVhdGVOZXdQYWdlID0gY2hlY2tGcmFtZUxvYWRTdGF0ZUFuZENyZWF0ZU5l
d1BhZ2U7CisgICAgICAgIFdLUGFnZVNldFBhZ2VVSUNsaWVudCh3ZWJWaWV3LnBhZ2UoKSwgJnVp
Q2xpZW50LmJhc2UpOworCisgICAgICAgIGF1dG8gaHRtbFN0cmluZyA9IFV0aWw6OnRvV0soIjxz
Y3JpcHQ+b3BlbignYWJvdXQ6YmxhbmsnLCAnX2JsYW5rJyk8L3NjcmlwdD4iKTsKKyAgICAgICAg
V0tQYWdlTG9hZEhUTUxTdHJpbmcod2ViVmlldy5wYWdlKCksIGh0bWxTdHJpbmcuZ2V0KCksIG51
bGxwdHIpOworICAgICAgICBVdGlsOjpydW4oJmRvbmUpOworICAgIH0KK30KKwogfSAvLyBuYW1l
c3BhY2UgVGVzdFdlYktpdEFQSQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>423488</attachid>
            <date>2021-03-17 08:22:39 -0700</date>
            <delta_ts>2021-03-17 10:09:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222590-20210317082238.patch</filename>
            <type>text/plain</type>
            <size>11760</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc0NTU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU4MjFlYmIwNDBiOTMwNjVi
NTZmNjBiNGE1NzhiZTI4OGQyYmU3NGYuLmEyZmVlOTgzZDIxOGJkOTkxNDBhMjlkOWJhZDE1YjNm
YTQ5NDc4MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzQgQEAKKzIwMjEtMDMtMTcgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBNYXliZS1yZWdyZXNzaW9uKFNUUDEy
MSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5nIG51bGwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjU5MAorICAgICAgICA8cmRhcjovL3By
b2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhpcyB3YXMgYW4gSVBDIG9yZGVyaW5nIGJ1Zy4gV2ViUGFnZVByb3h5OjpEaWRD
b21taXRMb2FkRm9yRnJhbWUgaXMgYXN5bmMgYW5kIFdlYlBhZ2VQcm94eTo6Q3JlYXRlTmV3UGFn
ZSBpcworICAgICAgICBzeW5jLiBBcyBhIHJlc3VsdCwgaXQgd2FzIHBvc3NpYmxlIGZvciB0aGUg
V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlIHRvIGdldCBwcm9jZXNzZWQgKkJFRk9SRSogdGhl
CisgICAgICAgIFdlYlBhZ2VQcm94eTo6RGlkQ29tbWl0TG9hZEZvckZyYW1lIElQQy4gVGhpcyB3
YXMgY2F1c2luZyB0cm91YmxlIGJlY2F1c2UgU2FmYXJpIHJlamVjdHMgdGhlIHBvcHVwIG9wZW5p
bmcgaWYKKyAgICAgICAgdGhlIG1haW4gZnJhbWUgaXMgZG9pbmcgYSBwcm92aXNpb25hbCBsb2Fk
LgorCisgICAgICAgIFRvIGFkZHJlc3MgdGhlIGlzc3VlLCBpbnRyb2R1Y2UgYSBuZXcgSVBDOjpT
ZW5kU3luY09wdGlvbjo6TWFpbnRhaW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2VzIGZsYWcgYW5k
CisgICAgICAgIHVzZSBpdCBvbiBXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Ugc3luYyBJUEMg
c28gdGhhdCBpdCBnZXRzIHByb2Nlc3NlZCBpbiBvcmRlciB3aXRoIHN1cnJvdW5kaW5nIGFzeW5j
CisgICAgICAgIG1lc3NhZ2VzLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoSVBDOjpDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNz
SW5jb21pbmdNZXNzYWdlKToKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6c2VuZFN5bmNNZXNz
YWdlKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9EZWNvZGVyLmNwcDoKKyAgICAgICAgKElQQzo6RGVjb2Rlcjo6c2hvdWxkTWFp
bnRhaW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2VzIGNvbnN0KToKKyAgICAgICAgKiBQbGF0Zm9y
bS9JUEMvRGVjb2Rlci5oOgorICAgICAgICAqIFBsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcDoKKyAg
ICAgICAgKElQQzo6RW5jb2Rlcjo6c2V0U2hvdWxkTWFpbnRhaW5PcmRlcmluZ1dpdGhBc3luY01l
c3NhZ2VzKToKKyAgICAgICAgKiBQbGF0Zm9ybS9JUEMvRW5jb2Rlci5oOgorICAgICAgICAqIFBs
YXRmb3JtL0lQQy9NZXNzYWdlRmxhZ3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNocm9tZUNs
aWVudDo6Y3JlYXRlV2luZG93KToKKwogMjAyMS0wMy0xNyAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQWxpZ24gZGV2aWNlIG9yaWVudGF0aW9uIGRlbGVnYXRl
IHRvIGdldFVzZXJNZWRpYS9nZW9sb2NhdGlvbiBkZWxlZ2F0ZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9QbGF0
Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKaW5kZXggNDQwNmI4YTg3YzRlMDc4ZjRkNzdmMTczM2Nk
NTc0YzM1YzljMGFiYi4uNzFmODMyNDhlMjg5OWExNDk5ZDY0ZDg5NmMyMDcxNWY3YTkzMTNkZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29ubmVjdGlvbi5jcHAKQEAgLTE0OSw2ICsx
NDksMTIgQEAgYm9vbCBDb25uZWN0aW9uOjpTeW5jTWVzc2FnZVN0YXRlOjpwcm9jZXNzSW5jb21p
bmdNZXNzYWdlKENvbm5lY3Rpb24mIGNvbm5lY3Rpb24KICAgICB7CiAgICAgICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sobV9tdXRleCk7CiAgICAgICAgIHNob3VsZERpc3BhdGNoID0gbV9kaWRT
Y2hlZHVsZURpc3BhdGNoTWVzc2FnZXNXb3JrU2V0LmFkZCgmY29ubmVjdGlvbikuaXNOZXdFbnRy
eTsKKyAgICAgICAgQVNTRVJUKGNvbm5lY3Rpb24ubV9pbmNvbWluZ01lc3NhZ2VzTXV0ZXguaXNI
ZWxkKCkpOworICAgICAgICBpZiAobWVzc2FnZS0+c2hvdWxkTWFpbnRhaW5PcmRlcmluZ1dpdGhB
c3luY01lc3NhZ2VzKCkpIHsKKyAgICAgICAgICAgIC8vIFRoaXMgc3luYyBtZXNzYWdlIHNob3Vs
ZCBtYWludGFpbiBvcmRlcmluZyB3aXRoIGFzeW5jIG1lc3NhZ2VzIHNvIHdlIG5lZWQgdG8gcHJv
Y2VzcyB0aGUgcGVuZGluZyBhc3luYyBtZXNzYWdlcyBmaXJzdC4KKyAgICAgICAgICAgIHdoaWxl
ICghY29ubmVjdGlvbi5tX2luY29taW5nTWVzc2FnZXMuaXNFbXB0eSgpKQorICAgICAgICAgICAg
ICAgIG1fbWVzc2FnZXNUb0Rpc3BhdGNoV2hpbGVXYWl0aW5nRm9yU3luY1JlcGx5LmFwcGVuZChD
b25uZWN0aW9uQW5kSW5jb21pbmdNZXNzYWdlIHsgY29ubmVjdGlvbiwgY29ubmVjdGlvbi5tX2lu
Y29taW5nTWVzc2FnZXMudGFrZUZpcnN0KCkgfSk7CisgICAgICAgIH0KICAgICAgICAgbV9tZXNz
YWdlc1RvRGlzcGF0Y2hXaGlsZVdhaXRpbmdGb3JTeW5jUmVwbHkuYXBwZW5kKENvbm5lY3Rpb25B
bmRJbmNvbWluZ01lc3NhZ2UgeyBjb25uZWN0aW9uLCBXVEZNb3ZlKG1lc3NhZ2UpIH0pOwogICAg
IH0KIApAQCAtNjAzLDYgKzYwOSw5IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWNvZGVyPiBDb25uZWN0
aW9uOjpzZW5kU3luY01lc3NhZ2UodWludDY0X3Qgc3luY1JlcXVlc3RJRCwgVW5pCiAgICAgaWYg
KHNlbmRTeW5jT3B0aW9ucy5jb250YWlucyhTZW5kU3luY09wdGlvbjo6Rm9yY2VEaXNwYXRjaFdo
ZW5EZXN0aW5hdGlvbklzV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseSkpCiAgICAgICAgIHNl
bmRPcHRpb25zID0gc2VuZE9wdGlvbnMgfCBJUEM6OlNlbmRPcHRpb246OkRpc3BhdGNoTWVzc2Fn
ZUV2ZW5XaGVuV2FpdGluZ0ZvclVuYm91bmRlZFN5bmNSZXBseTsKIAorICAgIGlmIChzZW5kU3lu
Y09wdGlvbnMuY29udGFpbnMoSVBDOjpTZW5kU3luY09wdGlvbjo6TWFpbnRhaW5PcmRlcmluZ1dp
dGhBc3luY01lc3NhZ2VzKSkKKyAgICAgICAgZW5jb2Rlci0+c2V0U2hvdWxkTWFpbnRhaW5PcmRl
cmluZ1dpdGhBc3luY01lc3NhZ2VzKCk7CisKICAgICBhdXRvIG1lc3NhZ2VOYW1lID0gZW5jb2Rl
ci0+bWVzc2FnZU5hbWUoKTsKICAgICBzZW5kTWVzc2FnZShXVEZNb3ZlKGVuY29kZXIpLCBzZW5k
T3B0aW9ucyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCAz
MDc0MGI1YzA5YWFiM2E2YWE2MjhmNWQyMjM2YTFiMGMwY2VkOWFmLi4xMDY3MGEyYzRjZTVkNmVm
ODE4MDRiMGNiM2Y3MmY2YzA5ZWRiZWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCkBAIC03MSw2ICs3MSw3IEBAIGVudW0gY2xhc3MgU2VuZFN5bmNPcHRpb24gewog
ICAgIEluZm9ybVBsYXRmb3JtUHJvY2Vzc1dpbGxTdXNwZW5kID0gMSA8PCAwLAogICAgIFVzZUZ1
bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGluZyA9IDEgPDwgMSwKICAgICBGb3JjZURpc3BhdGNo
V2hlbkRlc3RpbmF0aW9uSXNXYWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5ID0gMSA8PCAyLAor
ICAgIE1haW50YWluT3JkZXJpbmdXaXRoQXN5bmNNZXNzYWdlcyA9IDEgPDwgMywKIH07CiAKIGVu
dW0gY2xhc3MgV2FpdEZvck9wdGlvbiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9EZWNvZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIu
Y3BwCmluZGV4IDEwYzE1OWU2ZjUyMTIyNmExMDRlZTViNjY2MjYxNTNiOGIyYjYxMDguLmQwZDk3
OGJiOTVmNmQzNTI1YjRiNGZjOWVlZWE4Y2Q0OGQyYzEyMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0RlY29kZXIuY3BwCkBAIC0xNDcsNiArMTQ3LDExIEBAIGJvb2wgRGVjb2Rlcjo6c2hv
dWxkVXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nKCkgY29uc3QKICAgICByZXR1cm4g
bV9tZXNzYWdlRmxhZ3MuY29udGFpbnMoTWVzc2FnZUZsYWdzOjpVc2VGdWxseVN5bmNocm9ub3Vz
TW9kZUZvclRlc3RpbmcpOwogfQogCitib29sIERlY29kZXI6OnNob3VsZE1haW50YWluT3JkZXJp
bmdXaXRoQXN5bmNNZXNzYWdlcygpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fbWVzc2FnZUZsYWdz
LmNvbnRhaW5zKE1lc3NhZ2VGbGFnczo6TWFpbnRhaW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2Vz
KTsKK30KKwogI2lmIFBMQVRGT1JNKE1BQykKIHZvaWQgRGVjb2Rlcjo6c2V0SW1wb3J0YW5jZUFz
c2VydGlvbihzdGQ6OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4gYXNzZXJ0aW9uKQog
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oIGIvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRGVjb2Rlci5oCmluZGV4IDBmM2FjMjNiNGM1YjdjZjI4
NWZhNTkwN2YxNjE2ZTBkYjcxNTZmYmMuLmVkMjE2Mzc2MzIzYWZiODBlM2FhMTU2ODU2YzhlMGM1
ZjRiOGQ4YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0RlY29kZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9EZWNvZGVyLmgKQEAgLTY0LDYgKzY0
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTeW5jTWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1l
c3NhZ2VJc1N5bmMobWVzc2FnZU5hbWUoKSk7IH0KICAgICBTaG91bGREaXNwYXRjaFdoZW5XYWl0
aW5nRm9yU3luY1JlcGx5IHNob3VsZERpc3BhdGNoTWVzc2FnZVdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5KCkgY29uc3Q7CiAgICAgYm9vbCBzaG91bGRVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRl
c3RpbmcoKSBjb25zdDsKKyAgICBib29sIHNob3VsZE1haW50YWluT3JkZXJpbmdXaXRoQXN5bmNN
ZXNzYWdlcygpIGNvbnN0OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2V0SW1wb3J0
YW5jZUFzc2VydGlvbihzdGQ6OnVuaXF1ZV9wdHI8SW1wb3J0YW5jZUFzc2VydGlvbj4pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcAppbmRleCBlYzllOGNmYmU1NzUyNzc5NDgy
NWJmZmQ0ZjRhZGZhZDRiNTI0ZTliLi45ZjM2YWU3NTJjNzg3ZTQ5NmFlOWY3MDI0NDkyZTk2NTU5
NmY5NTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmNwcApAQCAtMTIzLDYg
KzEyMywxMSBAQCB2b2lkIEVuY29kZXI6OnNldEZ1bGx5U3luY2hyb25vdXNNb2RlRm9yVGVzdGlu
ZygpCiAgICAgbWVzc2FnZUZsYWdzKCkuYWRkKE1lc3NhZ2VGbGFnczo6VXNlRnVsbHlTeW5jaHJv
bm91c01vZGVGb3JUZXN0aW5nKTsKIH0KIAordm9pZCBFbmNvZGVyOjpzZXRTaG91bGRNYWludGFp
bk9yZGVyaW5nV2l0aEFzeW5jTWVzc2FnZXMoKQoreworICAgIG1lc3NhZ2VGbGFncygpLmFkZChN
ZXNzYWdlRmxhZ3M6Ok1haW50YWluT3JkZXJpbmdXaXRoQXN5bmNNZXNzYWdlcyk7Cit9CisKIHZv
aWQgRW5jb2Rlcjo6d3JhcEZvclRlc3RpbmcoVW5pcXVlUmVmPEVuY29kZXI+JiYgb3JpZ2luYWwp
CiB7CiAgICAgQVNTRVJUKGlzU3luY01lc3NhZ2UoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1BsYXRmb3JtL0lQQy9FbmNvZGVyLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9F
bmNvZGVyLmgKaW5kZXggNWFhZGVjYzcyNzFlNjUxZTdkYjAyMzE5YWY3NTEzNDYxYjA3YzVmZi4u
NjU1NzQxZTNmNWEwOTJmOTdlNzQ5MmI4NTY0Yzg3YTc1ZTlhZjhjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvRW5jb2Rlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vSVBDL0VuY29kZXIuaApAQCAtNTYsNiArNTYsNyBAQCBwdWJsaWM6CiAgICAgU2hvdWxk
RGlzcGF0Y2hXaGVuV2FpdGluZ0ZvclN5bmNSZXBseSBzaG91bGREaXNwYXRjaE1lc3NhZ2VXaGVu
V2FpdGluZ0ZvclN5bmNSZXBseSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXRGdWxseVN5bmNocm9u
b3VzTW9kZUZvclRlc3RpbmcoKTsKKyAgICB2b2lkIHNldFNob3VsZE1haW50YWluT3JkZXJpbmdX
aXRoQXN5bmNNZXNzYWdlcygpOwogCiAgICAgdm9pZCB3cmFwRm9yVGVzdGluZyhVbmlxdWVSZWY8
RW5jb2Rlcj4mJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL01l
c3NhZ2VGbGFncy5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmgK
aW5kZXggYzM1MzY0YTg1NDU2YjljZDcxZTFlY2JkZDU4YWJhZjgzY2ZlZjE1Mi4uNGRlZWJmMDg2
ZGUyNmU0MzVlZWE1ZjBkNTMxMGQ2YTk2ZWM5YzdhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9JUEMvTWVzc2FnZUZsYWdzLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9y
bS9JUEMvTWVzc2FnZUZsYWdzLmgKQEAgLTMxLDYgKzMxLDcgQEAgZW51bSBjbGFzcyBNZXNzYWdl
RmxhZ3MgOiB1aW50OF90IHsKICAgICBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5bmNS
ZXBseSA9IDEgPDwgMCwKICAgICBEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclVuYm91bmRl
ZFN5bmNSZXBseSA9IDEgPDwgMSwKICAgICBVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3Rp
bmcgPSAxIDw8IDIsCisgICAgTWFpbnRhaW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2VzID0gMSA8
PCAzLAogfTsKIAogZW51bSBjbGFzcyBTaG91bGREaXNwYXRjaFdoZW5XYWl0aW5nRm9yU3luY1Jl
cGx5IDogdWludDhfdCB7CkBAIC00OCw3ICs0OSw4IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1U
cmFpdHM8SVBDOjpNZXNzYWdlRmxhZ3M+IHsKICAgICAgICAgSVBDOjpNZXNzYWdlRmxhZ3MsCiAg
ICAgICAgIElQQzo6TWVzc2FnZUZsYWdzOjpEaXNwYXRjaE1lc3NhZ2VXaGVuV2FpdGluZ0ZvclN5
bmNSZXBseSwKICAgICAgICAgSVBDOjpNZXNzYWdlRmxhZ3M6OkRpc3BhdGNoTWVzc2FnZVdoZW5X
YWl0aW5nRm9yVW5ib3VuZGVkU3luY1JlcGx5LAotICAgICAgICBJUEM6Ok1lc3NhZ2VGbGFnczo6
VXNlRnVsbHlTeW5jaHJvbm91c01vZGVGb3JUZXN0aW5nCisgICAgICAgIElQQzo6TWVzc2FnZUZs
YWdzOjpVc2VGdWxseVN5bmNocm9ub3VzTW9kZUZvclRlc3RpbmcsCisgICAgICAgIElQQzo6TWVz
c2FnZUZsYWdzOjpNYWludGFpbk9yZGVyaW5nV2l0aEFzeW5jTWVzc2FnZXMKICAgICA+OwogfTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcAppbmRleCA0YzBlMzNlY2RjOGUzYzFkZjAzMWQxODk5MzNk
MDA2YWI4OWIwN2JmLi5mN2ZmZDc5YjI1ODNmY2YyZTNiZTVlMzgwM2I1MmIzMTRkZDU5Y2IwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtMjgzLDcgKzI4Myw3IEBAIFBhZ2UqIFdlYkNocm9t
ZUNsaWVudDo6Y3JlYXRlV2luZG93KEZyYW1lJiBmcmFtZSwgY29uc3QgV2luZG93RmVhdHVyZXMm
IHdpbmRvd0ZlCiAKICAgICBPcHRpb25hbDxQYWdlSWRlbnRpZmllcj4gbmV3UGFnZUlEOwogICAg
IE9wdGlvbmFsPFdlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnM+IHBhcmFtZXRlcnM7Ci0gICAgaWYg
KCF3ZWJQcm9jZXNzLnBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnNlbmRTeW5jKE1lc3NhZ2Vz
OjpXZWJQYWdlUHJveHk6OkNyZWF0ZU5ld1BhZ2Uod2ViRnJhbWUtPmluZm8oKSwgd2ViRnJhbWUt
PnBhZ2UoKS0+d2ViUGFnZVByb3h5SWRlbnRpZmllcigpLCBuYXZpZ2F0aW9uQWN0aW9uLnJlc291
cmNlUmVxdWVzdCgpLCB3aW5kb3dGZWF0dXJlcywgbmF2aWdhdGlvbkFjdGlvbkRhdGEpLCBNZXNz
YWdlczo6V2ViUGFnZVByb3h5OjpDcmVhdGVOZXdQYWdlOjpSZXBseShuZXdQYWdlSUQsIHBhcmFt
ZXRlcnMpLCBtX3BhZ2UuaWRlbnRpZmllcigpKSkKKyAgICBpZiAoIXdlYlByb2Nlc3MucGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6Q3Jl
YXRlTmV3UGFnZSh3ZWJGcmFtZS0+aW5mbygpLCB3ZWJGcmFtZS0+cGFnZSgpLT53ZWJQYWdlUHJv
eHlJZGVudGlmaWVyKCksIG5hdmlnYXRpb25BY3Rpb24ucmVzb3VyY2VSZXF1ZXN0KCksIHdpbmRv
d0ZlYXR1cmVzLCBuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6
OkNyZWF0ZU5ld1BhZ2U6OlJlcGx5KG5ld1BhZ2VJRCwgcGFyYW1ldGVycyksIG1fcGFnZS5pZGVu
dGlmaWVyKCksIElQQzo6VGltZW91dDo6aW5maW5pdHkoKSwgSVBDOjpTZW5kU3luY09wdGlvbjo6
TWFpbnRhaW5PcmRlcmluZ1dpdGhBc3luY01lc3NhZ2VzKSkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBpZiAoIW5ld1BhZ2VJRCkKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBi
L1Rvb2xzL0NoYW5nZUxvZwppbmRleCA4NTFiODRkZmUwNmM5Nzc3NDg1YWRlZWMyMTNiMmRhMmZh
YjA1Zjc3Li44M2Y5ZmMxNzllMjc3MzRkZGI2Yjk0MmE3Y2Q2Y2MwNWYyZGQzNzQ5IDEwMDY0NAot
LS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcg
QEAKKzIwMjEtMDMtMTcgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAg
ICBNYXliZS1yZWdyZXNzaW9uKFNUUDEyMSk6IHdpbmRvdy5vcGVuIGZsYWtpbHkgcmV0dXJuaW5n
IG51bGwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
MjU5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzUyMTE3ODY+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIEFQSSB0ZXN0IGNvdmVyYWdlLgor
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3Bw
OgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAgICAgIChUZXN0V2ViS2l0QVBJ
OjpjaGVja0ZyYW1lTG9hZFN0YXRlQW5kQ3JlYXRlTmV3UGFnZSk6CisKIDIwMjEtMDMtMTcgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFsaWduIGRldmljZSBv
cmllbnRhdGlvbiBkZWxlZ2F0ZSB0byBnZXRVc2VyTWVkaWEvZ2VvbG9jYXRpb24gZGVsZWdhdGVz
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0
c1NQSS5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdC9Nb2RhbEFsZXJ0c1NQ
SS5jcHAKaW5kZXggN2JjMzUyNGYyYmRiOWRiZDdhNDM1YTNjYzZhZDM4MzJlOTQ0ZWRkNS4uODQz
MGEyZTg1YTdiMGUyYWFkNjBmMWViM2Y4MzhhNzU0NzRkZWE1ZiAxMDA2NDQKLS0tIGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvTW9kYWxBbGVydHNTUEkuY3BwCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0L01vZGFsQWxlcnRzU1BJLmNwcApAQCAtMTM3LDYg
KzEzNywzNiBAQCBURVNUKFdlYktpdCwgTW9kYWxBbGVydHNTUEkpCiAgICAgV0tQYWdlTG9hZFVS
TCh3ZWJWaWV3LnBhZ2UoKSwgdXJsLmdldCgpKTsKIAogICAgIFV0aWw6OnJ1bigmZG9uZSk7Cisg
ICAgb3BlbmVkV2ViVmlldyA9IG5pbDsKK30KKworc3RhdGljIFdLUGFnZVJlZiBjaGVja0ZyYW1l
TG9hZFN0YXRlQW5kQ3JlYXRlTmV3UGFnZShXS1BhZ2VSZWYgcGFnZSwgV0tVUkxSZXF1ZXN0UmVm
IHVybFJlcXVlc3QsIFdLRGljdGlvbmFyeVJlZiBmZWF0dXJlcywgV0tFdmVudE1vZGlmaWVycyBt
b2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgY29uc3Qgdm9pZCAqY2xp
ZW50SW5mbykKK3sKKyAgICBhdXRvIG1haW5GcmFtZSA9IFdLUGFnZUdldE1haW5GcmFtZShwYWdl
KTsKKyAgICBBU1NFUlQobWFpbkZyYW1lKTsKKyAgICBFWFBFQ1RfRVEoa1dLRnJhbWVMb2FkU3Rh
dGVDb21taXR0ZWQsIFdLRnJhbWVHZXRGcmFtZUxvYWRTdGF0ZShtYWluRnJhbWUpKTsKKyAgICBk
b25lID0gdHJ1ZTsKKyAgICByZXR1cm4gY3JlYXRlTmV3UGFnZShwYWdlLCB1cmxSZXF1ZXN0LCBm
ZWF0dXJlcywgbW9kaWZpZXJzLCBtb3VzZUJ1dHRvbiwgY2xpZW50SW5mbyk7Cit9CisKK1RFU1Qo
V2ViS2l0LCBDcmVhdGVOZXdQYWdlRGVsZWdhdGVGcmFtZUxvYWRTdGF0ZSkKK3sKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgMjU7ICsraSkgeworICAgICAgICBkb25lID0gZmFsc2U7Cisg
ICAgICAgIGF1dG8gY29udGV4dCA9IGFkb3B0V0soV0tDb250ZXh0Q3JlYXRlV2l0aENvbmZpZ3Vy
YXRpb24obnVsbHB0cikpOworICAgICAgICBQbGF0Zm9ybVdlYlZpZXcgd2ViVmlldyhjb250ZXh0
LmdldCgpKTsKKworICAgICAgICBXS1BhZ2VVSUNsaWVudFY1IHVpQ2xpZW50OworICAgICAgICBt
ZW1zZXQoJnVpQ2xpZW50LCAwLCBzaXplb2YodWlDbGllbnQpKTsKKyAgICAgICAgdWlDbGllbnQu
YmFzZS52ZXJzaW9uID0gNTsKKyAgICAgICAgdWlDbGllbnQuY3JlYXRlTmV3UGFnZSA9IGNoZWNr
RnJhbWVMb2FkU3RhdGVBbmRDcmVhdGVOZXdQYWdlOworICAgICAgICBXS1BhZ2VTZXRQYWdlVUlD
bGllbnQod2ViVmlldy5wYWdlKCksICZ1aUNsaWVudC5iYXNlKTsKKworICAgICAgICBhdXRvIGh0
bWxTdHJpbmcgPSBVdGlsOjp0b1dLKCI8c2NyaXB0Pm9wZW4oJ2Fib3V0OmJsYW5rJywgJ19ibGFu
aycpPC9zY3JpcHQ+Iik7CisgICAgICAgIFdLUGFnZUxvYWRIVE1MU3RyaW5nKHdlYlZpZXcucGFn
ZSgpLCBodG1sU3RyaW5nLmdldCgpLCBudWxscHRyKTsKKyAgICAgICAgVXRpbDo6cnVuKCZkb25l
KTsKKyAgICAgICAgb3BlbmVkV2ViVmlldyA9IG5pbDsKKyAgICB9CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFRlc3RXZWJLaXRBUEkK
</data>

          </attachment>
      

    </bug>

</bugzilla>