<?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>235211</bug_id>
          
          <creation_ts>2022-01-13 17:00:01 -0800</creation_ts>
          <short_desc>Don&apos;t call invalidateRectsForAllMarkers() for every layer in the updateLayerPositions() traversal</short_desc>
          <delta_ts>2022-01-14 11:14:25 -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>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>sam</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>1830771</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-13 17:00:01 -0800</bug_when>
    <thetext>Don&apos;t call invalidateRectsForAllMarkers() for every layer in the updateLayerPositions() traversal</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830772</commentid>
    <comment_count>1</comment_count>
      <attachid>449126</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-13 17:02:39 -0800</bug_when>
    <thetext>Created attachment 449126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830789</commentid>
    <comment_count>2</comment_count>
      <attachid>449126</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2022-01-13 19:12:49 -0800</bug_when>
    <thetext>Comment on attachment 449126
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:942
&gt; +    renderer().document().markers().invalidateRectsForAllMarkers();

Why doesn&apos;t this one use willUpdateLayerPositions()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830794</commentid>
    <comment_count>3</comment_count>
      <attachid>449126</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-01-13 19:28:14 -0800</bug_when>
    <thetext>Comment on attachment 449126
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:937
&gt; +    willUpdateLayerPositions();
&gt; +    recursiveUpdateLayerPositions(nullptr, flagsForUpdateLayerPositions(*this));

I don&apos;t think I could come up with better names, but these 2 lines will surely confuse me in the future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830799</commentid>
    <comment_count>4</comment_count>
      <attachid>449130</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-13 19:48:15 -0800</bug_when>
    <thetext>Created attachment 449130
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830815</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-13 22:16:21 -0800</bug_when>
    <thetext>Committed r288008 (246034@main): &lt;https://commits.webkit.org/246034@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449130.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830816</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-13 22:17:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/87587203&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830886</commentid>
    <comment_count>7</comment_count>
      <attachid>449126</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-14 05:33:13 -0800</bug_when>
    <thetext>Comment on attachment 449126
Patch

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

&gt; Source/WebCore/rendering/RenderLayer.cpp:1063
&gt; +        child-&gt;recursiveUpdateLayerPositions(geometryMap, flags);

could this be something like updateLayerPositionsForSubtree?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830937</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-14 09:40:16 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #7)
&gt; Comment on attachment 449126 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=449126&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderLayer.cpp:1063
&gt; &gt; +        child-&gt;recursiveUpdateLayerPositions(geometryMap, flags);
&gt; 
&gt; could this be something like updateLayerPositionsForSubtree?

It could, but that doesn&apos;t make it obvious that it&apos;s call recursively.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830965</commentid>
    <comment_count>9</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2022-01-14 10:45:37 -0800</bug_when>
    <thetext>&gt; It could, but that doesn&apos;t make it obvious that it&apos;s call recursively.

Why does that matter? If it was refactored to do the same thing iteratively would the callers care?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830976</commentid>
    <comment_count>10</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-14 11:14:25 -0800</bug_when>
    <thetext>If it were iterative, I would rename it of course, and the distinction between the &quot;called-once&quot; and the &quot;called-one-per-layer&quot; function wouldn&apos;t be necessary.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449126</attachid>
            <date>2022-01-13 17:02:39 -0800</date>
            <delta_ts>2022-01-13 19:28:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235211-20220113170239.patch</filename>
            <type>text/plain</type>
            <size>12932</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzNjZlZmVhOTdlMTY0
ODk5YjVjODQ4NzM5N2IyMjhjY2I5OWVkNC4uMjRjZmU5YTI1ZmM0NWE5NWY2ODJiYzBjMjQ5MjA2
NGJhZTExNjc4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAxLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNhbGwg
aW52YWxpZGF0ZVJlY3RzRm9yQWxsTWFya2VycygpIGZvciBldmVyeSBsYXllciBpbiB0aGUgdXBk
YXRlTGF5ZXJQb3NpdGlvbnMoKSB0cmF2ZXJzYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIxMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucygp
IGNhbGxlZCByZW5kZXJlcigpLmRvY3VtZW50KCkubWFya2VycygpLmludmFsaWRhdGVSZWN0c0Zv
ckFsbE1hcmtlcnMoKQorICAgICAgICBidXQgdGhhdCBpcyBjYWxsZWQgb24gZXZlcnkgbGF5ZXIg
aW4gdGhlIHJlY3Vyc2l2ZSB1cGRhdGVMYXllclBvc2l0aW9ucygpIHRyYXZlcmFsLiBZZXQgaXQg
b25seSBuZWVkcworICAgICAgICB0byBiZSBjYWxsZWQgb25jZS4KKworICAgICAgICBTbyBkaWZm
ZXJlbnRpYXRlIHRoZSBlbnRyeSBwb2ludHMgZm9yIGxheWVyIHRyYXZlcnNhbCBmcm9tIHRoZSBy
ZWN1cnNpdmUgdHJhdmVyc2FsIGZ1bmN0aW9ucworICAgICAgICBieSB1c2luZyAicmVjdXJzaXZl
IiBpbiB0aGUgbmFtaW5nIG9mIHRoZSBsYXR0ZXIsIGFuZCBtb3ZlIHR3byBvZiB0aG9zZSBlbnRy
eXBvaW50cyBmcm9tCisgICAgICAgIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEgYmFjayB0byBS
ZW5kZXJMYXllciBzbyBldmVyeXRoaW5nIGlzIGluIHRoZSBzYW1lIGZpbGUuCisKKyAgICAgICAg
Tm93IHRoZSBlbnRyeXBvaW50cyBjYW4gY2FsbCB3aWxsVXBkYXRlTGF5ZXJQb3NpdGlvbnMoKSB3
aGljaCBkb2VzIHRoZSBpbnZhbGlkYXRlUmVjdHNGb3JBbGxNYXJrZXJzKCkuCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0
ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6d2lsbFVwZGF0ZUxh
eWVyUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXll
clBvc2l0aW9uc0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5
ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3Jv
bGwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJEb2N1bWVudFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVj
dXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCk6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwpOiBE
ZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3Jv
bGwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJTY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNj
cm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJs
ZUFyZWE6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJs
ZUFyZWE6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCk6IERlbGV0ZWQu
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVMYXll
clBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmg6CisKIDIwMjItMDEtMTMgIFNpbW9uIEZy
YXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0aGUgY29kZSB0
aGF0IGNvbXB1dGVzIGxheWVyIGNvbnRlbnQgdmlzaWJpbGl0eSBpbnRvIGl0cyBvd24gZnVuY3Rp
b24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4ZGM3NDBiZTJiNDBlMDYxOWMzZTlh
ZmRmNWJkN2JlMmQxMjAwOTc2Li4xNmIxZTIyOTRmNDY3ZWEzZjBmMDc2NzI0YmQwYzA4NzA0OGZl
ZWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yNjI4LDEwICsyNjI4LDkgQEAg
dm9pZCBGcmFtZVZpZXc6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcoKQogICAg
ICAgICByZXR1cm47CiAKICAgICBpZiAoIWxheW91dENvbnRleHQoKS5pc0xheW91dE5lc3RlZCgp
ICYmIGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRl
clZpZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgICAgIHVwZGF0
ZVdpZGdldFBvc2l0aW9ucygpOwotICAgICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVh
ID0gcmVuZGVyVmlldy0+bGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSkKLSAgICAgICAgICAgICAg
ICBzY3JvbGxhYmxlQXJlYS0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xs
KCk7CisgICAgICAgICAgICByZW5kZXJWaWV3LT5sYXllcigpLT51cGRhdGVMYXllclBvc2l0aW9u
c0FmdGVyRG9jdW1lbnRTY3JvbGwoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDBkMzllYmVmOTU4N2NhZTk4NzlmMzU1
YTZhNjAyNzBmOGZjMThiZTEuLmNlYTNmMjU2MDYwYTRmODA3NDJlYjU5NTk0OGViZjc2MWNmOWNh
NzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTI2LDEz
ICs5MjYsMjEgQEAgT3B0aW9uU2V0PFJlbmRlckxheWVyOjpVcGRhdGVMYXllclBvc2l0aW9uc0Zs
YWc+IFJlbmRlckxheWVyOjpmbGFnc0ZvclVwZGF0ZUxheWUKICAgICByZXR1cm4gZmxhZ3M7CiB9
CiAKK3ZvaWQgUmVuZGVyTGF5ZXI6OndpbGxVcGRhdGVMYXllclBvc2l0aW9ucygpCit7CisgICAg
cmVuZGVyZXIoKS5kb2N1bWVudCgpLm1hcmtlcnMoKS5pbnZhbGlkYXRlUmVjdHNGb3JBbGxNYXJr
ZXJzKCk7Cit9CisKIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJT
dHlsZUNoYW5nZSgpCiB7Ci0gICAgdXBkYXRlTGF5ZXJQb3NpdGlvbnMobnVsbHB0ciwgZmxhZ3NG
b3JVcGRhdGVMYXllclBvc2l0aW9ucygqdGhpcykpOworICAgIHdpbGxVcGRhdGVMYXllclBvc2l0
aW9ucygpOworICAgIHJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKG51bGxwdHIsIGZsYWdz
Rm9yVXBkYXRlTGF5ZXJQb3NpdGlvbnMoKnRoaXMpKTsKIH0KIAogdm9pZCBSZW5kZXJMYXllcjo6
dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChib29sIGlzUmVsYXlvdXRpbmdTdWJ0cmVl
LCBib29sIGRpZEZ1bGxSZXBhaW50KQogeworICAgIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5tYXJr
ZXJzKCkuaW52YWxpZGF0ZVJlY3RzRm9yQWxsTWFya2VycygpOworCiAgICAgYXV0byB1cGRhdGVM
YXllclBvc2l0aW9uRmxhZ3MgPSBbJl0oYm9vbCBpc1JlbGF5b3V0aW5nU3VidHJlZSwgYm9vbCBk
aWRGdWxsUmVwYWludCkgewogICAgICAgICBhdXRvIGZsYWdzID0gZmxhZ3NGb3JVcGRhdGVMYXll
clBvc2l0aW9ucygqdGhpcyk7CiAgICAgICAgIGlmIChkaWRGdWxsUmVwYWludCkgewpAQCAtOTQ1
LDE0ICs5NTMsMTYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRl
ckxheW91dChib29sIGlzUmVsYXlvdXRpbmdTdWJ0cmVlLCBib28KICAgICB9OwogCiAgICAgTE9H
KENvbXBvc2l0aW5nLCAiUmVuZGVyTGF5ZXIgJXAgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxh
eW91dCIsIHRoaXMpOworICAgIHdpbGxVcGRhdGVMYXllclBvc2l0aW9ucygpOworCiAgICAgUmVu
ZGVyR2VvbWV0cnlNYXAgZ2VvbWV0cnlNYXAoVXNlVHJhbnNmb3Jtcyk7CiAgICAgaWYgKCFpc1Jl
bmRlclZpZXdMYXllcigpKQogICAgICAgICBnZW9tZXRyeU1hcC5wdXNoTWFwcGluZ3NUb0FuY2Vz
dG9yKHBhcmVudCgpLCBudWxscHRyKTsKIAotICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zKCZnZW9t
ZXRyeU1hcCwgdXBkYXRlTGF5ZXJQb3NpdGlvbkZsYWdzKGlzUmVsYXlvdXRpbmdTdWJ0cmVlLCBk
aWRGdWxsUmVwYWludCkpOworICAgIHJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKCZnZW9t
ZXRyeU1hcCwgdXBkYXRlTGF5ZXJQb3NpdGlvbkZsYWdzKGlzUmVsYXlvdXRpbmdTdWJ0cmVlLCBk
aWRGdWxsUmVwYWludCkpOwogfQogCi12b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0
aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsIE9wdGlvblNldDxVcGRhdGVMYXll
clBvc2l0aW9uc0ZsYWc+IGZsYWdzKQordm9pZCBSZW5kZXJMYXllcjo6cmVjdXJzaXZlVXBkYXRl
TGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBPcHRpb25TZXQ8
VXBkYXRlTGF5ZXJQb3NpdGlvbnNGbGFnPiBmbGFncykKIHsKICAgICB1cGRhdGVMYXllclBvc2l0
aW9uKCZmbGFncyk7CiAgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEpCkBAIC0xMDUwLDcgKzEwNjAs
NyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRy
eU1hcCogZ2VvbWV0cnlNYXAsIE9wdGlvblNldAogICAgICAgICBmbGFncy5hZGQoU2VlbkNvbXBv
c2l0ZWRTY3JvbGxpbmdMYXllcik7CiAKICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZp
cnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAg
IGNoaWxkLT51cGRhdGVMYXllclBvc2l0aW9ucyhnZW9tZXRyeU1hcCwgZmxhZ3MpOworICAgICAg
ICBjaGlsZC0+cmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnMoZ2VvbWV0cnlNYXAsIGZsYWdz
KTsKIAogICAgIGlmIChtX3Njcm9sbGFibGVBcmVhKQogICAgICAgICBtX3Njcm9sbGFibGVBcmVh
LT51cGRhdGVNYXJxdWVlUG9zaXRpb24oKTsKQEAgLTEwNjgsOCArMTA3OCw2IEBAIHZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRy
eU1hcCwgT3B0aW9uU2V0CiAKICAgICBpZiAoZ2VvbWV0cnlNYXApCiAgICAgICAgIGdlb21ldHJ5
TWFwLT5wb3BNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCkpOwotCi0gICAgcmVuZGVyZXIoKS5k
b2N1bWVudCgpLm1hcmtlcnMoKS5pbnZhbGlkYXRlUmVjdHNGb3JBbGxNYXJrZXJzKCk7CiB9CiAK
IExheW91dFJlY3QgUmVuZGVyTGF5ZXI6OnJlcGFpbnRSZWN0SW5jbHVkaW5nTm9uQ29tcG9zaXRp
bmdEZXNjZW5kYW50cygpIGNvbnN0CkBAIC0xMTUyLDcgKzExNjAsMzEgQEAgdm9pZCBSZW5kZXJM
YXllcjo6Y2xlYXJSZXBhaW50UmVjdHMoKQogICAgIG1fcmVwYWludFJlY3RzVmFsaWQgPSBmYWxz
ZTsKIH0KIAotdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9s
bChSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAsIE9wdGlvblNldDxVcGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyU2Nyb2xsRmxhZz4gZmxhZ3MpCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVM
YXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwoKQoreworICAgIFJlbmRlckdlb21ldHJ5
TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOworICAgIGlmICghaXNSZW5kZXJWaWV3TGF5
ZXIoKSkKKyAgICAgICAgZ2VvbWV0cnlNYXAucHVzaE1hcHBpbmdzVG9BbmNlc3RvcihwYXJlbnQo
KSwgbnVsbHB0cik7CisKKyAgICB3aWxsVXBkYXRlTGF5ZXJQb3NpdGlvbnMoKTsKKworICAgIC8v
IEZJWE1FOiB3aHkgaXMgaXQgT0sgdG8gbm90IGNoZWNrIHRoZSBhbmNlc3RvcnMgb2YgdGhpcyBs
YXllciBpbiBvcmRlciB0bworICAgIC8vIGluaXRpYWxpemUgdGhlIEhhc1NlZW5WaWV3cG9ydENv
bnN0cmFpbmVkQW5jZXN0b3IgYW5kIEhhc1NlZW5BbmNlc3RvcldpdGhPdmVyZmxvd0NsaXAgZmxh
Z3M/CisgICAgcmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCgmZ2VvbWV0
cnlNYXAsIFJlbmRlckxheWVyOjpJc092ZXJmbG93U2Nyb2xsKTsKK30KKwordm9pZCBSZW5kZXJM
YXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xsKCkKK3sKKyAgICBB
U1NFUlQoaXNSZW5kZXJWaWV3TGF5ZXIoKSk7CisgICAgTE9HKFNjcm9sbGluZywgIlJlbmRlckxh
eWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwiKTsKKworICAgIHdp
bGxVcGRhdGVMYXllclBvc2l0aW9ucygpOworCisgICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2VvbWV0
cnlNYXAoVXNlVHJhbnNmb3Jtcyk7CisgICAgcmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnNB
ZnRlclNjcm9sbCgmZ2VvbWV0cnlNYXApOworfQorCit2b2lkIFJlbmRlckxheWVyOjpyZWN1cnNp
dmVVcGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9t
ZXRyeU1hcCwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxGbGFnPiBm
bGFncykKIHsKICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGRuJ3QgYmUgbmVlZGVkLCBidXQgdGhl
cmUgYXJlIHNvbWUgY29ybmVyIGNhc2VzIHdoZXJlCiAgICAgLy8gdGhlc2UgZmxhZ3MgYXJlIHN0
aWxsIGRpcnR5LiBVcGRhdGUgc28gdGhhdCB0aGUgY2hlY2sgYmVsb3cgaXMgdmFsaWQuCkBAIC0x
MTk4LDcgKzEyMzAsNyBAQCB2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0Fm
dGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcAogICAgIH0KICAgICAKICAg
ICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0g
Y2hpbGQtPm5leHRTaWJsaW5nKCkpCi0gICAgICAgIGNoaWxkLT51cGRhdGVMYXllclBvc2l0aW9u
c0FmdGVyU2Nyb2xsKGdlb21ldHJ5TWFwLCBmbGFncyk7CisgICAgICAgIGNoaWxkLT5yZWN1cnNp
dmVVcGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKGdlb21ldHJ5TWFwLCBmbGFncyk7CiAK
ICAgICAvLyBXZSBkb24ndCB1cGRhdGUgb3VyIHJlZmxlY3Rpb24gYXMgc2Nyb2xsaW5nIGlzIGEg
dHJhbnNsYXRpb24gd2hpY2ggZG9lcyBub3QgY2hhbmdlIHRoZSBzaXplKCkKICAgICAvLyBvZiBh
biBvYmplY3QsIHRodXMgUmVuZGVyUmVwbGljYSB3aWxsIHN0aWxsIHJlcGFpbnQgaXRzZWxmIHBy
b3Blcmx5IGFzIHRoZSBsYXllciBwb3NpdGlvbiB3YXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmgKaW5kZXggOGViZDA3OGY3YTY5M2UzNmYyMzFlNDRjYzNjYWYxZjUyMjE2ZjJi
MC4uMmIwNDUxYWVjYjYxMDliMGEyZGM4ZTRiODVhNzAzMmM0MjkyM2VhZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmgKQEAgLTQ5Niw2ICs0OTYsOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTdHlsZUNoYW5nZSgpOwogICAgIHZv
aWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckxheW91dChib29sIGlzUmVsYXlvdXRpbmdTdWJ0
cmVlLCBib29sIGRpZEZ1bGxSZXBhaW50KTsKKyAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25z
QWZ0ZXJPdmVyZmxvd1Njcm9sbCgpOworICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRl
ckRvY3VtZW50U2Nyb2xsKCk7CiAKICAgICBib29sIGhhc0NvbXBvc2l0ZWRMYXllckluRW5jbG9z
aW5nUGFnaW5hdGlvbkNoYWluKCkgY29uc3Q7CiAgICAgZW51bSBQYWdpbmF0aW9uSW5jbHVzaW9u
TW9kZSB7IEV4Y2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJzLCBJbmNsdWRlQ29tcG9zaXRl
ZFBhZ2luYXRlZExheWVycyB9OwpAQCAtOTM1LDYgKzkzNyw4IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHVwZGF0ZVNlbGZQYWludGluZ0xheWVyKCk7CiAKKyAgICB2b2lkIHdpbGxVcGRhdGVMYXll
clBvc2l0aW9ucygpOworCiAgICAgZW51bSBVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWcgewogICAg
ICAgICBDaGVja0ZvclJlcGFpbnQgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKICAgICAg
ICAgTmVlZHNGdWxsUmVwYWludEluQmFja2luZyAgICAgICAgICAgPSAxIDw8IDEsCkBAIC05NTAs
NyArOTU0LDcgQEAgcHJpdmF0ZToKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBvc2l0aW9u
IGNoYW5nZWQuCiAgICAgYm9vbCB1cGRhdGVMYXllclBvc2l0aW9uKE9wdGlvblNldDxVcGRhdGVM
YXllclBvc2l0aW9uc0ZsYWc+KiA9IG51bGxwdHIpOwogCi0gICAgdm9pZCB1cGRhdGVMYXllclBv
c2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1hcCosIE9wdGlvblNldDxVcGRhdGVMYXllclBvc2l0aW9u
c0ZsYWc+KTsKKyAgICB2b2lkIHJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdl
b21ldHJ5TWFwKiwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZz4pOwogCiAgICAg
ZW51bSBVcGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsRmxhZyB7CiAgICAgICAgIElzT3Zl
cmZsb3dTY3JvbGwgICAgICAgICAgICAgICAgICAgICAgICA9IDEgPDwgMCwKQEAgLTk1OCw3ICs5
NjIsNyBAQCBwcml2YXRlOgogICAgICAgICBIYXNTZWVuQW5jZXN0b3JXaXRoT3ZlcmZsb3dDbGlw
ICAgICAgICAgPSAxIDw8IDIsCiAgICAgICAgIEhhc0NoYW5nZWRBbmNlc3RvciAgICAgICAgICAg
ICAgICAgICAgICA9IDEgPDwgMywKICAgICB9OwotICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlv
bnNBZnRlclNjcm9sbChSZW5kZXJHZW9tZXRyeU1hcCosIE9wdGlvblNldDxVcGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyU2Nyb2xsRmxhZz4gPSB7IH0pOworICAgIHZvaWQgcmVjdXJzaXZlVXBkYXRl
TGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbChSZW5kZXJHZW9tZXRyeU1hcCosIE9wdGlvblNldDxV
cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsRmxhZz4gPSB7IH0pOwogCiAgICAgUmVuZGVy
TGF5ZXIqIGVuY2xvc2luZ1BhZ2luYXRpb25MYXllckluU3VidHJlZShjb25zdCBSZW5kZXJMYXll
ciogcm9vdExheWVyLCBQYWdpbmF0aW9uSW5jbHVzaW9uTW9kZSkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNw
cAppbmRleCBhNTgwOGY3ZjhjYzE3YzI2MjQ5YTcyNTFlMjA5OTM1ZjgzNTUyMGE1Li40ZDdlMTYz
MDczMWZiMDJkNzMwMDIzYzEzNzBjMDZhYTBmYWJlNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC0zMzQs
NyArMzM0LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjpzY3JvbGxUbyhjb25z
dCBTY3JvbGxQb3NpdGlvbiYgcG9zaXRpb24pCiAgICAgLy8gV2UgZG9uJ3QgdXBkYXRlIGNvbXBv
c2l0aW5nIGxheWVycywgYmVjYXVzZSB3ZSBuZWVkIHRvIGRvIGEgZGVlcCB1cGRhdGUgZnJvbSB0
aGUgY29tcG9zaXRpbmcgYW5jZXN0b3IuCiAgICAgaWYgKCF2aWV3LmZyYW1lVmlldygpLmxheW91
dENvbnRleHQoKS5pc0luUmVuZGVyVHJlZUxheW91dCgpKSB7CiAgICAgICAgIC8vIElmIHdlJ3Jl
IGluIHRoZSBtaWRkbGUgb2YgbGF5b3V0LCB3ZSdsbCBqdXN0IHVwZGF0ZSBsYXllcnMgb25jZSBs
YXlvdXQgaGFzIGZpbmlzaGVkLgotICAgICAgICB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3Zl
cmZsb3dTY3JvbGwoKTsKKyAgICAgICAgbV9sYXllci51cGRhdGVMYXllclBvc2l0aW9uc0FmdGVy
T3ZlcmZsb3dTY3JvbGwoKTsKIAogICAgICAgICB2aWV3LmZyYW1lVmlldygpLnNjaGVkdWxlVXBk
YXRlV2lkZ2V0UG9zaXRpb25zKCk7CiAKQEAgLTE4MTgsMjcgKzE4MTgsNiBAQCB2b2lkIFJlbmRl
ckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbEJ5UmVjdXJzaXZlbHkoY29uc3QgSW50U2l6ZSYg
ZGVsdGEsIFNjcm9sbAogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVh
Ojp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwoKQotewotICAgIEFTU0VS
VCgmbV9sYXllciA9PSBtX2xheWVyLnJlbmRlcmVyKCkudmlldygpLmxheWVyKCkpOwotCi0gICAg
TE9HKFNjcm9sbGluZywgIlJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZUxheWVyUG9z
aXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCIpOwotCi0gICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2Vv
bWV0cnlNYXAoVXNlVHJhbnNmb3Jtcyk7Ci0gICAgbV9sYXllci51cGRhdGVMYXllclBvc2l0aW9u
c0FmdGVyU2Nyb2xsKCZnZW9tZXRyeU1hcCk7Ci19Ci0KLXZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxh
YmxlQXJlYTo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Nyb2xsKCkKLXsKLSAg
ICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChVc2VUcmFuc2Zvcm1zKTsKLSAgICBpZiAo
Jm1fbGF5ZXIgIT0gbV9sYXllci5yZW5kZXJlcigpLnZpZXcoKS5sYXllcigpKQotICAgICAgICBn
ZW9tZXRyeU1hcC5wdXNoTWFwcGluZ3NUb0FuY2VzdG9yKG1fbGF5ZXIucGFyZW50KCksIG51bGxw
dHIpOwotCi0gICAgLy8gRklYTUU6IHdoeSBpcyBpdCBPSyB0byBub3QgY2hlY2sgdGhlIGFuY2Vz
dG9ycyBvZiB0aGlzIGxheWVyIGluIG9yZGVyIHRvCi0gICAgLy8gaW5pdGlhbGl6ZSB0aGUgSGFz
U2VlblZpZXdwb3J0Q29uc3RyYWluZWRBbmNlc3RvciBhbmQgSGFzU2VlbkFuY2VzdG9yV2l0aE92
ZXJmbG93Q2xpcCBmbGFncz8KLSAgICBtX2xheWVyLnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJT
Y3JvbGwoJmdlb21ldHJ5TWFwLCBSZW5kZXJMYXllcjo6SXNPdmVyZmxvd1Njcm9sbCk7Ci19Ci0K
IGJvb2wgUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6bW9ja1Njcm9sbGJhcnNDb250cm9sbGVy
RW5hYmxlZCgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fbGF5ZXIucmVuZGVyZXIoKS5zZXR0aW5n
cygpLm1vY2tTY3JvbGxiYXJzQ29udHJvbGxlckVuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5oCmluZGV4IGIxNzU5
NGVmMTIwYjdmMmI0MGNjODNkNDM5Y2EyY2YyMjk5ODJmNWMuLmJmMjdlZGMxNTI2NzQ0ODNmYzc5
Nzc3YjY5YTllYzFiZGRhMTZhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaApAQCAtMjM2LDkgKzIzNiw2IEBAIHB1Ymxp
YzoKIAogICAgIEludFNpemUgc2Nyb2xsYmFyT2Zmc2V0KGNvbnN0IFNjcm9sbGJhciYpIGNvbnN0
OwogCi0gICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwoKTsK
LSAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCgpOwotCiAg
ICAgc3RkOjpvcHRpb25hbDxMYXlvdXRSZWN0PiB1cGRhdGVTY3JvbGxQb3NpdGlvbihjb25zdCBT
Y3JvbGxQb3NpdGlvbkNoYW5nZU9wdGlvbnMmLCBjb25zdCBMYXlvdXRSZWN0JiByZXZlYWxSZWN0
LCBjb25zdCBMYXlvdXRSZWN0JiBsb2NhbEV4cG9zZVJlY3QpOwogCiBwcml2YXRlOgo=
</data>
<flag name="review"
          id="475122"
          type_id="1"
          status="+"
          setter="zalan"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449130</attachid>
            <date>2022-01-13 19:48:15 -0800</date>
            <delta_ts>2022-01-13 22:16:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235211-20220113194815.patch</filename>
            <type>text/plain</type>
            <size>12973</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3OTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAzNjZlZmVhOTdlMTY0
ODk5YjVjODQ4NzM5N2IyMjhjY2I5OWVkNC4uNmExM2M5NmQ5MDI5ZjFkYjViYzQyNjMxYzI3NWI2
YWExZGJiMjQ5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIyLTAxLTEzICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIERvbid0IGNhbGwg
aW52YWxpZGF0ZVJlY3RzRm9yQWxsTWFya2VycygpIGZvciBldmVyeSBsYXllciBpbiB0aGUgdXBk
YXRlTGF5ZXJQb3NpdGlvbnMoKSB0cmF2ZXJzYWwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTIxMQorCisgICAgICAgIFJldmlld2VkIGJ5IEFsYW4g
QnVqdGFzLgorCisgICAgICAgIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9ucygpIGNh
bGxlZCByZW5kZXJlcigpLmRvY3VtZW50KCkubWFya2VycygpLmludmFsaWRhdGVSZWN0c0ZvckFs
bE1hcmtlcnMoKQorICAgICAgICBidXQgdGhhdCBpcyBjYWxsZWQgb24gZXZlcnkgbGF5ZXIgaW4g
dGhlIHJlY3Vyc2l2ZSB1cGRhdGVMYXllclBvc2l0aW9ucygpIHRyYXZlcmFsLiBZZXQgaXQgb25s
eSBuZWVkcworICAgICAgICB0byBiZSBjYWxsZWQgb25jZS4KKworICAgICAgICBTbyBkaWZmZXJl
bnRpYXRlIHRoZSBlbnRyeSBwb2ludHMgZm9yIGxheWVyIHRyYXZlcnNhbCBmcm9tIHRoZSByZWN1
cnNpdmUgdHJhdmVyc2FsIGZ1bmN0aW9ucworICAgICAgICBieSB1c2luZyAicmVjdXJzaXZlIiBp
biB0aGUgbmFtaW5nIG9mIHRoZSBsYXR0ZXIsIGFuZCBtb3ZlIHR3byBvZiB0aG9zZSBlbnRyeXBv
aW50cyBmcm9tCisgICAgICAgIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEgYmFjayB0byBSZW5k
ZXJMYXllciBzbyBldmVyeXRoaW5nIGlzIGluIHRoZSBzYW1lIGZpbGUuCisKKyAgICAgICAgTm93
IHRoZSBlbnRyeXBvaW50cyBjYW4gY2FsbCB3aWxsVXBkYXRlTGF5ZXJQb3NpdGlvbnMoKSB3aGlj
aCBkb2VzIHRoZSBpbnZhbGlkYXRlUmVjdHNGb3JBbGxNYXJrZXJzKCkuCisKKyAgICAgICAgKiBw
YWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZUxh
eWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJM
YXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6d2lsbFVwZGF0ZUxheWVy
UG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyU3R5bGVDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0
ZXJEb2N1bWVudFNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6cmVjdXJz
aXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwpOiBEZWxl
dGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwp
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0
ZXJTY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllclNjcm9s
bGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OnNjcm9sbFRvKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwpOiBEZWxldGVkLgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmg6CisKIDIwMjItMDEtMTMgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTW92ZSB0aGUgY29kZSB0aGF0
IGNvbXB1dGVzIGxheWVyIGNvbnRlbnQgdmlzaWJpbGl0eSBpbnRvIGl0cyBvd24gZnVuY3Rpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA4ZGM3NDBiZTJiNDBlMDYxOWMzZTlhZmRm
NWJkN2JlMmQxMjAwOTc2Li4xNmIxZTIyOTRmNDY3ZWEzZjBmMDc2NzI0YmQwYzA4NzA0OGZlZWU2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC0yNjI4LDEwICsyNjI4LDkgQEAgdm9p
ZCBGcmFtZVZpZXc6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxpbmcoKQogICAgICAg
ICByZXR1cm47CiAKICAgICBpZiAoIWxheW91dENvbnRleHQoKS5pc0xheW91dE5lc3RlZCgpICYm
IGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkpIHsKLSAgICAgICAgaWYgKFJlbmRlclZp
ZXcqIHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKKyAgICAgICAgaWYgKGF1dG8q
IHJlbmRlclZpZXcgPSB0aGlzLT5yZW5kZXJWaWV3KCkpIHsKICAgICAgICAgICAgIHVwZGF0ZVdp
ZGdldFBvc2l0aW9ucygpOwotICAgICAgICAgICAgaWYgKGF1dG8qIHNjcm9sbGFibGVBcmVhID0g
cmVuZGVyVmlldy0+bGF5ZXIoKS0+c2Nyb2xsYWJsZUFyZWEoKSkKLSAgICAgICAgICAgICAgICBz
Y3JvbGxhYmxlQXJlYS0+dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xsKCk7
CisgICAgICAgICAgICByZW5kZXJWaWV3LT5sYXllcigpLT51cGRhdGVMYXllclBvc2l0aW9uc0Fm
dGVyRG9jdW1lbnRTY3JvbGwoKTsKICAgICAgICAgfQogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDBkMzllYmVmOTU4N2NhZTk4NzlmMzU1YTZh
NjAyNzBmOGZjMThiZTEuLjZlYzQwNTY1MmQ4NDFkZTg0ZjlhMWM5Y2MzNjE1Y2QzMmUzNjAxZWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtOTI2LDkgKzky
NiwxNSBAQCBPcHRpb25TZXQ8UmVuZGVyTGF5ZXI6OlVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZz4g
UmVuZGVyTGF5ZXI6OmZsYWdzRm9yVXBkYXRlTGF5ZQogICAgIHJldHVybiBmbGFnczsKIH0KIAor
dm9pZCBSZW5kZXJMYXllcjo6d2lsbFVwZGF0ZUxheWVyUG9zaXRpb25zKCkKK3sKKyAgICByZW5k
ZXJlcigpLmRvY3VtZW50KCkubWFya2VycygpLmludmFsaWRhdGVSZWN0c0ZvckFsbE1hcmtlcnMo
KTsKK30KKwogdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclN0eWxl
Q2hhbmdlKCkKIHsKLSAgICB1cGRhdGVMYXllclBvc2l0aW9ucyhudWxscHRyLCBmbGFnc0ZvclVw
ZGF0ZUxheWVyUG9zaXRpb25zKCp0aGlzKSk7CisgICAgd2lsbFVwZGF0ZUxheWVyUG9zaXRpb25z
KCk7CisgICAgcmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnMobnVsbHB0ciwgZmxhZ3NGb3JV
cGRhdGVMYXllclBvc2l0aW9ucygqdGhpcykpOwogfQogCiB2b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVMYXllclBvc2l0aW9uc0FmdGVyTGF5b3V0KGJvb2wgaXNSZWxheW91dGluZ1N1YnRyZWUsIGJv
b2wgZGlkRnVsbFJlcGFpbnQpCkBAIC05NDUsMTQgKzk1MSwxNiBAQCB2b2lkIFJlbmRlckxheWVy
Ojp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyTGF5b3V0KGJvb2wgaXNSZWxheW91dGluZ1N1YnRy
ZWUsIGJvbwogICAgIH07CiAKICAgICBMT0coQ29tcG9zaXRpbmcsICJSZW5kZXJMYXllciAlcCB1
cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyTGF5b3V0IiwgdGhpcyk7CisgICAgd2lsbFVwZGF0ZUxh
eWVyUG9zaXRpb25zKCk7CisKICAgICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChVc2VU
cmFuc2Zvcm1zKTsKICAgICBpZiAoIWlzUmVuZGVyVmlld0xheWVyKCkpCiAgICAgICAgIGdlb21l
dHJ5TWFwLnB1c2hNYXBwaW5nc1RvQW5jZXN0b3IocGFyZW50KCksIG51bGxwdHIpOwogCi0gICAg
dXBkYXRlTGF5ZXJQb3NpdGlvbnMoJmdlb21ldHJ5TWFwLCB1cGRhdGVMYXllclBvc2l0aW9uRmxh
Z3MoaXNSZWxheW91dGluZ1N1YnRyZWUsIGRpZEZ1bGxSZXBhaW50KSk7CisgICAgcmVjdXJzaXZl
VXBkYXRlTGF5ZXJQb3NpdGlvbnMoJmdlb21ldHJ5TWFwLCB1cGRhdGVMYXllclBvc2l0aW9uRmxh
Z3MoaXNSZWxheW91dGluZ1N1YnRyZWUsIGRpZEZ1bGxSZXBhaW50KSk7CiB9CiAKLXZvaWQgUmVu
ZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRy
eU1hcCwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZz4gZmxhZ3MpCit2b2lkIFJl
bmRlckxheWVyOjpyZWN1cnNpdmVVcGRhdGVMYXllclBvc2l0aW9ucyhSZW5kZXJHZW9tZXRyeU1h
cCogZ2VvbWV0cnlNYXAsIE9wdGlvblNldDxVcGRhdGVMYXllclBvc2l0aW9uc0ZsYWc+IGZsYWdz
KQogewogICAgIHVwZGF0ZUxheWVyUG9zaXRpb24oJmZsYWdzKTsKICAgICBpZiAobV9zY3JvbGxh
YmxlQXJlYSkKQEAgLTEwNTAsNyArMTA1OCw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxh
eWVyUG9zaXRpb25zKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1hcCwgT3B0aW9uU2V0CiAg
ICAgICAgIGZsYWdzLmFkZChTZWVuQ29tcG9zaXRlZFNjcm9sbGluZ0xheWVyKTsKIAogICAgIGZv
ciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGls
ZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAgY2hpbGQtPnVwZGF0ZUxheWVyUG9zaXRpb25zKGdl
b21ldHJ5TWFwLCBmbGFncyk7CisgICAgICAgIGNoaWxkLT5yZWN1cnNpdmVVcGRhdGVMYXllclBv
c2l0aW9ucyhnZW9tZXRyeU1hcCwgZmxhZ3MpOwogCiAgICAgaWYgKG1fc2Nyb2xsYWJsZUFyZWEp
CiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPnVwZGF0ZU1hcnF1ZWVQb3NpdGlvbigpOwpAQCAt
MTA2OCw4ICsxMDc2LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnMo
UmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBPcHRpb25TZXQKIAogICAgIGlmIChnZW9t
ZXRyeU1hcCkKICAgICAgICAgZ2VvbWV0cnlNYXAtPnBvcE1hcHBpbmdzVG9BbmNlc3RvcihwYXJl
bnQoKSk7Ci0KLSAgICByZW5kZXJlcigpLmRvY3VtZW50KCkubWFya2VycygpLmludmFsaWRhdGVS
ZWN0c0ZvckFsbE1hcmtlcnMoKTsKIH0KIAogTGF5b3V0UmVjdCBSZW5kZXJMYXllcjo6cmVwYWlu
dFJlY3RJbmNsdWRpbmdOb25Db21wb3NpdGluZ0Rlc2NlbmRhbnRzKCkgY29uc3QKQEAgLTExNTIs
NyArMTE1OCwzMSBAQCB2b2lkIFJlbmRlckxheWVyOjpjbGVhclJlcGFpbnRSZWN0cygpCiAgICAg
bV9yZXBhaW50UmVjdHNWYWxpZCA9IGZhbHNlOwogfQogCi12b2lkIFJlbmRlckxheWVyOjp1cGRh
dGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFwKiBnZW9tZXRyeU1h
cCwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGxGbGFnPiBmbGFncykK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9s
bCgpCit7CisgICAgUmVuZGVyR2VvbWV0cnlNYXAgZ2VvbWV0cnlNYXAoVXNlVHJhbnNmb3Jtcyk7
CisgICAgaWYgKCFpc1JlbmRlclZpZXdMYXllcigpKQorICAgICAgICBnZW9tZXRyeU1hcC5wdXNo
TWFwcGluZ3NUb0FuY2VzdG9yKHBhcmVudCgpLCBudWxscHRyKTsKKworICAgIHdpbGxVcGRhdGVM
YXllclBvc2l0aW9ucygpOworCisgICAgLy8gRklYTUU6IHdoeSBpcyBpdCBPSyB0byBub3QgY2hl
Y2sgdGhlIGFuY2VzdG9ycyBvZiB0aGlzIGxheWVyIGluIG9yZGVyIHRvCisgICAgLy8gaW5pdGlh
bGl6ZSB0aGUgSGFzU2VlblZpZXdwb3J0Q29uc3RyYWluZWRBbmNlc3RvciBhbmQgSGFzU2VlbkFu
Y2VzdG9yV2l0aE92ZXJmbG93Q2xpcCBmbGFncz8KKyAgICByZWN1cnNpdmVVcGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyU2Nyb2xsKCZnZW9tZXRyeU1hcCwgUmVuZGVyTGF5ZXI6OklzT3ZlcmZsb3dT
Y3JvbGwpOworfQorCit2b2lkIFJlbmRlckxheWVyOjp1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVy
RG9jdW1lbnRTY3JvbGwoKQoreworICAgIEFTU0VSVChpc1JlbmRlclZpZXdMYXllcigpKTsKKyAg
ICBMT0coU2Nyb2xsaW5nLCAiUmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJE
b2N1bWVudFNjcm9sbCIpOworCisgICAgd2lsbFVwZGF0ZUxheWVyUG9zaXRpb25zKCk7CisKKyAg
ICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChVc2VUcmFuc2Zvcm1zKTsKKyAgICByZWN1
cnNpdmVVcGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKCZnZW9tZXRyeU1hcCk7Cit9CisK
K3ZvaWQgUmVuZGVyTGF5ZXI6OnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3Jv
bGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdlb21ldHJ5TWFwLCBPcHRpb25TZXQ8VXBkYXRlTGF5ZXJQ
b3NpdGlvbnNBZnRlclNjcm9sbEZsYWc+IGZsYWdzKQogewogICAgIC8vIEZJWE1FOiBUaGlzIHNo
b3VsZG4ndCBiZSBuZWVkZWQsIGJ1dCB0aGVyZSBhcmUgc29tZSBjb3JuZXIgY2FzZXMgd2hlcmUK
ICAgICAvLyB0aGVzZSBmbGFncyBhcmUgc3RpbGwgZGlydHkuIFVwZGF0ZSBzbyB0aGF0IHRoZSBj
aGVjayBiZWxvdyBpcyB2YWxpZC4KQEAgLTExOTgsNyArMTIyOCw3IEBAIHZvaWQgUmVuZGVyTGF5
ZXI6OnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoUmVuZGVyR2VvbWV0cnlNYXAqIGdl
b21ldHJ5TWFwCiAgICAgfQogICAgIAogICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmly
c3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkKLSAgICAgICAg
Y2hpbGQtPnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoZ2VvbWV0cnlNYXAsIGZsYWdz
KTsKKyAgICAgICAgY2hpbGQtPnJlY3Vyc2l2ZVVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3Jv
bGwoZ2VvbWV0cnlNYXAsIGZsYWdzKTsKIAogICAgIC8vIFdlIGRvbid0IHVwZGF0ZSBvdXIgcmVm
bGVjdGlvbiBhcyBzY3JvbGxpbmcgaXMgYSB0cmFuc2xhdGlvbiB3aGljaCBkb2VzIG5vdCBjaGFu
Z2UgdGhlIHNpemUoKQogICAgIC8vIG9mIGFuIG9iamVjdCwgdGh1cyBSZW5kZXJSZXBsaWNhIHdp
bGwgc3RpbGwgcmVwYWludCBpdHNlbGYgcHJvcGVybHkgYXMgdGhlIGxheWVyIHBvc2l0aW9uIHdh
cwpAQCAtMTIwOSw4ICsxMjM5LDYgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3Np
dGlvbnNBZnRlclNjcm9sbChSZW5kZXJHZW9tZXRyeU1hcCogZ2VvbWV0cnlNYXAKIAogICAgIGlm
IChzaG91bGRQdXNoQW5kUG9wTWFwcGluZ3MpCiAgICAgICAgIGdlb21ldHJ5TWFwLT5wb3BNYXBw
aW5nc1RvQW5jZXN0b3IocGFyZW50KCkpOwotCi0gICAgcmVuZGVyZXIoKS5kb2N1bWVudCgpLm1h
cmtlcnMoKS5pbnZhbGlkYXRlUmVjdHNGb3JBbGxNYXJrZXJzKCk7CiB9CiAKICNpZiBFTkFCTEUo
Q1NTX0NPTVBPU0lUSU5HKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAppbmRl
eCA4ZWJkMDc4ZjdhNjkzZTM2ZjIzMWU0NGNjM2NhZjFmNTIyMTZmMmIwLi4yYjA0NTFhZWNiNjEw
OWIwYTJkYzhlNGI4NWE3MDMyYzQyOTIzZWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuaApAQCAtNDk2LDYgKzQ5Niw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdXBkYXRl
TGF5ZXJQb3NpdGlvbnNBZnRlclN0eWxlQ2hhbmdlKCk7CiAgICAgdm9pZCB1cGRhdGVMYXllclBv
c2l0aW9uc0FmdGVyTGF5b3V0KGJvb2wgaXNSZWxheW91dGluZ1N1YnRyZWUsIGJvb2wgZGlkRnVs
bFJlcGFpbnQpOworICAgIHZvaWQgdXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlck92ZXJmbG93U2Ny
b2xsKCk7CisgICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyRG9jdW1lbnRTY3JvbGwo
KTsKIAogICAgIGJvb2wgaGFzQ29tcG9zaXRlZExheWVySW5FbmNsb3NpbmdQYWdpbmF0aW9uQ2hh
aW4oKSBjb25zdDsKICAgICBlbnVtIFBhZ2luYXRpb25JbmNsdXNpb25Nb2RlIHsgRXhjbHVkZUNv
bXBvc2l0ZWRQYWdpbmF0ZWRMYXllcnMsIEluY2x1ZGVDb21wb3NpdGVkUGFnaW5hdGVkTGF5ZXJz
IH07CkBAIC05MzUsNiArOTM3LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgdXBkYXRlU2VsZlBh
aW50aW5nTGF5ZXIoKTsKIAorICAgIHZvaWQgd2lsbFVwZGF0ZUxheWVyUG9zaXRpb25zKCk7CisK
ICAgICBlbnVtIFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZyB7CiAgICAgICAgIENoZWNrRm9yUmVw
YWludCAgICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLAogICAgICAgICBOZWVkc0Z1bGxSZXBh
aW50SW5CYWNraW5nICAgICAgICAgICA9IDEgPDwgMSwKQEAgLTk1MCw3ICs5NTQsNyBAQCBwcml2
YXRlOgogICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGUgcG9zaXRpb24gY2hhbmdlZC4KICAgICBi
b29sIHVwZGF0ZUxheWVyUG9zaXRpb24oT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zRmxh
Zz4qID0gbnVsbHB0cik7CiAKLSAgICB2b2lkIHVwZGF0ZUxheWVyUG9zaXRpb25zKFJlbmRlckdl
b21ldHJ5TWFwKiwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zRmxhZz4pOworICAgIHZv
aWQgcmVjdXJzaXZlVXBkYXRlTGF5ZXJQb3NpdGlvbnMoUmVuZGVyR2VvbWV0cnlNYXAqLCBPcHRp
b25TZXQ8VXBkYXRlTGF5ZXJQb3NpdGlvbnNGbGFnPik7CiAKICAgICBlbnVtIFVwZGF0ZUxheWVy
UG9zaXRpb25zQWZ0ZXJTY3JvbGxGbGFnIHsKICAgICAgICAgSXNPdmVyZmxvd1Njcm9sbCAgICAg
ICAgICAgICAgICAgICAgICAgID0gMSA8PCAwLApAQCAtOTU4LDcgKzk2Miw3IEBAIHByaXZhdGU6
CiAgICAgICAgIEhhc1NlZW5BbmNlc3RvcldpdGhPdmVyZmxvd0NsaXAgICAgICAgICA9IDEgPDwg
MiwKICAgICAgICAgSGFzQ2hhbmdlZEFuY2VzdG9yICAgICAgICAgICAgICAgICAgICAgID0gMSA8
PCAzLAogICAgIH07Ci0gICAgdm9pZCB1cGRhdGVMYXllclBvc2l0aW9uc0FmdGVyU2Nyb2xsKFJl
bmRlckdlb21ldHJ5TWFwKiwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3Jv
bGxGbGFnPiA9IHsgfSk7CisgICAgdm9pZCByZWN1cnNpdmVVcGRhdGVMYXllclBvc2l0aW9uc0Fm
dGVyU2Nyb2xsKFJlbmRlckdlb21ldHJ5TWFwKiwgT3B0aW9uU2V0PFVwZGF0ZUxheWVyUG9zaXRp
b25zQWZ0ZXJTY3JvbGxGbGFnPiA9IHsgfSk7CiAKICAgICBSZW5kZXJMYXllciogZW5jbG9zaW5n
UGFnaW5hdGlvbkxheWVySW5TdWJ0cmVlKGNvbnN0IFJlbmRlckxheWVyKiByb290TGF5ZXIsIFBh
Z2luYXRpb25JbmNsdXNpb25Nb2RlKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGE1ODA4Zjdm
OGNjMTdjMjYyNDlhNzI1MWUyMDk5MzVmODM1NTIwYTUuLjRkN2UxNjMwNzMxZmIwMmQ3MzAwMjNj
MTM3MGMwNmFhMGZhYmU2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTMzNCw3ICszMzQsNyBAQCB2b2lk
IFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbFRvKGNvbnN0IFNjcm9sbFBvc2l0aW9u
JiBwb3NpdGlvbikKICAgICAvLyBXZSBkb24ndCB1cGRhdGUgY29tcG9zaXRpbmcgbGF5ZXJzLCBi
ZWNhdXNlIHdlIG5lZWQgdG8gZG8gYSBkZWVwIHVwZGF0ZSBmcm9tIHRoZSBjb21wb3NpdGluZyBh
bmNlc3Rvci4KICAgICBpZiAoIXZpZXcuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzSW5S
ZW5kZXJUcmVlTGF5b3V0KCkpIHsKICAgICAgICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBv
ZiBsYXlvdXQsIHdlJ2xsIGp1c3QgdXBkYXRlIGxheWVycyBvbmNlIGxheW91dCBoYXMgZmluaXNo
ZWQuCi0gICAgICAgIHVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCgpOwor
ICAgICAgICBtX2xheWVyLnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCgp
OwogCiAgICAgICAgIHZpZXcuZnJhbWVWaWV3KCkuc2NoZWR1bGVVcGRhdGVXaWRnZXRQb3NpdGlv
bnMoKTsKIApAQCAtMTgxOCwyNyArMTgxOCw2IEBAIHZvaWQgUmVuZGVyTGF5ZXJTY3JvbGxhYmxl
QXJlYTo6c2Nyb2xsQnlSZWN1cnNpdmVseShjb25zdCBJbnRTaXplJiBkZWx0YSwgU2Nyb2xsCiAg
ICAgfQogfQogCi12b2lkIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZUxheWVyUG9z
aXRpb25zQWZ0ZXJEb2N1bWVudFNjcm9sbCgpCi17Ci0gICAgQVNTRVJUKCZtX2xheWVyID09IG1f
bGF5ZXIucmVuZGVyZXIoKS52aWV3KCkubGF5ZXIoKSk7Ci0KLSAgICBMT0coU2Nyb2xsaW5nLCAi
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlckRvY3Vt
ZW50U2Nyb2xsIik7Ci0KLSAgICBSZW5kZXJHZW9tZXRyeU1hcCBnZW9tZXRyeU1hcChVc2VUcmFu
c2Zvcm1zKTsKLSAgICBtX2xheWVyLnVwZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJTY3JvbGwoJmdl
b21ldHJ5TWFwKTsKLX0KLQotdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVM
YXllclBvc2l0aW9uc0FmdGVyT3ZlcmZsb3dTY3JvbGwoKQotewotICAgIFJlbmRlckdlb21ldHJ5
TWFwIGdlb21ldHJ5TWFwKFVzZVRyYW5zZm9ybXMpOwotICAgIGlmICgmbV9sYXllciAhPSBtX2xh
eWVyLnJlbmRlcmVyKCkudmlldygpLmxheWVyKCkpCi0gICAgICAgIGdlb21ldHJ5TWFwLnB1c2hN
YXBwaW5nc1RvQW5jZXN0b3IobV9sYXllci5wYXJlbnQoKSwgbnVsbHB0cik7Ci0KLSAgICAvLyBG
SVhNRTogd2h5IGlzIGl0IE9LIHRvIG5vdCBjaGVjayB0aGUgYW5jZXN0b3JzIG9mIHRoaXMgbGF5
ZXIgaW4gb3JkZXIgdG8KLSAgICAvLyBpbml0aWFsaXplIHRoZSBIYXNTZWVuVmlld3BvcnRDb25z
dHJhaW5lZEFuY2VzdG9yIGFuZCBIYXNTZWVuQW5jZXN0b3JXaXRoT3ZlcmZsb3dDbGlwIGZsYWdz
PwotICAgIG1fbGF5ZXIudXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCgmZ2VvbWV0cnlN
YXAsIFJlbmRlckxheWVyOjpJc092ZXJmbG93U2Nyb2xsKTsKLX0KLQogYm9vbCBSZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhOjptb2NrU2Nyb2xsYmFyc0NvbnRyb2xsZXJFbmFibGVkKCkgY29uc3QK
IHsKICAgICByZXR1cm4gbV9sYXllci5yZW5kZXJlcigpLnNldHRpbmdzKCkubW9ja1Njcm9sbGJh
cnNDb250cm9sbGVyRW5hYmxlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmgKaW5kZXggYjE3NTk0ZWYxMjBiN2YyYjQwY2M4
M2Q0MzljYTJjZjIyOTk4MmY1Yy4uYmYyN2VkYzE1MjY3NDQ4M2ZjNzk3NzdiNjlhOWVjMWJkZGEx
NmE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyU2Ny
b2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYS5oCkBAIC0yMzYsOSArMjM2LDYgQEAgcHVibGljOgogCiAgICAgSW50U2l6
ZSBzY3JvbGxiYXJPZmZzZXQoY29uc3QgU2Nyb2xsYmFyJikgY29uc3Q7CiAKLSAgICB2b2lkIHVw
ZGF0ZUxheWVyUG9zaXRpb25zQWZ0ZXJPdmVyZmxvd1Njcm9sbCgpOwotICAgIHZvaWQgdXBkYXRl
TGF5ZXJQb3NpdGlvbnNBZnRlckRvY3VtZW50U2Nyb2xsKCk7Ci0KICAgICBzdGQ6Om9wdGlvbmFs
PExheW91dFJlY3Q+IHVwZGF0ZVNjcm9sbFBvc2l0aW9uKGNvbnN0IFNjcm9sbFBvc2l0aW9uQ2hh
bmdlT3B0aW9ucyYsIGNvbnN0IExheW91dFJlY3QmIHJldmVhbFJlY3QsIGNvbnN0IExheW91dFJl
Y3QmIGxvY2FsRXhwb3NlUmVjdCk7CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>