<?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>208352</bug_id>
          
          <creation_ts>2020-02-27 16:21:50 -0800</creation_ts>
          <short_desc>Page::editableElementsInRect() should find nested editable elements and return found elements in paint order</short_desc>
          <delta_ts>2020-03-02 11:54:49 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195499</see_also>
          <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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1623757</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-27 16:21:50 -0800</bug_when>
    <thetext>Page::editableElementsInRect() cannot find nested editable elements and the order of the returned elements are in DOM order, not paint order. The former means that a client can never get a hold of those elements. The latter means that a client cannot tell which element is closest to a person&apos;s face.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623758</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-02-27 16:22:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/59867815&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1623766</commentid>
    <comment_count>2</comment_count>
      <attachid>391940</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-27 16:32:23 -0800</bug_when>
    <thetext>Created attachment 391940
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624331</commentid>
    <comment_count>3</comment_count>
      <attachid>392075</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-29 15:44:08 -0800</bug_when>
    <thetext>Created attachment 392075
Patch

Update test results for Mac.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624332</commentid>
    <comment_count>4</comment_count>
      <attachid>392075</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-29 15:45:40 -0800</bug_when>
    <thetext>Comment on attachment 392075
Patch

Patch does not address the iOS test failure and more likely the updated results will cause more iOS test failures. I am very suspicious of &quot;[webView scrollView].contentOffset = ...&quot; in the test code. I would have expected window.scrollTo() to also work on iOS. In fact, as I&apos;m typing this now and thinking about how iOS is currently failing I think setting .contentOffset will never produce good results because the engine is never told about the scroll position change so it cannot update its visible content rect and hit testing will fail.

The kind of failure seen on the bots in the earlier patch: the test is hit testing at the top of the document (scrolled offscreen). As to why the test passes before my change. I can answer that: the original code was ASYMMETRIC! Walking the DOM will find things **outside the visible viewport** whereas hit testing will NOT, by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624334</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-29 15:51:37 -0800</bug_when>
    <thetext>Just to be clear, the asymmetry with the current code that the visible content rect in the UI process does NOT match the visible content rect in the web process. In the UI process, the visible content rect reflects the set contentOffset, but the web process never is told about this offset.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624337</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-29 15:55:21 -0800</bug_when>
    <thetext>^^^ both of those comments about iOS are guesses....I&apos;ll find out soon...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624339</commentid>
    <comment_count>7</comment_count>
      <attachid>392078</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-02-29 16:05:33 -0800</bug_when>
    <thetext>Created attachment 392078
Patch + iOS guess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624417</commentid>
    <comment_count>8</comment_count>
      <attachid>392078</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-01 14:54:38 -0800</bug_when>
    <thetext>Comment on attachment 392078
Patch + iOS guess

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

&gt; Tools/TestWebKitAPI/Tests/WebKitCocoa/RequestTextInputContext.mm:147
&gt; +    [webView _scheduleVisibleContentRectUpdate];

schedule is not enough.... need to wait...-_doAfterNextVisibleContentRectUpdate</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624427</commentid>
    <comment_count>9</comment_count>
      <attachid>392106</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-01 16:23:16 -0800</bug_when>
    <thetext>Created attachment 392106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624428</commentid>
    <comment_count>10</comment_count>
      <attachid>392107</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-01 16:25:25 -0800</bug_when>
    <thetext>Created attachment 392107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624429</commentid>
    <comment_count>11</comment_count>
      <attachid>392107</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-01 16:31:57 -0800</bug_when>
    <thetext>Comment on attachment 392107
Patch

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

&gt; Tools/ChangeLog:13
&gt; +        to a y position of 50000. Otherwise, it&apos;s impossible to do because the page height is &lt; 5000px.

5000 not 50000!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624576</commentid>
    <comment_count>12</comment_count>
      <attachid>392107</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-03-02 09:41:30 -0800</bug_when>
    <thetext>Comment on attachment 392107
Patch

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

&gt; Source/WebCore/page/Page.cpp:930
&gt; +    auto* frameView = mainFrame().view();

auto frameView = makeRefPtr(mainFrame().view());

We generally ref local variables like this in new code (especially in this case, since the hit-testing code below will trigger layout).

&gt; Source/WebCore/page/Page.cpp:934
&gt; +    auto* document = mainFrame().document();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624604</commentid>
    <comment_count>13</comment_count>
      <attachid>392107</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-02 10:23:44 -0800</bug_when>
    <thetext>Comment on attachment 392107
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/page/Page.cpp:930
&gt;&gt; +    auto* frameView = mainFrame().view();
&gt; 
&gt; auto frameView = makeRefPtr(mainFrame().view());
&gt; 
&gt; We generally ref local variables like this in new code (especially in this case, since the hit-testing code below will trigger layout).

OK

&gt;&gt; Source/WebCore/page/Page.cpp:934
&gt;&gt; +    auto* document = mainFrame().document();
&gt; 
&gt; Ditto.

OK</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624610</commentid>
    <comment_count>14</comment_count>
      <attachid>392154</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-02 10:49:37 -0800</bug_when>
    <thetext>Created attachment 392154
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624618</commentid>
    <comment_count>15</comment_count>
      <attachid>392155</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-02 11:03:56 -0800</bug_when>
    <thetext>Created attachment 392155
To land - removed unused Deque header</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624653</commentid>
    <comment_count>16</comment_count>
      <attachid>392155</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-02 11:54:47 -0800</bug_when>
    <thetext>Comment on attachment 392155
To land - removed unused Deque header

Clearing flags on attachment: 392155

Committed r257722: &lt;https://trac.webkit.org/changeset/257722&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1624654</commentid>
    <comment_count>17</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-03-02 11:54:49 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>391940</attachid>
            <date>2020-02-27 16:32:23 -0800</date>
            <delta_ts>2020-02-29 15:44:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208352-20200227163222.patch</filename>
            <type>text/plain</type>
            <size>7869</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3MzY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTYzODZjOGYxZjA1ZDVi
NWVlYTk5MWVhODY0Y2Q2MjQ0NWVjZjY0Yi4uZmFlY2NmMzI4Y2M5ZDI2OTJkMTViYTI4ZjhiYjAx
YzExODU0ZGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAyLTI3ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeSB0
byBjb2xsZWN0IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KKyAgICAgICAgdGhlIHBhZ2Ug
dGhhdCBhIHBlcnNvbiBjYW4gaGl0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZpbmQgbmVz
dGVkIGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIChlLmcuIGFuIDxpbnB1dD4gaW5zaWRlIGEg
PGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiPiksIGlnbm9yZSBlbGVtZW50cyB3aXRoIENTUyAi
cG9pbnRlci1ldmVudHM6IG5vbmUiLAorICAgICAgICBhbmQgcmV0dXJuIGVsZW1lbnRzIGluIHBh
aW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEgcGVyc29uJ3MgZmFjZSkuIFRoZSBs
YXR0ZXIKKyAgICAgICAgbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2FsbGVyIHRvIGtub3cgd2hh
dCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3bworICAgICAgICBlZGl0
YWJsZSBlbGVtZW50cyBvdmVybGFwLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOiBJbXBsZW1l
bnQgaW4gdGVybXMgb2YgaGl0IHRlc3RpbmcgbWFjaGluZXJ5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oOgorICAgICAgICBBZGRlZCBjb252ZW5pZW5jZSBjb25zdHJ1Y3RvcnMg
dGhhdCB0YWtlIGEgTGF5b3V0UmVjdC4KKwogMjAyMC0wMi0yNiAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW51cCBIaXRUZXN0UmVzdWx0LntoLCBjcHB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmNwcAppbmRleCA3YzIwZmVjMzA0YTRjOTBlNTdhMzgzNWRkMzI5MTM0YjZl
YzI1NmRjLi5jYWRlMzFmOTZlMjJmZDFhOTNjYjI1ZWFjNGI4MGU2NmM2YTdhYzQxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvUGFnZS5jcHAKQEAgLTkyNywyNiArOTI3LDI5IEBAIHN0YXRpYyBib29sIGlzRWRpdGFibGVU
ZXh0SW5wdXRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAKIFZlY3RvcjxSZWY8RWxl
bWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxvYXRSZWN0JiBzZWFy
Y2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAogeworICAgIGF1dG8qIGZyYW1lVmll
dyA9IG1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0
dXJuIHsgfTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gbWFpbkZyYW1lKCkuZG9jdW1lbnQoKTsK
KyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4geyB9OworCisgICAgY29uc3RleHBy
IE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5cGU+IGhpdFR5cGUgeyBIaXRUZXN0
UmVxdWVzdDo6UmVhZE9ubHksIEhpdFRlc3RSZXF1ZXN0OjpBY3RpdmUsIEhpdFRlc3RSZXF1ZXN0
OjpDb2xsZWN0TXVsdGlwbGVFbGVtZW50cywgSGl0VGVzdFJlcXVlc3Q6OkRpc2FsbG93VXNlckFn
ZW50U2hhZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFsbG93VmlzaWJsZUNoaWxkRnJhbWVD
b250ZW50T25seSB9OworICAgIExheW91dFJlY3Qgc2VhcmNoUmVjdEluTWFpbkZyYW1lQ29vcmRp
bmF0ZXMgPSBmcmFtZVZpZXctPnJvb3RWaWV3VG9Db250ZW50cyhyb3VuZGVkSW50UmVjdChzZWFy
Y2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSk7CisgICAgSGl0VGVzdFJlc3VsdCBoaXRUZXN0
UmVzdWx0IHsgc2VhcmNoUmVjdEluTWFpbkZyYW1lQ29vcmRpbmF0ZXMgfTsKKyAgICBpZiAoIWRv
Y3VtZW50LT5oaXRUZXN0KGhpdFR5cGUsIGhpdFRlc3RSZXN1bHQpKQorICAgICAgICByZXR1cm4g
eyB9OworCiAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gcmVzdWx0OwotICAgIGZvckVhY2hEb2N1
bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgewotICAgICAgICBEZXF1ZTxOb2RlKj4gbm9k
ZXNUb1NlYXJjaDsKLSAgICAgICAgbm9kZXNUb1NlYXJjaC5hcHBlbmQoJmRvY3VtZW50KTsKLSAg
ICAgICAgd2hpbGUgKCFub2Rlc1RvU2VhcmNoLmlzRW1wdHkoKSkgewotICAgICAgICAgICAgYXV0
byogbm9kZSA9IG5vZGVzVG9TZWFyY2gudGFrZUZpcnN0KCk7Ci0KLSAgICAgICAgICAgIC8vIEl0
IGlzIHBvc3NpYmxlIHRvIGhhdmUgbmVzdGVkIHRleHQgaW5wdXQgY29udGV4dHMgKGUuZy4gPGlu
cHV0IHR5cGU9J3RleHQnPiBpbnNpZGUgY29udGVudGVkaXRhYmxlKSBidXQKLSAgICAgICAgICAg
IC8vIGluIHRoaXMgY2FzZSB3ZSBqdXN0IHRha2UgdGhlIG91dGVybW9zdCBjb250ZXh0IGFuZCBz
a2lwIHRoZSByZXN0LgotICAgICAgICAgICAgaWYgKCFpczxFbGVtZW50Pihub2RlKSB8fCAhaXNF
ZGl0YWJsZVRleHRJbnB1dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgewotICAg
ICAgICAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBub2RlLT5maXJzdENoaWxkKCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAgICAgICAgICAgICAgICAgICBub2Rl
c1RvU2VhcmNoLmFwcGVuZChjaGlsZCk7Ci0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgICAgICB9Ci0KLSAgICAgICAgICAgIGF1dG8mIGVsZW1lbnQgPSBkb3duY2FzdDxFbGVtZW50
Pigqbm9kZSk7Ci0gICAgICAgICAgICBpZiAoc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGluYXRl
cy5pbnRlcnNlY3RzKGVsZW1lbnQuY2xpZW50UmVjdCgpKSkKLSAgICAgICAgICAgICAgICByZXN1
bHQuYXBwZW5kKGVsZW1lbnQpOworICAgIGF1dG8mIG5vZGVTZXQgPSBoaXRUZXN0UmVzdWx0Lmxp
c3RCYXNlZFRlc3RSZXN1bHQoKTsKKyAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShu
b2RlU2V0LnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBub2RlIDogbm9kZVNldCkgeworICAgICAg
ICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgaXNFZGl0YWJsZVRleHRJbnB1dEVsZW1lbnQoZG93
bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgeworICAgICAgICAgICAgQVNTRVJUKHNlYXJjaFJlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXMuaW50ZXJzZWN0cyhkb3duY2FzdDxFbGVtZW50Pigqbm9kZSku
Y2xpZW50UmVjdCgpKSk7CisgICAgICAgICAgICByZXN1bHQudW5jaGVja2VkQXBwZW5kKGRvd25j
YXN0PEVsZW1lbnQ+KCpub2RlKSk7CiAgICAgICAgIH0KLSAgICB9KTsKKyAgICB9CiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0
aW9uLmNwcAppbmRleCAzOGVlZTFhMDM2Yzc3NWYzYjczZGE3MDJkNmM3NTQ4NGRhZTIwY2EzLi5h
NTYxM2I4MzFmNGZlZjY1ZTNjYmQ2MzkxMjQxODFmMTViOTVjYWNhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcApAQCAtNDgsNiArNDgsMTUgQEAgSGl0
VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYgcG9pbnQsIGNv
bnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKIH0KIAorSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9j
YXRpb24oY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKKyAgICA6IG1fcG9pbnQgeyByZWN0LmNlbnRl
cigpIH0gLy8gUm91bmRlZCB0byBhbiBpbnRlZ2VyIHBvaW50OyBpdCBtYXkgbm90IGJlIHRoZSBl
eGFjdCBjZW50ZXIuCisgICAgLCBtX2JvdW5kaW5nQm94IHsgcmVjdCB9CisgICAgLCBtX3RyYW5z
Zm9ybWVkUG9pbnQgeyByZWN0LmNlbnRlcigpIH0KKyAgICAsIG1fdHJhbnNmb3JtZWRSZWN0IHsg
RmxvYXRRdWFkIHsgbV9ib3VuZGluZ0JveCB9IH0KKyAgICAsIG1faXNSZWN0QmFzZWQgeyB0cnVl
IH0KK3sKK30KKwogSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0
UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBh
ZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQogICAg
IDogbV9wb2ludChjZW50ZXJQb2ludCkKICAgICAsIG1fYm91bmRpbmdCb3gocmVjdEZvclBvaW50
KGNlbnRlclBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxl
ZnRQYWRkaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
TG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaApp
bmRleCBhZGYxNGVmNWU2YTlmMWEwYWY3MWU5NzFjMmZkNmRlNTBhNjAxODgwLi4wMjMwMzVmNGI5
YTVjMzM1MjIwNzE5ZDQ1MWZjMDQ1NTU3ZmVlMDM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpdFRlc3RMb2NhdGlvbi5oCkBAIC0zMSw4ICszMSwxMCBAQCBwdWJsaWM6CiAgICAgSGl0
VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0
VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKICAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UXVhZCYpOwotICAgIC8vIFBhc3Mgbm9uLXplcm8g
cGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0IHRlc3QuCisKKyAgICBI
aXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2ln
bmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBh
ZGRpbmcpOworCiAgICAgLy8gTWFrZSBhIGNvcHkgdGhlIEhpdFRlc3RMb2NhdGlvbiBpbiBhIG5l
dyByZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zmc2V0IHRvIGludGVybmFsIHBvaW50IGFuZCBh
cmVhLgogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBM
YXlvdXRTaXplJiBvZmZzZXQpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBIaXRUZXN0TG9jYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0
UmVzdWx0LmNwcAppbmRleCA4MjIwNDI0YTIyNzUwYTdlODJmNDYzMzg1MGEwM2RhYTZjZjQ3ZDY4
Li4zMWQwZjg5MWYwNGFjYzk3YWFkOTcwZDk5YmFkMmZlMzZkZGUzNjU5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBAIC02Miw2ICs2MiwxMiBAQCBIaXRU
ZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFBvaW50JiBwb2ludCkKIHsKIH0K
IAorSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRSZWN0JiByZWN0KQor
ICAgIDogbV9oaXRUZXN0TG9jYXRpb24geyByZWN0IH0KKyAgICAsIG1fcG9pbnRJbklubmVyTm9k
ZUZyYW1lIHsgcmVjdC5jZW50ZXIoKSB9Cit7Cit9CisKIEhpdFRlc3RSZXN1bHQ6OkhpdFRlc3RS
ZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5n
LCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVk
IGxlZnRQYWRkaW5nKQogICAgIDogbV9oaXRUZXN0TG9jYXRpb24oY2VudGVyUG9pbnQsIHRvcFBh
ZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpCiAgICAgLCBt
X3BvaW50SW5Jbm5lck5vZGVGcmFtZShjZW50ZXJQb2ludCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5oCmluZGV4IGMwZmJmM2E1NzlkYTY4ZjkyZjJhOWY3ZGRjNTRjODJl
OTM4Zjk4NWEuLjY0ZGUzZWUyMjcwZGVmYTJiMTBiZWNmMTY3ODgwZGQ1NTI0ZWQ0YzcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaApAQCAtNDQsOCArNDQsMTAgQEAg
cHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdFJlc3VsdCgpOwogICAgIFdFQkNP
UkVfRVhQT1JUIGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmKTsKLSAg
ICAvLyBQYXNzIG5vbi1uZWdhdGl2ZSBwYWRkaW5nIHZhbHVlcyB0byBwZXJmb3JtIGEgcmVjdC1i
YXNlZCBoaXQgdGVzdC4KKworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEhpdFRlc3RSZXN1
bHQoY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQo
Y29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNp
Z25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQ
YWRkaW5nKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29u
c3QgSGl0VGVzdExvY2F0aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdFJlc3VsdChj
b25zdCBIaXRUZXN0UmVzdWx0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgfkhpdFRlc3RSZXN1bHQo
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392075</attachid>
            <date>2020-02-29 15:44:08 -0800</date>
            <delta_ts>2020-03-01 16:23:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208352-20200229154407.patch</filename>
            <type>text/plain</type>
            <size>10579</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3Njc3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhiMTliMzM4YmEzMWJh
YmM4NjVhOTE0MjUwYTQ5ZmY1MDkwNDQwYi4uOTY3MTZkNDMxOTA1NjgxNGM2MTQ4ZThhZjY1Mjcz
YTRmZDg5YWI5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAyLTI5ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeSB0
byBjb2xsZWN0IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KKyAgICAgICAgdGhlIHBhZ2Ug
dGhhdCBhIHBlcnNvbiBjYW4gaGl0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZpbmQgbmVz
dGVkIGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIChlLmcuIGFuIDxpbnB1dD4gaW5zaWRlIGEg
PGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiPiksIGlnbm9yZSBlbGVtZW50cyB3aXRoIENTUyAi
cG9pbnRlci1ldmVudHM6IG5vbmUiLAorICAgICAgICBhbmQgcmV0dXJuIGVsZW1lbnRzIGluIHBh
aW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEgcGVyc29uJ3MgZmFjZSkuIFRoZSBs
YXR0ZXIKKyAgICAgICAgbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2FsbGVyIHRvIGtub3cgd2hh
dCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3bworICAgICAgICBlZGl0
YWJsZSBlbGVtZW50cyBvdmVybGFwLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOiBJbXBsZW1l
bnQgaW4gdGVybXMgb2YgaGl0IHRlc3RpbmcgbWFjaGluZXJ5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oOgorICAgICAgICBBZGRlZCBjb252ZW5pZW5jZSBjb25zdHJ1Y3RvcnMg
dGhhdCB0YWtlIGEgTGF5b3V0UmVjdC4KKwogMjAyMC0wMi0yOCAgV2Vuc29uIEhzaWVoICA8d2Vu
c29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gaW50ZXJuYWwgc2V0dGluZyB0
byBlbmFibGUgb3IgZGlzYWJsZSBjYW52YXMgcmVuZGVyaW5nIGluIHRoZSBHUFUgUHJvY2Vzcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvUGFnZS5jcHAKaW5kZXggYTkxZTg2ZTg2YTAyMDkxNGY0OGVmOTUxMmQ4NjcxY2JjZjVj
MmRjNC4uMzM0NDQ2YWUwY2Y5YzM3OWUxMzhmMmE2ODJmZjMwM2ViZmFkNTQyNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwCkBAIC05MjcsMjYgKzkyNywyOSBAQCBzdGF0aWMgYm9vbCBpc0VkaXRhYmxlVGV4
dElucHV0RWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50KQogCiBWZWN0b3I8UmVmPEVsZW1l
bnQ+PiBQYWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNvbnN0IEZsb2F0UmVjdCYgc2VhcmNo
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcykgY29uc3QKIHsKKyAgICBhdXRvKiBmcmFtZVZpZXcg
PSBtYWluRnJhbWUoKS52aWV3KCk7CisgICAgaWYgKCFmcmFtZVZpZXcpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBhdXRvKiBkb2N1bWVudCA9IG1haW5GcmFtZSgpLmRvY3VtZW50KCk7Cisg
ICAgaWYgKCFkb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGNvbnN0ZXhwciBP
cHRpb25TZXQ8SGl0VGVzdFJlcXVlc3Q6OlJlcXVlc3RUeXBlPiBoaXRUeXBlIHsgSGl0VGVzdFJl
cXVlc3Q6OlJlYWRPbmx5LCBIaXRUZXN0UmVxdWVzdDo6QWN0aXZlLCBIaXRUZXN0UmVxdWVzdDo6
Q29sbGVjdE11bHRpcGxlRWxlbWVudHMsIEhpdFRlc3RSZXF1ZXN0OjpEaXNhbGxvd1VzZXJBZ2Vu
dFNoYWRvd0NvbnRlbnQsIEhpdFRlc3RSZXF1ZXN0OjpBbGxvd1Zpc2libGVDaGlsZEZyYW1lQ29u
dGVudE9ubHkgfTsKKyAgICBMYXlvdXRSZWN0IHNlYXJjaFJlY3RJbk1haW5GcmFtZUNvb3JkaW5h
dGVzID0gZnJhbWVWaWV3LT5yb290Vmlld1RvQ29udGVudHMocm91bmRlZEludFJlY3Qoc2VhcmNo
UmVjdEluUm9vdFZpZXdDb29yZGluYXRlcykpOworICAgIEhpdFRlc3RSZXN1bHQgaGl0VGVzdFJl
c3VsdCB7IHNlYXJjaFJlY3RJbk1haW5GcmFtZUNvb3JkaW5hdGVzIH07CisgICAgaWYgKCFkb2N1
bWVudC0+aGl0VGVzdChoaXRUeXBlLCBoaXRUZXN0UmVzdWx0KSkKKyAgICAgICAgcmV0dXJuIHsg
fTsKKwogICAgIFZlY3RvcjxSZWY8RWxlbWVudD4+IHJlc3VsdDsKLSAgICBmb3JFYWNoRG9jdW1l
bnQoWyZdIChEb2N1bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgRGVxdWU8Tm9kZSo+IG5vZGVz
VG9TZWFyY2g7Ci0gICAgICAgIG5vZGVzVG9TZWFyY2guYXBwZW5kKCZkb2N1bWVudCk7Ci0gICAg
ICAgIHdoaWxlICghbm9kZXNUb1NlYXJjaC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGF1dG8q
IG5vZGUgPSBub2Rlc1RvU2VhcmNoLnRha2VGaXJzdCgpOwotCi0gICAgICAgICAgICAvLyBJdCBp
cyBwb3NzaWJsZSB0byBoYXZlIG5lc3RlZCB0ZXh0IGlucHV0IGNvbnRleHRzIChlLmcuIDxpbnB1
dCB0eXBlPSd0ZXh0Jz4gaW5zaWRlIGNvbnRlbnRlZGl0YWJsZSkgYnV0Ci0gICAgICAgICAgICAv
LyBpbiB0aGlzIGNhc2Ugd2UganVzdCB0YWtlIHRoZSBvdXRlcm1vc3QgY29udGV4dCBhbmQgc2tp
cCB0aGUgcmVzdC4KLSAgICAgICAgICAgIGlmICghaXM8RWxlbWVudD4obm9kZSkgfHwgIWlzRWRp
dGFibGVUZXh0SW5wdXRFbGVtZW50KGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKSkpIHsKLSAgICAg
ICAgICAgICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsg
Y2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZXNU
b1NlYXJjaC5hcHBlbmQoY2hpbGQpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBhdXRvJiBlbGVtZW50ID0gZG93bmNhc3Q8RWxlbWVudD4o
Km5vZGUpOwotICAgICAgICAgICAgaWYgKHNlYXJjaFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMu
aW50ZXJzZWN0cyhlbGVtZW50LmNsaWVudFJlY3QoKSkpCi0gICAgICAgICAgICAgICAgcmVzdWx0
LmFwcGVuZChlbGVtZW50KTsKKyAgICBhdXRvJiBub2RlU2V0ID0gaGl0VGVzdFJlc3VsdC5saXN0
QmFzZWRUZXN0UmVzdWx0KCk7CisgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkobm9k
ZVNldC5zaXplKCkpOworICAgIGZvciAoYXV0byYgbm9kZSA6IG5vZGVTZXQpIHsKKyAgICAgICAg
aWYgKGlzPEVsZW1lbnQ+KG5vZGUpICYmIGlzRWRpdGFibGVUZXh0SW5wdXRFbGVtZW50KGRvd25j
YXN0PEVsZW1lbnQ+KCpub2RlKSkpIHsKKyAgICAgICAgICAgIEFTU0VSVChzZWFyY2hSZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmNs
aWVudFJlY3QoKSkpOworICAgICAgICAgICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChkb3duY2Fz
dDxFbGVtZW50Pigqbm9kZSkpOwogICAgICAgICB9Ci0gICAgfSk7CisgICAgfQogICAgIHJldHVy
biByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0TG9jYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlv
bi5jcHAKaW5kZXggMzhlZWUxYTAzNmM3NzVmM2I3M2RhNzAyZDZjNzU0ODRkYWUyMGNhMy4uYTU2
MTNiODMxZjRmZWY2NWUzY2JkNjM5MTI0MTgxZjE1Yjk1Y2FjYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAKQEAgLTQ4LDYgKzQ4LDE1IEBAIEhpdFRl
c3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25z
dCBGbG9hdFF1YWQmIHF1YWQpCiB7CiB9CiAKK0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0
aW9uKGNvbnN0IExheW91dFJlY3QmIHJlY3QpCisgICAgOiBtX3BvaW50IHsgcmVjdC5jZW50ZXIo
KSB9IC8vIFJvdW5kZWQgdG8gYW4gaW50ZWdlciBwb2ludDsgaXQgbWF5IG5vdCBiZSB0aGUgZXhh
Y3QgY2VudGVyLgorICAgICwgbV9ib3VuZGluZ0JveCB7IHJlY3QgfQorICAgICwgbV90cmFuc2Zv
cm1lZFBvaW50IHsgcmVjdC5jZW50ZXIoKSB9CisgICAgLCBtX3RyYW5zZm9ybWVkUmVjdCB7IEZs
b2F0UXVhZCB7IG1fYm91bmRpbmdCb3ggfSB9CisgICAgLCBtX2lzUmVjdEJhc2VkIHsgdHJ1ZSB9
Cit7Cit9CisKIEhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBv
aW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRk
aW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZykKICAgICA6
IG1fcG9pbnQoY2VudGVyUG9pbnQpCiAgICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2ludChj
ZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0
UGFkZGluZykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExv
Y2F0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKaW5k
ZXggYWRmMTRlZjVlNmE5ZjFhMGFmNzFlOTcxYzJmZDZkZTUwYTYwMTg4MC4uMDIzMDM1ZjRiOWE1
YzMzNTIyMDcxOWQ0NTFmYzA0NTU1N2ZlZTAzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uaApAQCAtMzEsOCArMzEsMTAgQEAgcHVibGljOgogICAgIEhpdFRl
c3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRl
c3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jik7CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0
IEZsb2F0UG9pbnQmLCBjb25zdCBGbG9hdFF1YWQmKTsKLSAgICAvLyBQYXNzIG5vbi16ZXJvIHBh
ZGRpbmcgdmFsdWVzIHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0LgorCisgICAgSGl0
VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFJlY3QmKTsKICAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25l
ZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRk
aW5nKTsKKwogICAgIC8vIE1ha2UgYSBjb3B5IHRoZSBIaXRUZXN0TG9jYXRpb24gaW4gYSBuZXcg
cmVnaW9uIGJ5IGFwcGx5aW5nIGdpdmVuIG9mZnNldCB0byBpbnRlcm5hbCBwb2ludCBhbmQgYXJl
YS4KICAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0KTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0TG9jYXRpb24oY29u
c3QgSGl0VGVzdExvY2F0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGl0VGVzdFJlc3VsdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJl
c3VsdC5jcHAKaW5kZXggODIyMDQyNGEyMjc1MGE3ZTgyZjQ2MzM4NTBhMDNkYWE2Y2Y0N2Q2OC4u
MzFkMGY4OTFmMDRhY2M5N2FhZDk3MGQ5OWJhZDJmZTM2ZGRlMzY1OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcApAQCAtNjIsNiArNjIsMTIgQEAgSGl0VGVz
dFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2ludCYgcG9pbnQpCiB7CiB9CiAK
K0hpdFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKKyAg
ICA6IG1faGl0VGVzdExvY2F0aW9uIHsgcmVjdCB9CisgICAgLCBtX3BvaW50SW5Jbm5lck5vZGVG
cmFtZSB7IHJlY3QuY2VudGVyKCkgfQoreworfQorCiBIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVz
dWx0KGNvbnN0IExheW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywg
dW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBs
ZWZ0UGFkZGluZykKICAgICA6IG1faGl0VGVzdExvY2F0aW9uKGNlbnRlclBvaW50LCB0b3BQYWRk
aW5nLCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nKQogICAgICwgbV9w
b2ludEluSW5uZXJOb2RlRnJhbWUoY2VudGVyUG9pbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuaAppbmRleCBjMGZiZjNhNTc5ZGE2OGY5MmYyYTlmN2RkYzU0YzgyZTkz
OGY5ODVhLi42NGRlM2VlMjI3MGRlZmEyYjEwYmVjZjE2Nzg4MGRkNTUyNGVkNGM3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTQ0LDggKzQ0LDEwIEBAIHB1
YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQoKTsKICAgICBXRUJDT1JF
X0VYUE9SVCBleHBsaWNpdCBIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFBvaW50Jik7Ci0gICAg
Ly8gUGFzcyBub24tbmVnYXRpdmUgcGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFz
ZWQgaGl0IHRlc3QuCisKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBIaXRUZXN0UmVzdWx0
KGNvbnN0IExheW91dFJlY3QmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KGNv
bnN0IExheW91dFBvaW50JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWdu
ZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFk
ZGluZyk7CisKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBIaXRUZXN0UmVzdWx0KGNvbnN0
IEhpdFRlc3RMb2NhdGlvbiYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQoY29u
c3QgSGl0VGVzdFJlc3VsdCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5IaXRUZXN0UmVzdWx0KCk7
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg4
OWY2NjI3NjkzMDMzMWQyYjk0MjllNGFlNzU5NGRjYTY2MjVmZS4uOTBkN2E3ODQ3NzNjMzFlNzk1
ZWNlMTc4OGNjZTIxZmI1OWE1ZjliZSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIwLTAyLTI5ICBEYW5pZWwgQmF0
ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCByZXR1cm4g
Zm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTk4
Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VXBkYXRlIHRlc3QgcmVzdWx0cyB0byByZWZsZWN0IHRoZSBuZXcgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250
ZXh0Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMTktMTAtMTkgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtsbGRiLXdlYmtpdF0gQWRkIHN1cHBvcnQgZm9y
IHByZXR0eS1wcmludGluZyBjb21wbGV4IGJpdG1hc2tzIApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENv
bnRleHQubW0KaW5kZXggNzBiNDcxMTk5NTk1NDgzOThkMTA5M2ZmZTU1YWI1M2YwOWQxZWZkMS4u
N2FlOTljODRlMDY3MGZjOWFlNGZiMmUwYWFmNmRjNzcyOTI0MDhmYyAxMDA2NDQKLS0tIGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4
dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0Lm1tCkBAIC0xNTksMTYgKzE1OSwxNyBAQCBURVNUKFdlYktpdCwgUmVx
dWVzdFRleHRJbnB1dENvbnRleHQpCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1M
U3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4
OyBoZWlnaHQ6IDUwcHg7Jz48YnIvPjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUw
cHg7IGhlaWdodDogNTBweDsnPjxici8+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDog
NTBweDsgaGVpZ2h0OiA1MHB4Oyc+IildOwogICAgIGNvbnRleHRzID0gW3dlYlZpZXcgc3luY2hy
b25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmlldyBmcmFtZV1dOwog
ICAgIEVYUEVDVF9FUSgzVUwsIGNvbnRleHRzLmNvdW50KTsKLSAgICBFWFBFQ1RfRVEoQ0dSZWN0
TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1JlY3QpOworICAgIEVYUEVD
VF9FUShDR1JlY3RNYWtlKDAsIDEwMCwgNTAsIDUwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0
KTsKICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCA1MCwgNTAsIDUwKSwgY29udGV4dHNbMV0u
Ym91bmRpbmdSZWN0KTsKLSAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAxMDAsIDUwLCA1MCks
IGNvbnRleHRzWzJdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwg
MCwgNTAsIDUwKSwgY29udGV4dHNbMl0uYm91bmRpbmdSZWN0KTsKIAotICAgIC8vIE5lc3RlZCA8
aW5wdXQ+LWluc2lkZS1jb250ZW50ZWRpdGFibGUuIE9ubHkgdGhlIGNvbnRlbnRlZGl0YWJsZSBp
cyBjb25zaWRlcmVkLgorICAgIC8vIE5lc3RlZCA8aW5wdXQ+LWluc2lkZS1jb250ZW50ZWRpdGFi
bGUuCiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHls
ZShAIjxkaXYgY29udGVudGVkaXRhYmxlIHN0eWxlPSd3aWR0aDogMTAwcHg7IGhlaWdodDogMTAw
cHg7Jz48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7
Jz48L2Rpdj4iKV07CiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVz
dFRleHRJbnB1dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1lXV07Ci0gICAgRVhQRUNUX0VR
KDFVTCwgY29udGV4dHMuY291bnQpOwotICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDEw
MCwgMTAwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKKyAgICBFWFBFQ1RfRVEoMlVMLCBj
b250ZXh0cy5jb3VudCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwg
Y29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAw
LCAxMDAsIDEwMCksIGNvbnRleHRzWzFdLmJvdW5kaW5nUmVjdCk7CiB9CiAKIFRFU1QoV2ViS2l0
LCBESVNBQkxFRF9Gb2N1c1RleHRJbnB1dENvbnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392078</attachid>
            <date>2020-02-29 16:05:33 -0800</date>
            <delta_ts>2020-03-01 16:23:15 -0800</delta_ts>
            <desc>Patch + iOS guess</desc>
            <filename>MacFix+iOSGuess.patch</filename>
            <type>text/plain</type>
            <size>13194</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">RnJvbSA0YmVjZGEyNzJiYWFlZDk3Yjk2MGQ3OTEzYWI4ZGViZjcyZGFjN2EzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBEYW5pZWwgQmF0ZXMgPGRhYmF0ZXNAYXBwbGUuY29tPgpEYXRl
OiBTYXQsIDI5IEZlYiAyMDIwIDE1OjI1OjEzIC0wODAwClN1YmplY3Q6IFtQQVRDSF0gUGFnZTo6
ZWRpdGFibGVFbGVtZW50c0luUmVjdCgpIHNob3VsZCBmaW5kIG5lc3RlZCBlZGl0YWJsZQogZWxl
bWVudHMgYW5kIHJldHVybiBmb3VuZCBlbGVtZW50cyBpbiBwYWludCBvcmRlcgogaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MiA8cmRhcjovL3Byb2JsZW0vNTk4
Njc4MTU+CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClNvdXJjZS9XZWJDb3JlOgoKVXNl
IHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeSB0byBjb2xsZWN0
IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KdGhlIHBhZ2UgdGhhdCBhIHBlcnNvbiBjYW4g
aGl0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1l
bnRzCihlLmcuIGFuIDxpbnB1dD4gaW5zaWRlIGEgPGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUi
PiksIGlnbm9yZSBlbGVtZW50cyB3aXRoIENTUyAicG9pbnRlci1ldmVudHM6IG5vbmUiLAphbmQg
cmV0dXJuIGVsZW1lbnRzIGluIHBhaW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEg
cGVyc29uJ3MgZmFjZSkuIFRoZSBsYXR0ZXIKbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2FsbGVy
IHRvIGtub3cgd2hhdCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3bwpl
ZGl0YWJsZSBlbGVtZW50cyBvdmVybGFwLgoKKiBwYWdlL1BhZ2UuY3BwOgooV2ViQ29yZTo6UGFn
ZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6IEltcGxlbWVudCBpbiB0ZXJtcyBvZiBo
aXQgdGVzdGluZyBtYWNoaW5lcnkuCiogcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHA6CihX
ZWJDb3JlOjpIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbik6CiogcmVuZGVyaW5nL0hp
dFRlc3RMb2NhdGlvbi5oOgoqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKFdlYkNvcmU6
OkhpdFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQpOgoqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0
Lmg6CkFkZGVkIGNvbnZlbmllbmNlIGNvbnN0cnVjdG9ycyB0aGF0IHRha2UgYSBMYXlvdXRSZWN0
LgoKVG9vbHM6CgpVcGRhdGUgdGVzdCByZXN1bHRzIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhhdmlv
ci4KCiogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29u
dGV4dC5tbToKKFRFU1QpOgotLS0KIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyAgICAgICAgICAg
ICAgICAgICAgICB8IDI1ICsrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cCAgICAgICAgICAgICAgICAgIHwgMzkgKysrKysrKysrKy0tLS0tLS0tLQogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAgIHwgIDkgKysrKysKIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaCAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAgICAgfCAgNiArKysKIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggICAgICB8ICA0ICstCiBUb29scy9DaGFuZ2VMb2cg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAxMyArKysrKysrCiAuLi4vV2ViS2l0Q29j
b2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0gICAgfCAxOSArKysrKystLS0KIDggZmlsZXMg
Y2hhbmdlZCwgOTQgaW5zZXJ0aW9ucygrKSwgMjUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDY4YjE5YjMzOGJhLi45NjcxNmQ0MzE5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDIwLTAyLTI5ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQ
YWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxl
IGVsZW1lbnRzIGFuZCByZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXNlIHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0
aW5nIG1hY2hpbmVyeSB0byBjb2xsZWN0IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KKyAg
ICAgICAgdGhlIHBhZ2UgdGhhdCBhIHBlcnNvbiBjYW4gaGl0LiBUaGlzIG1ha2VzIGl0IHBvc3Np
YmxlIHRvIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIChlLmcuIGFuIDxp
bnB1dD4gaW5zaWRlIGEgPGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiPiksIGlnbm9yZSBlbGVt
ZW50cyB3aXRoIENTUyAicG9pbnRlci1ldmVudHM6IG5vbmUiLAorICAgICAgICBhbmQgcmV0dXJu
IGVsZW1lbnRzIGluIHBhaW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEgcGVyc29u
J3MgZmFjZSkuIFRoZSBsYXR0ZXIKKyAgICAgICAgbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2Fs
bGVyIHRvIGtub3cgd2hhdCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3
bworICAgICAgICBlZGl0YWJsZSBlbGVtZW50cyBvdmVybGFwLgorCisgICAgICAgICogcGFnZS9Q
YWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3Qg
Y29uc3QpOiBJbXBsZW1lbnQgaW4gdGVybXMgb2YgaGl0IHRlc3RpbmcgbWFjaGluZXJ5LgorICAg
ICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9I
aXRUZXN0TG9jYXRpb24uaDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICBBZGRlZCBjb252ZW5pZW5j
ZSBjb25zdHJ1Y3RvcnMgdGhhdCB0YWtlIGEgTGF5b3V0UmVjdC4KKwogMjAyMC0wMi0yOCAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW4gaW50
ZXJuYWwgc2V0dGluZyB0byBlbmFibGUgb3IgZGlzYWJsZSBjYW52YXMgcmVuZGVyaW5nIGluIHRo
ZSBHUFUgUHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYTkxZTg2ZTg2YTAuLjMzNDQ0NmFl
MGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTkyNywyNiArOTI3LDI5IEBAIHN0YXRpYyBib29s
IGlzRWRpdGFibGVUZXh0SW5wdXRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCiAKIFZl
Y3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoY29uc3QgRmxv
YXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAogewotICAgIFZl
Y3RvcjxSZWY8RWxlbWVudD4+IHJlc3VsdDsKLSAgICBmb3JFYWNoRG9jdW1lbnQoWyZdIChEb2N1
bWVudCYgZG9jdW1lbnQpIHsKLSAgICAgICAgRGVxdWU8Tm9kZSo+IG5vZGVzVG9TZWFyY2g7Ci0g
ICAgICAgIG5vZGVzVG9TZWFyY2guYXBwZW5kKCZkb2N1bWVudCk7Ci0gICAgICAgIHdoaWxlICgh
bm9kZXNUb1NlYXJjaC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgIGF1dG8qIG5vZGUgPSBub2Rl
c1RvU2VhcmNoLnRha2VGaXJzdCgpOwotCi0gICAgICAgICAgICAvLyBJdCBpcyBwb3NzaWJsZSB0
byBoYXZlIG5lc3RlZCB0ZXh0IGlucHV0IGNvbnRleHRzIChlLmcuIDxpbnB1dCB0eXBlPSd0ZXh0
Jz4gaW5zaWRlIGNvbnRlbnRlZGl0YWJsZSkgYnV0Ci0gICAgICAgICAgICAvLyBpbiB0aGlzIGNh
c2Ugd2UganVzdCB0YWtlIHRoZSBvdXRlcm1vc3QgY29udGV4dCBhbmQgc2tpcCB0aGUgcmVzdC4K
LSAgICAgICAgICAgIGlmICghaXM8RWxlbWVudD4obm9kZSkgfHwgIWlzRWRpdGFibGVUZXh0SW5w
dXRFbGVtZW50KGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKSkpIHsKLSAgICAgICAgICAgICAgICBm
b3IgKGF1dG8qIGNoaWxkID0gbm9kZS0+Zmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgICAgICAgICAgICAgbm9kZXNUb1NlYXJjaC5hcHBl
bmQoY2hpbGQpOwotICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgfQorICAg
IGF1dG8qIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIWZyYW1lVmll
dykKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRv
d25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKLSAgICAgICAgICAgIGlmIChzZWFyY2hSZWN0SW5Sb290
Vmlld0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZWxlbWVudC5jbGllbnRSZWN0KCkpKQotICAgICAg
ICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWxlbWVudCk7CisgICAgYXV0byogZG9jdW1lbnQgPSBt
YWluRnJhbWUoKS5kb2N1bWVudCgpOworICAgIGlmICghZG9jdW1lbnQpCisgICAgICAgIHJldHVy
biB7IH07CisKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRlc3RSZXF1ZXN0OjpSZXF1ZXN0
VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25seSwgSGl0VGVzdFJlcXVlc3Q6
OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkNvbGxlY3RNdWx0aXBsZUVsZW1lbnRzLCBIaXRUZXN0
UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50LCBIaXRUZXN0UmVxdWVzdDo6
QWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07CisgICAgTGF5b3V0UmVjdCBzZWFy
Y2hSZWN0SW5NYWluRnJhbWVDb29yZGluYXRlcyA9IGZyYW1lVmlldy0+cm9vdFZpZXdUb0NvbnRl
bnRzKHJvdW5kZWRJbnRSZWN0KHNlYXJjaFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMpKTsKKyAg
ICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQgeyBzZWFyY2hSZWN0SW5NYWluRnJhbWVDb29y
ZGluYXRlcyB9OworICAgIGlmICghZG9jdW1lbnQtPmhpdFRlc3QoaGl0VHlwZSwgaGl0VGVzdFJl
c3VsdCkpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBy
ZXN1bHQ7CisgICAgYXV0byYgbm9kZVNldCA9IGhpdFRlc3RSZXN1bHQubGlzdEJhc2VkVGVzdFJl
c3VsdCgpOworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG5vZGVTZXQuc2l6ZSgp
KTsKKyAgICBmb3IgKGF1dG8mIG5vZGUgOiBub2RlU2V0KSB7CisgICAgICAgIGlmIChpczxFbGVt
ZW50Pihub2RlKSAmJiBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChkb3duY2FzdDxFbGVtZW50
Pigqbm9kZSkpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2VhcmNoUmVjdEluUm9vdFZpZXdDb29y
ZGluYXRlcy5pbnRlcnNlY3RzKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5jbGllbnRSZWN0KCkp
KTsKKyAgICAgICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoZG93bmNhc3Q8RWxlbWVudD4o
Km5vZGUpKTsKICAgICAgICAgfQotICAgIH0pOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCmluZGV4
IDM4ZWVlMWEwMzZjLi5hNTYxM2I4MzFmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RMb2NhdGlvbi5jcHAKQEAgLTQ4LDYgKzQ4LDE1IEBAIEhpdFRlc3RMb2NhdGlvbjo6
SGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBjb25zdCBGbG9hdFF1YWQm
IHF1YWQpCiB7CiB9CiAKK0hpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IExh
eW91dFJlY3QmIHJlY3QpCisgICAgOiBtX3BvaW50IHsgcmVjdC5jZW50ZXIoKSB9IC8vIFJvdW5k
ZWQgdG8gYW4gaW50ZWdlciBwb2ludDsgaXQgbWF5IG5vdCBiZSB0aGUgZXhhY3QgY2VudGVyLgor
ICAgICwgbV9ib3VuZGluZ0JveCB7IHJlY3QgfQorICAgICwgbV90cmFuc2Zvcm1lZFBvaW50IHsg
cmVjdC5jZW50ZXIoKSB9CisgICAgLCBtX3RyYW5zZm9ybWVkUmVjdCB7IEZsb2F0UXVhZCB7IG1f
Ym91bmRpbmdCb3ggfSB9CisgICAgLCBtX2lzUmVjdEJhc2VkIHsgdHJ1ZSB9Cit7Cit9CisKIEhp
dFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50JiBjZW50ZXJQ
b2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLCB1bnNpZ25l
ZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZykKICAgICA6IG1fcG9pbnQoY2Vu
dGVyUG9pbnQpCiAgICAgLCBtX2JvdW5kaW5nQm94KHJlY3RGb3JQb2ludChjZW50ZXJQb2ludCwg
dG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZykpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKaW5kZXggYWRmMTRlZjVl
NmEuLjAyMzAzNWY0YjlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdExvY2F0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2Nh
dGlvbi5oCkBAIC0zMSw4ICszMSwxMCBAQCBwdWJsaWM6CiAgICAgSGl0VGVzdExvY2F0aW9uKGNv
bnN0IExheW91dFBvaW50Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdExvY2F0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmKTsKICAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYs
IGNvbnN0IEZsb2F0UXVhZCYpOwotICAgIC8vIFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1ZXMg
dG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0IHRlc3QuCisKKyAgICBIaXRUZXN0TG9jYXRpb24o
Y29uc3QgTGF5b3V0UmVjdCYpOwogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2lu
dCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGlu
ZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworCiAgICAg
Ly8gTWFrZSBhIGNvcHkgdGhlIEhpdFRlc3RMb2NhdGlvbiBpbiBhIG5ldyByZWdpb24gYnkgYXBw
bHlpbmcgZ2l2ZW4gb2Zmc2V0IHRvIGludGVybmFsIHBvaW50IGFuZCBhcmVhLgogICAgIEhpdFRl
c3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRTaXplJiBvZmZz
ZXQpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9j
YXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVz
dWx0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRl
eCA4MjIwNDI0YTIyNy4uMzFkMGY4OTFmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKQEAgLTYyLDYgKzYyLDEyIEBAIEhpdFRlc3RSZXN1bHQ6OkhpdFRl
c3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewogfQogCitIaXRUZXN0UmVzdWx0
OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCisgICAgOiBtX2hpdFRlc3RM
b2NhdGlvbiB7IHJlY3QgfQorICAgICwgbV9wb2ludEluSW5uZXJOb2RlRnJhbWUgeyByZWN0LmNl
bnRlcigpIH0KK3sKK30KKwogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlv
dXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0
UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCiAg
ICAgOiBtX2hpdFRlc3RMb2NhdGlvbihjZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRk
aW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZykKICAgICAsIG1fcG9pbnRJbklubmVyTm9k
ZUZyYW1lKGNlbnRlclBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmgKaW5kZXggYzBmYmYzYTU3OWQuLjY0ZGUzZWUyMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0UmVzdWx0LmgKQEAgLTQ0LDggKzQ0LDEwIEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQoKTsKICAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNp
dCBIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFBvaW50Jik7Ci0gICAgLy8gUGFzcyBub24tbmVn
YXRpdmUgcGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFzZWQgaGl0IHRlc3QuCisK
KyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFJl
Y3QmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFBvaW50
JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5n
LCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7CisKICAgICBX
RUJDT1JFX0VYUE9SVCBleHBsaWNpdCBIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RMb2NhdGlv
biYpOwogICAgIFdFQkNPUkVfRVhQT1JUIEhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVzdFJlc3Vs
dCYpOwogICAgIFdFQkNPUkVfRVhQT1JUIH5IaXRUZXN0UmVzdWx0KCk7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTg4OWY2NjI3NjkuLjkwZDdh
Nzg0NzczIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTYgQEAKKzIwMjAtMDItMjkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBw
bGUuY29tPgorCisgICAgICAgIFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoKSBzaG91bGQg
ZmluZCBuZXN0ZWQgZWRpdGFibGUgZWxlbWVudHMgYW5kIHJldHVybiBmb3VuZCBlbGVtZW50cyBp
biBwYWludCBvcmRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjA4MzUyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTg2NzgxNT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1
bHRzIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhhdmlvci4KKworICAgICAgICAqIFRlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW06CisgICAgICAg
IChURVNUKToKKwogMjAxOS0xMC0xOSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+
CiAKICAgICAgICAgW2xsZGItd2Via2l0XSBBZGQgc3VwcG9ydCBmb3IgcHJldHR5LXByaW50aW5n
IGNvbXBsZXggYml0bWFza3MgCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQppbmRleCA3
MGI0NzExOTk1OS4uMWMzZGY5MjhlMjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5t
bQpAQCAtMzUsNiArMzUsMTIgQEAKICNpbXBvcnQgPFdlYktpdC9fV0tUZXh0SW5wdXRDb250ZXh0
Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorQGludGVyZmFjZSBXS1dlYlZpZXcgKCkKKy0gKHZvaWQpX3NjaGVkdWxlVmlzaWJsZUNvbnRl
bnRSZWN0VXBkYXRlOworQGVuZAorI2VuZGlmCisKIEBpbXBsZW1lbnRhdGlvbiBXS1dlYlZpZXcg
KFN5bmNocm9ub3VzVGV4dElucHV0Q29udGV4dCkKIAogLSAoTlNBcnJheTxfV0tUZXh0SW5wdXRD
b250ZXh0ICo+ICopc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDoo
Q0dSZWN0KXJlY3QKQEAgLTEzOCw2ICsxNDQsNyBAQCBURVNUKFdlYktpdCwgUmVxdWVzdFRleHRJ
bnB1dENvbnRleHQpCiAgICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5zY3JvbGxUbygwLCA1MDAwKTsiXTsKICNlbHNlCiAgICAgW3dlYlZpZXcgc2Nyb2xs
Vmlld10uY29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKDAsIDUwMDApOworICAgIFt3ZWJWaWV3
IF9zY2hlZHVsZVZpc2libGVDb250ZW50UmVjdFVwZGF0ZV07CiAjZW5kaWYKICAgICBjb250ZXh0
cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6
W3dlYlZpZXcgZnJhbWVdXTsKICAgICBFWFBFQ1RfRVEoMFVMLCBjb250ZXh0cy5jb3VudCk7CkBA
IC0xNDksNiArMTU2LDcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0KQog
ICAgIFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuc2Nyb2xs
VG8oMCwgNTAwMCk7Il07CiAjZWxzZQogICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLmNvbnRlbnRP
ZmZzZXQgPSBDR1BvaW50TWFrZSgwLCA1MDAwKTsKKyAgICBbd2ViVmlldyBfc2NoZWR1bGVWaXNp
YmxlQ29udGVudFJlY3RVcGRhdGVdOwogI2VuZGlmCiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBz
eW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1l
XV07CiAgICAgRVhQRUNUX0VRKDFVTCwgY29udGV4dHMuY291bnQpOwpAQCAtMTU5LDE2ICsxNjcs
MTcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0KQogICAgIFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPGlucHV0IHR5cGU9J3Rl
eHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+PGJyLz48aW5wdXQgdHlwZT0n
dGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnIvPjxpbnB1dCB0eXBl
PSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPiIpXTsKICAgICBjb250
ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJl
Y3Q6W3dlYlZpZXcgZnJhbWVdXTsKICAgICBFWFBFQ1RfRVEoM1VMLCBjb250ZXh0cy5jb3VudCk7
Ci0gICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwgY29udGV4dHNbMF0uYm91
bmRpbmdSZWN0KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAxMDAsIDUwLCA1MCksIGNv
bnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CiAgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgNTAs
IDUwLCA1MCksIGNvbnRleHRzWzFdLmJvdW5kaW5nUmVjdCk7Ci0gICAgRVhQRUNUX0VRKENHUmVj
dE1ha2UoMCwgMTAwLCA1MCwgNTApLCBjb250ZXh0c1syXS5ib3VuZGluZ1JlY3QpOworICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDUwLCA1MCksIGNvbnRleHRzWzJdLmJvdW5kaW5nUmVj
dCk7CiAKLSAgICAvLyBOZXN0ZWQgPGlucHV0Pi1pbnNpZGUtY29udGVudGVkaXRhYmxlLiBPbmx5
IHRoZSBjb250ZW50ZWRpdGFibGUgaXMgY29uc2lkZXJlZC4KKyAgICAvLyBOZXN0ZWQgPGlucHV0
Pi1pbnNpZGUtY29udGVudGVkaXRhYmxlLgogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxv
YWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8ZGl2IGNvbnRlbnRlZGl0YWJsZSBzdHlsZT0nd2lk
dGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Oyc+PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0
aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+PC9kaXY+IildOwogICAgIGNvbnRleHRzID0gW3dlYlZp
ZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmlldyBm
cmFtZV1dOwotICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRzLmNvdW50KTsKLSAgICBFWFBFQ1Rf
RVEoQ0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCksIGNvbnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7
CisgICAgRVhQRUNUX0VRKDJVTCwgY29udGV4dHMuY291bnQpOworICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKDAsIDAsIDUwLCA1MCksIGNvbnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQ
RUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApLCBjb250ZXh0c1sxXS5ib3VuZGluZ1Jl
Y3QpOwogfQogCiBURVNUKFdlYktpdCwgRElTQUJMRURfRm9jdXNUZXh0SW5wdXRDb250ZXh0KQot
LSAKMi4yNC4xIChBcHBsZSBHaXQtMTI2KQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392106</attachid>
            <date>2020-03-01 16:23:16 -0800</date>
            <delta_ts>2020-03-01 16:25:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208352-20200301162316.patch</filename>
            <type>text/plain</type>
            <size>13130</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDllM2M2ZTA4MjY2OTFi
OGRjOGU4ZmE5MWRmYzAwZTRlNjNhNDkwNi4uYzg3NmI1NjkyMDQyM2NkYmU1MjMwNGNmMGZkMWEz
ZjViZTEyMzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeSB0
byBjb2xsZWN0IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KKyAgICAgICAgdGhlIHBhZ2Ug
dGhhdCBhIHBlcnNvbiBjYW4gaGl0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZpbmQgbmVz
dGVkIGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIChlLmcuIGFuIDxpbnB1dD4gaW5zaWRlIGEg
PGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiPiksIGlnbm9yZSBlbGVtZW50cyB3aXRoIENTUyAi
cG9pbnRlci1ldmVudHM6IG5vbmUiLAorICAgICAgICBhbmQgcmV0dXJuIGVsZW1lbnRzIGluIHBh
aW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEgcGVyc29uJ3MgZmFjZSkuIFRoZSBs
YXR0ZXIKKyAgICAgICAgbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2FsbGVyIHRvIGtub3cgd2hh
dCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3bworICAgICAgICBlZGl0
YWJsZSBlbGVtZW50cyBvdmVybGFwLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOiBJbXBsZW1l
bnQgaW4gdGVybXMgb2YgaGl0IHRlc3RpbmcgbWFjaGluZXJ5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oOgorICAgICAgICBBZGRlZCBjb252ZW5pZW5jZSBjb25zdHJ1Y3RvcnMg
dGhhdCB0YWtlIGEgTGF5b3V0UmVjdC4KKwogMjAxOS0wOS0xMyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBidWlsZGluZyBXZWJLaXQgZm9yIE1h
YyBDYXRhbHlzdCBmcm9tIFhjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBhOTFlODZlODZhMDIw
OTE0ZjQ4ZWY5NTEyZDg2NzFjYmNmNWMyZGM0Li4zMzQ0NDZhZTBjZjljMzc5ZTEzOGYyYTY4MmZm
MzAzZWJmYWQ1NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTkyNywyNiArOTI3LDI5IEBAIHN0
YXRpYyBib29sIGlzRWRpdGFibGVUZXh0SW5wdXRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpCiAKIFZlY3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAog
eworICAgIGF1dG8qIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gbWFp
bkZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgY29uc3RleHByIE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5
cGU+IGhpdFR5cGUgeyBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHksIEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUsIEhpdFRlc3RSZXF1ZXN0OjpDb2xsZWN0TXVsdGlwbGVFbGVtZW50cywgSGl0VGVzdFJl
cXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFs
bG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSB9OworICAgIExheW91dFJlY3Qgc2VhcmNo
UmVjdEluTWFpbkZyYW1lQ29vcmRpbmF0ZXMgPSBmcmFtZVZpZXctPnJvb3RWaWV3VG9Db250ZW50
cyhyb3VuZGVkSW50UmVjdChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSk7CisgICAg
SGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0IHsgc2VhcmNoUmVjdEluTWFpbkZyYW1lQ29vcmRp
bmF0ZXMgfTsKKyAgICBpZiAoIWRvY3VtZW50LT5oaXRUZXN0KGhpdFR5cGUsIGhpdFRlc3RSZXN1
bHQpKQorICAgICAgICByZXR1cm4geyB9OworCiAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gcmVz
dWx0OwotICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgewotICAg
ICAgICBEZXF1ZTxOb2RlKj4gbm9kZXNUb1NlYXJjaDsKLSAgICAgICAgbm9kZXNUb1NlYXJjaC5h
cHBlbmQoJmRvY3VtZW50KTsKLSAgICAgICAgd2hpbGUgKCFub2Rlc1RvU2VhcmNoLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgYXV0byogbm9kZSA9IG5vZGVzVG9TZWFyY2gudGFrZUZpcnN0KCk7
Ci0KLSAgICAgICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbmVzdGVkIHRleHQgaW5w
dXQgY29udGV4dHMgKGUuZy4gPGlucHV0IHR5cGU9J3RleHQnPiBpbnNpZGUgY29udGVudGVkaXRh
YmxlKSBidXQKLSAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSB3ZSBqdXN0IHRha2UgdGhlIG91
dGVybW9zdCBjb250ZXh0IGFuZCBza2lwIHRoZSByZXN0LgotICAgICAgICAgICAgaWYgKCFpczxF
bGVtZW50Pihub2RlKSB8fCAhaXNFZGl0YWJsZVRleHRJbnB1dEVsZW1lbnQoZG93bmNhc3Q8RWxl
bWVudD4oKm5vZGUpKSkgewotICAgICAgICAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBub2Rl
LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAg
ICAgICAgICAgICAgICAgICBub2Rlc1RvU2VhcmNoLmFwcGVuZChjaGlsZCk7Ci0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGF1dG8mIGVsZW1l
bnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7Ci0gICAgICAgICAgICBpZiAoc2VhcmNoUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcy5pbnRlcnNlY3RzKGVsZW1lbnQuY2xpZW50UmVjdCgpKSkK
LSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGVsZW1lbnQpOworICAgIGF1dG8mIG5vZGVT
ZXQgPSBoaXRUZXN0UmVzdWx0Lmxpc3RCYXNlZFRlc3RSZXN1bHQoKTsKKyAgICByZXN1bHQucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShub2RlU2V0LnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBub2Rl
IDogbm9kZVNldCkgeworICAgICAgICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgaXNFZGl0YWJs
ZVRleHRJbnB1dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgeworICAgICAgICAg
ICAgQVNTRVJUKHNlYXJjaFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuaW50ZXJzZWN0cyhkb3du
Y2FzdDxFbGVtZW50Pigqbm9kZSkuY2xpZW50UmVjdCgpKSk7CisgICAgICAgICAgICByZXN1bHQu
dW5jaGVja2VkQXBwZW5kKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKSk7CiAgICAgICAgIH0KLSAg
ICB9KTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcAppbmRleCAzOGVlZTFhMDM2Yzc3NWYzYjczZGE3
MDJkNmM3NTQ4NGRhZTIwY2EzLi5hNTYxM2I4MzFmNGZlZjY1ZTNjYmQ2MzkxMjQxODFmMTViOTVj
YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcApA
QCAtNDgsNiArNDgsMTUgQEAgSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKIH0KIAorSGl0VGVz
dExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKKyAgICA6
IG1fcG9pbnQgeyByZWN0LmNlbnRlcigpIH0gLy8gUm91bmRlZCB0byBhbiBpbnRlZ2VyIHBvaW50
OyBpdCBtYXkgbm90IGJlIHRoZSBleGFjdCBjZW50ZXIuCisgICAgLCBtX2JvdW5kaW5nQm94IHsg
cmVjdCB9CisgICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQgeyByZWN0LmNlbnRlcigpIH0KKyAgICAs
IG1fdHJhbnNmb3JtZWRSZWN0IHsgRmxvYXRRdWFkIHsgbV9ib3VuZGluZ0JveCB9IH0KKyAgICAs
IG1faXNSZWN0QmFzZWQgeyB0cnVlIH0KK3sKK30KKwogSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0
TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRk
aW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2ln
bmVkIGxlZnRQYWRkaW5nKQogICAgIDogbV9wb2ludChjZW50ZXJQb2ludCkKICAgICAsIG1fYm91
bmRpbmdCb3gocmVjdEZvclBvaW50KGNlbnRlclBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRp
bmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uaAppbmRleCBhZGYxNGVmNWU2YTlmMWEwYWY3MWU5NzFjMmZkNmRl
NTBhNjAxODgwLi4wMjMwMzVmNGI5YTVjMzM1MjIwNzE5ZDQ1MWZjMDQ1NTU3ZmVlMDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCkBAIC0zMSw4ICszMSwx
MCBAQCBwdWJsaWM6CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50Jik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKICAg
ICBIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UXVhZCYpOwot
ICAgIC8vIFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFz
ZWQgaGl0IHRlc3QuCisKKyAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UmVjdCYpOwog
ICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2ln
bmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFk
ZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworCiAgICAgLy8gTWFrZSBhIGNvcHkgdGhlIEhp
dFRlc3RMb2NhdGlvbiBpbiBhIG5ldyByZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zmc2V0IHRv
IGludGVybmFsIHBvaW50IGFuZCBhcmVhLgogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRU
ZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCA4MjIwNDI0YTIyNzUwYTdlODJm
NDYzMzg1MGEwM2RhYTZjZjQ3ZDY4Li4zMWQwZjg5MWYwNGFjYzk3YWFkOTcwZDk5YmFkMmZlMzZk
ZGUzNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBA
IC02Miw2ICs2MiwxMiBAQCBIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91
dFBvaW50JiBwb2ludCkKIHsKIH0KIAorSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25z
dCBMYXlvdXRSZWN0JiByZWN0KQorICAgIDogbV9oaXRUZXN0TG9jYXRpb24geyByZWN0IH0KKyAg
ICAsIG1fcG9pbnRJbklubmVyTm9kZUZyYW1lIHsgcmVjdC5jZW50ZXIoKSB9Cit7Cit9CisKIEhp
dFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50
LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJv
dHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQogICAgIDogbV9oaXRUZXN0TG9jYXRp
b24oY2VudGVyUG9pbnQsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywg
bGVmdFBhZGRpbmcpCiAgICAgLCBtX3BvaW50SW5Jbm5lck5vZGVGcmFtZShjZW50ZXJQb2ludCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCmluZGV4IGMwZmJmM2E1Nzlk
YTY4ZjkyZjJhOWY3ZGRjNTRjODJlOTM4Zjk4NWEuLjY0ZGUzZWUyMjcwZGVmYTJiMTBiZWNmMTY3
ODgwZGQ1NTI0ZWQ0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
aApAQCAtNDQsOCArNDQsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVz
dFJlc3VsdCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29u
c3QgTGF5b3V0UG9pbnQmKTsKLSAgICAvLyBQYXNzIG5vbi1uZWdhdGl2ZSBwYWRkaW5nIHZhbHVl
cyB0byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KKworICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNp
Z25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBh
ZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IEhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVzdExvY2F0aW9uJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0UmVzdWx0Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgfkhpdFRlc3RSZXN1bHQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0MzM0ODY3M2U4Njg0YjgwOGYxOWEyNDJlYmEzN2YxMzc4Y2Fl
ZTJlLi5lY2MxMzdiMmU3ZTI4YjI4NmU3YzIyYzYzZDg1MDVmNDQwNjZlZTg0IDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAK
KzIwMjAtMDMtMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoKSBzaG91bGQgZmluZCBuZXN0ZWQgZWRpdGFi
bGUgZWxlbWVudHMgYW5kIHJldHVybiBmb3VuZCBlbGVtZW50cyBpbiBwYWludCBvcmRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzUyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81OTg2NzgxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHRzIHRvIHJlZmxlY3QgdGhl
IG5ldyBiZWhhdmlvci4gVG8gZG8gdGhpcyBJIGFsc28gbmVlZCB0byBmaXggdXAgdGhlIHRlc3Qg
Y29kZQorICAgICAgICB0byBhY3R1YWxseSBzY3JvbGwgdGhlIHdlYiBjb250ZW50LiBUaGlzIGFs
c28gbWVhbnMgd2Ugbm93IGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBvbiBib3RoIE1hYyBhbmQKKyAg
ICAgICAgaU9TIHRvIGRvIHRoZSBzY3JvbGxpbmc6IHdpbmRvdy5zY3JvbGxUbygwLCA1MDAwKS4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJ
bnB1dENvbnRleHQubW06CisgICAgICAgIChURVNUKToKKwogMjAyMC0wMi0yNSAgRGFuaWVsIEJh
dGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgVGVzdFdlYktpdEFQSS5QYXN0ZU1p
eGVkQ29udGVudC5Db3B5QW5kUGFzdGVXaXRoQ3VzdG9tUGFzdGVib2FyZERhdGFPbmx5IHNob3Vs
ZCB3YWl0IHVudGlsIGNvcHkgb3BlcmF0aW9uIGNvbXBsZXRlcwpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5t
bSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1
dENvbnRleHQubW0KaW5kZXggNzBiNDcxMTk5NTk1NDgzOThkMTA5M2ZmZTU1YWI1M2YwOWQxZWZk
MS4uYjA1MGM1OGI1MzY4MDc3M2ZkNGQyYTI1YWYyNjdiOTU1Yjg3MmU4NiAxMDA2NDQKLS0tIGEv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29u
dGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVl
c3RUZXh0SW5wdXRDb250ZXh0Lm1tCkBAIC03Niw3ICs3Niw2IEBAIHN0YXRpYyBOU1N0cmluZyAq
YXBwbHlJZnJhbWUoTlNTdHJpbmcgKkhUTUxTdHJpbmcpCiBURVNUKFdlYktpdCwgUmVxdWVzdFRl
eHRJbnB1dENvbnRleHQpCiB7CiAgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOwotICAgIFdLUHJlZmVyZW5jZXNTZXRUaHJlYWRlZFNjcm9sbGluZ0VuYWJsZWQoKFdL
UHJlZmVyZW5jZXNSZWYpW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdLCBmYWxzZSk7CiAgICAg
UmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAogICAgIE5TQXJyYXk8X1dLVGV4dElucHV0
Q29udGV4dCAqPiAqY29udGV4dHM7CkBAIC0xMzMsMjMgKzEzMiwxOSBAQCBURVNUKFdlYktpdCwg
UmVxdWVzdFRleHRJbnB1dENvbnRleHQpCiAKICAgICAvLyBJbnB1dHMgc2Nyb2xsZWQgb3V0c2lk
ZSB0aGUgcmVxdWVzdGVkIHJlY3Q7IHNob3VsZCBub3QgYmUgaW5jbHVkZWQuCiAKLSAgICBbd2Vi
VmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxpbnB1dCB0eXBl
PSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjxicj48ZGl2IHN0eWxl
PSd3aWR0aDogMTAwcHg7IGhlaWdodDogNTAwMHB4Oyc+PC9kaXY+IildOwotI2lmIFBMQVRGT1JN
KE1BQykKLSAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93
LnNjcm9sbFRvKDAsIDUwMDApOyJdOwotI2Vsc2UKLSAgICBbd2ViVmlldyBzY3JvbGxWaWV3XS5j
b250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2UoMCwgNTAwMCk7Ci0jZW5kaWYKKyAgICBbd2ViVmll
dyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxpbnB1dCB0eXBlPSd0
ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjxicj48ZGl2IHN0eWxlPSd3
aWR0aDogMTAwcHg7IGhlaWdodDogMTAwMDBweDsnPjwvZGl2PiIpXTsKKyAgICBbd2ViVmlldyBz
dHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LnNjcm9sbFRvKDAsIDUwMDApIl07
CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25VcGRhdGVdOworICAgIEVYUEVD
VF9FUSg1MDAwLCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInBhZ2VZ
T2Zmc2V0Il0gZmxvYXRWYWx1ZV0pOwogICAgIGNvbnRleHRzID0gW3dlYlZpZXcgc3luY2hyb25v
dXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmlldyBmcmFtZV1dOwogICAg
IEVYUEVDVF9FUSgwVUwsIGNvbnRleHRzLmNvdW50KTsKIAogICAgIC8vIElucHV0cyBzY3JvbGxl
ZCBpbnRvIHRoZSByZXF1ZXN0ZWQgcmVjdC4KIAogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlM
b2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0
aDogNTBweDsgaGVpZ2h0OiA1MHB4OyBwb3NpdGlvbjogYWJzb2x1dGU7IHRvcDogNTAwMHB4Oyc+
PGJyPjxkaXYgc3R5bGU9J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDAwMHB4Oyc+PC9kaXY+Iild
OwotI2lmIFBMQVRGT1JNKE1BQykKLSAgICBbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZh
U2NyaXB0OkAid2luZG93LnNjcm9sbFRvKDAsIDUwMDApOyJdOwotI2Vsc2UKLSAgICBbd2ViVmll
dyBzY3JvbGxWaWV3XS5jb250ZW50T2Zmc2V0ID0gQ0dQb2ludE1ha2UoMCwgNTAwMCk7Ci0jZW5k
aWYKKyAgICBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAid2luZG93LnNj
cm9sbFRvKDAsIDUwMDApIl07CisgICAgW3dlYlZpZXcgd2FpdEZvck5leHRQcmVzZW50YXRpb25V
cGRhdGVdOworICAgIEVYUEVDVF9FUSg1MDAwLCBbW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5n
SmF2YVNjcmlwdDpAInBhZ2VZT2Zmc2V0Il0gZmxvYXRWYWx1ZV0pOwogICAgIGNvbnRleHRzID0g
W3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2Vi
VmlldyBmcmFtZV1dOwogICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRzLmNvdW50KTsKICAgICBF
WFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1Jl
Y3QpOwpAQCAtMTU5LDE2ICsxNTQsMTcgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RUZXh0SW5wdXRD
b250ZXh0KQogICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0
eWxlKEAiPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4
Oyc+PGJyLz48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUw
cHg7Jz48YnIvPjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDog
NTBweDsnPiIpXTsKICAgICBjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0
VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgZnJhbWVdXTsKICAgICBFWFBFQ1RfRVEo
M1VMLCBjb250ZXh0cy5jb3VudCk7Ci0gICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgNTAs
IDUwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFr
ZSgwLCAxMDAsIDUwLCA1MCksIGNvbnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CiAgICAgRVhQRUNU
X0VRKENHUmVjdE1ha2UoMCwgNTAsIDUwLCA1MCksIGNvbnRleHRzWzFdLmJvdW5kaW5nUmVjdCk7
Ci0gICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMTAwLCA1MCwgNTApLCBjb250ZXh0c1syXS5i
b3VuZGluZ1JlY3QpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDUwLCA1MCksIGNv
bnRleHRzWzJdLmJvdW5kaW5nUmVjdCk7CiAKLSAgICAvLyBOZXN0ZWQgPGlucHV0Pi1pbnNpZGUt
Y29udGVudGVkaXRhYmxlLiBPbmx5IHRoZSBjb250ZW50ZWRpdGFibGUgaXMgY29uc2lkZXJlZC4K
KyAgICAvLyBOZXN0ZWQgPGlucHV0Pi1pbnNpZGUtY29udGVudGVkaXRhYmxlLgogCiAgICAgW3dl
YlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8ZGl2IGNvbnRl
bnRlZGl0YWJsZSBzdHlsZT0nd2lkdGg6IDEwMHB4OyBoZWlnaHQ6IDEwMHB4Oyc+PGlucHV0IHR5
cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+PC9kaXY+IildOwog
ICAgIGNvbnRleHRzID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250
ZXh0c0luUmVjdDpbd2ViVmlldyBmcmFtZV1dOwotICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRz
LmNvdW50KTsKLSAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCksIGNvbnRl
eHRzWzBdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQRUNUX0VRKDJVTCwgY29udGV4dHMuY291bnQp
OworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDUwLCA1MCksIGNvbnRleHRzWzBdLmJv
dW5kaW5nUmVjdCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApLCBj
b250ZXh0c1sxXS5ib3VuZGluZ1JlY3QpOwogfQogCiBURVNUKFdlYktpdCwgRElTQUJMRURfRm9j
dXNUZXh0SW5wdXRDb250ZXh0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392107</attachid>
            <date>2020-03-01 16:25:25 -0800</date>
            <delta_ts>2020-03-02 10:49:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208352-20200301162524.patch</filename>
            <type>text/plain</type>
            <size>13390</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDllM2M2ZTA4MjY2OTFi
OGRjOGU4ZmE5MWRmYzAwZTRlNjNhNDkwNi4uYzg3NmI1NjkyMDQyM2NkYmU1MjMwNGNmMGZkMWEz
ZjViZTEyMzM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVXNlIHRoZSBleGlzdGluZyByZWN0LWJhc2VkIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeSB0
byBjb2xsZWN0IGFsbCB0aGUgZWRpdGFibGUgZWxlbWVudHMgb24KKyAgICAgICAgdGhlIHBhZ2Ug
dGhhdCBhIHBlcnNvbiBjYW4gaGl0LiBUaGlzIG1ha2VzIGl0IHBvc3NpYmxlIHRvIGZpbmQgbmVz
dGVkIGVkaXRhYmxlIGVsZW1lbnRzCisgICAgICAgIChlLmcuIGFuIDxpbnB1dD4gaW5zaWRlIGEg
PGRpdiBjb250ZW50ZWRpdGFibGU9InRydWUiPiksIGlnbm9yZSBlbGVtZW50cyB3aXRoIENTUyAi
cG9pbnRlci1ldmVudHM6IG5vbmUiLAorICAgICAgICBhbmQgcmV0dXJuIGVsZW1lbnRzIGluIHBh
aW50IG9yZGVyIChjbG9zZXN0IHRvIGZhcnRoZXN0IHRvIGEgcGVyc29uJ3MgZmFjZSkuIFRoZSBs
YXR0ZXIKKyAgICAgICAgbWFrZXMgaXQgcG9zc2libGUgZm9yIGEgY2FsbGVyIHRvIGtub3cgd2hh
dCBlbGVtZW50IGlzIGZyb250bW9zdCwgZXNwZWNpYWxseSB3aGVuIHR3bworICAgICAgICBlZGl0
YWJsZSBlbGVtZW50cyBvdmVybGFwLgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOiBJbXBsZW1l
bnQgaW4gdGVybXMgb2YgaGl0IHRlc3RpbmcgbWFjaGluZXJ5LgorICAgICAgICAqIHJlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9u
OjpIaXRUZXN0TG9jYXRpb24pOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24u
aDoKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5oOgorICAgICAgICBBZGRlZCBjb252ZW5pZW5jZSBjb25zdHJ1Y3RvcnMg
dGhhdCB0YWtlIGEgTGF5b3V0UmVjdC4KKwogMjAxOS0wOS0xMyAgRGFuaWVsIEJhdGVzICA8ZGFi
YXRlc0BhcHBsZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBidWlsZGluZyBXZWJLaXQgZm9yIE1h
YyBDYXRhbHlzdCBmcm9tIFhjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBhOTFlODZlODZhMDIw
OTE0ZjQ4ZWY5NTEyZDg2NzFjYmNmNWMyZGM0Li4zMzQ0NDZhZTBjZjljMzc5ZTEzOGYyYTY4MmZm
MzAzZWJmYWQ1NDI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTkyNywyNiArOTI3LDI5IEBAIHN0
YXRpYyBib29sIGlzRWRpdGFibGVUZXh0SW5wdXRFbGVtZW50KGNvbnN0IEVsZW1lbnQmIGVsZW1l
bnQpCiAKIFZlY3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiBzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSBjb25zdAog
eworICAgIGF1dG8qIGZyYW1lVmlldyA9IG1haW5GcmFtZSgpLnZpZXcoKTsKKyAgICBpZiAoIWZy
YW1lVmlldykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8qIGRvY3VtZW50ID0gbWFp
bkZyYW1lKCkuZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAgICByZXR1cm4g
eyB9OworCisgICAgY29uc3RleHByIE9wdGlvblNldDxIaXRUZXN0UmVxdWVzdDo6UmVxdWVzdFR5
cGU+IGhpdFR5cGUgeyBIaXRUZXN0UmVxdWVzdDo6UmVhZE9ubHksIEhpdFRlc3RSZXF1ZXN0OjpB
Y3RpdmUsIEhpdFRlc3RSZXF1ZXN0OjpDb2xsZWN0TXVsdGlwbGVFbGVtZW50cywgSGl0VGVzdFJl
cXVlc3Q6OkRpc2FsbG93VXNlckFnZW50U2hhZG93Q29udGVudCwgSGl0VGVzdFJlcXVlc3Q6OkFs
bG93VmlzaWJsZUNoaWxkRnJhbWVDb250ZW50T25seSB9OworICAgIExheW91dFJlY3Qgc2VhcmNo
UmVjdEluTWFpbkZyYW1lQ29vcmRpbmF0ZXMgPSBmcmFtZVZpZXctPnJvb3RWaWV3VG9Db250ZW50
cyhyb3VuZGVkSW50UmVjdChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKSk7CisgICAg
SGl0VGVzdFJlc3VsdCBoaXRUZXN0UmVzdWx0IHsgc2VhcmNoUmVjdEluTWFpbkZyYW1lQ29vcmRp
bmF0ZXMgfTsKKyAgICBpZiAoIWRvY3VtZW50LT5oaXRUZXN0KGhpdFR5cGUsIGhpdFRlc3RSZXN1
bHQpKQorICAgICAgICByZXR1cm4geyB9OworCiAgICAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gcmVz
dWx0OwotICAgIGZvckVhY2hEb2N1bWVudChbJl0gKERvY3VtZW50JiBkb2N1bWVudCkgewotICAg
ICAgICBEZXF1ZTxOb2RlKj4gbm9kZXNUb1NlYXJjaDsKLSAgICAgICAgbm9kZXNUb1NlYXJjaC5h
cHBlbmQoJmRvY3VtZW50KTsKLSAgICAgICAgd2hpbGUgKCFub2Rlc1RvU2VhcmNoLmlzRW1wdHko
KSkgewotICAgICAgICAgICAgYXV0byogbm9kZSA9IG5vZGVzVG9TZWFyY2gudGFrZUZpcnN0KCk7
Ci0KLSAgICAgICAgICAgIC8vIEl0IGlzIHBvc3NpYmxlIHRvIGhhdmUgbmVzdGVkIHRleHQgaW5w
dXQgY29udGV4dHMgKGUuZy4gPGlucHV0IHR5cGU9J3RleHQnPiBpbnNpZGUgY29udGVudGVkaXRh
YmxlKSBidXQKLSAgICAgICAgICAgIC8vIGluIHRoaXMgY2FzZSB3ZSBqdXN0IHRha2UgdGhlIG91
dGVybW9zdCBjb250ZXh0IGFuZCBza2lwIHRoZSByZXN0LgotICAgICAgICAgICAgaWYgKCFpczxF
bGVtZW50Pihub2RlKSB8fCAhaXNFZGl0YWJsZVRleHRJbnB1dEVsZW1lbnQoZG93bmNhc3Q8RWxl
bWVudD4oKm5vZGUpKSkgewotICAgICAgICAgICAgICAgIGZvciAoYXV0byogY2hpbGQgPSBub2Rl
LT5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKQotICAg
ICAgICAgICAgICAgICAgICBub2Rlc1RvU2VhcmNoLmFwcGVuZChjaGlsZCk7Ci0gICAgICAgICAg
ICAgICAgY29udGludWU7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGF1dG8mIGVsZW1l
bnQgPSBkb3duY2FzdDxFbGVtZW50Pigqbm9kZSk7Ci0gICAgICAgICAgICBpZiAoc2VhcmNoUmVj
dEluUm9vdFZpZXdDb29yZGluYXRlcy5pbnRlcnNlY3RzKGVsZW1lbnQuY2xpZW50UmVjdCgpKSkK
LSAgICAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGVsZW1lbnQpOworICAgIGF1dG8mIG5vZGVT
ZXQgPSBoaXRUZXN0UmVzdWx0Lmxpc3RCYXNlZFRlc3RSZXN1bHQoKTsKKyAgICByZXN1bHQucmVz
ZXJ2ZUluaXRpYWxDYXBhY2l0eShub2RlU2V0LnNpemUoKSk7CisgICAgZm9yIChhdXRvJiBub2Rl
IDogbm9kZVNldCkgeworICAgICAgICBpZiAoaXM8RWxlbWVudD4obm9kZSkgJiYgaXNFZGl0YWJs
ZVRleHRJbnB1dEVsZW1lbnQoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpKSkgeworICAgICAgICAg
ICAgQVNTRVJUKHNlYXJjaFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuaW50ZXJzZWN0cyhkb3du
Y2FzdDxFbGVtZW50Pigqbm9kZSkuY2xpZW50UmVjdCgpKSk7CisgICAgICAgICAgICByZXN1bHQu
dW5jaGVja2VkQXBwZW5kKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKSk7CiAgICAgICAgIH0KLSAg
ICB9KTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcAppbmRleCAzOGVlZTFhMDM2Yzc3NWYzYjczZGE3
MDJkNmM3NTQ4NGRhZTIwY2EzLi5hNTYxM2I4MzFmNGZlZjY1ZTNjYmQ2MzkxMjQxODFmMTViOTVj
YWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNwcApA
QCAtNDgsNiArNDgsMTUgQEAgSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgcG9pbnQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKIHsKIH0KIAorSGl0VGVz
dExvY2F0aW9uOjpIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UmVjdCYgcmVjdCkKKyAgICA6
IG1fcG9pbnQgeyByZWN0LmNlbnRlcigpIH0gLy8gUm91bmRlZCB0byBhbiBpbnRlZ2VyIHBvaW50
OyBpdCBtYXkgbm90IGJlIHRoZSBleGFjdCBjZW50ZXIuCisgICAgLCBtX2JvdW5kaW5nQm94IHsg
cmVjdCB9CisgICAgLCBtX3RyYW5zZm9ybWVkUG9pbnQgeyByZWN0LmNlbnRlcigpIH0KKyAgICAs
IG1fdHJhbnNmb3JtZWRSZWN0IHsgRmxvYXRRdWFkIHsgbV9ib3VuZGluZ0JveCB9IH0KKyAgICAs
IG1faXNSZWN0QmFzZWQgeyB0cnVlIH0KK3sKK30KKwogSGl0VGVzdExvY2F0aW9uOjpIaXRUZXN0
TG9jYXRpb24oY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNpZ25lZCB0b3BQYWRk
aW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2ln
bmVkIGxlZnRQYWRkaW5nKQogICAgIDogbV9wb2ludChjZW50ZXJQb2ludCkKICAgICAsIG1fYm91
bmRpbmdCb3gocmVjdEZvclBvaW50KGNlbnRlclBvaW50LCB0b3BQYWRkaW5nLCByaWdodFBhZGRp
bmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9IaXRUZXN0TG9jYXRpb24uaAppbmRleCBhZGYxNGVmNWU2YTlmMWEwYWY3MWU5NzFjMmZkNmRl
NTBhNjAxODgwLi4wMjMwMzVmNGI5YTVjMzM1MjIwNzE5ZDQ1MWZjMDQ1NTU3ZmVlMDM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCkBAIC0zMSw4ICszMSwx
MCBAQCBwdWJsaWM6CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50Jik7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEZsb2F0UG9pbnQmKTsKICAg
ICBIaXRUZXN0TG9jYXRpb24oY29uc3QgRmxvYXRQb2ludCYsIGNvbnN0IEZsb2F0UXVhZCYpOwot
ICAgIC8vIFBhc3Mgbm9uLXplcm8gcGFkZGluZyB2YWx1ZXMgdG8gcGVyZm9ybSBhIHJlY3QtYmFz
ZWQgaGl0IHRlc3QuCisKKyAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgTGF5b3V0UmVjdCYpOwog
ICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2ln
bmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFk
ZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworCiAgICAgLy8gTWFrZSBhIGNvcHkgdGhlIEhp
dFRlc3RMb2NhdGlvbiBpbiBhIG5ldyByZWdpb24gYnkgYXBwbHlpbmcgZ2l2ZW4gb2Zmc2V0IHRv
IGludGVybmFsIHBvaW50IGFuZCBhcmVhLgogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRU
ZXN0TG9jYXRpb24mLCBjb25zdCBMYXlvdXRTaXplJiBvZmZzZXQpOwogICAgIFdFQkNPUkVfRVhQ
T1JUIEhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24mKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAppbmRleCA4MjIwNDI0YTIyNzUwYTdlODJm
NDYzMzg1MGEwM2RhYTZjZjQ3ZDY4Li4zMWQwZjg5MWYwNGFjYzk3YWFkOTcwZDk5YmFkMmZlMzZk
ZGUzNjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3Vs
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCkBA
IC02Miw2ICs2MiwxMiBAQCBIaXRUZXN0UmVzdWx0OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91
dFBvaW50JiBwb2ludCkKIHsKIH0KIAorSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25z
dCBMYXlvdXRSZWN0JiByZWN0KQorICAgIDogbV9oaXRUZXN0TG9jYXRpb24geyByZWN0IH0KKyAg
ICAsIG1fcG9pbnRJbklubmVyTm9kZUZyYW1lIHsgcmVjdC5jZW50ZXIoKSB9Cit7Cit9CisKIEhp
dFRlc3RSZXN1bHQ6OkhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50
LCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJv
dHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKQogICAgIDogbV9oaXRUZXN0TG9jYXRp
b24oY2VudGVyUG9pbnQsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywg
bGVmdFBhZGRpbmcpCiAgICAgLCBtX3BvaW50SW5Jbm5lck5vZGVGcmFtZShjZW50ZXJQb2ludCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCmluZGV4IGMwZmJmM2E1Nzlk
YTY4ZjkyZjJhOWY3ZGRjNTRjODJlOTM4Zjk4NWEuLjY0ZGUzZWUyMjcwZGVmYTJiMTBiZWNmMTY3
ODgwZGQ1NTI0ZWQ0YzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0UmVzdWx0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQu
aApAQCAtNDQsOCArNDQsMTAgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVz
dFJlc3VsdCgpOwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29u
c3QgTGF5b3V0UG9pbnQmKTsKLSAgICAvLyBQYXNzIG5vbi1uZWdhdGl2ZSBwYWRkaW5nIHZhbHVl
cyB0byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KKworICAgIFdFQkNPUkVfRVhQT1JU
IGV4cGxpY2l0IEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UmVjdCYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIEhpdFRlc3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIGNlbnRlclBvaW50LCB1bnNp
Z25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBh
ZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nKTsKKwogICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxp
Y2l0IEhpdFRlc3RSZXN1bHQoY29uc3QgSGl0VGVzdExvY2F0aW9uJik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0UmVzdWx0Jik7CiAgICAgV0VCQ09SRV9F
WFBPUlQgfkhpdFRlc3RSZXN1bHQoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCA0MzM0ODY3M2U4Njg0YjgwOGYxOWEyNDJlYmEzN2YxMzc4Y2Fl
ZTJlLi40ZDNjNGE5ZjFkOGNiNGM1OTI1NjVmZTQ1YzBlYTU2ZmY4YjRkNDYxIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAK
KzIwMjAtMDMtMDEgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisgICAgICAg
IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3QoKSBzaG91bGQgZmluZCBuZXN0ZWQgZWRpdGFi
bGUgZWxlbWVudHMgYW5kIHJldHVybiBmb3VuZCBlbGVtZW50cyBpbiBwYWludCBvcmRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA4MzUyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS81OTg2NzgxNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHRzIHRvIHJlZmxlY3QgdGhl
IG5ldyBiZWhhdmlvci4gVG8gZG8gdGhpcyBJIGFsc28gbmVlZCB0byBmaXggdXAgdGhlIHRlc3Qg
Y29kZQorICAgICAgICB0byBhY3R1YWxseSBzY3JvbGwgdGhlIHdlYiBjb250ZW50LiBUaGlzIGFs
c28gbWVhbnMgd2Ugbm93IGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBvbiBib3RoIE1hYyBhbmQKKyAg
ICAgICAgaU9TIHRvIGRvIHRoZSBzY3JvbGxpbmc6IHdpbmRvdy5zY3JvbGxUbygwLCA1MDAwKS4g
QWxzbyBmaXhlZCB1cCBzdWItdGVzdCAiSW5wdXRzIHNjcm9sbGVkIG91dHNpZGUKKyAgICAgICAg
dGhlIHJlcXVlc3RlZCByZWN0OyBzaG91bGQgbm90IGJlIGluY2x1ZGVkLiIgdG8gdXNlIGEgMTAw
MDBweCBoZWlnaHQgPGRpdj4gc28gdGhhdCB5b3UgY2FuIHNjcm9sbAorICAgICAgICB0byBhIHkg
cG9zaXRpb24gb2YgNTAwMDAuIE90aGVyd2lzZSwgaXQncyBpbXBvc3NpYmxlIHRvIGRvIGJlY2F1
c2UgdGhlIHBhZ2UgaGVpZ2h0IGlzIDwgNTAwMHB4LgorCisgICAgICAgICogVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbToKKyAgICAgICAg
KFRFU1QpOgorCiAyMDIwLTAyLTI1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4K
IAogICAgICAgICBUZXN0V2ViS2l0QVBJLlBhc3RlTWl4ZWRDb250ZW50LkNvcHlBbmRQYXN0ZVdp
dGhDdXN0b21QYXN0ZWJvYXJkRGF0YU9ubHkgc2hvdWxkIHdhaXQgdW50aWwgY29weSBvcGVyYXRp
b24gY29tcGxldGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktp
dENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQppbmRleCA3MGI0NzEx
OTk1OTU0ODM5OGQxMDkzZmZlNTVhYjUzZjA5ZDFlZmQxLi5iMDUwYzU4YjUzNjgwNzczZmQ0ZDJh
MjVhZjI2N2I5NTViODcyZTg2IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0KQEAg
LTc2LDcgKzc2LDYgQEAgc3RhdGljIE5TU3RyaW5nICphcHBseUlmcmFtZShOU1N0cmluZyAqSFRN
TFN0cmluZykKIFRFU1QoV2ViS2l0LCBSZXF1ZXN0VGV4dElucHV0Q29udGV4dCkKIHsKICAgICBS
ZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Ci0gICAgV0tQcmVmZXJlbmNl
c1NldFRocmVhZGVkU2Nyb2xsaW5nRW5hYmxlZCgoV0tQcmVmZXJlbmNlc1JlZilbY29uZmlndXJh
dGlvbiBwcmVmZXJlbmNlc10sIGZhbHNlKTsKICAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOwogCiAgICAgTlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICpjb250ZXh0czsKQEAg
LTEzMywyMyArMTMyLDE5IEBAIFRFU1QoV2ViS2l0LCBSZXF1ZXN0VGV4dElucHV0Q29udGV4dCkK
IAogICAgIC8vIElucHV0cyBzY3JvbGxlZCBvdXRzaWRlIHRoZSByZXF1ZXN0ZWQgcmVjdDsgc2hv
dWxkIG5vdCBiZSBpbmNsdWRlZC4KIAotICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRN
TFN0cmluZzphcHBseVN0eWxlKEAiPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBw
eDsgaGVpZ2h0OiA1MHB4Oyc+PGJyPjxkaXYgc3R5bGU9J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiA1
MDAwcHg7Jz48L2Rpdj4iKV07Ci0jaWYgUExBVEZPUk0oTUFDKQotICAgIFt3ZWJWaWV3IG9iamVj
dEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuc2Nyb2xsVG8oMCwgNTAwMCk7Il07Ci0j
ZWxzZQotICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLmNvbnRlbnRPZmZzZXQgPSBDR1BvaW50TWFr
ZSgwLCA1MDAwKTsKLSNlbmRpZgorICAgIFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlMb2FkSFRNTFN0
cmluZzphcHBseVN0eWxlKEAiPGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBweDsg
aGVpZ2h0OiA1MHB4Oyc+PGJyPjxkaXYgc3R5bGU9J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDAw
MHB4Oyc+PC9kaXY+IildOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJ3aW5kb3cuc2Nyb2xsVG8oMCwgNTAwMCkiXTsKKyAgICBbd2ViVmlldyB3YWl0Rm9yTmV4
dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0VRKDUwMDAsIFtbd2ViVmlldyBvYmpl
Y3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFnZVlPZmZzZXQiXSBmbG9hdFZhbHVlXSk7CiAg
ICAgY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRl
eHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1lXV07CiAgICAgRVhQRUNUX0VRKDBVTCwgY29udGV4dHMu
Y291bnQpOwogCiAgICAgLy8gSW5wdXRzIHNjcm9sbGVkIGludG8gdGhlIHJlcXVlc3RlZCByZWN0
LgogCiAgICAgW3dlYlZpZXcgc3luY2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUo
QCI8aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA1MDAwcHg7Jz48YnI+PGRpdiBzdHlsZT0nd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMDAwcHg7Jz48L2Rpdj4iKV07Ci0jaWYgUExBVEZPUk0oTUFDKQotICAg
IFt3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuc2Nyb2xsVG8o
MCwgNTAwMCk7Il07Ci0jZWxzZQotICAgIFt3ZWJWaWV3IHNjcm9sbFZpZXddLmNvbnRlbnRPZmZz
ZXQgPSBDR1BvaW50TWFrZSgwLCA1MDAwKTsKLSNlbmRpZgorICAgIFt3ZWJWaWV3IHN0cmluZ0J5
RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJ3aW5kb3cuc2Nyb2xsVG8oMCwgNTAwMCkiXTsKKyAgICBb
d2ViVmlldyB3YWl0Rm9yTmV4dFByZXNlbnRhdGlvblVwZGF0ZV07CisgICAgRVhQRUNUX0VRKDUw
MDAsIFtbd2ViVmlldyBvYmplY3RCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAicGFnZVlPZmZzZXQi
XSBmbG9hdFZhbHVlXSk7CiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVx
dWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1lXV07CiAgICAgRVhQRUNU
X0VRKDFVTCwgY29udGV4dHMuY291bnQpOwogICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAs
IDUwLCA1MCksIGNvbnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CkBAIC0xNTksMTYgKzE1NCwxNyBA
QCBURVNUKFdlYktpdCwgUmVxdWVzdFRleHRJbnB1dENvbnRleHQpCiAgICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcg
c3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnIvPjxpbnB1dCB0eXBlPSd0ZXh0
JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjxici8+PGlucHV0IHR5cGU9J3Rl
eHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+IildOwogICAgIGNvbnRleHRz
ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpb
d2ViVmlldyBmcmFtZV1dOwogICAgIEVYUEVDVF9FUSgzVUwsIGNvbnRleHRzLmNvdW50KTsKLSAg
ICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGlu
Z1JlY3QpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDEwMCwgNTAsIDUwKSwgY29udGV4
dHNbMF0uYm91bmRpbmdSZWN0KTsKICAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCA1MCwgNTAs
IDUwKSwgY29udGV4dHNbMV0uYm91bmRpbmdSZWN0KTsKLSAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFr
ZSgwLCAxMDAsIDUwLCA1MCksIGNvbnRleHRzWzJdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQRUNU
X0VRKENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwgY29udGV4dHNbMl0uYm91bmRpbmdSZWN0KTsK
IAotICAgIC8vIE5lc3RlZCA8aW5wdXQ+LWluc2lkZS1jb250ZW50ZWRpdGFibGUuIE9ubHkgdGhl
IGNvbnRlbnRlZGl0YWJsZSBpcyBjb25zaWRlcmVkLgorICAgIC8vIE5lc3RlZCA8aW5wdXQ+LWlu
c2lkZS1jb250ZW50ZWRpdGFibGUuCiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhU
TUxTdHJpbmc6YXBwbHlTdHlsZShAIjxkaXYgY29udGVudGVkaXRhYmxlIHN0eWxlPSd3aWR0aDog
MTAwcHg7IGhlaWdodDogMTAwcHg7Jz48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1
MHB4OyBoZWlnaHQ6IDUwcHg7Jz48L2Rpdj4iKV07CiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBz
eW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1l
XV07Ci0gICAgRVhQRUNUX0VRKDFVTCwgY29udGV4dHMuY291bnQpOwotICAgIEVYUEVDVF9FUShD
R1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKKyAg
ICBFWFBFQ1RfRVEoMlVMLCBjb250ZXh0cy5jb3VudCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1h
a2UoMCwgMCwgNTAsIDUwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKKyAgICBFWFBFQ1Rf
RVEoQ0dSZWN0TWFrZSgwLCAwLCAxMDAsIDEwMCksIGNvbnRleHRzWzFdLmJvdW5kaW5nUmVjdCk7
CiB9CiAKIFRFU1QoV2ViS2l0LCBESVNBQkxFRF9Gb2N1c1RleHRJbnB1dENvbnRleHQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392154</attachid>
            <date>2020-03-02 10:49:37 -0800</date>
            <delta_ts>2020-03-02 11:03:55 -0800</delta_ts>
            <desc>To land</desc>
            <filename>bug-208352-20200302104937.patch</filename>
            <type>text/plain</type>
            <size>13407</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDllM2M2ZTA4MjY2OTFi
OGRjOGU4ZmE5MWRmYzAwZTRlNjNhNDkwNi4uNDMyM2YzMmE2MDY0ODk1NTMyZDg4MDkyOTRiYjI1
N2ZlNWRjOThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAg
ICAgIFVzZSB0aGUgZXhpc3RpbmcgcmVjdC1iYXNlZCBoaXQgdGVzdGluZyBtYWNoaW5lcnkgdG8g
Y29sbGVjdCBhbGwgdGhlIGVkaXRhYmxlIGVsZW1lbnRzIG9uCisgICAgICAgIHRoZSBwYWdlIHRo
YXQgYSBwZXJzb24gY2FuIGhpdC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBmaW5kIG5lc3Rl
ZCBlZGl0YWJsZSBlbGVtZW50cworICAgICAgICAoZS5nLiBhbiA8aW5wdXQ+IGluc2lkZSBhIDxk
aXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4pLCBpZ25vcmUgZWxlbWVudHMgd2l0aCBDU1MgInBv
aW50ZXItZXZlbnRzOiBub25lIiwKKyAgICAgICAgYW5kIHJldHVybiBlbGVtZW50cyBpbiBwYWlu
dCBvcmRlciAoY2xvc2VzdCB0byBmYXJ0aGVzdCB0byBhIHBlcnNvbidzIGZhY2UpLiBUaGUgbGF0
dGVyCisgICAgICAgIG1ha2VzIGl0IHBvc3NpYmxlIGZvciBhIGNhbGxlciB0byBrbm93IHdoYXQg
ZWxlbWVudCBpcyBmcm9udG1vc3QsIGVzcGVjaWFsbHkgd2hlbiB0d28KKyAgICAgICAgZWRpdGFi
bGUgZWxlbWVudHMgb3ZlcmxhcC4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0IGNvbnN0KTogSW1wbGVtZW50
IGluIHRlcm1zIG9mIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeS4KKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdExvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6
SGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmg6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdCk6CisgICAgICAgICogcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuaDoKKyAgICAgICAgQWRkZWQgY29udmVuaWVuY2UgY29uc3RydWN0b3JzIHRo
YXQgdGFrZSBhIExheW91dFJlY3QuCisKIDIwMTktMDktMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV2ViS2l0IGZvciBNYWMg
Q2F0YWx5c3QgZnJvbSBYY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYTkxZTg2ZTg2YTAyMDkx
NGY0OGVmOTUxMmQ4NjcxY2JjZjVjMmRjNC4uYzA1MjA0NzcxYjFmODAwZTU0ODhiMDQ1YTVjMGI0
YjgwOGY2MGE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC05MjcsMjYgKzkyNywyOSBAQCBzdGF0
aWMgYm9vbCBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50
KQogCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNv
bnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcykgY29uc3QKIHsK
KyAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZyYW1lKCkudmlldygpKTsKKyAg
ICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gZG9jdW1l
bnQgPSBtYWtlUmVmUHRyKG1haW5GcmFtZSgpLmRvY3VtZW50KCkpOworICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRl
c3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkNvbGxlY3RNdWx0aXBs
ZUVsZW1lbnRzLCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
LCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07Cisg
ICAgTGF5b3V0UmVjdCBzZWFyY2hSZWN0SW5NYWluRnJhbWVDb29yZGluYXRlcyA9IGZyYW1lVmll
dy0+cm9vdFZpZXdUb0NvbnRlbnRzKHJvdW5kZWRJbnRSZWN0KHNlYXJjaFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMpKTsKKyAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQgeyBzZWFyY2hS
ZWN0SW5NYWluRnJhbWVDb29yZGluYXRlcyB9OworICAgIGlmICghZG9jdW1lbnQtPmhpdFRlc3Qo
aGl0VHlwZSwgaGl0VGVzdFJlc3VsdCkpCisgICAgICAgIHJldHVybiB7IH07CisKICAgICBWZWN0
b3I8UmVmPEVsZW1lbnQ+PiByZXN1bHQ7Ci0gICAgZm9yRWFjaERvY3VtZW50KFsmXSAoRG9jdW1l
bnQmIGRvY3VtZW50KSB7Ci0gICAgICAgIERlcXVlPE5vZGUqPiBub2Rlc1RvU2VhcmNoOwotICAg
ICAgICBub2Rlc1RvU2VhcmNoLmFwcGVuZCgmZG9jdW1lbnQpOwotICAgICAgICB3aGlsZSAoIW5v
ZGVzVG9TZWFyY2guaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvKiBub2RlID0gbm9kZXNU
b1NlYXJjaC50YWtlRmlyc3QoKTsKLQotICAgICAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdG8g
aGF2ZSBuZXN0ZWQgdGV4dCBpbnB1dCBjb250ZXh0cyAoZS5nLiA8aW5wdXQgdHlwZT0ndGV4dCc+
IGluc2lkZSBjb250ZW50ZWRpdGFibGUpIGJ1dAotICAgICAgICAgICAgLy8gaW4gdGhpcyBjYXNl
IHdlIGp1c3QgdGFrZSB0aGUgb3V0ZXJtb3N0IGNvbnRleHQgYW5kIHNraXAgdGhlIHJlc3QuCi0g
ICAgICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpIHx8ICFpc0VkaXRhYmxlVGV4dElucHV0
RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChhdXRvKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIG5vZGVzVG9TZWFyY2guYXBwZW5k
KGNoaWxkKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKLSAgICAg
ICAgICAgIGlmIChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZWxl
bWVudC5jbGllbnRSZWN0KCkpKQotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWxlbWVu
dCk7CisgICAgYXV0byYgbm9kZVNldCA9IGhpdFRlc3RSZXN1bHQubGlzdEJhc2VkVGVzdFJlc3Vs
dCgpOworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG5vZGVTZXQuc2l6ZSgpKTsK
KyAgICBmb3IgKGF1dG8mIG5vZGUgOiBub2RlU2V0KSB7CisgICAgICAgIGlmIChpczxFbGVtZW50
Pihub2RlKSAmJiBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigq
bm9kZSkpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcy5pbnRlcnNlY3RzKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5jbGllbnRSZWN0KCkpKTsK
KyAgICAgICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoZG93bmNhc3Q8RWxlbWVudD4oKm5v
ZGUpKTsKICAgICAgICAgfQotICAgIH0pOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCmluZGV4IDM4
ZWVlMWEwMzZjNzc1ZjNiNzNkYTcwMmQ2Yzc1NDg0ZGFlMjBjYTMuLmE1NjEzYjgzMWY0ZmVmNjVl
M2NiZDYzOTEyNDE4MWYxNWI5NWNhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0TG9jYXRpb24uY3BwCkBAIC00OCw2ICs0OCwxNSBAQCBIaXRUZXN0TG9jYXRpb246Okhp
dFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRmxvYXRRdWFkJiBx
dWFkKQogewogfQogCitIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlv
dXRSZWN0JiByZWN0KQorICAgIDogbV9wb2ludCB7IHJlY3QuY2VudGVyKCkgfSAvLyBSb3VuZGVk
IHRvIGFuIGludGVnZXIgcG9pbnQ7IGl0IG1heSBub3QgYmUgdGhlIGV4YWN0IGNlbnRlci4KKyAg
ICAsIG1fYm91bmRpbmdCb3ggeyByZWN0IH0KKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludCB7IHJl
Y3QuY2VudGVyKCkgfQorICAgICwgbV90cmFuc2Zvcm1lZFJlY3QgeyBGbG9hdFF1YWQgeyBtX2Jv
dW5kaW5nQm94IH0gfQorICAgICwgbV9pc1JlY3RCYXNlZCB7IHRydWUgfQoreworfQorCiBIaXRU
ZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9p
bnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQg
Ym90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCiAgICAgOiBtX3BvaW50KGNlbnRl
clBvaW50KQogICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQoY2VudGVyUG9pbnQsIHRv
cFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCmluZGV4IGFkZjE0ZWY1ZTZh
OWYxYTBhZjcxZTk3MWMyZmQ2ZGU1MGE2MDE4ODAuLjAyMzAzNWY0YjlhNWMzMzUyMjA3MTlkNDUx
ZmMwNDU1NTdmZWUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0TG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0
aW9uLmgKQEAgLTMxLDggKzMxLDEwIEBAIHB1YmxpYzoKICAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgTGF5b3V0UG9pbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0TG9jYXRpb24oY29u
c3QgRmxvYXRQb2ludCYpOwogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRRdWFkJik7Ci0gICAgLy8gUGFzcyBub24temVybyBwYWRkaW5nIHZhbHVlcyB0
byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KKworICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBMYXlvdXRSZWN0Jik7CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50
JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5n
LCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7CisKICAgICAv
LyBNYWtlIGEgY29weSB0aGUgSGl0VGVzdExvY2F0aW9uIGluIGEgbmV3IHJlZ2lvbiBieSBhcHBs
eWluZyBnaXZlbiBvZmZzZXQgdG8gaW50ZXJuYWwgcG9pbnQgYW5kIGFyZWEuCiAgICAgSGl0VGVz
dExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFNpemUmIG9mZnNl
dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4
IDgyMjA0MjRhMjI3NTBhN2U4MmY0NjMzODUwYTAzZGFhNmNmNDdkNjguLjMxZDBmODkxZjA0YWNj
OTdhYWQ5NzBkOTliYWQyZmUzNmRkZTM2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKQEAgLTYyLDYgKzYyLDEyIEBAIEhpdFRlc3RSZXN1bHQ6OkhpdFRl
c3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewogfQogCitIaXRUZXN0UmVzdWx0
OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCisgICAgOiBtX2hpdFRlc3RM
b2NhdGlvbiB7IHJlY3QgfQorICAgICwgbV9wb2ludEluSW5uZXJOb2RlRnJhbWUgeyByZWN0LmNl
bnRlcigpIH0KK3sKK30KKwogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlv
dXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0
UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCiAg
ICAgOiBtX2hpdFRlc3RMb2NhdGlvbihjZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRk
aW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZykKICAgICAsIG1fcG9pbnRJbklubmVyTm9k
ZUZyYW1lKGNlbnRlclBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmgKaW5kZXggYzBmYmYzYTU3OWRhNjhmOTJmMmE5ZjdkZGM1NGM4MmU5MzhmOTg1YS4uNjRkZTNl
ZTIyNzBkZWZhMmIxMGJlY2YxNjc4ODBkZDU1MjRlZDRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5oCkBAIC00NCw4ICs0NCwxMCBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGlj
aXQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIC8vIFBhc3Mgbm9uLW5l
Z2F0aXZlIHBhZGRpbmcgdmFsdWVzIHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0Lgor
CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRS
ZWN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2lu
dCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGlu
ZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0TG9jYXRp
b24mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1
bHQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+SGl0VGVzdFJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQzMzQ4NjczZTg2ODRiODA4
ZjE5YTI0MmViYTM3ZjEzNzhjYWVlMmUuLjk3MzEwZDBjNTIyNmNlNzEyNGZiYjdkOGQ3MzQzMzBl
MjRhMDFmODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wMy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCgpIHNob3Vs
ZCBmaW5kIG5lc3RlZCBlZGl0YWJsZSBlbGVtZW50cyBhbmQgcmV0dXJuIGZvdW5kIGVsZW1lbnRz
IGluIHBhaW50IG9yZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDgzNTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODY3ODE1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1
bHRzIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhhdmlvci4gVG8gZG8gdGhpcyBJIGFsc28gbmVlZCB0
byBmaXggdXAgdGhlIHRlc3QgY29kZQorICAgICAgICB0byBhY3R1YWxseSBzY3JvbGwgdGhlIHdl
YiBjb250ZW50LiBUaGlzIGFsc28gbWVhbnMgd2Ugbm93IGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBv
biBib3RoIE1hYyBhbmQKKyAgICAgICAgaU9TIHRvIGRvIHRoZSBzY3JvbGxpbmc6IHdpbmRvdy5z
Y3JvbGxUbygwLCA1MDAwKS4gQWxzbyBmaXhlZCB1cCBzdWItdGVzdCAiSW5wdXRzIHNjcm9sbGVk
IG91dHNpZGUKKyAgICAgICAgdGhlIHJlcXVlc3RlZCByZWN0OyBzaG91bGQgbm90IGJlIGluY2x1
ZGVkLiIgdG8gdXNlIGEgMTAwMDBweCBoZWlnaHQgPGRpdj4gc28gdGhhdCB5b3UgY2FuIHNjcm9s
bAorICAgICAgICB0byBhIHkgcG9zaXRpb24gb2YgNTAwMC4gT3RoZXJ3aXNlLCBpdCdzIGltcG9z
c2libGUgdG8gZG8gYmVjYXVzZSB0aGUgcGFnZSBoZWlnaHQgaXMgPCA1MDAwcHguCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250
ZXh0Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDItMjUgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEkuUGFzdGVNaXhlZENvbnRl
bnQuQ29weUFuZFBhc3RlV2l0aEN1c3RvbVBhc3RlYm9hcmREYXRhT25seSBzaG91bGQgd2FpdCB1
bnRpbCBjb3B5IG9wZXJhdGlvbiBjb21wbGV0ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0
Lm1tCmluZGV4IDcwYjQ3MTE5OTU5NTQ4Mzk4ZDEwOTNmZmU1NWFiNTNmMDlkMWVmZDEuLmIwNTBj
NThiNTM2ODA3NzNmZDRkMmEyNWFmMjY3Yjk1NWI4NzJlODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElu
cHV0Q29udGV4dC5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmFwcGx5SWZy
YW1lKE5TU3RyaW5nICpIVE1MU3RyaW5nKQogVEVTVChXZWJLaXQsIFJlcXVlc3RUZXh0SW5wdXRD
b250ZXh0KQogewogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKChXS1ByZWZlcmVu
Y2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgZmFsc2UpOwogICAgIFJldGFpblB0
cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CiAKICAgICBOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQg
Kj4gKmNvbnRleHRzOwpAQCAtMTMzLDIzICsxMzIsMTkgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0KQogCiAgICAgLy8gSW5wdXRzIHNjcm9sbGVkIG91dHNpZGUgdGhlIHJl
cXVlc3RlZCByZWN0OyBzaG91bGQgbm90IGJlIGluY2x1ZGVkLgogCi0gICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcg
c3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnI+PGRpdiBzdHlsZT0nd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMDBweDsnPjwvZGl2PiIpXTsKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxU
bygwLCA1MDAwKTsiXTsKLSNlbHNlCi0gICAgW3dlYlZpZXcgc2Nyb2xsVmlld10uY29udGVudE9m
ZnNldCA9IENHUG9pbnRNYWtlKDAsIDUwMDApOwotI2VuZGlmCisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcgc3R5
bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnI+PGRpdiBzdHlsZT0nd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMDAwcHg7Jz48L2Rpdj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxUbygwLCA1MDAwKSJdOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRVEoNTAw
MCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwYWdlWU9mZnNldCJd
IGZsb2F0VmFsdWVdKTsKICAgICBjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgZnJhbWVdXTsKICAgICBFWFBFQ1Rf
RVEoMFVMLCBjb250ZXh0cy5jb3VudCk7CiAKICAgICAvLyBJbnB1dHMgc2Nyb2xsZWQgaW50byB0
aGUgcmVxdWVzdGVkIHJlY3QuCiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6YXBwbHlTdHlsZShAIjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwMDBweDsnPjxicj48ZGl2
IHN0eWxlPSd3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwMDBweDsnPjwvZGl2PiIpXTsKLSNpZiBQ
TEFURk9STShNQUMpCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5zY3JvbGxUbygwLCA1MDAwKTsiXTsKLSNlbHNlCi0gICAgW3dlYlZpZXcgc2Nyb2xs
Vmlld10uY29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKDAsIDUwMDApOwotI2VuZGlmCisgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxUbygw
LCA1MDAwKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICBFWFBFQ1RfRVEoNTAwMCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJwYWdlWU9mZnNldCJdIGZsb2F0VmFsdWVdKTsKICAgICBjb250ZXh0cyA9IFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgZnJh
bWVdXTsKICAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7CiAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKQEAg
LTE1OSwxNiArMTU0LDE3IEBAIFRFU1QoV2ViS2l0LCBSZXF1ZXN0VGV4dElucHV0Q29udGV4dCkK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxp
bnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjxici8+
PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+PGJy
Lz48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz4i
KV07CiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1
dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1lXV07CiAgICAgRVhQRUNUX0VRKDNVTCwgY29u
dGV4dHMuY291bnQpOwotICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDUwLCA1MCksIGNv
bnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMTAw
LCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1JlY3QpOwogICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKDAsIDUwLCA1MCwgNTApLCBjb250ZXh0c1sxXS5ib3VuZGluZ1JlY3QpOwotICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDAsIDEwMCwgNTAsIDUwKSwgY29udGV4dHNbMl0uYm91bmRpbmdS
ZWN0KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1sy
XS5ib3VuZGluZ1JlY3QpOwogCi0gICAgLy8gTmVzdGVkIDxpbnB1dD4taW5zaWRlLWNvbnRlbnRl
ZGl0YWJsZS4gT25seSB0aGUgY29udGVudGVkaXRhYmxlIGlzIGNvbnNpZGVyZWQuCisgICAgLy8g
TmVzdGVkIDxpbnB1dD4taW5zaWRlLWNvbnRlbnRlZGl0YWJsZS4KIAogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPGRpdiBjb250ZW50ZWRpdGFi
bGUgc3R5bGU9J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsnPjxpbnB1dCB0eXBlPSd0ZXh0
JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjwvZGl2PiIpXTsKICAgICBjb250
ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJl
Y3Q6W3dlYlZpZXcgZnJhbWVdXTsKLSAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7
Ci0gICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApLCBjb250ZXh0c1swXS5i
b3VuZGluZ1JlY3QpOworICAgIEVYUEVDVF9FUSgyVUwsIGNvbnRleHRzLmNvdW50KTsKKyAgICBF
WFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1Jl
Y3QpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSwgY29udGV4dHNb
MV0uYm91bmRpbmdSZWN0KTsKIH0KIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0ZvY3VzVGV4dElu
cHV0Q29udGV4dCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392155</attachid>
            <date>2020-03-02 11:03:56 -0800</date>
            <delta_ts>2020-03-02 11:03:56 -0800</delta_ts>
            <desc>To land - removed unused Deque header</desc>
            <filename>bug-208352-20200302110356.patch</filename>
            <type>text/plain</type>
            <size>13635</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3NjQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDllM2M2ZTA4MjY2OTFi
OGRjOGU4ZmE5MWRmYzAwZTRlNjNhNDkwNi4uNDMyM2YzMmE2MDY0ODk1NTMyZDg4MDkyOTRiYjI1
N2ZlNWRjOThkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDIwLTAzLTAxICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBQYWdlOjplZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KCkgc2hvdWxkIGZpbmQgbmVzdGVkIGVkaXRhYmxlIGVsZW1lbnRzIGFuZCBy
ZXR1cm4gZm91bmQgZWxlbWVudHMgaW4gcGFpbnQgb3JkZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODM1MgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTk4Njc4MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgV2Vuc29uIEhzaWVoLgorCisgICAg
ICAgIFVzZSB0aGUgZXhpc3RpbmcgcmVjdC1iYXNlZCBoaXQgdGVzdGluZyBtYWNoaW5lcnkgdG8g
Y29sbGVjdCBhbGwgdGhlIGVkaXRhYmxlIGVsZW1lbnRzIG9uCisgICAgICAgIHRoZSBwYWdlIHRo
YXQgYSBwZXJzb24gY2FuIGhpdC4gVGhpcyBtYWtlcyBpdCBwb3NzaWJsZSB0byBmaW5kIG5lc3Rl
ZCBlZGl0YWJsZSBlbGVtZW50cworICAgICAgICAoZS5nLiBhbiA8aW5wdXQ+IGluc2lkZSBhIDxk
aXYgY29udGVudGVkaXRhYmxlPSJ0cnVlIj4pLCBpZ25vcmUgZWxlbWVudHMgd2l0aCBDU1MgInBv
aW50ZXItZXZlbnRzOiBub25lIiwKKyAgICAgICAgYW5kIHJldHVybiBlbGVtZW50cyBpbiBwYWlu
dCBvcmRlciAoY2xvc2VzdCB0byBmYXJ0aGVzdCB0byBhIHBlcnNvbidzIGZhY2UpLiBUaGUgbGF0
dGVyCisgICAgICAgIG1ha2VzIGl0IHBvc3NpYmxlIGZvciBhIGNhbGxlciB0byBrbm93IHdoYXQg
ZWxlbWVudCBpcyBmcm9udG1vc3QsIGVzcGVjaWFsbHkgd2hlbiB0d28KKyAgICAgICAgZWRpdGFi
bGUgZWxlbWVudHMgb3ZlcmxhcC4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQYWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0IGNvbnN0KTogSW1wbGVtZW50
IGluIHRlcm1zIG9mIGhpdCB0ZXN0aW5nIG1hY2hpbmVyeS4KKyAgICAgICAgKiByZW5kZXJpbmcv
SGl0VGVzdExvY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6
SGl0VGVzdExvY2F0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmg6
CisgICAgICAgICogcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdCk6CisgICAgICAgICogcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuaDoKKyAgICAgICAgQWRkZWQgY29udmVuaWVuY2UgY29uc3RydWN0b3JzIHRo
YXQgdGFrZSBhIExheW91dFJlY3QuCisKIDIwMTktMDktMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0
ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV2ViS2l0IGZvciBNYWMg
Q2F0YWx5c3QgZnJvbSBYY29kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggYTkxZTg2ZTg2YTAyMDkx
NGY0OGVmOTUxMmQ4NjcxY2JjZjVjMmRjNC4uZWZkOTdiMzk3MDFhYmZiOGZlYTZmN2IxYjI2OGIw
YzllNGVlYTI4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xMjgsNyArMTI4LDYgQEAKICNpbmNs
dWRlICJWb2lkQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXaGVlbEV2ZW50RGVsdGFGaWx0ZXIuaCIK
ICNpbmNsdWRlICJXaWRnZXQuaCIKLSNpbmNsdWRlIDx3dGYvRGVxdWUuaD4KICNpbmNsdWRlIDx3
dGYvRmlsZVN5c3RlbS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkTGVha0NvdW50ZXIuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CkBAIC05MjcsMjYgKzkyNiwyOSBAQCBzdGF0
aWMgYm9vbCBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChjb25zdCBFbGVtZW50JiBlbGVtZW50
KQogCiBWZWN0b3I8UmVmPEVsZW1lbnQ+PiBQYWdlOjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0KGNv
bnN0IEZsb2F0UmVjdCYgc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcykgY29uc3QKIHsK
KyAgICBhdXRvIGZyYW1lVmlldyA9IG1ha2VSZWZQdHIobWFpbkZyYW1lKCkudmlldygpKTsKKyAg
ICBpZiAoIWZyYW1lVmlldykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIGF1dG8gZG9jdW1l
bnQgPSBtYWtlUmVmUHRyKG1haW5GcmFtZSgpLmRvY3VtZW50KCkpOworICAgIGlmICghZG9jdW1l
bnQpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICBjb25zdGV4cHIgT3B0aW9uU2V0PEhpdFRl
c3RSZXF1ZXN0OjpSZXF1ZXN0VHlwZT4gaGl0VHlwZSB7IEhpdFRlc3RSZXF1ZXN0OjpSZWFkT25s
eSwgSGl0VGVzdFJlcXVlc3Q6OkFjdGl2ZSwgSGl0VGVzdFJlcXVlc3Q6OkNvbGxlY3RNdWx0aXBs
ZUVsZW1lbnRzLCBIaXRUZXN0UmVxdWVzdDo6RGlzYWxsb3dVc2VyQWdlbnRTaGFkb3dDb250ZW50
LCBIaXRUZXN0UmVxdWVzdDo6QWxsb3dWaXNpYmxlQ2hpbGRGcmFtZUNvbnRlbnRPbmx5IH07Cisg
ICAgTGF5b3V0UmVjdCBzZWFyY2hSZWN0SW5NYWluRnJhbWVDb29yZGluYXRlcyA9IGZyYW1lVmll
dy0+cm9vdFZpZXdUb0NvbnRlbnRzKHJvdW5kZWRJbnRSZWN0KHNlYXJjaFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMpKTsKKyAgICBIaXRUZXN0UmVzdWx0IGhpdFRlc3RSZXN1bHQgeyBzZWFyY2hS
ZWN0SW5NYWluRnJhbWVDb29yZGluYXRlcyB9OworICAgIGlmICghZG9jdW1lbnQtPmhpdFRlc3Qo
aGl0VHlwZSwgaGl0VGVzdFJlc3VsdCkpCisgICAgICAgIHJldHVybiB7IH07CisKICAgICBWZWN0
b3I8UmVmPEVsZW1lbnQ+PiByZXN1bHQ7Ci0gICAgZm9yRWFjaERvY3VtZW50KFsmXSAoRG9jdW1l
bnQmIGRvY3VtZW50KSB7Ci0gICAgICAgIERlcXVlPE5vZGUqPiBub2Rlc1RvU2VhcmNoOwotICAg
ICAgICBub2Rlc1RvU2VhcmNoLmFwcGVuZCgmZG9jdW1lbnQpOwotICAgICAgICB3aGlsZSAoIW5v
ZGVzVG9TZWFyY2guaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBhdXRvKiBub2RlID0gbm9kZXNU
b1NlYXJjaC50YWtlRmlyc3QoKTsKLQotICAgICAgICAgICAgLy8gSXQgaXMgcG9zc2libGUgdG8g
aGF2ZSBuZXN0ZWQgdGV4dCBpbnB1dCBjb250ZXh0cyAoZS5nLiA8aW5wdXQgdHlwZT0ndGV4dCc+
IGluc2lkZSBjb250ZW50ZWRpdGFibGUpIGJ1dAotICAgICAgICAgICAgLy8gaW4gdGhpcyBjYXNl
IHdlIGp1c3QgdGFrZSB0aGUgb3V0ZXJtb3N0IGNvbnRleHQgYW5kIHNraXAgdGhlIHJlc3QuCi0g
ICAgICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KG5vZGUpIHx8ICFpc0VkaXRhYmxlVGV4dElucHV0
RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkpKSB7Ci0gICAgICAgICAgICAgICAgZm9y
IChhdXRvKiBjaGlsZCA9IG5vZGUtPmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpCi0gICAgICAgICAgICAgICAgICAgIG5vZGVzVG9TZWFyY2guYXBwZW5k
KGNoaWxkKTsKLSAgICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgYXV0byYgZWxlbWVudCA9IGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKTsKLSAgICAg
ICAgICAgIGlmIChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZWxl
bWVudC5jbGllbnRSZWN0KCkpKQotICAgICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoZWxlbWVu
dCk7CisgICAgYXV0byYgbm9kZVNldCA9IGhpdFRlc3RSZXN1bHQubGlzdEJhc2VkVGVzdFJlc3Vs
dCgpOworICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG5vZGVTZXQuc2l6ZSgpKTsK
KyAgICBmb3IgKGF1dG8mIG5vZGUgOiBub2RlU2V0KSB7CisgICAgICAgIGlmIChpczxFbGVtZW50
Pihub2RlKSAmJiBpc0VkaXRhYmxlVGV4dElucHV0RWxlbWVudChkb3duY2FzdDxFbGVtZW50Pigq
bm9kZSkpKSB7CisgICAgICAgICAgICBBU1NFUlQoc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGlu
YXRlcy5pbnRlcnNlY3RzKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5jbGllbnRSZWN0KCkpKTsK
KyAgICAgICAgICAgIHJlc3VsdC51bmNoZWNrZWRBcHBlbmQoZG93bmNhc3Q8RWxlbWVudD4oKm5v
ZGUpKTsKICAgICAgICAgfQotICAgIH0pOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCmluZGV4IDM4
ZWVlMWEwMzZjNzc1ZjNiNzNkYTcwMmQ2Yzc1NDg0ZGFlMjBjYTMuLmE1NjEzYjgzMWY0ZmVmNjVl
M2NiZDYzOTEyNDE4MWYxNWI5NWNhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9IaXRUZXN0TG9jYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aXRUZXN0TG9jYXRpb24uY3BwCkBAIC00OCw2ICs0OCwxNSBAQCBIaXRUZXN0TG9jYXRpb246Okhp
dFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50JiBwb2ludCwgY29uc3QgRmxvYXRRdWFkJiBx
dWFkKQogewogfQogCitIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlv
dXRSZWN0JiByZWN0KQorICAgIDogbV9wb2ludCB7IHJlY3QuY2VudGVyKCkgfSAvLyBSb3VuZGVk
IHRvIGFuIGludGVnZXIgcG9pbnQ7IGl0IG1heSBub3QgYmUgdGhlIGV4YWN0IGNlbnRlci4KKyAg
ICAsIG1fYm91bmRpbmdCb3ggeyByZWN0IH0KKyAgICAsIG1fdHJhbnNmb3JtZWRQb2ludCB7IHJl
Y3QuY2VudGVyKCkgfQorICAgICwgbV90cmFuc2Zvcm1lZFJlY3QgeyBGbG9hdFF1YWQgeyBtX2Jv
dW5kaW5nQm94IH0gfQorICAgICwgbV9pc1JlY3RCYXNlZCB7IHRydWUgfQoreworfQorCiBIaXRU
ZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9p
bnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQg
Ym90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCiAgICAgOiBtX3BvaW50KGNlbnRl
clBvaW50KQogICAgICwgbV9ib3VuZGluZ0JveChyZWN0Rm9yUG9pbnQoY2VudGVyUG9pbnQsIHRv
cFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RMb2NhdGlvbi5oCmluZGV4IGFkZjE0ZWY1ZTZh
OWYxYTBhZjcxZTk3MWMyZmQ2ZGU1MGE2MDE4ODAuLjAyMzAzNWY0YjlhNWMzMzUyMjA3MTlkNDUx
ZmMwNDU1NTdmZWUwMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRU
ZXN0TG9jYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdExvY2F0
aW9uLmgKQEAgLTMxLDggKzMxLDEwIEBAIHB1YmxpYzoKICAgICBIaXRUZXN0TG9jYXRpb24oY29u
c3QgTGF5b3V0UG9pbnQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0TG9jYXRpb24oY29u
c3QgRmxvYXRQb2ludCYpOwogICAgIEhpdFRlc3RMb2NhdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
Y29uc3QgRmxvYXRRdWFkJik7Ci0gICAgLy8gUGFzcyBub24temVybyBwYWRkaW5nIHZhbHVlcyB0
byBwZXJmb3JtIGEgcmVjdC1iYXNlZCBoaXQgdGVzdC4KKworICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBMYXlvdXRSZWN0Jik7CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IExheW91dFBvaW50
JiBjZW50ZXJQb2ludCwgdW5zaWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5n
LCB1bnNpZ25lZCBib3R0b21QYWRkaW5nLCB1bnNpZ25lZCBsZWZ0UGFkZGluZyk7CisKICAgICAv
LyBNYWtlIGEgY29weSB0aGUgSGl0VGVzdExvY2F0aW9uIGluIGEgbmV3IHJlZ2lvbiBieSBhcHBs
eWluZyBnaXZlbiBvZmZzZXQgdG8gaW50ZXJuYWwgcG9pbnQgYW5kIGFyZWEuCiAgICAgSGl0VGVz
dExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFNpemUmIG9mZnNl
dCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2Nh
dGlvbiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwCmluZGV4
IDgyMjA0MjRhMjI3NTBhN2U4MmY0NjMzODUwYTAzZGFhNmNmNDdkNjguLjMxZDBmODkxZjA0YWNj
OTdhYWQ5NzBkOTliYWQyZmUzNmRkZTM2NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGl0VGVzdFJlc3VsdC5jcHAKQEAgLTYyLDYgKzYyLDEyIEBAIEhpdFRlc3RSZXN1bHQ6OkhpdFRl
c3RSZXN1bHQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50KQogewogfQogCitIaXRUZXN0UmVzdWx0
OjpIaXRUZXN0UmVzdWx0KGNvbnN0IExheW91dFJlY3QmIHJlY3QpCisgICAgOiBtX2hpdFRlc3RM
b2NhdGlvbiB7IHJlY3QgfQorICAgICwgbV9wb2ludEluSW5uZXJOb2RlRnJhbWUgeyByZWN0LmNl
bnRlcigpIH0KK3sKK30KKwogSGl0VGVzdFJlc3VsdDo6SGl0VGVzdFJlc3VsdChjb25zdCBMYXlv
dXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0
UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpCiAg
ICAgOiBtX2hpdFRlc3RMb2NhdGlvbihjZW50ZXJQb2ludCwgdG9wUGFkZGluZywgcmlnaHRQYWRk
aW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UGFkZGluZykKICAgICAsIG1fcG9pbnRJbklubmVyTm9k
ZUZyYW1lKGNlbnRlclBvaW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L0hpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0
LmgKaW5kZXggYzBmYmYzYTU3OWRhNjhmOTJmMmE5ZjdkZGM1NGM4MmU5MzhmOTg1YS4uNjRkZTNl
ZTIyNzBkZWZhMmIxMGJlY2YxNjc4ODBkZDU1MjRlZDRjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlc3VsdC5oCkBAIC00NCw4ICs0NCwxMCBAQCBwdWJsaWM6CiAKICAgICBX
RUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGlj
aXQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2ludCYpOwotICAgIC8vIFBhc3Mgbm9uLW5l
Z2F0aXZlIHBhZGRpbmcgdmFsdWVzIHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0Lgor
CisgICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRS
ZWN0Jik7CiAgICAgV0VCQ09SRV9FWFBPUlQgSGl0VGVzdFJlc3VsdChjb25zdCBMYXlvdXRQb2lu
dCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGlu
ZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcpOworCiAgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgSGl0VGVzdFJlc3VsdChjb25zdCBIaXRUZXN0TG9jYXRp
b24mKTsKICAgICBXRUJDT1JFX0VYUE9SVCBIaXRUZXN0UmVzdWx0KGNvbnN0IEhpdFRlc3RSZXN1
bHQmKTsKICAgICBXRUJDT1JFX0VYUE9SVCB+SGl0VGVzdFJlc3VsdCgpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQzMzQ4NjczZTg2ODRiODA4
ZjE5YTI0MmViYTM3ZjEzNzhjYWVlMmUuLjk3MzEwZDBjNTIyNmNlNzEyNGZiYjdkOGQ3MzQzMzBl
MjRhMDFmODUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMC0wMy0wMSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0Bh
cHBsZS5jb20+CisKKyAgICAgICAgUGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCgpIHNob3Vs
ZCBmaW5kIG5lc3RlZCBlZGl0YWJsZSBlbGVtZW50cyBhbmQgcmV0dXJuIGZvdW5kIGVsZW1lbnRz
IGluIHBhaW50IG9yZGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDgzNTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5ODY3ODE1PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFdlbnNvbiBIc2llaC4KKworICAgICAgICBVcGRhdGUgdGVzdCByZXN1
bHRzIHRvIHJlZmxlY3QgdGhlIG5ldyBiZWhhdmlvci4gVG8gZG8gdGhpcyBJIGFsc28gbmVlZCB0
byBmaXggdXAgdGhlIHRlc3QgY29kZQorICAgICAgICB0byBhY3R1YWxseSBzY3JvbGwgdGhlIHdl
YiBjb250ZW50LiBUaGlzIGFsc28gbWVhbnMgd2Ugbm93IGV4ZWN1dGUgdGhlIHNhbWUgY29kZSBv
biBib3RoIE1hYyBhbmQKKyAgICAgICAgaU9TIHRvIGRvIHRoZSBzY3JvbGxpbmc6IHdpbmRvdy5z
Y3JvbGxUbygwLCA1MDAwKS4gQWxzbyBmaXhlZCB1cCBzdWItdGVzdCAiSW5wdXRzIHNjcm9sbGVk
IG91dHNpZGUKKyAgICAgICAgdGhlIHJlcXVlc3RlZCByZWN0OyBzaG91bGQgbm90IGJlIGluY2x1
ZGVkLiIgdG8gdXNlIGEgMTAwMDBweCBoZWlnaHQgPGRpdj4gc28gdGhhdCB5b3UgY2FuIHNjcm9s
bAorICAgICAgICB0byBhIHkgcG9zaXRpb24gb2YgNTAwMC4gT3RoZXJ3aXNlLCBpdCdzIGltcG9z
c2libGUgdG8gZG8gYmVjYXVzZSB0aGUgcGFnZSBoZWlnaHQgaXMgPCA1MDAwcHguCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250
ZXh0Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjAtMDItMjUgIERhbmllbCBCYXRlcyAgPGRh
YmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEkuUGFzdGVNaXhlZENvbnRl
bnQuQ29weUFuZFBhc3RlV2l0aEN1c3RvbVBhc3RlYm9hcmREYXRhT25seSBzaG91bGQgd2FpdCB1
bnRpbCBjb3B5IG9wZXJhdGlvbiBjb21wbGV0ZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0gYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0
Lm1tCmluZGV4IDcwYjQ3MTE5OTU5NTQ4Mzk4ZDEwOTNmZmU1NWFiNTNmMDlkMWVmZDEuLmIwNTBj
NThiNTM2ODA3NzNmZDRkMmEyNWFmMjY3Yjk1NWI4NzJlODYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0K
KysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElu
cHV0Q29udGV4dC5tbQpAQCAtNzYsNyArNzYsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmFwcGx5SWZy
YW1lKE5TU3RyaW5nICpIVE1MU3RyaW5nKQogVEVTVChXZWJLaXQsIFJlcXVlc3RUZXh0SW5wdXRD
b250ZXh0KQogewogICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
LSAgICBXS1ByZWZlcmVuY2VzU2V0VGhyZWFkZWRTY3JvbGxpbmdFbmFibGVkKChXS1ByZWZlcmVu
Y2VzUmVmKVtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXSwgZmFsc2UpOwogICAgIFJldGFpblB0
cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CiAKICAgICBOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQg
Kj4gKmNvbnRleHRzOwpAQCAtMTMzLDIzICsxMzIsMTkgQEAgVEVTVChXZWJLaXQsIFJlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0KQogCiAgICAgLy8gSW5wdXRzIHNjcm9sbGVkIG91dHNpZGUgdGhlIHJl
cXVlc3RlZCByZWN0OyBzaG91bGQgbm90IGJlIGluY2x1ZGVkLgogCi0gICAgW3dlYlZpZXcgc3lu
Y2hyb25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcg
c3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnI+PGRpdiBzdHlsZT0nd2lkdGg6
IDEwMHB4OyBoZWlnaHQ6IDUwMDBweDsnPjwvZGl2PiIpXTsKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxU
bygwLCA1MDAwKTsiXTsKLSNlbHNlCi0gICAgW3dlYlZpZXcgc2Nyb2xsVmlld10uY29udGVudE9m
ZnNldCA9IENHUG9pbnRNYWtlKDAsIDUwMDApOwotI2VuZGlmCisgICAgW3dlYlZpZXcgc3luY2hy
b25vdXNseUxvYWRIVE1MU3RyaW5nOmFwcGx5U3R5bGUoQCI8aW5wdXQgdHlwZT0ndGV4dCcgc3R5
bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz48YnI+PGRpdiBzdHlsZT0nd2lkdGg6IDEw
MHB4OyBoZWlnaHQ6IDEwMDAwcHg7Jz48L2Rpdj4iKV07CisgICAgW3dlYlZpZXcgc3RyaW5nQnlF
dmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxUbygwLCA1MDAwKSJdOworICAgIFt3
ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsKKyAgICBFWFBFQ1RfRVEoNTAw
MCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJwYWdlWU9mZnNldCJd
IGZsb2F0VmFsdWVdKTsKICAgICBjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgZnJhbWVdXTsKICAgICBFWFBFQ1Rf
RVEoMFVMLCBjb250ZXh0cy5jb3VudCk7CiAKICAgICAvLyBJbnB1dHMgc2Nyb2xsZWQgaW50byB0
aGUgcmVxdWVzdGVkIHJlY3QuCiAKICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxT
dHJpbmc6YXBwbHlTdHlsZShAIjxpbnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7
IGhlaWdodDogNTBweDsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDUwMDBweDsnPjxicj48ZGl2
IHN0eWxlPSd3aWR0aDogMTAwcHg7IGhlaWdodDogMTAwMDBweDsnPjwvZGl2PiIpXTsKLSNpZiBQ
TEFURk9STShNQUMpCi0gICAgW3dlYlZpZXcgb2JqZWN0QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
IndpbmRvdy5zY3JvbGxUbygwLCA1MDAwKTsiXTsKLSNlbHNlCi0gICAgW3dlYlZpZXcgc2Nyb2xs
Vmlld10uY29udGVudE9mZnNldCA9IENHUG9pbnRNYWtlKDAsIDUwMDApOwotI2VuZGlmCisgICAg
W3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAIndpbmRvdy5zY3JvbGxUbygw
LCA1MDAwKSJdOworICAgIFt3ZWJWaWV3IHdhaXRGb3JOZXh0UHJlc2VudGF0aW9uVXBkYXRlXTsK
KyAgICBFWFBFQ1RfRVEoNTAwMCwgW1t3ZWJWaWV3IG9iamVjdEJ5RXZhbHVhdGluZ0phdmFTY3Jp
cHQ6QCJwYWdlWU9mZnNldCJdIGZsb2F0VmFsdWVdKTsKICAgICBjb250ZXh0cyA9IFt3ZWJWaWV3
IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgZnJh
bWVdXTsKICAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7CiAgICAgRVhQRUNUX0VR
KENHUmVjdE1ha2UoMCwgMCwgNTAsIDUwKSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKQEAg
LTE1OSwxNiArMTU0LDE3IEBAIFRFU1QoV2ViS2l0LCBSZXF1ZXN0VGV4dElucHV0Q29udGV4dCkK
ICAgICBbd2ViVmlldyBzeW5jaHJvbm91c2x5TG9hZEhUTUxTdHJpbmc6YXBwbHlTdHlsZShAIjxp
bnB1dCB0eXBlPSd0ZXh0JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjxici8+
PGlucHV0IHR5cGU9J3RleHQnIHN0eWxlPSd3aWR0aDogNTBweDsgaGVpZ2h0OiA1MHB4Oyc+PGJy
Lz48aW5wdXQgdHlwZT0ndGV4dCcgc3R5bGU9J3dpZHRoOiA1MHB4OyBoZWlnaHQ6IDUwcHg7Jz4i
KV07CiAgICAgY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1
dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGZyYW1lXV07CiAgICAgRVhQRUNUX0VRKDNVTCwgY29u
dGV4dHMuY291bnQpOwotICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDUwLCA1MCksIGNv
bnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7CisgICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMTAw
LCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1JlY3QpOwogICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKDAsIDUwLCA1MCwgNTApLCBjb250ZXh0c1sxXS5ib3VuZGluZ1JlY3QpOwotICAgIEVY
UEVDVF9FUShDR1JlY3RNYWtlKDAsIDEwMCwgNTAsIDUwKSwgY29udGV4dHNbMl0uYm91bmRpbmdS
ZWN0KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1sy
XS5ib3VuZGluZ1JlY3QpOwogCi0gICAgLy8gTmVzdGVkIDxpbnB1dD4taW5zaWRlLWNvbnRlbnRl
ZGl0YWJsZS4gT25seSB0aGUgY29udGVudGVkaXRhYmxlIGlzIGNvbnNpZGVyZWQuCisgICAgLy8g
TmVzdGVkIDxpbnB1dD4taW5zaWRlLWNvbnRlbnRlZGl0YWJsZS4KIAogICAgIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlMb2FkSFRNTFN0cmluZzphcHBseVN0eWxlKEAiPGRpdiBjb250ZW50ZWRpdGFi
bGUgc3R5bGU9J3dpZHRoOiAxMDBweDsgaGVpZ2h0OiAxMDBweDsnPjxpbnB1dCB0eXBlPSd0ZXh0
JyBzdHlsZT0nd2lkdGg6IDUwcHg7IGhlaWdodDogNTBweDsnPjwvZGl2PiIpXTsKICAgICBjb250
ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJl
Y3Q6W3dlYlZpZXcgZnJhbWVdXTsKLSAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7
Ci0gICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMTAwLCAxMDApLCBjb250ZXh0c1swXS5i
b3VuZGluZ1JlY3QpOworICAgIEVYUEVDVF9FUSgyVUwsIGNvbnRleHRzLmNvdW50KTsKKyAgICBF
WFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCA1MCwgNTApLCBjb250ZXh0c1swXS5ib3VuZGluZ1Jl
Y3QpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDEwMCwgMTAwKSwgY29udGV4dHNb
MV0uYm91bmRpbmdSZWN0KTsKIH0KIAogVEVTVChXZWJLaXQsIERJU0FCTEVEX0ZvY3VzVGV4dElu
cHV0Q29udGV4dCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>