<?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>213564</bug_id>
          
          <creation_ts>2020-06-24 09:39:25 -0700</creation_ts>
          <short_desc>[iOS] -_requestTextInputContextsInRect cannot find empty Quip spreadsheet title</short_desc>
          <delta_ts>2020-06-25 15:04:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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=213618</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>bfulgham</cc>
    
    <cc>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1665769</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-24 09:39:25 -0700</bug_when>
    <thetext>The spreadsheet title in a Quip spreadsheet is an editable inline element. When it has no content, which can happen if you delete it, then it has zero width and in this state it is not found by -_requestTextInputContextsInRect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665770</commentid>
    <comment_count>1</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-24 09:39:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/59355847&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665837</commentid>
    <comment_count>2</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-24 12:59:12 -0700</bug_when>
    <thetext>Created attachment 402674
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666221</commentid>
    <comment_count>3</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:27:32 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        and painting them. It&apos;s complicated to patch up all this up with a 100% correct

this up =&gt; this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666222</commentid>
    <comment_count>4</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:28:32 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        (They can only be found when focused using a keyboard or random tapping/clicking).

random tapping/clicking =&gt; tapping/clicking on them</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666223</commentid>
    <comment_count>5</comment_count>
      <attachid>402674</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-06-25 14:28:36 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        solution without forcing more line box creation. It&apos;s clear to me that the customer
&gt; +        experience will be significantly better if the focused editable no line box case
&gt; +        is handled, but it&apos;s unclear whether that can be topped by patching everything to
&gt; +        track all editable inlines without a line box because they are not discoverable.
&gt; +        (They can only be found when focused using a keyboard or random tapping/clicking).

Maybe you don&apos;t need all these words.

&gt; Source/WebCore/platform/graphics/FloatRect.cpp:57
&gt; +bool FloatRect::intersectsEvenIfEmpty(const FloatRect&amp; other) const

This is ambiguous about which rect might be empty. Is it |this| or other or both?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666224</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:31:07 -0700</bug_when>
    <thetext>It&apos;s clear to me that the customer experience will be significantly better if the focused editable no line box case is handled, but it&apos;s unclear whether that can be topped by patching everything to track all editable inlines without a line box because they are not discoverable. (They can only be found when focused using a keyboard or tapping/clicking on them). So, I chose to fix this bug by adding a special case in the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666225</commentid>
    <comment_count>7</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:38:54 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:17
&gt;&gt;&gt; +        (They can only be found when focused using a keyboard or random tapping/clicking).
&gt;&gt; 
&gt;&gt; random tapping/clicking =&gt; tapping/clicking on them
&gt; 
&gt; Maybe you don&apos;t need all these words.

Copied a bunch of ^^^ words into a bugzilla comment to capture them...I&apos;ll remove them from the change log

&gt;&gt; Source/WebCore/platform/graphics/FloatRect.cpp:57
&gt;&gt; +bool FloatRect::intersectsEvenIfEmpty(const FloatRect&amp; other) const
&gt; 
&gt; This is ambiguous about which rect might be empty. Is it |this| or other or both?

Both could be empty. I just was following the naming convention of uniteIfEmpty(). I can&apos;t think of a better name, right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666228</commentid>
    <comment_count>8</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:45:28 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/FloatRect.cpp:57
&gt;&gt;&gt; +bool FloatRect::intersectsEvenIfEmpty(const FloatRect&amp; other) const
&gt;&gt; 
&gt;&gt; This is ambiguous about which rect might be empty. Is it |this| or other or both?
&gt; 
&gt; Both could be empty. I just was following the naming convention of uniteIfEmpty(). I can&apos;t think of a better name, right now.

Renaming inclusiveIntersection() on your private chat suggestion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666229</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:45:45 -0700</bug_when>
    <thetext>Thanks Simon!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666231</commentid>
    <comment_count>10</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 14:48:12 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/platform/graphics/FloatRect.cpp:57
&gt;&gt;&gt;&gt; +bool FloatRect::intersectsEvenIfEmpty(const FloatRect&amp; other) const
&gt;&gt;&gt; 
&gt;&gt;&gt; This is ambiguous about which rect might be empty. Is it |this| or other or both?
&gt;&gt; 
&gt;&gt; Both could be empty. I just was following the naming convention of uniteIfEmpty(). I can&apos;t think of a better name, right now.
&gt; 
&gt; Renaming inclusiveIntersection() on your private chat suggestion.

Actually renaming to inclusivelyIntersects</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666234</commentid>
    <comment_count>11</comment_count>
      <attachid>402815</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 15:00:04 -0700</bug_when>
    <thetext>Created attachment 402815
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666235</commentid>
    <comment_count>12</comment_count>
      <attachid>402674</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-25 15:00:30 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

Heh, just realized I never pushed publish. My comment is consistent with what the two of you did!

&gt; Source/WebCore/platform/graphics/FloatRect.h:165
&gt; +    WEBCORE_EXPORT bool intersectsEvenIfEmpty(const FloatRect&amp;) const;

Would be nice to find a more graceful name for this operation. I guess this is like uniteEvenIfEmpty. There have to be some better terms of art for this sort of thing since they come up in every single graphics library!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666236</commentid>
    <comment_count>13</comment_count>
      <attachid>402816</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 15:01:48 -0700</bug_when>
    <thetext>Created attachment 402816
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666238</commentid>
    <comment_count>14</comment_count>
      <attachid>402818</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 15:02:49 -0700</bug_when>
    <thetext>Created attachment 402818
To land</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666239</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 15:03:28 -0700</bug_when>
    <thetext>Committed r263531: &lt;https://trac.webkit.org/changeset/263531&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666240</commentid>
    <comment_count>16</comment_count>
      <attachid>402674</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2020-06-25 15:04:55 -0700</bug_when>
    <thetext>Comment on attachment 402674
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/FloatRect.h:165
&gt;&gt; +    WEBCORE_EXPORT bool intersectsEvenIfEmpty(const FloatRect&amp;) const;
&gt; 
&gt; Would be nice to find a more graceful name for this operation. I guess this is like uniteEvenIfEmpty. There have to be some better terms of art for this sort of thing since they come up in every single graphics library!

I went with inclusivelyIntersects in the latest patch, just landed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402674</attachid>
            <date>2020-06-24 12:59:12 -0700</date>
            <delta_ts>2020-06-25 15:01:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213564-20200624125911.patch</filename>
            <type>text/plain</type>
            <size>12569</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY3YmY2NmU3YTRjY2Mz
MTgyMmEzYzJjYjkzNDFlOWMwMGNlNWMwMi4uNjZkNGExMGJiYmU4ZWRiNDAxNTAyODhiMmQzM2Uy
NzZlZDYwNTNjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIwLTA2LTI0ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0c0luUmVjdCBjYW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0
IHRpdGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM1NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNwZWNpYWwgY2FzZSBmb3IgYSBmb2N1
c2VkIGVkaXRhYmxlIGlubGluZSBlbGVtZW50IHRoYXQgaGFzIG5vIGxpbmUgYm94LCB3aGljaCBp
cworICAgICAgICB3aGF0IHRoZSBRdWlwIHNwcmVhZHNoZWV0IHRpdGxlIGNhbiBiZWNvbWUgaWYg
aXRzIGNvbnRlbnRzIGFyZSBkZWxldGVkLiBUaGUgZW5naW5lCisgICAgICAgIG9wdGltaXplcyB0
byBhdm9pZCBjcmVhdGluZyBsaW5lcyBhbmQgbGluZSBib3hlcyBmb3IgZW1wdHkgaW5saW5lcywg
aGl0IHRlc3RpbmcsCisgICAgICAgIGFuZCBwYWludGluZyB0aGVtLiBJdCdzIGNvbXBsaWNhdGVk
IHRvIHBhdGNoIHVwIGFsbCB0aGlzIHVwIHdpdGggYSAxMDAlIGNvcnJlY3QKKyAgICAgICAgc29s
dXRpb24gd2l0aG91dCBmb3JjaW5nIG1vcmUgbGluZSBib3ggY3JlYXRpb24uIEl0J3MgY2xlYXIg
dG8gbWUgdGhhdCB0aGUgY3VzdG9tZXIKKyAgICAgICAgZXhwZXJpZW5jZSB3aWxsIGJlIHNpZ25p
ZmljYW50bHkgYmV0dGVyIGlmIHRoZSBmb2N1c2VkIGVkaXRhYmxlIG5vIGxpbmUgYm94IGNhc2UK
KyAgICAgICAgaXMgaGFuZGxlZCwgYnV0IGl0J3MgdW5jbGVhciB3aGV0aGVyIHRoYXQgY2FuIGJl
IHRvcHBlZCBieSBwYXRjaGluZyBldmVyeXRoaW5nIHRvCisgICAgICAgIHRyYWNrIGFsbCBlZGl0
YWJsZSBpbmxpbmVzIHdpdGhvdXQgYSBsaW5lIGJveCBiZWNhdXNlIHRoZXkgYXJlIG5vdCBkaXNj
b3ZlcmFibGUuCisgICAgICAgIChUaGV5IGNhbiBvbmx5IGJlIGZvdW5kIHdoZW4gZm9jdXNlZCB1
c2luZyBhIGtleWJvYXJkIG9yIHJhbmRvbSB0YXBwaW5nL2NsaWNraW5nKS4KKyAgICAgICAgU28s
IEkgY2hvc2UgdG8gZml4IHRoaXMgYnVnIGJ5IGFkZGluZyBhIHNwZWNpYWwgY2FzZSBpbiB0aGUg
Y29kZS4KKworICAgICAgICAqIHBhZ2UvUGFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQYWdl
OjplZGl0YWJsZUVsZW1lbnRzSW5SZWN0IGNvbnN0KTogQWRkIHRoZSByb290IGVkaXRhYmxlIGVs
ZW1lbnQgb2YKKyAgICAgICAgdGhlIGZvY3VzZWQgZWxlbWVudCB0byB0aGUgcmVzdWx0IHNldCBp
ZiBpdHMgcmVjdCBpbnRlcnNlY3RzIHRoZSBzZWFyY2ggcmVjdC4gTm90ZQorICAgICAgICB0aGF0
IGl0cyByZWN0IGNhbiBiZSBlbXB0eSBlLmcuIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0idHJ1ZSI+
PC9zcGFuPi4gU28sIEkgdXNlCisgICAgICAgIGEgbmV3IGZ1bmN0aW9uIG9uIEZsb2F0UmVjdCB0
byBwZXJmb3JtIHRoZSBpbnRlcnNlY3Rpb24gdGVzdC4gSSBhbHNvIHVwZGF0ZWQgdGhlCisgICAg
ICAgIEFTU0VSVCgpIHRvIGFsc28gdXNlIHRoaXMgbmV3IGZ1bmN0aW9uLiBUaGlzIHdhcyBub3Qg
bmVjZXNzYXJ5LCBidXQgSSBkaWQgaXQgdG8KKyAgICAgICAgZnV0dXJlIHRoZSBwcm9vZiB0aGlz
IGNvZGUgc2hvdWxkIGhpdCB0ZXN0aW5nIG9uZSBkYXkgcmV0dXJuIGVtcHR5IGlubGluZXMuCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZsb2F0UmVjdDo6aW50ZXJzZWN0c0V2ZW5JZkVtcHR5IGNvbnN0KTogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpGbG9hdFJlY3Q6OmludGVyc2VjdHMgY29uc3QpOiBXaGlsZSBJIHdhcyBp
biB0aGlzIGZpbGUgSSBmaXhlZCB1cCBhIGNvbW1lbnQKKyAgICAgICAgaW4gdGhpcyBmdW5jdGlv
biB0byByZWFkIHdlbGwuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0Lmg6
CisKIDIwMjAtMDUtMTcgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIEJvdHRsZSB1cCBpT1Mgd29yZCBib3VuZGFyeSBoYWNrIGJlaGluZCBpbnRlcmZhY2UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggN2MwMzllMmNiMDI4NDZiY2NjYjg4OWU3ZmIzYzMyN2EwNGM0MWY3OC4uZTU4Yjcz
NGIwZTNmMGY3NGE0M2MwOTAzNzU2NDUxZmY5YWI1Y2RhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAyMC0wNi0yNCAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QgY2Fubm90IGZpbmQg
ZW1wdHkgUXVpcCBzcHJlYWRzaGVldCB0aXRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTM1
NTg0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBD
aGVjayBpZiB0aGUgc2VhcmNoIHJlY3QgaW50ZXJzZWN0cyB0aGUgaW50ZXJhY3Rpb24gcmVjdCwg
ZXZlbiBpZiBpdCdzIGVtcHR5LCBzbyBsb25nIGFzCisgICAgICAgIHRoZXJlIGlzIGFuIGFzc2lz
dGVkIGVsZW1lbnQuIElmIHRoZXJlIGlzbid0IGFuIGFzc2lzdGVkIGVsZW1lbnQganVzdCBkbyB3
aGF0IHdlIGRvIG5vdy4KKyAgICAgICAgT3RoZXJ3aXNlLCBpZiB0aGUgaW50ZXJhY3Rpb24gcmVj
dCBpcyBlbXB0eSB0aGVuIHRoaXMgbWVhbnMgdGhlIGZvY3VzZWQgZWxlbWVudCBpcyBhbgorICAg
ICAgICBlbXB0eSBpbmxpbmUgYW5kIGl0J3Mgbm90IHRyYWNrZWQgaW4gdGhlIGVkaXRhYmxlIHJl
Z2lvbiAoc2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGVudHJ5IGZvcgorICAgICAgICBtb3JlIGRldGFp
bHMpLiBJbiB0aGlzIGNhc2UsIGp1c3QgYXNrIHRoZSB3ZWIgcHJvY2VzcyBkaXJlY3RseSB0byBm
aW5kIHRoZSBjb250ZXh0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1ZXN0VGV4dElu
cHV0Q29udGV4dHNJblJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAtMDMtMjUgIERh
bmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIFNob3VsZCBz
aG93IGlucHV0IHZpZXcgd2hlbiBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGlmIGtleWJvYXJkIHdh
cyBzaG93aW5nIHdoZW4gdGhlIHZpZXcgd2FzIHJlc2lnbmVkCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRl
eCBkZGFiMDZkOGMxMzU4ZTE2MGQ3YjI1Y2YzZDk2Y2FiOTBkYzI5MWE2Li42ZTI3YWI1MTczYzg5
M2MzMGI0Y2Q0NGQ0YWM3YWY2OTUyZTg1N2MwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL1BhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTk0OSwx
MCArOTQ5LDIyIEBAIFZlY3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJ
blJlY3QoY29uc3QgRmxvYXRSZWN0JiBzZWFyY2hSZWN0SW5SCiAgICAgYXV0byYgbm9kZVNldCA9
IGhpdFRlc3RSZXN1bHQubGlzdEJhc2VkVGVzdFJlc3VsdCgpOwogICAgIGZvciAoYXV0byYgbm9k
ZSA6IG5vZGVTZXQpIHsKICAgICAgICAgaWYgKGF1dG8qIGVkaXRhYmxlRWxlbWVudCA9IHJvb3RF
ZGl0YWJsZUVsZW1lbnQobm9kZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChzZWFyY2hSZWN0SW5S
b290Vmlld0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZWRpdGFibGVFbGVtZW50LT5jbGllbnRSZWN0
KCkpKTsKKyAgICAgICAgICAgIEFTU0VSVChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVz
LmludGVyc2VjdHNFdmVuSWZFbXB0eShlZGl0YWJsZUVsZW1lbnQtPmNsaWVudFJlY3QoKSkpOwog
ICAgICAgICAgICAgcm9vdEVkaXRhYmxlRWxlbWVudHMuYWRkKCplZGl0YWJsZUVsZW1lbnQpOwog
ICAgICAgICB9CiAgICAgfQorCisgICAgLy8gRml4IHVwIGZvciBhIG5vdyBlbXB0eSBmb2N1c2Vk
IGlubGluZSBlbGVtZW50LCBlLmcuIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88
L3NwYW4+IGJlY2FtZQorICAgIC8vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9zcGFu
Pi4gSGl0IHRlc3Rpbmcgd2lsbCBsaWtlbHkgbm90IGZpbmQgdGhpcyBlbGVtZW50IGJlY2F1c2Ug
dGhlIGVuZ2luZQorICAgIC8vIHRyaWVzIHRvIGF2b2lkIGNyZWF0aW5nIGxpbmUgYm94ZXMsIHdo
aWNoIGFyZSB0aGluZ3MgaXQgaGl0IHRlc3RzLCBmb3IgdGhlbSB0byByZWR1Y2UgbWVtb3J5LiBJ
ZiB0aGUKKyAgICAvLyBmb2N1c2VkIGVsZW1lbnQgaXMgaW5zaWRlIHRoZSBzZWFyY2ggcmVjdCBp
dCdzIHRoZSBtb3N0IGxpa2VseSB0YXJnZXQgZm9yIGZ1dHVyZSBlZGl0aW5nIG9wZXJhdGlvbnMs
CisgICAgLy8gZXZlbiBpZiBpdCdzIGVtcHR5LiBTbywgd2Ugc3BlY2lhbCBjYXNlIGl0IGhlcmUu
CisgICAgaWYgKGF1dG8qIGZvY3VzZWRFbGVtZW50ID0gZm9jdXNDb250cm9sbGVyKCkuZm9jdXNl
ZE9yTWFpbkZyYW1lKCkuZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgeworICAgICAgICBp
ZiAoc2VhcmNoUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcy5pbnRlcnNlY3RzRXZlbklmRW1wdHko
Zm9jdXNlZEVsZW1lbnQtPmNsaWVudFJlY3QoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBl
ZGl0YWJsZUVsZW1lbnQgPSByb290RWRpdGFibGVFbGVtZW50KCpmb2N1c2VkRWxlbWVudCkpCisg
ICAgICAgICAgICAgICAgcm9vdEVkaXRhYmxlRWxlbWVudHMuYWRkKCplZGl0YWJsZUVsZW1lbnQp
OworICAgICAgICB9CisgICAgfQogICAgIHJldHVybiBXVEY6Om1hcChyb290RWRpdGFibGVFbGVt
ZW50cywgW10oY29uc3QgYXV0byYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5jb3B5UmVmKCk7
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
bG9hdFJlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0
LmNwcAppbmRleCA2MzhiMmNiMWJlY2MwNWUxYmUwOWI1YTFkNzFlZDI1N2YxMzgzMGQwLi42ZjYy
OTgyNzVhOGQxMzRhNmQ5ODI0YTBkZmZjMTUyMmE4MzViNWI2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKQEAgLTU0LDkgKzU0LDE1IEBAIGJv
b2wgRmxvYXRSZWN0Ojppc0V4cHJlc3NpYmxlQXNJbnRSZWN0KCkgY29uc3QKICAgICAgICAgJiYg
aXNXaXRoaW5JbnRSYW5nZShtYXhYKCkpICYmIGlzV2l0aGluSW50UmFuZ2UobWF4WSgpKTsKIH0K
IAorYm9vbCBGbG9hdFJlY3Q6OmludGVyc2VjdHNFdmVuSWZFbXB0eShjb25zdCBGbG9hdFJlY3Qm
IG90aGVyKSBjb25zdAoreworICAgIHJldHVybiB3aWR0aCgpID49IDAgJiYgaGVpZ2h0KCkgPj0g
MCAmJiBvdGhlci53aWR0aCgpID49IDAgJiYgb3RoZXIuaGVpZ2h0KCkgPj0gMAorICAgICAgICAm
JiB4KCkgPD0gb3RoZXIubWF4WCgpICYmIG90aGVyLngoKSA8PSBtYXhYKCkgJiYgeSgpIDw9IG90
aGVyLm1heFkoKSAmJiBvdGhlci55KCkgPD0gbWF4WSgpOworfQorCiBib29sIEZsb2F0UmVjdDo6
aW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmIG90aGVyKSBjb25zdAogewotICAgIC8vIENoZWNr
aW5nIGVtcHRpbmVzcyBoYW5kbGVzIG5lZ2F0aXZlIHdpZHRocyBhcyB3ZWxsIGFzIHplcm8uCisg
ICAgLy8gQ2hlY2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFuZCBoZWln
aHRzIGFzIHdlbGwgYXMgemVyby4KICAgICByZXR1cm4gIWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNF
bXB0eSgpCiAgICAgICAgICYmIHgoKSA8IG90aGVyLm1heFgoKSAmJiBvdGhlci54KCkgPCBtYXhY
KCkKICAgICAgICAgJiYgeSgpIDwgb3RoZXIubWF4WSgpICYmIG90aGVyLnkoKSA8IG1heFkoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKaW5kZXggNWVm
NDZkMTI5ZmNlZmViOTU3MmMwNjgxYTVlMmNjMjYxMzNiNTJhNC4uZTZhOGNlMGRmODBiN2IxZjY5
OGUwOWZiZDhhYzgwYWNmYjQ1ZDM4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRSZWN0LmgKQEAgLTE2Miw2ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRQ
b2ludCBtYXhYTWF4WUNvcm5lcigpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQobV9sb2NhdGlv
bi54KCkgKyBtX3NpemUud2lkdGgoKSwgbV9sb2NhdGlvbi55KCkgKyBtX3NpemUuaGVpZ2h0KCkp
OyB9IC8vIHR5cGljYWxseSBib3R0b21SaWdodAogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBp
bnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaW50ZXJzZWN0c0V2ZW5JZkVtcHR5KGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdF
QkNPUkVfRVhQT1JUIGJvb2wgY29udGFpbnMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiwgQ29udGFpbnNN
b2RlID0gSW5zaWRlT3JPblN0cm9rZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDFiYjA5
YTRhMDQ1NTAwYjM0MWZjZTFhYTIyZTAyODRjODg4ZjdjMDEuLjNjYmQ5ZDJlMDIxYzY3MDU4MTBl
YTM2NTc5MWZhMDg0Yjc3M2U3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTE5MSwxMyArNTE5MSwx
NSBAQCAtICh2b2lkKV9mb2N1c1RleHRJbnB1dENvbnRleHQ6KF9XS1RleHRJbnB1dENvbnRleHQg
Kiljb250ZXh0IHBsYWNlQ2FyZXRBdDooQ0dQbwogCiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0
Q29udGV4dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShO
U0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKKyAg
ICBXZWJDb3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJlY3QgfTsKICNpZiBFTkFCTEUoRURJ
VEFCTEVfUkVHSU9OKQotICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZSAmJiAhV2ViS2l0
OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChzZWxmLCByZWN0KSkgeworICAgIGJv
b2wgaGl0SW50ZXJhY3Rpb25SZWN0ID0gc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgJiYgc2VhcmNo
UmVjdC5pbnRlcnNlY3RzRXZlbklmRW1wdHkoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50
ZXJhY3Rpb25SZWN0KTsKKyAgICBpZiAoIXNlbGYud2ViVmlldy5fZWRpdGFibGUgJiYgIWhpdElu
dGVyYWN0aW9uUmVjdCAmJiAhV2ViS2l0OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVj
dChzZWxmLCByZWN0KSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihAWyBdKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgotICAgIF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0c0lu
UmVjdChyZWN0LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwg
Y29tcGxldGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29u
c3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYgY29udGV4dHMpIHsKKyAgICBfcGFn
ZS0+dGV4dElucHV0Q29udGV4dHNJblJlY3Qoc2VhcmNoUmVjdCwgW3dlYWtTZWxmID0gV2Vha09i
akNQdHI8V0tDb250ZW50Vmlldz4oc2VsZiksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2Nr
UHRyKGNvbXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVtZW50Q29u
dGV4dD4mIGNvbnRleHRzKSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdl
dCgpOwogICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgY29udGV4dHMuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihAWyBdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0No
YW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NmI4NDZmMzVhN2ZjMDM0ODU4ZWVhMzRm
MGZiYzdmMzJmZDFkNWRiLi4zZTU0MzBmMTdmMDI1YTU1NmZlNDQ4ZTVjMzUxNmNjNDNjMTUwNjUx
IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMjAtMDYtMjQgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29t
PgorCisgICAgICAgIFtpT1NdIC1fcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0IGNhbm5v
dCBmaW5kIGVtcHR5IFF1aXAgc3ByZWFkc2hlZXQgdGl0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzU2NAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTkzNTU4NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHNvbWUgdGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOgorICAgICAgICAoVGVzdFdlYktp
dEFQSTo6VEVTVCk6CisKIDIwMTktMDktMTMgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN1cHBvcnQgYnVpbGRpbmcgV2ViS2l0IGZvciBNYWMgQ2F0YWx5c3Qg
ZnJvbSBYY29kZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRD
b2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0KaW5kZXggNDEzNTY4NGQ0
ODc4YmYwM2IzODBjNTRmMzU1YWE1ZTFjYzBkZjkwYi4uZDU4MTk3Y2ZkNzZiNWE1NTZlNDQ2MGMz
NTQ4MGI5OWM0NTZjYzI0MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQorKysgYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCkBAIC0z
MzAsNiArMzMwLDQwIEBAIFRFU1QoUmVxdWVzdFRleHRJbnB1dENvbnRleHQsIERpc2FibGVkRmll
bGQpCiAgICAgRVhQRUNUX0VRKDBVTCwgW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0
SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmlldyBib3VuZHNdXS5jb3VudCk7CiB9CiAKK1RFU1Qo
UmVxdWVzdFRleHRJbnB1dENvbnRleHQsIEZvY3VzZWRFZGl0YWJsZUVtcHR5TGluZSkKK3sKKyAg
ICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlvbj4gY29uZmlndXJhdGlvbiA9IGFkb3B0
TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRy
PFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNv
bmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGlucHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtb
VGVzdElucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKKyAgICBbaW5wdXREZWxlZ2F0ZSBzZXRG
b2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRsZXI6W10gKFdLV2ViVmlldyAqLCBpZCA8
X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgeyByZXR1cm4gX1dLRm9jdXNTdGFydHNJbnB1dFNlc3Np
b25Qb2xpY3lBbGxvdzsgfV07CisgICAgW3dlYlZpZXcgX3NldElucHV0RGVsZWdhdGU6aW5wdXRE
ZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJWaWV3TG9hZEhUTUxTdHJpbmdBbmRXYWl0Rm9yQWxs
RnJhbWVzVG9QYWludCh3ZWJWaWV3LmdldCgpLCBhcHBseVN0eWxlKEAiPHNwYW4gaWQ9J3NwYW4n
IGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9zcGFuPiIpKTsKKyAgICBbd2ViVmlldyBldmFsdWF0
ZUphdmFTY3JpcHRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJzcGFuLmZvY3VzKCki
XTsKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIlNQQU4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRp
bmdKYXZhU2NyaXB0OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIl0pOworCisgICAg
TlNBcnJheTxfV0tUZXh0SW5wdXRDb250ZXh0ICo+ICpjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNo
cm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgYm91bmRzXV07
CisgICAgRVhQRUNUX0VRKDFVTCwgY29udGV4dHMuY291bnQpOworICAgIEVYUEVDVF9FUShDR1Jl
Y3RNYWtlKDAsIDAsIDAsIDApLCBjb250ZXh0c1swXS5ib3VuZGluZ1JlY3QpOworfQorCitURVNU
KFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c2VkRWRpdGFibGVMaW5lV2l0aE9ubHlMaW5l
QnJlYWspCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3Vy
YXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwor
ICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1Rlc3RXS1dl
YlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAsIDYwMCkgY29u
ZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBpbnB1dERlbGVnYXRl
ID0gYWRvcHROUyhbW1Rlc3RJbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgW2lucHV0
RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVyOltdIChXS1dl
YlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIHsgcmV0dXJuIF9XS0ZvY3VzU3Rh
cnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7IH1dOworICAgIFt3ZWJWaWV3IF9zZXRJbnB1dERl
bGVnYXRlOmlucHV0RGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViVmlld0xvYWRIVE1MU3RyaW5n
QW5kV2FpdEZvckFsbEZyYW1lc1RvUGFpbnQod2ViVmlldy5nZXQoKSwgYXBwbHlTdHlsZShAIjxz
cGFuIGlkPSdzcGFuJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjxicj48L3NwYW4+IikpOworICAg
IFt3ZWJWaWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5n
ZTpAInNwYW4uZm9jdXMoKSJdOworICAgIEVYUEVDVF9XS19TVFJFUSgiU1BBTiIsIFt3ZWJWaWV3
IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRh
Z05hbWUiXSk7CisKKyAgICBOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKmNvbnRleHRz
ID0gW3dlYlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpb
d2ViVmlldyBib3VuZHNdXTsKKyAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7Cisg
ICAgRVhQRUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMCwgMTkpLCBjb250ZXh0c1swXS5ib3VuZGlu
Z1JlY3QpOworfQorCiBURVNUKFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c0FmdGVyTmF2
aWdhdGlvbikKIHsKICAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3
Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402815</attachid>
            <date>2020-06-25 15:00:04 -0700</date>
            <delta_ts>2020-06-25 15:01:46 -0700</delta_ts>
            <desc>To land</desc>
            <filename>bug-213564-20200625150004.patch</filename>
            <type>text/plain</type>
            <size>12124</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE4YmZlMTUzMGE0NWU4
NjQ4MTgwMDhhNjcxMTU5MjViZTMzNmIxYS4uZDhjMjZiZTJiODNjYWExNTlmMjAwZTYzNTM1NzVm
MjUwYjlmNzA4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIwLTA2LTI1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0c0luUmVjdCBjYW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0
IHRpdGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM1NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjaWFsIGNhc2UgZm9yIGEgZm9jdXNl
ZCBlZGl0YWJsZSBpbmxpbmUgZWxlbWVudCB0aGF0IGhhcyBubyBsaW5lIGJveCwgd2hpY2ggaXMK
KyAgICAgICAgd2hhdCB0aGUgUXVpcCBzcHJlYWRzaGVldCB0aXRsZSBjYW4gYmVjb21lIGlmIGl0
cyBjb250ZW50cyBhcmUgZGVsZXRlZC4gVGhlIGVuZ2luZQorICAgICAgICBvcHRpbWl6ZXMgdG8g
YXZvaWQgY3JlYXRpbmcgbGluZXMgYW5kIGxpbmUgYm94ZXMgZm9yIGVtcHR5IGlubGluZXMsIGhp
dCB0ZXN0aW5nLAorICAgICAgICBhbmQgcGFpbnRpbmcgdGhlbS4gSXQncyBjb21wbGljYXRlZCB0
byBwYXRjaCBhbGwgdGhpcyB1cCB3aXRoIGEgMTAwJSBjb3JyZWN0CisgICAgICAgIHNvbHV0aW9u
IHdpdGhvdXQgZm9yY2luZyBtb3JlIGxpbmUgYm94IGNyZWF0aW9uLiBTbywgSSBjaG9zZSB0byBm
aXggdGhpcyBidWcgYnkKKyAgICAgICAgYWRkaW5nIGEgc3BlY2lhbCBjYXNlIGluIHRoZSBjb2Rl
LgorCisgICAgICAgICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OmVk
aXRhYmxlRWxlbWVudHNJblJlY3QgY29uc3QpOiBBZGQgdGhlIHJvb3QgZWRpdGFibGUgZWxlbWVu
dCBvZgorICAgICAgICB0aGUgZm9jdXNlZCBlbGVtZW50IHRvIHRoZSByZXN1bHQgc2V0IGlmIGl0
cyByZWN0IGludGVyc2VjdHMgdGhlIHNlYXJjaCByZWN0LiBOb3RlCisgICAgICAgIHRoYXQgaXRz
IHJlY3QgY2FuIGJlIGVtcHR5IGUuZy4gPHNwYW4gY29udGVudGVkaXRhYmxlPSJ0cnVlIj48L3Nw
YW4+LiBTbywgSSB1c2UKKyAgICAgICAgYSBuZXcgZnVuY3Rpb24gb24gRmxvYXRSZWN0IHRvIHBl
cmZvcm0gdGhlIGludGVyc2VjdGlvbiB0ZXN0LiBJIGFsc28gdXBkYXRlZCB0aGUKKyAgICAgICAg
QVNTRVJUKCkgdG8gYWxzbyB1c2UgdGhpcyBuZXcgZnVuY3Rpb24uIFRoaXMgd2FzIG5vdCBuZWNl
c3NhcnksIGJ1dCBJIGRpZCBpdCB0bworICAgICAgICBmdXR1cmUgdGhlIHByb29mIHRoaXMgY29k
ZSBzaG91bGQgaGl0IHRlc3Rpbmcgb25lIGRheSByZXR1cm4gZW1wdHkgaW5saW5lcy4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RmxvYXRSZWN0OjppbmNsdXNpdmVseUludGVyc2VjdHMgY29uc3QpOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkZsb2F0UmVjdDo6aW50ZXJzZWN0cyBjb25zdCk6IFdoaWxlIEkgd2FzIGluIHRo
aXMgZmlsZSBJIGZpeGVkIHVwIGEgY29tbWVudAorICAgICAgICBpbiB0aGlzIGZ1bmN0aW9uIHRv
IHJlYWQgd2VsbC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaDoKKwog
MjAyMC0wNi0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCBmaXggdGhlIG1hY09TIDExIGJ1aWxkIGFmdGVyIHIyNjM1MTkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggYzcxMjcwODk4ZDQ5YmE1ODI0YTdjZTY1NTkzMTVmNGVkYTZhMjc0Ni4uMTJkNTY3
MDI4NDY5ZWFjMGI4MjE1OWE4ZmNmMjFmZWM1YmZiY2YxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAyMC0wNi0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CisKKyAg
ICAgICAgW2lPU10gLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3QgY2Fubm90IGZpbmQg
ZW1wdHkgUXVpcCBzcHJlYWRzaGVldCB0aXRsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTY0CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS81OTM1
NTg0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgQ2hl
Y2sgaWYgdGhlIHNlYXJjaCByZWN0IGludGVyc2VjdHMgdGhlIGludGVyYWN0aW9uIHJlY3QsIGV2
ZW4gaWYgaXQncyBlbXB0eSwgc28gbG9uZyBhcworICAgICAgICB0aGVyZSBpcyBhbiBhc3Npc3Rl
ZCBlbGVtZW50LiBJZiB0aGVyZSBpc24ndCBhbiBhc3Npc3RlZCBlbGVtZW50IGp1c3QgZG8gd2hh
dCB3ZSBkbyBub3cuCisgICAgICAgIE90aGVyd2lzZSwgaWYgdGhlIGludGVyYWN0aW9uIHJlY3Qg
aXMgZW1wdHkgdGhlbiB0aGlzIG1lYW5zIHRoZSBmb2N1c2VkIGVsZW1lbnQgaXMgYW4KKyAgICAg
ICAgZW1wdHkgaW5saW5lIGFuZCBpdCdzIG5vdCB0cmFja2VkIGluIHRoZSBlZGl0YWJsZSByZWdp
b24gKHNlZSBXZWJDb3JlIENoYW5nZUxvZyBlbnRyeSBmb3IKKyAgICAgICAgbW9yZSBkZXRhaWxz
KS4gSW4gdGhpcyBjYXNlLCBqdXN0IGFzayB0aGUgd2ViIHByb2Nlc3MgZGlyZWN0bHkgdG8gZmlu
ZCB0aGUgY29udGV4dHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJ
bnRlcmFjdGlvbi5tbToKKyAgICAgICAgKC1bV0tDb250ZW50VmlldyBfcmVxdWVzdFRleHRJbnB1
dENvbnRleHRzSW5SZWN0OmNvbXBsZXRpb25IYW5kbGVyOl0pOgorCiAyMDIwLTA2LTI1ICBLYXRl
IENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIEFsbG93IHNl
cnZpY2Ugd29ya2VycyBmb3Igd2ViIGJyb3dzZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCBjZTQ1
ZThiNWYwZDlkYmY0YjViODBjMmVlNGEzYjM5YzU2OWJkY2E2Li4xNDY3OTE2YjBiMTllYzcyNjdj
N2Q4YmQ4NWRiZGZkMGZkMmRiZGE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTk0OSwxMCArOTQ5
LDIyIEBAIFZlY3RvcjxSZWY8RWxlbWVudD4+IFBhZ2U6OmVkaXRhYmxlRWxlbWVudHNJblJlY3Qo
Y29uc3QgRmxvYXRSZWN0JiBzZWFyY2hSZWN0SW5SCiAgICAgYXV0byYgbm9kZVNldCA9IGhpdFRl
c3RSZXN1bHQubGlzdEJhc2VkVGVzdFJlc3VsdCgpOwogICAgIGZvciAoYXV0byYgbm9kZSA6IG5v
ZGVTZXQpIHsKICAgICAgICAgaWYgKGF1dG8qIGVkaXRhYmxlRWxlbWVudCA9IHJvb3RFZGl0YWJs
ZUVsZW1lbnQobm9kZSkpIHsKLSAgICAgICAgICAgIEFTU0VSVChzZWFyY2hSZWN0SW5Sb290Vmll
d0Nvb3JkaW5hdGVzLmludGVyc2VjdHMoZWRpdGFibGVFbGVtZW50LT5jbGllbnRSZWN0KCkpKTsK
KyAgICAgICAgICAgIEFTU0VSVChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmluY2x1
c2l2ZWx5SW50ZXJzZWN0cyhlZGl0YWJsZUVsZW1lbnQtPmNsaWVudFJlY3QoKSkpOwogICAgICAg
ICAgICAgcm9vdEVkaXRhYmxlRWxlbWVudHMuYWRkKCplZGl0YWJsZUVsZW1lbnQpOwogICAgICAg
ICB9CiAgICAgfQorCisgICAgLy8gRml4IHVwIGZvciBhIG5vdyBlbXB0eSBmb2N1c2VkIGlubGlu
ZSBlbGVtZW50LCBlLmcuIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+SGVsbG88L3NwYW4+
IGJlY2FtZQorICAgIC8vIDxzcGFuIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PC9zcGFuPi4gSGl0
IHRlc3Rpbmcgd2lsbCBsaWtlbHkgbm90IGZpbmQgdGhpcyBlbGVtZW50IGJlY2F1c2UgdGhlIGVu
Z2luZQorICAgIC8vIHRyaWVzIHRvIGF2b2lkIGNyZWF0aW5nIGxpbmUgYm94ZXMsIHdoaWNoIGFy
ZSB0aGluZ3MgaXQgaGl0IHRlc3RzLCBmb3IgdGhlbSB0byByZWR1Y2UgbWVtb3J5LiBJZiB0aGUK
KyAgICAvLyBmb2N1c2VkIGVsZW1lbnQgaXMgaW5zaWRlIHRoZSBzZWFyY2ggcmVjdCBpdCdzIHRo
ZSBtb3N0IGxpa2VseSB0YXJnZXQgZm9yIGZ1dHVyZSBlZGl0aW5nIG9wZXJhdGlvbnMsCisgICAg
Ly8gZXZlbiBpZiBpdCdzIGVtcHR5LiBTbywgd2Ugc3BlY2lhbCBjYXNlIGl0IGhlcmUuCisgICAg
aWYgKGF1dG8qIGZvY3VzZWRFbGVtZW50ID0gZm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZE9yTWFp
bkZyYW1lKCkuZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSkgeworICAgICAgICBpZiAoc2Vh
cmNoUmVjdEluUm9vdFZpZXdDb29yZGluYXRlcy5pbmNsdXNpdmVseUludGVyc2VjdHMoZm9jdXNl
ZEVsZW1lbnQtPmNsaWVudFJlY3QoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBlZGl0YWJs
ZUVsZW1lbnQgPSByb290RWRpdGFibGVFbGVtZW50KCpmb2N1c2VkRWxlbWVudCkpCisgICAgICAg
ICAgICAgICAgcm9vdEVkaXRhYmxlRWxlbWVudHMuYWRkKCplZGl0YWJsZUVsZW1lbnQpOworICAg
ICAgICB9CisgICAgfQogICAgIHJldHVybiBXVEY6Om1hcChyb290RWRpdGFibGVFbGVtZW50cywg
W10oY29uc3QgYXV0byYgZWxlbWVudCkgeyByZXR1cm4gZWxlbWVudC5jb3B5UmVmKCk7IH0pOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApp
bmRleCA2MzhiMmNiMWJlY2MwNWUxYmUwOWI1YTFkNzFlZDI1N2YxMzgzMGQwLi5lNjk0Mzk3MDVh
NTU0OThmZmZkNWU1MzhhZDBkMzE3NDQzMzNmMjFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKQEAgLTU0LDkgKzU0LDE1IEBAIGJvb2wgRmxv
YXRSZWN0Ojppc0V4cHJlc3NpYmxlQXNJbnRSZWN0KCkgY29uc3QKICAgICAgICAgJiYgaXNXaXRo
aW5JbnRSYW5nZShtYXhYKCkpICYmIGlzV2l0aGluSW50UmFuZ2UobWF4WSgpKTsKIH0KIAorYm9v
bCBGbG9hdFJlY3Q6OmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhjb25zdCBGbG9hdFJlY3QmIG90aGVy
KSBjb25zdAoreworICAgIHJldHVybiB3aWR0aCgpID49IDAgJiYgaGVpZ2h0KCkgPj0gMCAmJiBv
dGhlci53aWR0aCgpID49IDAgJiYgb3RoZXIuaGVpZ2h0KCkgPj0gMAorICAgICAgICAmJiB4KCkg
PD0gb3RoZXIubWF4WCgpICYmIG90aGVyLngoKSA8PSBtYXhYKCkgJiYgeSgpIDw9IG90aGVyLm1h
eFkoKSAmJiBvdGhlci55KCkgPD0gbWF4WSgpOworfQorCiBib29sIEZsb2F0UmVjdDo6aW50ZXJz
ZWN0cyhjb25zdCBGbG9hdFJlY3QmIG90aGVyKSBjb25zdAogewotICAgIC8vIENoZWNraW5nIGVt
cHRpbmVzcyBoYW5kbGVzIG5lZ2F0aXZlIHdpZHRocyBhcyB3ZWxsIGFzIHplcm8uCisgICAgLy8g
Q2hlY2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFuZCBoZWlnaHRzIGFz
IHdlbGwgYXMgemVyby4KICAgICByZXR1cm4gIWlzRW1wdHkoKSAmJiAhb3RoZXIuaXNFbXB0eSgp
CiAgICAgICAgICYmIHgoKSA8IG90aGVyLm1heFgoKSAmJiBvdGhlci54KCkgPCBtYXhYKCkKICAg
ICAgICAgJiYgeSgpIDwgb3RoZXIubWF4WSgpICYmIG90aGVyLnkoKSA8IG1heFkoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmgKaW5kZXggNWVmNDZkMTI5
ZmNlZmViOTU3MmMwNjgxYTVlMmNjMjYxMzNiNTJhNC4uYjA4NWFhYTk5ODMyNGI0NzllOTUxMTMx
MjUzMDM3OWNkYTQxNmJlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRmxvYXRSZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSZWN0LmgKQEAgLTE2Miw2ICsxNjIsNyBAQCBwdWJsaWM6CiAgICAgRmxvYXRQb2ludCBt
YXhYTWF4WUNvcm5lcigpIGNvbnN0IHsgcmV0dXJuIEZsb2F0UG9pbnQobV9sb2NhdGlvbi54KCkg
KyBtX3NpemUud2lkdGgoKSwgbV9sb2NhdGlvbi55KCkgKyBtX3NpemUuaGVpZ2h0KCkpOyB9IC8v
IHR5cGljYWxseSBib3R0b21SaWdodAogCiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBpbnRlcnNl
Y3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgaW5j
bHVzaXZlbHlJbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYpIGNvbnN0OwogICAgIFdFQkNPUkVf
RVhQT1JUIGJvb2wgY29udGFpbnMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFBvaW50JiwgQ29udGFpbnNNb2RlID0g
SW5zaWRlT3JPblN0cm9rZSkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDM3MzYyNjBiOTJl
NWUwMjYzMjUyYTFiNzFiMmViZjY5MDVmMjQ4ZTkuLjk3MTgyMDRjNWQ2MDliZTZlZDNiZmNkODJh
Y2E5YTljNTFjN2VlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTE5OCwxMyArNTE5OCwxNSBAQCAt
ICh2b2lkKV9mb2N1c1RleHRJbnB1dENvbnRleHQ6KF9XS1RleHRJbnB1dENvbnRleHQgKiljb250
ZXh0IHBsYWNlQ2FyZXRBdDooQ0dQbwogCiAtICh2b2lkKV9yZXF1ZXN0VGV4dElucHV0Q29udGV4
dHNJblJlY3Q6KENHUmVjdClyZWN0IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShOU0FycmF5
PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKikpY29tcGxldGlvbkhhbmRsZXIKIHsKKyAgICBXZWJD
b3JlOjpGbG9hdFJlY3Qgc2VhcmNoUmVjdCB7IHJlY3QgfTsKICNpZiBFTkFCTEUoRURJVEFCTEVf
UkVHSU9OKQotICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZSAmJiAhV2ViS2l0OjptYXlD
b250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChzZWxmLCByZWN0KSkgeworICAgIGJvb2wgaGl0
SW50ZXJhY3Rpb25SZWN0ID0gc2VsZi5faGFzRm9jdXNlZEVsZW1lbnQgJiYgc2VhcmNoUmVjdC5p
bmNsdXNpdmVseUludGVyc2VjdHMoX2ZvY3VzZWRFbGVtZW50SW5mb3JtYXRpb24uaW50ZXJhY3Rp
b25SZWN0KTsKKyAgICBpZiAoIXNlbGYud2ViVmlldy5fZWRpdGFibGUgJiYgIWhpdEludGVyYWN0
aW9uUmVjdCAmJiAhV2ViS2l0OjptYXlDb250YWluRWRpdGFibGVFbGVtZW50c0luUmVjdChzZWxm
LCByZWN0KSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihAWyBdKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KICNlbmRpZgotICAgIF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0c0luUmVjdChy
ZWN0LCBbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgY29tcGxl
dGlvbkhhbmRsZXIgPSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgVmVj
dG9yPFdlYkNvcmU6OkVsZW1lbnRDb250ZXh0PiYgY29udGV4dHMpIHsKKyAgICBfcGFnZS0+dGV4
dElucHV0Q29udGV4dHNJblJlY3Qoc2VhcmNoUmVjdCwgW3dlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tDb250ZW50Vmlldz4oc2VsZiksIGNvbXBsZXRpb25IYW5kbGVyID0gbWFrZUJsb2NrUHRyKGNv
bXBsZXRpb25IYW5kbGVyKV0gKGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpFbGVtZW50Q29udGV4dD4m
IGNvbnRleHRzKSB7CiAgICAgICAgIGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwog
ICAgICAgICBpZiAoIXN0cm9uZ1NlbGYgfHwgY29udGV4dHMuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihAWyBdKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmYzc2ZWQzMGVkZTRhZjlkYzEzNDE5M2ZiZGEwZmUz
OTY0YjMxOWVmLi4xNzg1NDMyM2Q0M2IxZjVmYjNjOTY1YTE5NjZjYWE3ZjNkNDY4ODlhIDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMjAtMDYtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgorCisg
ICAgICAgIFtpT1NdIC1fcmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0IGNhbm5vdCBmaW5k
IGVtcHR5IFF1aXAgc3ByZWFkc2hlZXQgdGl0bGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzU2NAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTkz
NTU4NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIEFk
ZCBzb21lIHRlc3RzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2Nv
YS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorCiAyMDIwLTA2LTI1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgYSBuZXcgdGVtcGxhdGVkIHN0cmluZyB0eXBlIHRvIGhlbHAgd3JpdGUgbW9yZSBp
ZGlvbWF0aWMgcGFyc2luZyBjb2RlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4dElucHV0Q29udGV4dC5tbQppbmRl
eCA0MTM1Njg0ZDQ4NzhiZjAzYjM4MGM1NGYzNTVhYTVlMWNjMGRmOTBiLi5kNTgxOTdjZmQ3NmI1
YTU1NmU0NDYwYzM1NDgwYjk5YzQ1NmNjMjQzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRl
eHQubW0KQEAgLTMzMCw2ICszMzAsNDAgQEAgVEVTVChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwg
RGlzYWJsZWRGaWVsZCkKICAgICBFWFBFQ1RfRVEoMFVMLCBbd2ViVmlldyBzeW5jaHJvbm91c2x5
UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5SZWN0Olt3ZWJWaWV3IGJvdW5kc11dLmNvdW50KTsK
IH0KIAorVEVTVChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwgRm9jdXNlZEVkaXRhYmxlRW1wdHlM
aW5lKQoreworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0
aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAg
ICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZp
Z3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9
IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOworICAgIFtpbnB1dERl
bGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJW
aWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+KSB7IHJldHVybiBfV0tGb2N1c1N0YXJ0
c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxl
Z2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKworICAgIHdlYlZpZXdMb2FkSFRNTFN0cmluZ0Fu
ZFdhaXRGb3JBbGxGcmFtZXNUb1BhaW50KHdlYlZpZXcuZ2V0KCksIGFwcGx5U3R5bGUoQCI8c3Bh
biBpZD0nc3BhbicgY29udGVudGVkaXRhYmxlPSd0cnVlJz48L3NwYW4+IikpOworICAgIFt3ZWJW
aWV3IGV2YWx1YXRlSmF2YVNjcmlwdEFuZFdhaXRGb3JJbnB1dFNlc3Npb25Ub0NoYW5nZTpAInNw
YW4uZm9jdXMoKSJdOworICAgIEVYUEVDVF9XS19TVFJFUSgiU1BBTiIsIFt3ZWJWaWV3IHN0cmlu
Z0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJkb2N1bWVudC5hY3RpdmVFbGVtZW50LnRhZ05hbWUi
XSk7CisKKyAgICBOU0FycmF5PF9XS1RleHRJbnB1dENvbnRleHQgKj4gKmNvbnRleHRzID0gW3dl
YlZpZXcgc3luY2hyb25vdXNseVJlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDpbd2ViVmll
dyBib3VuZHNdXTsKKyAgICBFWFBFQ1RfRVEoMVVMLCBjb250ZXh0cy5jb3VudCk7CisgICAgRVhQ
RUNUX0VRKENHUmVjdE1ha2UoMCwgMCwgMCwgMCksIGNvbnRleHRzWzBdLmJvdW5kaW5nUmVjdCk7
Cit9CisKK1RFU1QoUmVxdWVzdFRleHRJbnB1dENvbnRleHQsIEZvY3VzZWRFZGl0YWJsZUxpbmVX
aXRoT25seUxpbmVCcmVhaykKK3sKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3Q29uZmlndXJhdGlv
bj4gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9j
XSBpbml0XSk7CisgICAgUmV0YWluUHRyPFRlc3RXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5T
KFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgw
MCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBhdXRvIGlu
cHV0RGVsZWdhdGUgPSBhZG9wdE5TKFtbVGVzdElucHV0RGVsZWdhdGUgYWxsb2NdIGluaXRdKTsK
KyAgICBbaW5wdXREZWxlZ2F0ZSBzZXRGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUhhbmRs
ZXI6W10gKFdLV2ViVmlldyAqLCBpZCA8X1dLRm9jdXNlZEVsZW1lbnRJbmZvPikgeyByZXR1cm4g
X1dLRm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lBbGxvdzsgfV07CisgICAgW3dlYlZpZXcg
X3NldElucHV0RGVsZWdhdGU6aW5wdXREZWxlZ2F0ZS5nZXQoKV07CisKKyAgICB3ZWJWaWV3TG9h
ZEhUTUxTdHJpbmdBbmRXYWl0Rm9yQWxsRnJhbWVzVG9QYWludCh3ZWJWaWV3LmdldCgpLCBhcHBs
eVN0eWxlKEAiPHNwYW4gaWQ9J3NwYW4nIGNvbnRlbnRlZGl0YWJsZT0ndHJ1ZSc+PGJyPjwvc3Bh
bj4iKSk7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vz
c2lvblRvQ2hhbmdlOkAic3Bhbi5mb2N1cygpIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJTUEFO
IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQudGFnTmFtZSJdKTsKKworICAgIE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAq
PiAqY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRl
eHRzSW5SZWN0Olt3ZWJWaWV3IGJvdW5kc11dOworICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRz
LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAwLCAxOSksIGNvbnRleHRz
WzBdLmJvdW5kaW5nUmVjdCk7Cit9CisKIFRFU1QoUmVxdWVzdFRleHRJbnB1dENvbnRleHQsIEZv
Y3VzQWZ0ZXJOYXZpZ2F0aW9uKQogewogICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXdDb25maWd1cmF0aW9uIGFsbG9jXSBpbml0XSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402816</attachid>
            <date>2020-06-25 15:01:48 -0700</date>
            <delta_ts>2020-06-25 15:02:48 -0700</delta_ts>
            <desc>To land</desc>
            <filename>bug-213564-20200625150147.patch</filename>
            <type>text/plain</type>
            <size>12078</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE4YmZlMTUzMGE0NWU4
NjQ4MTgwMDhhNjcxMTU5MjViZTMzNmIxYS4uNWQzM2E1MDVhMjY5NWJlMGJmODAxMWQ0MmJjMzU0
YWI1ODU3MWU2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTI1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0c0luUmVjdCBjYW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0
IHRpdGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM1NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjaWFsIGNhc2UgZm9yIGEgZm9jdXNl
ZCBlZGl0YWJsZSBpbmxpbmUgZWxlbWVudCB0aGF0IGhhcyBubyBsaW5lIGJveCwgd2hpY2ggaXMK
KyAgICAgICAgd2hhdCB0aGUgUXVpcCBzcHJlYWRzaGVldCB0aXRsZSBjYW4gYmVjb21lIGlmIGl0
cyBjb250ZW50cyBhcmUgZGVsZXRlZC4gVGhlIGVuZ2luZQorICAgICAgICBvcHRpbWl6ZXMgdG8g
YXZvaWQgY3JlYXRpbmcgbGluZXMgYW5kIGxpbmUgYm94ZXMgZm9yIGVtcHR5IGlubGluZXMsIGhp
dCB0ZXN0aW5nLAorICAgICAgICBhbmQgcGFpbnRpbmcgdGhlbS4gSXQncyBjb21wbGljYXRlZCB0
byBwYXRjaCBhbGwgdGhpcyB1cCB3aXRoIGEgMTAwJSBjb3JyZWN0CisgICAgICAgIHNvbHV0aW9u
IHdpdGhvdXQgZm9yY2luZyBtb3JlIGxpbmUgYm94IGNyZWF0aW9uLiBTbywganVzdCBhZGQgYSBz
cGVjaWFsIGNhc2UuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6IEFkZCB0aGUgcm9vdCBlZGl0
YWJsZSBlbGVtZW50IG9mCisgICAgICAgIHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8gdGhlIHJlc3Vs
dCBzZXQgaWYgaXRzIHJlY3QgaW50ZXJzZWN0cyB0aGUgc2VhcmNoIHJlY3QuIE5vdGUKKyAgICAg
ICAgdGhhdCBpdHMgcmVjdCBjYW4gYmUgZW1wdHkgZS5nLiA8c3BhbiBjb250ZW50ZWRpdGFibGU9
InRydWUiPjwvc3Bhbj4uIFNvLCBJIHVzZQorICAgICAgICBhIG5ldyBmdW5jdGlvbiBvbiBGbG9h
dFJlY3QgdG8gcGVyZm9ybSB0aGUgaW50ZXJzZWN0aW9uIHRlc3QuIEkgYWxzbyB1cGRhdGVkIHRo
ZQorICAgICAgICBBU1NFUlQoKSB0byBhbHNvIHVzZSB0aGlzIG5ldyBmdW5jdGlvbi4gVGhpcyB3
YXMgbm90IG5lY2Vzc2FyeSwgYnV0IEkgZGlkIGl0IHRvCisgICAgICAgIGZ1dHVyZSB0aGUgcHJv
b2YgdGhpcyBjb2RlIHNob3VsZCBoaXQgdGVzdGluZyBvbmUgZGF5IHJldHVybiBlbXB0eSBpbmxp
bmVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGbG9hdFJlY3Q6OmluY2x1c2l2ZWx5SW50ZXJzZWN0cyBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSZWN0OjppbnRlcnNlY3RzIGNvbnN0KTogV2hpbGUg
SSB3YXMgaW4gdGhpcyBmaWxlIEkgZml4ZWQgdXAgYSBjb21tZW50CisgICAgICAgIGluIHRoaXMg
ZnVuY3Rpb24gdG8gcmVhZCB3ZWxsLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0
UmVjdC5oOgorCiAyMDIwLTA2LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgbWFjT1MgMTEgYnVpbGQgYWZ0ZXIg
cjI2MzUxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwppbmRleCBjNzEyNzA4OThkNDliYTU4MjRhN2NlNjU1OTMxNWY0ZWRhNmEy
NzQ2Li4xMmQ1NjcwMjg0NjllYWMwYjgyMTU5YThmY2YyMWZlYzViZmJjZjE0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTI1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxl
LmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdCBj
YW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0IHRpdGxlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM1NjQKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKwor
ICAgICAgICBDaGVjayBpZiB0aGUgc2VhcmNoIHJlY3QgaW50ZXJzZWN0cyB0aGUgaW50ZXJhY3Rp
b24gcmVjdCwgZXZlbiBpZiBpdCdzIGVtcHR5LCBzbyBsb25nIGFzCisgICAgICAgIHRoZXJlIGlz
IGFuIGFzc2lzdGVkIGVsZW1lbnQuIElmIHRoZXJlIGlzbid0IGFuIGFzc2lzdGVkIGVsZW1lbnQg
anVzdCBkbyB3aGF0IHdlIGRvIG5vdy4KKyAgICAgICAgT3RoZXJ3aXNlLCBpZiB0aGUgaW50ZXJh
Y3Rpb24gcmVjdCBpcyBlbXB0eSB0aGVuIHRoaXMgbWVhbnMgdGhlIGZvY3VzZWQgZWxlbWVudCBp
cyBhbgorICAgICAgICBlbXB0eSBpbmxpbmUgYW5kIGl0J3Mgbm90IHRyYWNrZWQgaW4gdGhlIGVk
aXRhYmxlIHJlZ2lvbiAoc2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGVudHJ5IGZvcgorICAgICAgICBt
b3JlIGRldGFpbHMpLiBJbiB0aGlzIGNhc2UsIGp1c3QgYXNrIHRoZSB3ZWIgcHJvY2VzcyBkaXJl
Y3RseSB0byBmaW5kIHRoZSBjb250ZXh0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IF9yZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisKIDIwMjAt
MDYtMjUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAg
ICAgQWxsb3cgc2VydmljZSB3b3JrZXJzIGZvciB3ZWIgYnJvd3NlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CmluZGV4IGNlNDVlOGI1ZjBkOWRiZjRiNWI4MGMyZWU0YTNiMzljNTY5YmRjYTYuLjE0Njc5MTZi
MGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcApAQCAt
OTQ5LDEwICs5NDksMjIgQEAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gUGFnZTo6ZWRpdGFibGVFbGVt
ZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmIHNlYXJjaFJlY3RJblIKICAgICBhdXRvJiBub2Rl
U2V0ID0gaGl0VGVzdFJlc3VsdC5saXN0QmFzZWRUZXN0UmVzdWx0KCk7CiAgICAgZm9yIChhdXRv
JiBub2RlIDogbm9kZVNldCkgewogICAgICAgICBpZiAoYXV0byogZWRpdGFibGVFbGVtZW50ID0g
cm9vdEVkaXRhYmxlRWxlbWVudChub2RlKSkgewotICAgICAgICAgICAgQVNTRVJUKHNlYXJjaFJl
Y3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuaW50ZXJzZWN0cyhlZGl0YWJsZUVsZW1lbnQtPmNsaWVu
dFJlY3QoKSkpOworICAgICAgICAgICAgQVNTRVJUKHNlYXJjaFJlY3RJblJvb3RWaWV3Q29vcmRp
bmF0ZXMuaW5jbHVzaXZlbHlJbnRlcnNlY3RzKGVkaXRhYmxlRWxlbWVudC0+Y2xpZW50UmVjdCgp
KSk7CiAgICAgICAgICAgICByb290RWRpdGFibGVFbGVtZW50cy5hZGQoKmVkaXRhYmxlRWxlbWVu
dCk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBGaXggdXAgZm9yIGEgbm93IGVtcHR5IGZv
Y3VzZWQgaW5saW5lIGVsZW1lbnQsIGUuZy4gPHNwYW4gY29udGVudGVkaXRhYmxlPSd0cnVlJz5I
ZWxsbzwvc3Bhbj4gYmVjYW1lCisgICAgLy8gPHNwYW4gY29udGVudGVkaXRhYmxlPSd0cnVlJz48
L3NwYW4+LiBIaXQgdGVzdGluZyB3aWxsIGxpa2VseSBub3QgZmluZCB0aGlzIGVsZW1lbnQgYmVj
YXVzZSB0aGUgZW5naW5lCisgICAgLy8gdHJpZXMgdG8gYXZvaWQgY3JlYXRpbmcgbGluZSBib3hl
cywgd2hpY2ggYXJlIHRoaW5ncyBpdCBoaXQgdGVzdHMsIGZvciB0aGVtIHRvIHJlZHVjZSBtZW1v
cnkuIElmIHRoZQorICAgIC8vIGZvY3VzZWQgZWxlbWVudCBpcyBpbnNpZGUgdGhlIHNlYXJjaCBy
ZWN0IGl0J3MgdGhlIG1vc3QgbGlrZWx5IHRhcmdldCBmb3IgZnV0dXJlIGVkaXRpbmcgb3BlcmF0
aW9ucywKKyAgICAvLyBldmVuIGlmIGl0J3MgZW1wdHkuIFNvLCB3ZSBzcGVjaWFsIGNhc2UgaXQg
aGVyZS4KKyAgICBpZiAoYXV0byogZm9jdXNlZEVsZW1lbnQgPSBmb2N1c0NvbnRyb2xsZXIoKS5m
b2N1c2VkT3JNYWluRnJhbWUoKS5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpKSB7CisgICAg
ICAgIGlmIChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmluY2x1c2l2ZWx5SW50ZXJz
ZWN0cyhmb2N1c2VkRWxlbWVudC0+Y2xpZW50UmVjdCgpKSkgeworICAgICAgICAgICAgaWYgKGF1
dG8qIGVkaXRhYmxlRWxlbWVudCA9IHJvb3RFZGl0YWJsZUVsZW1lbnQoKmZvY3VzZWRFbGVtZW50
KSkKKyAgICAgICAgICAgICAgICByb290RWRpdGFibGVFbGVtZW50cy5hZGQoKmVkaXRhYmxlRWxl
bWVudCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIFdURjo6bWFwKHJvb3RFZGl0YWJs
ZUVsZW1lbnRzLCBbXShjb25zdCBhdXRvJiBlbGVtZW50KSB7IHJldHVybiBlbGVtZW50LmNvcHlS
ZWYoKTsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0Zsb2F0UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9h
dFJlY3QuY3BwCmluZGV4IDYzOGIyY2IxYmVjYzA1ZTFiZTA5YjVhMWQ3MWVkMjU3ZjEzODMwZDAu
LmU2OTQzOTcwNWE1NTQ5OGZmZmQ1ZTUzOGFkMGQzMTc0NDMzM2YyMWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApAQCAtNTQsOSArNTQsMTUg
QEAgYm9vbCBGbG9hdFJlY3Q6OmlzRXhwcmVzc2libGVBc0ludFJlY3QoKSBjb25zdAogICAgICAg
ICAmJiBpc1dpdGhpbkludFJhbmdlKG1heFgoKSkgJiYgaXNXaXRoaW5JbnRSYW5nZShtYXhZKCkp
OwogfQogCitib29sIEZsb2F0UmVjdDo6aW5jbHVzaXZlbHlJbnRlcnNlY3RzKGNvbnN0IEZsb2F0
UmVjdCYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdpZHRoKCkgPj0gMCAmJiBoZWlnaHQo
KSA+PSAwICYmIG90aGVyLndpZHRoKCkgPj0gMCAmJiBvdGhlci5oZWlnaHQoKSA+PSAwCisgICAg
ICAgICYmIHgoKSA8PSBvdGhlci5tYXhYKCkgJiYgb3RoZXIueCgpIDw9IG1heFgoKSAmJiB5KCkg
PD0gb3RoZXIubWF4WSgpICYmIG90aGVyLnkoKSA8PSBtYXhZKCk7Cit9CisKIGJvb2wgRmxvYXRS
ZWN0OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0CiB7Ci0gICAgLy8g
Q2hlY2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwgYXMgemVy
by4KKyAgICAvLyBDaGVja2luZyBlbXB0aW5lc3MgaGFuZGxlcyBuZWdhdGl2ZSB3aWR0aHMgYW5k
IGhlaWdodHMgYXMgd2VsbCBhcyB6ZXJvLgogICAgIHJldHVybiAhaXNFbXB0eSgpICYmICFvdGhl
ci5pc0VtcHR5KCkKICAgICAgICAgJiYgeCgpIDwgb3RoZXIubWF4WCgpICYmIG90aGVyLngoKSA8
IG1heFgoKQogICAgICAgICAmJiB5KCkgPCBvdGhlci5tYXhZKCkgJiYgb3RoZXIueSgpIDwgbWF4
WSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRS
ZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaAppbmRl
eCA1ZWY0NmQxMjlmY2VmZWI5NTcyYzA2ODFhNWUyY2MyNjEzM2I1MmE0Li5iMDg1YWFhOTk4MzI0
YjQ3OWU5NTExMzEyNTMwMzc5Y2RhNDE2YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9GbG9hdFJlY3QuaApAQCAtMTYyLDYgKzE2Miw3IEBAIHB1YmxpYzoKICAgICBG
bG9hdFBvaW50IG1heFhNYXhZQ29ybmVyKCkgY29uc3QgeyByZXR1cm4gRmxvYXRQb2ludChtX2xv
Y2F0aW9uLngoKSArIG1fc2l6ZS53aWR0aCgpLCBtX2xvY2F0aW9uLnkoKSArIG1fc2l6ZS5oZWln
aHQoKSk7IH0gLy8gdHlwaWNhbGx5IGJvdHRvbVJpZ2h0CiAKICAgICBXRUJDT1JFX0VYUE9SVCBi
b29sIGludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBP
UlQgYm9vbCBpbmNsdXNpdmVseUludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFJlY3QmKSBjb25zdDsK
ICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQmLCBDb250
YWluc01vZGUgPSBJbnNpZGVPck9uU3Ryb2tlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXgg
MzczNjI2MGI5MmU1ZTAyNjMyNTJhMWI3MWIyZWJmNjkwNWYyNDhlOS4uOTcxODIwNGM1ZDYwOWJl
NmVkM2JmY2Q4MmFjYTlhOWM1MWM3ZWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC01MTk4LDEzICs1
MTk4LDE1IEBAIC0gKHZvaWQpX2ZvY3VzVGV4dElucHV0Q29udGV4dDooX1dLVGV4dElucHV0Q29u
dGV4dCAqKWNvbnRleHQgcGxhY2VDYXJldEF0OihDR1BvCiAKIC0gKHZvaWQpX3JlcXVlc3RUZXh0
SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3QgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQg
KF4pKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKSljb21wbGV0aW9uSGFuZGxlcgog
eworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hSZWN0IHsgcmVjdCB9OwogI2lmIEVOQUJM
RShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKCFzZWxmLndlYlZpZXcuX2VkaXRhYmxlICYmICFX
ZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3QpKSB7Cisg
ICAgYm9vbCBoaXRJbnRlcmFjdGlvblJlY3QgPSBzZWxmLl9oYXNGb2N1c2VkRWxlbWVudCAmJiBz
ZWFyY2hSZWN0LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhfZm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlv
bi5pbnRlcmFjdGlvblJlY3QpOworICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0YWJsZSAmJiAh
aGl0SW50ZXJhY3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRz
SW5SZWN0KHNlbGYsIHJlY3QpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEBbIF0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCi0gICAgX3BhZ2UtPnRleHRJbnB1dENvbnRl
eHRzSW5SZWN0KHJlY3QsIFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNl
bGYpLCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFuZGxlcild
IChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+JiBjb250ZXh0cykgeworICAg
IF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0c0luUmVjdChzZWFyY2hSZWN0LCBbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgY29tcGxldGlvbkhhbmRsZXIgPSBtYWtl
QmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgVmVjdG9yPFdlYkNvcmU6OkVsZW1l
bnRDb250ZXh0PiYgY29udGV4dHMpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7CiAgICAgICAgIGlmICghc3Ryb25nU2VsZiB8fCBjb250ZXh0cy5pc0VtcHR5KCkp
IHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEBbIF0pOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZjNzZlZDMwZWRlNGFmOWRjMTM0
MTkzZmJkYTBmZTM5NjRiMzE5ZWYuLjE3ODU0MzIzZDQzYjFmNWZiM2M5NjVhMTk2NmNhYTdmM2Q0
Njg4OWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNi0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CisKKyAgICAgICAgW2lPU10gLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Qg
Y2Fubm90IGZpbmQgZW1wdHkgUXVpcCBzcHJlYWRzaGVldCB0aXRsZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTY0CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS81OTM1NTg0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisK
KyAgICAgICAgQWRkIHNvbWUgdGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOgorICAgICAgICAoVGVzdFdl
YktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDYtMjUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBwbGUu
Y29tPgogCiAgICAgICAgIEFkZCBhIG5ldyB0ZW1wbGF0ZWQgc3RyaW5nIHR5cGUgdG8gaGVscCB3
cml0ZSBtb3JlIGlkaW9tYXRpYyBwYXJzaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQubW0gYi9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250
ZXh0Lm1tCmluZGV4IDQxMzU2ODRkNDg3OGJmMDNiMzgwYzU0ZjM1NWFhNWUxY2MwZGY5MGIuLmQ1
ODE5N2NmZDc2YjVhNTU2ZTQ0NjBjMzU0ODBiOTljNDU2Y2MyNDMgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQu
bW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1ZXN0VGV4
dElucHV0Q29udGV4dC5tbQpAQCAtMzMwLDYgKzMzMCw0MCBAQCBURVNUKFJlcXVlc3RUZXh0SW5w
dXRDb250ZXh0LCBEaXNhYmxlZEZpZWxkKQogICAgIEVYUEVDVF9FUSgwVUwsIFt3ZWJWaWV3IHN5
bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgYm91bmRz
XV0uY291bnQpOwogfQogCitURVNUKFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1c2VkRWRp
dGFibGVFbXB0eUxpbmUpCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+
IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10g
aW5pdF0pOworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhb
W1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAwLCA4MDAs
IDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0byBpbnB1
dERlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RJbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0XSk7Cisg
ICAgW2lucHV0RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lIYW5kbGVy
OltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIHsgcmV0dXJuIF9X
S0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7IH1dOworICAgIFt3ZWJWaWV3IF9z
ZXRJbnB1dERlbGVnYXRlOmlucHV0RGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViVmlld0xvYWRI
VE1MU3RyaW5nQW5kV2FpdEZvckFsbEZyYW1lc1RvUGFpbnQod2ViVmlldy5nZXQoKSwgYXBwbHlT
dHlsZShAIjxzcGFuIGlkPSdzcGFuJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvc3Bhbj4iKSk7
CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vzc2lvblRv
Q2hhbmdlOkAic3Bhbi5mb2N1cygpIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJTUEFOIiwgW3dl
YlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2ZUVsZW1l
bnQudGFnTmFtZSJdKTsKKworICAgIE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqY29u
dGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRleHRzSW5S
ZWN0Olt3ZWJWaWV3IGJvdW5kc11dOworICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRzLmNvdW50
KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAwLCAwKSwgY29udGV4dHNbMF0uYm91
bmRpbmdSZWN0KTsKK30KKworVEVTVChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwgRm9jdXNlZEVk
aXRhYmxlTGluZVdpdGhPbmx5TGluZUJyZWFrKQoreworICAgIFJldGFpblB0cjxXS1dlYlZpZXdD
b25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4gd2ViVmll
dyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJl
Y3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOwor
ICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0ZSBhbGxv
Y10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRTZXNzaW9u
UG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVudEluZm8+
KSB7IHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9XTsKKyAg
ICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsKKworICAg
IHdlYlZpZXdMb2FkSFRNTFN0cmluZ0FuZFdhaXRGb3JBbGxGcmFtZXNUb1BhaW50KHdlYlZpZXcu
Z2V0KCksIGFwcGx5U3R5bGUoQCI8c3BhbiBpZD0nc3BhbicgY29udGVudGVkaXRhYmxlPSd0cnVl
Jz48YnI+PC9zcGFuPiIpKTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRBbmRXYWl0
Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJzcGFuLmZvY3VzKCkiXTsKKyAgICBFWFBFQ1RfV0tf
U1RSRVEoIlNQQU4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZG9j
dW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIl0pOworCisgICAgTlNBcnJheTxfV0tUZXh0SW5w
dXRDb250ZXh0ICo+ICpjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4
dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgYm91bmRzXV07CisgICAgRVhQRUNUX0VRKDFV
TCwgY29udGV4dHMuY291bnQpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAsIDAsIDE5
KSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKK30KKwogVEVTVChSZXF1ZXN0VGV4dElucHV0
Q29udGV4dCwgRm9jdXNBZnRlck5hdmlnYXRpb24pCiB7CiAgICAgYXV0byBjb25maWd1cmF0aW9u
ID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402818</attachid>
            <date>2020-06-25 15:02:49 -0700</date>
            <delta_ts>2020-06-25 15:02:49 -0700</delta_ts>
            <desc>To land</desc>
            <filename>bug-213564-20200625150248.patch</filename>
            <type>text/plain</type>
            <size>12084</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGE4YmZlMTUzMGE0NWU4
NjQ4MTgwMDhhNjcxMTU5MjViZTMzNmIxYS4uNzc5Nzc0OWU1MzFkZWExZTBlNTUyMDE2ZWM4M2Nl
ZmNhMWY3OTRjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIwLTA2LTI1ICBEYW5p
ZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0c0luUmVjdCBjYW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0
IHRpdGxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MTM1NjQKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmll
d2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBTcGVjaWFsIGNhc2UgZm9yIGEgZm9jdXNl
ZCBlZGl0YWJsZSBpbmxpbmUgZWxlbWVudCB0aGF0IGhhcyBubyBsaW5lIGJveCwgd2hpY2ggaXMK
KyAgICAgICAgd2hhdCB0aGUgUXVpcCBzcHJlYWRzaGVldCB0aXRsZSBjYW4gYmVjb21lIGlmIGl0
cyBjb250ZW50cyBhcmUgZGVsZXRlZC4gVGhlIGVuZ2luZQorICAgICAgICBvcHRpbWl6ZXMgdG8g
YXZvaWQgY3JlYXRpbmcgbGluZXMgYW5kIGxpbmUgYm94ZXMgZm9yIGVtcHR5IGlubGluZXMsIGhp
dCB0ZXN0aW5nLAorICAgICAgICBhbmQgcGFpbnRpbmcgdGhlbS4gSXQncyBjb21wbGljYXRlZCB0
byBwYXRjaCBhbGwgdGhpcyB1cCB3aXRoIGEgMTAwJSBjb3JyZWN0CisgICAgICAgIHNvbHV0aW9u
IHdpdGhvdXQgZm9yY2luZyBtb3JlIGxpbmUgYm94IGNyZWF0aW9uLiBTbywganVzdCBhZGQgYSBz
cGVjaWFsIGNhc2UuCisKKyAgICAgICAgKiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGFnZTo6ZWRpdGFibGVFbGVtZW50c0luUmVjdCBjb25zdCk6IEFkZCB0aGUgcm9vdCBlZGl0
YWJsZSBlbGVtZW50IG9mCisgICAgICAgIHRoZSBmb2N1c2VkIGVsZW1lbnQgdG8gdGhlIHJlc3Vs
dCBzZXQgaWYgaXRzIHJlY3QgaW50ZXJzZWN0cyB0aGUgc2VhcmNoIHJlY3QuIE5vdGUKKyAgICAg
ICAgdGhhdCBpdHMgcmVjdCBjYW4gYmUgZW1wdHkgZS5nLiA8c3BhbiBjb250ZW50ZWRpdGFibGU9
InRydWUiPjwvc3Bhbj4uIFNvLCBJIHVzZQorICAgICAgICBhIG5ldyBmdW5jdGlvbiBvbiBGbG9h
dFJlY3QgdG8gcGVyZm9ybSB0aGUgaW50ZXJzZWN0aW9uIHRlc3QuIEkgYWxzbyB1cGRhdGVkIHRo
ZQorICAgICAgICBBU1NFUlQoKSB0byBhbHNvIHVzZSB0aGlzIG5ldyBmdW5jdGlvbi4gVGhpcyB3
YXMgbm90IG5lY2Vzc2FyeSwgYnV0IEkgZGlkIGl0IHRvCisgICAgICAgIGZ1dHVyZSB0aGUgcHJv
b2YgdGhpcyBjb2RlIHNob3VsZCBoaXQgdGVzdGluZyBvbmUgZGF5IHJldHVybiBlbXB0eSBpbmxp
bmVzLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGbG9hdFJlY3Q6OmluY2x1c2l2ZWx5SW50ZXJzZWN0cyBjb25zdCk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6RmxvYXRSZWN0OjppbnRlcnNlY3RzIGNvbnN0KTogV2hpbGUg
SSB3YXMgaW4gdGhpcyBmaWxlIEkgZml4ZWQgdXAgYSBjb21tZW50CisgICAgICAgIGluIHRoaXMg
ZnVuY3Rpb24gdG8gYmUgbW9yZSBwcmVjaXNlLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L0Zsb2F0UmVjdC5oOgorCiAyMDIwLTA2LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhA
YXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGZpeCB0aGUgbWFjT1MgMTEgYnVpbGQg
YWZ0ZXIgcjI2MzUxOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBjNzEyNzA4OThkNDliYTU4MjRhN2NlNjU1OTMxNWY0
ZWRhNmEyNzQ2Li4xMmQ1NjcwMjg0NjllYWMwYjgyMTU5YThmY2YyMWZlYzViZmJjZjE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIwLTA2LTI1ICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVz
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSAtX3JlcXVlc3RUZXh0SW5wdXRDb250ZXh0c0lu
UmVjdCBjYW5ub3QgZmluZCBlbXB0eSBRdWlwIHNwcmVhZHNoZWV0IHRpdGxlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM1NjQKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzU5MzU1ODQ3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNl
ci4KKworICAgICAgICBDaGVjayBpZiB0aGUgc2VhcmNoIHJlY3QgaW50ZXJzZWN0cyB0aGUgaW50
ZXJhY3Rpb24gcmVjdCwgZXZlbiBpZiBpdCdzIGVtcHR5LCBzbyBsb25nIGFzCisgICAgICAgIHRo
ZXJlIGlzIGFuIGFzc2lzdGVkIGVsZW1lbnQuIElmIHRoZXJlIGlzbid0IGFuIGFzc2lzdGVkIGVs
ZW1lbnQganVzdCBkbyB3aGF0IHdlIGRvIG5vdy4KKyAgICAgICAgT3RoZXJ3aXNlLCBpZiB0aGUg
aW50ZXJhY3Rpb24gcmVjdCBpcyBlbXB0eSB0aGVuIHRoaXMgbWVhbnMgdGhlIGZvY3VzZWQgZWxl
bWVudCBpcyBhbgorICAgICAgICBlbXB0eSBpbmxpbmUgYW5kIGl0J3Mgbm90IHRyYWNrZWQgaW4g
dGhlIGVkaXRhYmxlIHJlZ2lvbiAoc2VlIFdlYkNvcmUgQ2hhbmdlTG9nIGVudHJ5IGZvcgorICAg
ICAgICBtb3JlIGRldGFpbHMpLiBJbiB0aGlzIGNhc2UsIGp1c3QgYXNrIHRoZSB3ZWIgcHJvY2Vz
cyBkaXJlY3RseSB0byBmaW5kIHRoZSBjb250ZXh0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3
IF9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisK
IDIwMjAtMDYtMjUgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWxsb3cgc2VydmljZSB3b3JrZXJzIGZvciB3ZWIgYnJvd3NlcnMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuY3BwCmluZGV4IGNlNDVlOGI1ZjBkOWRiZjRiNWI4MGMyZWU0YTNiMzljNTY5YmRjYTYuLjE0
Njc5MTZiMGIxOWVjNzI2N2M3ZDhiZDg1ZGJkZmQwZmQyZGJkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cApAQCAtOTQ5LDEwICs5NDksMjIgQEAgVmVjdG9yPFJlZjxFbGVtZW50Pj4gUGFnZTo6ZWRpdGFi
bGVFbGVtZW50c0luUmVjdChjb25zdCBGbG9hdFJlY3QmIHNlYXJjaFJlY3RJblIKICAgICBhdXRv
JiBub2RlU2V0ID0gaGl0VGVzdFJlc3VsdC5saXN0QmFzZWRUZXN0UmVzdWx0KCk7CiAgICAgZm9y
IChhdXRvJiBub2RlIDogbm9kZVNldCkgewogICAgICAgICBpZiAoYXV0byogZWRpdGFibGVFbGVt
ZW50ID0gcm9vdEVkaXRhYmxlRWxlbWVudChub2RlKSkgewotICAgICAgICAgICAgQVNTRVJUKHNl
YXJjaFJlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMuaW50ZXJzZWN0cyhlZGl0YWJsZUVsZW1lbnQt
PmNsaWVudFJlY3QoKSkpOworICAgICAgICAgICAgQVNTRVJUKHNlYXJjaFJlY3RJblJvb3RWaWV3
Q29vcmRpbmF0ZXMuaW5jbHVzaXZlbHlJbnRlcnNlY3RzKGVkaXRhYmxlRWxlbWVudC0+Y2xpZW50
UmVjdCgpKSk7CiAgICAgICAgICAgICByb290RWRpdGFibGVFbGVtZW50cy5hZGQoKmVkaXRhYmxl
RWxlbWVudCk7CiAgICAgICAgIH0KICAgICB9CisKKyAgICAvLyBGaXggdXAgZm9yIGEgbm93IGVt
cHR5IGZvY3VzZWQgaW5saW5lIGVsZW1lbnQsIGUuZy4gPHNwYW4gY29udGVudGVkaXRhYmxlPSd0
cnVlJz5IZWxsbzwvc3Bhbj4gYmVjYW1lCisgICAgLy8gPHNwYW4gY29udGVudGVkaXRhYmxlPSd0
cnVlJz48L3NwYW4+LiBIaXQgdGVzdGluZyB3aWxsIGxpa2VseSBub3QgZmluZCB0aGlzIGVsZW1l
bnQgYmVjYXVzZSB0aGUgZW5naW5lCisgICAgLy8gdHJpZXMgdG8gYXZvaWQgY3JlYXRpbmcgbGlu
ZSBib3hlcywgd2hpY2ggYXJlIHRoaW5ncyBpdCBoaXQgdGVzdHMsIGZvciB0aGVtIHRvIHJlZHVj
ZSBtZW1vcnkuIElmIHRoZQorICAgIC8vIGZvY3VzZWQgZWxlbWVudCBpcyBpbnNpZGUgdGhlIHNl
YXJjaCByZWN0IGl0J3MgdGhlIG1vc3QgbGlrZWx5IHRhcmdldCBmb3IgZnV0dXJlIGVkaXRpbmcg
b3BlcmF0aW9ucywKKyAgICAvLyBldmVuIGlmIGl0J3MgZW1wdHkuIFNvLCB3ZSBzcGVjaWFsIGNh
c2UgaXQgaGVyZS4KKyAgICBpZiAoYXV0byogZm9jdXNlZEVsZW1lbnQgPSBmb2N1c0NvbnRyb2xs
ZXIoKS5mb2N1c2VkT3JNYWluRnJhbWUoKS5kb2N1bWVudCgpLT5mb2N1c2VkRWxlbWVudCgpKSB7
CisgICAgICAgIGlmIChzZWFyY2hSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzLmluY2x1c2l2ZWx5
SW50ZXJzZWN0cyhmb2N1c2VkRWxlbWVudC0+Y2xpZW50UmVjdCgpKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8qIGVkaXRhYmxlRWxlbWVudCA9IHJvb3RFZGl0YWJsZUVsZW1lbnQoKmZvY3VzZWRF
bGVtZW50KSkKKyAgICAgICAgICAgICAgICByb290RWRpdGFibGVFbGVtZW50cy5hZGQoKmVkaXRh
YmxlRWxlbWVudCk7CisgICAgICAgIH0KKyAgICB9CiAgICAgcmV0dXJuIFdURjo6bWFwKHJvb3RF
ZGl0YWJsZUVsZW1lbnRzLCBbXShjb25zdCBhdXRvJiBlbGVtZW50KSB7IHJldHVybiBlbGVtZW50
LmNvcHlSZWYoKTsgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9GbG9hdFJlY3QuY3BwCmluZGV4IDYzOGIyY2IxYmVjYzA1ZTFiZTA5YjVhMWQ3MWVkMjU3ZjEz
ODMwZDAuLmU2OTQzOTcwNWE1NTQ5OGZmZmQ1ZTUzOGFkMGQzMTc0NDMzM2YyMWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0Zsb2F0UmVjdC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRmxvYXRSZWN0LmNwcApAQCAtNTQsOSAr
NTQsMTUgQEAgYm9vbCBGbG9hdFJlY3Q6OmlzRXhwcmVzc2libGVBc0ludFJlY3QoKSBjb25zdAog
ICAgICAgICAmJiBpc1dpdGhpbkludFJhbmdlKG1heFgoKSkgJiYgaXNXaXRoaW5JbnRSYW5nZSht
YXhZKCkpOwogfQogCitib29sIEZsb2F0UmVjdDo6aW5jbHVzaXZlbHlJbnRlcnNlY3RzKGNvbnN0
IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0Cit7CisgICAgcmV0dXJuIHdpZHRoKCkgPj0gMCAmJiBo
ZWlnaHQoKSA+PSAwICYmIG90aGVyLndpZHRoKCkgPj0gMCAmJiBvdGhlci5oZWlnaHQoKSA+PSAw
CisgICAgICAgICYmIHgoKSA8PSBvdGhlci5tYXhYKCkgJiYgb3RoZXIueCgpIDw9IG1heFgoKSAm
JiB5KCkgPD0gb3RoZXIubWF4WSgpICYmIG90aGVyLnkoKSA8PSBtYXhZKCk7Cit9CisKIGJvb2wg
RmxvYXRSZWN0OjppbnRlcnNlY3RzKGNvbnN0IEZsb2F0UmVjdCYgb3RoZXIpIGNvbnN0CiB7Ci0g
ICAgLy8gQ2hlY2tpbmcgZW1wdGluZXNzIGhhbmRsZXMgbmVnYXRpdmUgd2lkdGhzIGFzIHdlbGwg
YXMgemVyby4KKyAgICAvLyBDaGVja2luZyBlbXB0aW5lc3MgaGFuZGxlcyBuZWdhdGl2ZSB3aWR0
aHMgYW5kIGhlaWdodHMgYXMgd2VsbCBhcyB6ZXJvLgogICAgIHJldHVybiAhaXNFbXB0eSgpICYm
ICFvdGhlci5pc0VtcHR5KCkKICAgICAgICAgJiYgeCgpIDwgb3RoZXIubWF4WCgpICYmIG90aGVy
LngoKSA8IG1heFgoKQogICAgICAgICAmJiB5KCkgPCBvdGhlci5tYXhZKCkgJiYgb3RoZXIueSgp
IDwgbWF4WSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
RmxvYXRSZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3Qu
aAppbmRleCA1ZWY0NmQxMjlmY2VmZWI5NTcyYzA2ODFhNWUyY2MyNjEzM2I1MmE0Li5iMDg1YWFh
OTk4MzI0YjQ3OWU5NTExMzEyNTMwMzc5Y2RhNDE2YmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9GbG9hdFJlY3QuaApAQCAtMTYyLDYgKzE2Miw3IEBAIHB1YmxpYzoK
ICAgICBGbG9hdFBvaW50IG1heFhNYXhZQ29ybmVyKCkgY29uc3QgeyByZXR1cm4gRmxvYXRQb2lu
dChtX2xvY2F0aW9uLngoKSArIG1fc2l6ZS53aWR0aCgpLCBtX2xvY2F0aW9uLnkoKSArIG1fc2l6
ZS5oZWlnaHQoKSk7IH0gLy8gdHlwaWNhbGx5IGJvdHRvbVJpZ2h0CiAKICAgICBXRUJDT1JFX0VY
UE9SVCBib29sIGludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29uc3Q7CisgICAgV0VCQ09S
RV9FWFBPUlQgYm9vbCBpbmNsdXNpdmVseUludGVyc2VjdHMoY29uc3QgRmxvYXRSZWN0JikgY29u
c3Q7CiAgICAgV0VCQ09SRV9FWFBPUlQgYm9vbCBjb250YWlucyhjb25zdCBGbG9hdFJlY3QmKSBj
b25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNvbnRhaW5zKGNvbnN0IEZsb2F0UG9pbnQm
LCBDb250YWluc01vZGUgPSBJbnNpZGVPck9uU3Ryb2tlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
aW5kZXggMzczNjI2MGI5MmU1ZTAyNjMyNTJhMWI3MWIyZWJmNjkwNWYyNDhlOS4uOTcxODIwNGM1
ZDYwOWJlNmVkM2JmY2Q4MmFjYTlhOWM1MWM3ZWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC01MTk4
LDEzICs1MTk4LDE1IEBAIC0gKHZvaWQpX2ZvY3VzVGV4dElucHV0Q29udGV4dDooX1dLVGV4dElu
cHV0Q29udGV4dCAqKWNvbnRleHQgcGxhY2VDYXJldEF0OihDR1BvCiAKIC0gKHZvaWQpX3JlcXVl
c3RUZXh0SW5wdXRDb250ZXh0c0luUmVjdDooQ0dSZWN0KXJlY3QgY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQgKF4pKE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAqPiAqKSljb21wbGV0aW9uSGFu
ZGxlcgogeworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBzZWFyY2hSZWN0IHsgcmVjdCB9OwogI2lm
IEVOQUJMRShFRElUQUJMRV9SRUdJT04pCi0gICAgaWYgKCFzZWxmLndlYlZpZXcuX2VkaXRhYmxl
ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVsZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3Qp
KSB7CisgICAgYm9vbCBoaXRJbnRlcmFjdGlvblJlY3QgPSBzZWxmLl9oYXNGb2N1c2VkRWxlbWVu
dCAmJiBzZWFyY2hSZWN0LmluY2x1c2l2ZWx5SW50ZXJzZWN0cyhfZm9jdXNlZEVsZW1lbnRJbmZv
cm1hdGlvbi5pbnRlcmFjdGlvblJlY3QpOworICAgIGlmICghc2VsZi53ZWJWaWV3Ll9lZGl0YWJs
ZSAmJiAhaGl0SW50ZXJhY3Rpb25SZWN0ICYmICFXZWJLaXQ6Om1heUNvbnRhaW5FZGl0YWJsZUVs
ZW1lbnRzSW5SZWN0KHNlbGYsIHJlY3QpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEBb
IF0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogI2VuZGlmCi0gICAgX3BhZ2UtPnRleHRJbnB1
dENvbnRleHRzSW5SZWN0KHJlY3QsIFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZp
ZXc+KHNlbGYpLCBjb21wbGV0aW9uSGFuZGxlciA9IG1ha2VCbG9ja1B0cihjb21wbGV0aW9uSGFu
ZGxlcildIChjb25zdCBWZWN0b3I8V2ViQ29yZTo6RWxlbWVudENvbnRleHQ+JiBjb250ZXh0cykg
eworICAgIF9wYWdlLT50ZXh0SW5wdXRDb250ZXh0c0luUmVjdChzZWFyY2hSZWN0LCBbd2Vha1Nl
bGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKSwgY29tcGxldGlvbkhhbmRsZXIg
PSBtYWtlQmxvY2tQdHIoY29tcGxldGlvbkhhbmRsZXIpXSAoY29uc3QgVmVjdG9yPFdlYkNvcmU6
OkVsZW1lbnRDb250ZXh0PiYgY29udGV4dHMpIHsKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0g
d2Vha1NlbGYuZ2V0KCk7CiAgICAgICAgIGlmICghc3Ryb25nU2VsZiB8fCBjb250ZXh0cy5pc0Vt
cHR5KCkpIHsKICAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKEBbIF0pOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGZjNzZlZDMwZWRlNGFm
OWRjMTM0MTkzZmJkYTBmZTM5NjRiMzE5ZWYuLjE3ODU0MzIzZDQzYjFmNWZiM2M5NjVhMTk2NmNh
YTdmM2Q0Njg4OWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMC0wNi0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRl
c0BhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gLV9yZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJ
blJlY3QgY2Fubm90IGZpbmQgZW1wdHkgUXVpcCBzcHJlYWRzaGVldCB0aXRsZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTY0CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81OTM1NTg0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFz
ZXIuCisKKyAgICAgICAgQWRkIHNvbWUgdGVzdHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5wdXRDb250ZXh0Lm1tOgorICAgICAgICAo
VGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIwMjAtMDYtMjUgIFNhbSBXZWluaWcgIDx3ZWluaWdA
YXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhIG5ldyB0ZW1wbGF0ZWQgc3RyaW5nIHR5cGUgdG8g
aGVscCB3cml0ZSBtb3JlIGlkaW9tYXRpYyBwYXJzaW5nIGNvZGUKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENvbnRleHQu
bW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1JlcXVlc3RUZXh0SW5w
dXRDb250ZXh0Lm1tCmluZGV4IDQxMzU2ODRkNDg3OGJmMDNiMzgwYzU0ZjM1NWFhNWUxY2MwZGY5
MGIuLmQ1ODE5N2NmZDc2YjVhNTU2ZTQ0NjBjMzU0ODBiOTljNDU2Y2MyNDMgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUmVxdWVzdFRleHRJbnB1dENv
bnRleHQubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9SZXF1
ZXN0VGV4dElucHV0Q29udGV4dC5tbQpAQCAtMzMwLDYgKzMzMCw0MCBAQCBURVNUKFJlcXVlc3RU
ZXh0SW5wdXRDb250ZXh0LCBEaXNhYmxlZEZpZWxkKQogICAgIEVYUEVDVF9FUSgwVUwsIFt3ZWJW
aWV3IHN5bmNocm9ub3VzbHlSZXF1ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcg
Ym91bmRzXV0uY291bnQpOwogfQogCitURVNUKFJlcXVlc3RUZXh0SW5wdXRDb250ZXh0LCBGb2N1
c2VkRWRpdGFibGVFbXB0eUxpbmUpCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3Vy
YXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxUZXN0V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRv
cHROUyhbW1Rlc3RXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6TlNNYWtlUmVjdCgwLCAw
LCA4MDAsIDYwMCkgY29uZmlndXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CisgICAgYXV0
byBpbnB1dERlbGVnYXRlID0gYWRvcHROUyhbW1Rlc3RJbnB1dERlbGVnYXRlIGFsbG9jXSBpbml0
XSk7CisgICAgW2lucHV0RGVsZWdhdGUgc2V0Rm9jdXNTdGFydHNJbnB1dFNlc3Npb25Qb2xpY3lI
YW5kbGVyOltdIChXS1dlYlZpZXcgKiwgaWQgPF9XS0ZvY3VzZWRFbGVtZW50SW5mbz4pIHsgcmV0
dXJuIF9XS0ZvY3VzU3RhcnRzSW5wdXRTZXNzaW9uUG9saWN5QWxsb3c7IH1dOworICAgIFt3ZWJW
aWV3IF9zZXRJbnB1dERlbGVnYXRlOmlucHV0RGVsZWdhdGUuZ2V0KCldOworCisgICAgd2ViVmll
d0xvYWRIVE1MU3RyaW5nQW5kV2FpdEZvckFsbEZyYW1lc1RvUGFpbnQod2ViVmlldy5nZXQoKSwg
YXBwbHlTdHlsZShAIjxzcGFuIGlkPSdzcGFuJyBjb250ZW50ZWRpdGFibGU9J3RydWUnPjwvc3Bh
bj4iKSk7CisgICAgW3dlYlZpZXcgZXZhbHVhdGVKYXZhU2NyaXB0QW5kV2FpdEZvcklucHV0U2Vz
c2lvblRvQ2hhbmdlOkAic3Bhbi5mb2N1cygpIl07CisgICAgRVhQRUNUX1dLX1NUUkVRKCJTUEFO
IiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImRvY3VtZW50LmFjdGl2
ZUVsZW1lbnQudGFnTmFtZSJdKTsKKworICAgIE5TQXJyYXk8X1dLVGV4dElucHV0Q29udGV4dCAq
PiAqY29udGV4dHMgPSBbd2ViVmlldyBzeW5jaHJvbm91c2x5UmVxdWVzdFRleHRJbnB1dENvbnRl
eHRzSW5SZWN0Olt3ZWJWaWV3IGJvdW5kc11dOworICAgIEVYUEVDVF9FUSgxVUwsIGNvbnRleHRz
LmNvdW50KTsKKyAgICBFWFBFQ1RfRVEoQ0dSZWN0TWFrZSgwLCAwLCAwLCAwKSwgY29udGV4dHNb
MF0uYm91bmRpbmdSZWN0KTsKK30KKworVEVTVChSZXF1ZXN0VGV4dElucHV0Q29udGV4dCwgRm9j
dXNlZEVkaXRhYmxlTGluZVdpdGhPbmx5TGluZUJyZWFrKQoreworICAgIFJldGFpblB0cjxXS1dl
YlZpZXdDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2ViVmlldz4g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIGF1dG8gaW5wdXREZWxlZ2F0ZSA9IGFkb3B0TlMoW1tUZXN0SW5wdXREZWxlZ2F0
ZSBhbGxvY10gaW5pdF0pOworICAgIFtpbnB1dERlbGVnYXRlIHNldEZvY3VzU3RhcnRzSW5wdXRT
ZXNzaW9uUG9saWN5SGFuZGxlcjpbXSAoV0tXZWJWaWV3ICosIGlkIDxfV0tGb2N1c2VkRWxlbWVu
dEluZm8+KSB7IHJldHVybiBfV0tGb2N1c1N0YXJ0c0lucHV0U2Vzc2lvblBvbGljeUFsbG93OyB9
XTsKKyAgICBbd2ViVmlldyBfc2V0SW5wdXREZWxlZ2F0ZTppbnB1dERlbGVnYXRlLmdldCgpXTsK
KworICAgIHdlYlZpZXdMb2FkSFRNTFN0cmluZ0FuZFdhaXRGb3JBbGxGcmFtZXNUb1BhaW50KHdl
YlZpZXcuZ2V0KCksIGFwcGx5U3R5bGUoQCI8c3BhbiBpZD0nc3BhbicgY29udGVudGVkaXRhYmxl
PSd0cnVlJz48YnI+PC9zcGFuPiIpKTsKKyAgICBbd2ViVmlldyBldmFsdWF0ZUphdmFTY3JpcHRB
bmRXYWl0Rm9ySW5wdXRTZXNzaW9uVG9DaGFuZ2U6QCJzcGFuLmZvY3VzKCkiXTsKKyAgICBFWFBF
Q1RfV0tfU1RSRVEoIlNQQU4iLCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0
OkAiZG9jdW1lbnQuYWN0aXZlRWxlbWVudC50YWdOYW1lIl0pOworCisgICAgTlNBcnJheTxfV0tU
ZXh0SW5wdXRDb250ZXh0ICo+ICpjb250ZXh0cyA9IFt3ZWJWaWV3IHN5bmNocm9ub3VzbHlSZXF1
ZXN0VGV4dElucHV0Q29udGV4dHNJblJlY3Q6W3dlYlZpZXcgYm91bmRzXV07CisgICAgRVhQRUNU
X0VRKDFVTCwgY29udGV4dHMuY291bnQpOworICAgIEVYUEVDVF9FUShDR1JlY3RNYWtlKDAsIDAs
IDAsIDE5KSwgY29udGV4dHNbMF0uYm91bmRpbmdSZWN0KTsKK30KKwogVEVTVChSZXF1ZXN0VGV4
dElucHV0Q29udGV4dCwgRm9jdXNBZnRlck5hdmlnYXRpb24pCiB7CiAgICAgYXV0byBjb25maWd1
cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRdKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>