<?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>234937</bug_id>
          
          <creation_ts>2022-01-06 13:59:27 -0800</creation_ts>
          <short_desc>Ensure that the scrolling thread always commits layer position changes to reduce scrolling stutters (v2)</short_desc>
          <delta_ts>2022-01-06 20:58:52 -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>Scrolling</component>
          <version>WebKit Nightly 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=234213</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>jamesr</cc>
    
    <cc>luiz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1828749</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-06 13:59:27 -0800</bug_when>
    <thetext>Ensure that the scrolling thread always commits layer position changes to reduce scrolling stutters (v2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828751</commentid>
    <comment_count>1</comment_count>
      <attachid>448536</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-06 14:10:59 -0800</bug_when>
    <thetext>Created attachment 448536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828754</commentid>
    <comment_count>2</comment_count>
      <attachid>448536</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2022-01-06 14:36:06 -0800</bug_when>
    <thetext>Comment on attachment 448536
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Refine the logic added in r286932, which tries ensure that the scrolling thread commits a

&quot;tries ensure&quot;

&gt; Source/WebCore/page/Page.h:617
&gt; +    void scheduledRenderingUpdate();

&quot;didSchedule&quot;? (initially I didn&apos;t notice the -ed and thought this was a parameterless version of the line above)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828767</commentid>
    <comment_count>3</comment_count>
      <attachid>448542</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2022-01-06 15:46:24 -0800</bug_when>
    <thetext>Created attachment 448542
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828813</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-06 20:57:50 -0800</bug_when>
    <thetext>Committed r287739 (245809@main): &lt;https://commits.webkit.org/245809@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 448542.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828814</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-06 20:58:52 -0800</bug_when>
    <thetext>&lt;rdar://problem/87233606&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448536</attachid>
            <date>2022-01-06 14:10:59 -0800</date>
            <delta_ts>2022-01-06 16:46:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234937-20220106141058.patch</filename>
            <type>text/plain</type>
            <size>20671</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M4NDQwODNjMDkzZDE5
NTNmMzdhN2Y3MDc3YjgwNmVkOGVkZmM5NC4uZGU3YmMxODEzMjcyMTE2MDVkZDRmYjc2MWFlYWQz
ZWQyMDY1ZjYyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDIyLTAxLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEVuc3VyZSB0aGF0
IHRoZSBzY3JvbGxpbmcgdGhyZWFkIGFsd2F5cyBjb21taXRzIGxheWVyIHBvc2l0aW9uIGNoYW5n
ZXMgdG8gcmVkdWNlIHNjcm9sbGluZyBzdHV0dGVycyAodjIpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ5MzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZpbmUgdGhlIGxvZ2ljIGFkZGVkIGluIHIy
ODY5MzIsIHdoaWNoIHRyaWVzIGVuc3VyZSB0aGF0IHRoZSBzY3JvbGxpbmcgdGhyZWFkIGNvbW1p
dHMgYQorICAgICAgICBsYXllciBwb3NpdGlvbiBjaGFuZ2UgaW4gY2FzZXMgd2hlcmUgdGhlIG1h
aW4gdGhyZWFkIGlzIGFsc28gaW4gdGhlIG1pZGRsZSBvZiBhIGNvbW1pdC4KKworICAgICAgICBU
aGUgY29uZGl0aW9uIHVzZWQgaW4gcjI4NjkzMiBmb3JjZWQgYSBsYXllciBwb3NpdGlvbiBjaGFu
Z2UgaWYgdGhlIHNjcm9sbCBwb3NpdGlvbiBoYWQKKyAgICAgICAgY2hhbmdlZCBmcm9tIHRoZSBz
Y3JvbGwgcG9zaXRpb24gYXQgdGhlIGxhc3QgZGlzcGxheSByZWZyZXNoLiBUcmFjaW5nIHNob3dz
IHRoYXQgdGhpcyBpc24ndAorICAgICAgICBhbHdheXMgY29ycmVjdCwgc28sIGluc3RlYWQsIHVz
ZSBUaHJlYWRlZFNjcm9sbGluZ1RyZWUncyAiZGVzeW5jaHJvbml6ZWQiIHN0YXRlIGFzIHRoZQor
ICAgICAgICBzaWduYWwgdG8gZm9yY2UgYSBwb3NpdGlvbiBjaGFuZ2UuIFdlIGNhbiB0aHVzIHJl
bW92ZSB0aGUgY29kZSByZWxhdGVkIHRvIG1haW50YWluaW5nCisgICAgICAgIHNjcm9sbFBvc2l0
aW9uQXRMYXN0RGlzcGxheVJlZnJlc2guCisKKyAgICAgICAgSG93ZXZlciwgdG93YXJkcyB0aGUg
ZW5kIG9mIGEgbW9tZW50dW0gc2Nyb2xsLCB3aGVuIHRoZXJlIGlzbid0IGFuIGV2ZW50IG9uIGV2
ZXJ5IGRpc3BsYXkKKyAgICAgICAgcmVmcmVzaCwgdGhpcyBjYXVzZWQgdG9vIG1hbnkgZm9yY2Vk
IGNvbW1pdHMuIFNvIG1ha2UgdHdvIGNoYW5nZXMgdG8gcmVkdWNlIHRoZSBmcmVxdWVuY3kgb2YK
KyAgICAgICAgZ29pbmcgaW50byB0aGUgZGVzeW5jaHJvbml6ZWQgc3RhdGUgaGVyZToKKyAgICAg
ICAgCisgICAgICAgIDEuIE5vdCBldmVyeSBkaXNwbGF5IHJlZnJlc2ggdHJpZ2dlcnMgYSByZW5k
ZXJpbmcgdXBkYXRlLiBTbyB0ZWxsIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSwgdmlhCisgICAgICAg
ICAgIFJlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlciwgUGFnZSBhbmQgU2Nyb2xsaW5nQ29vcmRpbmF0
b3JNYWMgaWYgYSByZW5kZXJpbmcgdXBkYXRlIHdhcyBzY2hlZHVsZWQuCisgICAgICAgICAgIFRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgp
IHVzZXMgdGhpcyBrbm93bGVkZ2UgdG8gYXZvaWQKKyAgICAgICAgICAgc2NoZWR1bGluZyB0aGUg
ZGVsYXllZCByZW5kZXJpbmcgdXBkYXRlIGRldGVjdGlvbiB0aW1lci4KKworICAgICAgICAyLiBO
b3QgZXZlcnkgcmVuZGVyaW5nIHVwZGF0ZSByZXN1bHRzIGluIGEgQ0EgY29tbWl0LCB5ZXQgdGhl
IGNvZGUgYXNzdW1lZCB0aGlzLiBGaXggYnkgaGF2aW5nCisgICAgICAgICAgIFNjcm9sbGluZ1Ry
ZWVNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkgY2hlY2sgdG8gc2VlIGlmIGEgQ0Eg
dHJhbnNhY3Rpb24gaXMgYWN0aXZlLgorICAgICAgICAgICBUaGlzIHN0b3BzIHdhaXRGb3JSZW5k
ZXJpbmdVcGRhdGVDb21wbGV0aW9uT3JUaW1lb3V0KCkgd2FpdGluZyBmb3IgYSBzaWduYWwgdGhh
dCBuZXZlcgorICAgICAgICAgICBjb21lcyBhbmQgdGh1cyB0aW1pbmcgb3V0LgorCisgICAgICAg
ICogcGFnZS9QYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnNjaGVkdWxlZFJlbmRl
cmluZ1VwZGF0ZSk6CisgICAgICAgICogcGFnZS9QYWdlLmg6CisgICAgICAgICogcGFnZS9SZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyaW5nVXBk
YXRlU2NoZWR1bGVyOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ0Nvb3JkaW5hdG9yOjpzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGlu
Z1RyZWU6OmlzU2Nyb2xsaW5nVHJlZU1hYyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlOjpXVEZfUkVRVUlSRVNfTE9DSyk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGU6OnVwZGF0ZVNjcm9sbFBvc2l0aW9uQXRMYXN0RGlzcGxheVJl
ZnJlc2gpOiBEZWxldGVkLgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxp
bmdUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6c2No
ZWR1bGVkUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlRo
cmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Ny
b2xsaW5nVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6
aXNTY3JvbGxpbmdTeW5jaHJvbml6ZWRXaXRoTWFpblRocmVhZCk6CisgICAgICAgIChXZWJDb3Jl
OjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpZENvbXBsZXRlUGxhdGZvcm1SZW5kZXJpbmdVcGRh
dGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpz
dG9yZVNjcm9sbFBvc2l0aW9uc0F0TGFzdERpc3BsYXlSZWZyZXNoKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6V1RGX0dVQVJERURfQllfTE9DSyk6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmg6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OnNjaGVkdWxlZFJlbmRlcmlu
Z1VwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6ZGlk
Q29tcGxldGVQbGF0Zm9ybVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjpyZXBvc2l0aW9uU2Ny
b2xsaW5nTGF5ZXJzKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLm1t
OgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUp
OgorICAgICAgICAoU2Nyb2xsaW5nVHJlZU1hYzo6ZGlkQ29tcGxldGVQbGF0Zm9ybVJlbmRlcmlu
Z1VwZGF0ZSk6CisKIDIwMjItMDEtMDQgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgog
CiAgICAgICAgIFtMRkNdW0lGQ10gZmFzdC90ZXh0L2NvbWJpbmluZy1tYXJrLXBhaW50Lmh0bWwg
aXMgZmFpbGluZyAoY29tcGxleCB0ZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9QYWdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKaW5kZXggM2ZiMmI2N2Nm
MmI1NDlkMjRhODM3OWY4MTg0MjYyOTM5OWIxYWZiMS4uMDI5MGY0YzcxMzU0MGFlMWRhYTJhYjFk
MmRkZjIyOTk4MTU5NTJiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3BwCkBAIC0xNTA1LDYgKzE1MDUsMTQg
QEAgdm9pZCBQYWdlOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZUludGVybmFsKCkKICAgICByZW5k
ZXJpbmdVcGRhdGVTY2hlZHVsZXIoKS5zY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCit2
b2lkIFBhZ2U6OnNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZSgpCit7CisjaWYgRU5BQkxFKEFTWU5D
X1NDUk9MTElORykKKyAgICBpZiAoYXV0byogc2Nyb2xsaW5nQ29vcmRpbmF0b3IgPSB0aGlzLT5z
Y3JvbGxpbmdDb29yZGluYXRvcigpKQorICAgICAgICBzY3JvbGxpbmdDb29yZGluYXRvci0+c2No
ZWR1bGVkUmVuZGVyaW5nVXBkYXRlKCk7CisjZW5kaWYKK30KKwogdm9pZCBQYWdlOjpjb21wdXRl
VW5mdWxmaWxsZWRSZW5kZXJpbmdTdGVwcyhPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlU3RlcD4g
cmVxdWVzdGVkU3RlcHMpCiB7CiAgICAgLy8gbV9yZW5kZXJpbmdVcGRhdGVSZW1haW5pbmdTdGVw
cyBvbmx5IGhhcyBtb3JlIHRoYW4gb25lIGVudHJ5IGZvciB0aGUgcmUtZW50cmFudCByZW5kZXJp
bmcgdXBkYXRlIHRyaWdnZXJlZCBieSB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkNmQ1YWUy
YzU2NjQ0ZTI1Mzg5OGEwNGEwZjljYjNjY2FhNTM2YWYyLi5hMDcyNDE5MmY4NDQyMjU0ZTViODYy
YWM4MjZmY2RmMmUzM2YwMzA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjE0LDYgKzYxNCw3IEBAIHB1
YmxpYzoKIAogICAgIC8vIFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNvb3JkaW5h
dGVzIHdpdGggZGlzcGxheSByZWZyZXNoLgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2NoZWR1
bGVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHJlcXVlc3Rl
ZFN0ZXBzKTsKKyAgICB2b2lkIHNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIC8vIFRy
aWdnZXIgYSByZW5kZXJpbmcgdXBkYXRlIGluIHRoZSBjdXJyZW50IHJ1bmxvb3AuIE9ubHkgdXNl
ZCBmb3IgdGVzdGluZy4KICAgICB2b2lkIHRyaWdnZXJSZW5kZXJpbmdVcGRhdGVGb3JUZXN0aW5n
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2No
ZWR1bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVy
LmNwcAppbmRleCA3N2U0ZmVmMGMxOTFiZmIxNGFjMzhjNDMzZmI4N2YxNDc5NDc0YzA3Li5jMDRi
NTI5NGFhMGM1YWY4OTU5ZGM5YjkwZTJkN2EzNzhkMDI0MjExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXIuY3BwCkBAIC04NCw2ICs4NCw4IEBA
IHZvaWQgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyOjpzY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgp
CiAgICAgICAgIExPR19XSVRIX1NUUkVBTShEaXNwbGF5TGluaywgc3RyZWFtIDw8ICJSZW5kZXJp
bmdVcGRhdGVTY2hlZHVsZXI6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlIGZvciBpbnRlcnZhbCAi
IDw8IG1fcGFnZS5wcmVmZXJyZWRSZW5kZXJpbmdVcGRhdGVJbnRlcnZhbCgpIDw8ICIgZmFsbGlu
ZyBiYWNrIHRvIHRpbWVyIik7CiAgICAgICAgIHN0YXJ0VGltZXIobV9wYWdlLnByZWZlcnJlZFJl
bmRlcmluZ1VwZGF0ZUludGVydmFsKCkpOwogICAgIH0KKyAgICAKKyAgICBtX3BhZ2Uuc2NoZWR1
bGVkUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKIGJvb2wgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVy
Ojppc1NjaGVkdWxlZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaAppbmRleCA2ZDhjODlkZjU4NzFhZGNmYzY1ZmQw
MDFjNmE1ODQ0YTAyNDQ5NjVlLi5hMTdmZDY1MWU0ZjgxYThmM2E1NjQwMzdiMjQ1MGFkNzU4NTcz
YmFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yLmgKQEAgLTEwMSw2ICsxMDEsNyBAQCBwdWJsaWM6CiAgICAgLy8gVHJhdmVy
c2VzIHRoZSBzY3JvbGxpbmcgdHJlZSwgc2V0dGluZyBsYXllciBwb3NpdGlvbnMgdG8gcmVwcmVz
ZW50IHRoZSBjdXJyZW50IHNjcm9sbGVkIHN0YXRlLgogICAgIHZpcnR1YWwgdm9pZCBhcHBseVNj
cm9sbGluZ1RyZWVMYXllclBvc2l0aW9ucygpIHsgfQogCisgICAgdmlydHVhbCB2b2lkIHNjaGVk
dWxlZFJlbmRlcmluZ1VwZGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxsU3RhcnRSZW5k
ZXJpbmdVcGRhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVSZW5kZXJpbmdV
cGRhdGUoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5n
VHJlZS5oCmluZGV4IDY0NjY0YWU4MmE2NWRjNzJkNDBjMDVkZDNkYmY0Y2M4YzMxMWFjMzkuLmJk
NDBlODBkNjFkNWU5NDc2YTM3MDc0YzcxYzIwMmQ2YmYzNmY5YzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTg3LDYgKzg3LDcgQEAgcHVi
bGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflNjcm9sbGluZ1RyZWUoKTsKIAogICAg
IHZpcnR1YWwgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsgcmV0dXJuIGZh
bHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsaW5nVHJlZU1hYygpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVtb3RlU2Nyb2xsaW5nVHJlZSgpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsaW5nVHJlZUlP
UygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTIyMCw2ICsyMjEsOCBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgeyB9CiAgICAgdmly
dHVhbCB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KIAorICAgIHZpcnR1YWwg
Ym9vbCBpc1Njcm9sbGluZ1N5bmNocm9uaXplZFdpdGhNYWluVGhyZWFkKCkgV1RGX1JFUVVJUkVT
X0xPQ0sobV90cmVlTG9jaykgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdmlydHVhbCB2b2lkIHdp
bGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyB9CiAg
ICAgdmlydHVhbCB2b2lkIHdhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5UaHJlYWQoY29u
c3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5k
ZXggNGQ3OTllZDU5ODcwZTQ1MDIwM2JjOTQ2MTQ1MDA0YmZmNDFjZTIxMC4uNGQ3YzUwZmI2YzE3
MTcxOWFiODQzYWU5NjA5NGIwYjMzMWI1YTYxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApA
QCAtMzAzLDExICszMDMsNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNjcm9sbAogICAgIHNjcm9sbGlu
Z1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywgYWN0aW9uKTsKIH0KIAot
dm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BdExh
c3REaXNwbGF5UmVmcmVzaCgpCi17Ci0gICAgbV9zY3JvbGxQb3NpdGlvbkF0TGFzdERpc3BsYXlS
ZWZyZXNoID0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb247Ci19Ci0KIGJvb2wgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OnNjcm9sbFBvc2l0aW9uQW5kTGF5b3V0Vmlld3BvcnRNYXRjaChjb25z
dCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+KQogewogICAg
IHJldHVybiBwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2Rl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5n
Tm9kZS5oCmluZGV4IGVlMjI5ZmUxNTQwN2UwYjdiNGNjODc1OTY5YjcxOWEzZGFmNTYxNGUuLmI5
ZjU0MzA3MDE2ZTIwOGQ0YTZjNWYwYjNlMTMxZDk5NzVkOGU2NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGUuaApAQCAtMTQxLDkgKzE0MSw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBy
ZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHJlcG9zaXRp
b25SZWxhdGVkTGF5ZXJzKCkgeyB9Ci0gICAgCi0gICAgdm9pZCB1cGRhdGVTY3JvbGxQb3NpdGlv
bkF0TGFzdERpc3BsYXlSZWZyZXNoKCk7Ci0gICAgc3RkOjpvcHRpb25hbDxGbG9hdFBvaW50PiBz
Y3JvbGxQb3NpdGlvbkF0TGFzdERpc3BsYXlSZWZyZXNoKCkgeyByZXR1cm4gbV9zY3JvbGxQb3Np
dGlvbkF0TGFzdERpc3BsYXlSZWZyZXNoOyB9OwogCiAgICAgdm9pZCBhcHBseUxheWVyUG9zaXRp
b25zKCkgb3ZlcnJpZGU7CiAKQEAgLTE3Nyw3ICsxNzQsNiBAQCBwcml2YXRlOgogICAgIHN0ZDo6
b3B0aW9uYWw8dW5zaWduZWQ+IG1fY3VycmVudEhvcml6b250YWxTbmFwUG9pbnRJbmRleDsKICAg
ICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQb2ludEluZGV4
OwogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVhUGFyYW1ldGVy
czsKLSAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fc2Nyb2xsUG9zaXRpb25BdExhc3RE
aXNwbGF5UmVmcmVzaDsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAgICBPcHRpb25T
ZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+IG1fc3luY2hyb25vdXNTY3JvbGxpbmdSZWFz
b25zOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9U
aHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
VGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA1YzhlNmI2NWI0NGEzNzY0ZWRlZThlZmI5
YzkzODhmZWM3MDcyMTcwLi45NmY2MTE3NTRkZDI5ZWZiYTgxNWYxNTkyYjBmNzM0NDI4MWYwNzQy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9s
bGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVk
U2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTMzNCwxMCArMzM0LDIxIEBAIGJvb2wgVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlOjpzY3JvbGxpbmdUaHJlYWRJc0FjdGl2ZSgpCiAgICAgcmV0dXJuIGhhc1Byb2Nl
c3NlZFdoZWVsRXZlbnRzUmVjZW50bHkoKSB8fCBoYXNOb2RlV2l0aEFjdGl2ZVNjcm9sbEFuaW1h
dGlvbnMoKTsKIH0KIAordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnNjaGVkdWxlZFJlbmRl
cmluZ1VwZGF0ZSgpCit7CisgICAgTG9ja2VyIGxvY2tlciB7IG1fdHJlZUxvY2sgfTsKKyAgICBt
X3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxlZCA9IHRydWU7Cit9CisKIHZvaWQgVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKKyAgICB7CisgICAgICAgIExvY2tlciBsb2NrZXIgeyBtX3RyZWVM
b2NrIH07CisgICAgICAgIG1fcmVuZGVyaW5nVXBkYXRlV2FzU2NoZWR1bGVkID0gZmFsc2U7Cisg
ICAgfQorCiAgICAgaWYgKCFzY3JvbGxpbmdUaHJlYWRJc0FjdGl2ZSgpKQogICAgICAgICByZXR1
cm47CiAKQEAgLTQyOSwxNCArNDQwLDYgQEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6Ondh
aXRGb3JSZW5kZXJpbmdVcGRhdGVDb21wbGV0aW9uT3JUaW1lb3V0KCkKIH0KIAogdm9pZCBUaHJl
YWRlZFNjcm9sbGluZ1RyZWU6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAgICAv
LyBtYWNPUyBuZWVkcyB0byB3YWl0IGZvciB0aGUgQ0EgY29tbWl0ICh0aGUgInBsYXRmb3JtIHJl
bmRlcmluZyB1cGRhdGUiKS4KLSNpZiAhUExBVEZPUk0oTUFDKQotICAgIHJlbmRlcmluZ1VwZGF0
ZUNvbXBsZXRlKCk7Ci0jZW5kaWYKLX0KLQotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRp
ZENvbXBsZXRlUGxhdGZvcm1SZW5kZXJpbmdVcGRhdGUoKQogewogICAgIHJlbmRlcmluZ1VwZGF0
ZUNvbXBsZXRlKCk7CiB9CkBAIC00OTAsOSArNDkzLDExIEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCkKIAogICAgIHN3aXRj
aCAobV9zdGF0ZSkgewogICAgIGNhc2UgU3luY2hyb25pemF0aW9uU3RhdGU6OklkbGU6IHsKLSAg
ICAgICAgbV9zdGF0ZSA9IFN5bmNocm9uaXphdGlvblN0YXRlOjpXYWl0aW5nRm9yUmVuZGVyaW5n
VXBkYXRlOwotICAgICAgICBjb25zdGV4cHIgYXV0byBtYXhTdGFydFJlbmRlcmluZ1VwZGF0ZURl
bGF5ID0gMV9tczsKLSAgICAgICAgc2NoZWR1bGVEZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0
aW9uVGltZXIobWF4U3RhcnRSZW5kZXJpbmdVcGRhdGVEZWxheSk7CisgICAgICAgIGlmIChtX3Jl
bmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxlZCkgeworICAgICAgICAgICAgbV9zdGF0ZSA9IFN5bmNo
cm9uaXphdGlvblN0YXRlOjpXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlOworICAgICAgICAgICAg
Y29uc3RleHByIGF1dG8gbWF4U3RhcnRSZW5kZXJpbmdVcGRhdGVEZWxheSA9IDFfbXM7CisgICAg
ICAgICAgICBzY2hlZHVsZURlbGF5ZWRSZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcihtYXhT
dGFydFJlbmRlcmluZ1VwZGF0ZURlbGF5KTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAg
ICB9CiAgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6V2FpdGluZ0ZvclJlbmRlcmluZ1Vw
ZGF0ZToKQEAgLTUwMCw4ICs1MDUsNiBAQCB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlz
cGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpCiAgICAgY2FzZSBTeW5jaHJvbml6YXRp
b25TdGF0ZTo6RGVzeW5jaHJvbml6ZWQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKLSAg
ICBzdG9yZVNjcm9sbFBvc2l0aW9uc0F0TGFzdERpc3BsYXlSZWZyZXNoKCk7CiB9CiAKIHZvaWQg
VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURpc3BsYXlJ
RCBkaXNwbGF5SUQpCkBAIC01MjcsMTIgKzUzMCw5IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdU
cmVlOjpyZW1vdmVQZW5kaW5nU2Nyb2xsQW5pbWF0aW9uRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQK
ICAgICBtX25vZGVzV2l0aFBlbmRpbmdTY3JvbGxBbmltYXRpb25zLnJlbW92ZShub2RlSUQpOwog
fQogCi12b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6c3RvcmVTY3JvbGxQb3NpdGlvbnNBdExh
c3REaXNwbGF5UmVmcmVzaCgpCitib29sIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aXNTY3JvbGxp
bmdTeW5jaHJvbml6ZWRXaXRoTWFpblRocmVhZCgpCiB7Ci0gICAgLy8gSWRlYWxseSB0aGlzIHdv
dWxkIGJlIGEgdHJlZSB3YWxrIGZvciBldmVyeSBzY3JvbGxpbmcgbm9kZSwgYnV0IHNjcm9sbGlu
ZyB0cmVlcyBjYW4gZ2V0IGJpZyBzbyBmb3Igbm93IGp1c3QgZG8gdGhpcyBmb3IgdGhlIHJvb3Q7
Ci0gICAgLy8gU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlvblNj
cm9sbGluZ0xheWVycygpIHVzZXMgdGhlIHN0YXRlIHRvIGtub3cgd2hldGhlciBpdCBzaG91bGQg
Zm9yY2UgYSBjb21taXQuCi0gICAgaWYgKGF1dG8qIHJvb3ROb2RlID0gdGhpcy0+cm9vdE5vZGUo
KSkKLSAgICAgICAgcm9vdE5vZGUtPnVwZGF0ZVNjcm9sbFBvc2l0aW9uQXRMYXN0RGlzcGxheVJl
ZnJlc2goKTsKKyAgICByZXR1cm4gbV9zdGF0ZSAhPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVz
eW5jaHJvbml6ZWQ7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXgg
MmNhZWJlZGNjODRiMDZmMjI5YjNlNDBlMTJlOWU5MDhmNDg5MWYyNC4uMDRkOTFlMjdjNGMyZjIw
NjRlMWEwYTEwZTJjMzYzZjAwN2MxMTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKQEAgLTU4LDEwICs1OCw5IEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goUGxh
dGZvcm1EaXNwbGF5SUQpOwogCisgICAgdm9pZCBzY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGUoKTsK
ICAgICB2b2lkIHdpbGxTdGFydFJlbmRlcmluZ1VwZGF0ZSgpOwotICAgIHZvaWQgZGlkQ29tcGxl
dGVSZW5kZXJpbmdVcGRhdGUoKTsKLQotICAgIHZvaWQgZGlkQ29tcGxldGVQbGF0Zm9ybVJlbmRl
cmluZ1VwZGF0ZSgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0
ZSgpOwogCiAgICAgTG9jayYgdHJlZUxvY2soKSBXVEZfUkVUVVJOU19MT0NLKG1fdHJlZUxvY2sp
IHsgcmV0dXJuIG1fdHJlZUxvY2s7IH0KIApAQCAtODQsNiArODMsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgdm9pZCBjdXJyZW50U25hcFBvaW50SW5kaWNlc0RpZENoYW5nZShTY3JvbGxpbmdOb2RlSUQs
IHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IGhvcml6b250YWwsIHN0ZDo6b3B0aW9uYWw8dW5zaWdu
ZWQ+IHZlcnRpY2FsKSBvdmVycmlkZTsKICNlbmRpZgogCisgICAgdm9pZCByZW5kZXJpbmdVcGRh
dGVDb21wbGV0ZSgpOworCiAgICAgdm9pZCByZXBvcnRFeHBvc2VkVW5maWxsZWRBcmVhKE1vbm90
b25pY1RpbWUsIHVuc2lnbmVkIHVuZmlsbGVkQXJlYSkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBv
cnRTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbnNDaGFuZ2VkKE1vbm90b25pY1RpbWUsIE9wdGlv
blNldDxTeW5jaHJvbm91c1Njcm9sbGluZ1JlYXNvbj4pIG92ZXJyaWRlOwogCkBAIC05OCw3ICs5
OSw2IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRpc3BsYXlEaWRSZWZyZXNoT25TY3JvbGxpbmdU
aHJlYWQoKTsKICAgICB2b2lkIHdhaXRGb3JSZW5kZXJpbmdVcGRhdGVDb21wbGV0aW9uT3JUaW1l
b3V0KCkgV1RGX1JFUVVJUkVTX0xPQ0sobV90cmVlTG9jayk7Ci0gICAgdm9pZCByZW5kZXJpbmdV
cGRhdGVDb21wbGV0ZSgpOwogCiAgICAgYm9vbCBjYW5VcGRhdGVMYXllcnNPblNjcm9sbGluZ1Ro
cmVhZCgpIGNvbnN0IFdURl9SRVFVSVJFU19MT0NLKG1fdHJlZUxvY2spOwogCkBAIC0xMDcsNyAr
MTA3LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgaGFzTm9kZVdpdGhBbmltYXRlZFNjcm9sbENo
YW5nZWQoYm9vbCkgZmluYWw7CiAgICAgCi0gICAgdm9pZCBzdG9yZVNjcm9sbFBvc2l0aW9uc0F0
TGFzdERpc3BsYXlSZWZyZXNoKCkgV1RGX1JFUVVJUkVTX0xPQ0sobV90cmVlTG9jayk7CisgICAg
Ym9vbCBpc1Njcm9sbGluZ1N5bmNocm9uaXplZFdpdGhNYWluVGhyZWFkKCkgZmluYWwgV1RGX1JF
UVVJUkVTX0xPQ0sobV90cmVlTG9jayk7CiAKICAgICB2b2lkIHNlcnZpY2VTY3JvbGxBbmltYXRp
b25zKE1vbm90b25pY1RpbWUpIFdURl9SRVFVSVJFU19MT0NLKG1fdHJlZUxvY2spOwogCkBAIC0x
MzcsNiArMTM3LDcgQEAgcHJpdmF0ZToKICAgICBIYXNoTWFwPFNjcm9sbGluZ05vZGVJRCwgUmVx
dWVzdGVkU2Nyb2xsRGF0YT4gbV9ub2Rlc1dpdGhQZW5kaW5nU2Nyb2xsQW5pbWF0aW9ucyBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fdHJlZUxvY2spOwogICAgIGNvbnN0IGJvb2wgbV9zY3JvbGxBbmlt
YXRvckVuYWJsZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXNOb2Rlc1dpdGhTeW5jaHJvbm91
c1Njcm9sbGluZ1JlYXNvbnMgV1RGX0dVQVJERURfQllfTE9DSyhtX3RyZWVMb2NrKSB7IGZhbHNl
IH07CisgICAgYm9vbCBtX3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxlZCBXVEZfR1VBUkRFRF9C
WV9MT0NLKG1fdHJlZUxvY2spIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggNTY5M2FjZmVhN2JkZjRjOGQ4NTU1ZTFkMDVi
MzAyOTcxMDM3ZmYyNi4uNWZjMmE1MTJhNmI1MzJlN2RhYzlhNzJkYzFhZDIwM2I1ZGZhOWMxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nv
b3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHJvdGVjdGVkOgogcHJp
dmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgZmluYWw7CiAKKyAgICB2
b2lkIHNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZSgpIGZpbmFsOwogICAgIHZvaWQgd2lsbFN0YXJ0
UmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAgICAgdm9pZCBkaWRDb21wbGV0ZVJlbmRlcmluZ1Vw
ZGF0ZSgpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KaW5kZXggZDgxN2RlYjQwNjE0
NDY0OWEzYmI2ZTlmMzE5MmVkNWViYjkzMGYzOC4uMjYzNmUzNGI2NDlmNTI4MjU0ZWU1MzYyNzdm
ZTRkMDNlMTBmMzQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQpAQCAtMTIzLDYgKzEyMywx
MiBAQCB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpjb21taXRUcmVlU3RhdGVJZk5lZWRl
ZCgpCiAgICAgdXBkYXRlVGlsZWRTY3JvbGxpbmdJbmRpY2F0b3IoKTsKIH0KIAordm9pZCBTY3Jv
bGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVkUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBS
ZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBkb3du
Y2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CisgICAgdGhyZWFk
ZWRTY3JvbGxpbmdUcmVlLT5zY2hlZHVsZWRSZW5kZXJpbmdVcGRhdGUoKTsKK30KKwogdm9pZCBT
Y3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBkYXRlKCkKIHsKICAg
ICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9sbGluZ1RyZWUgPSBk
b3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSk7CkBAIC0xNTAs
NyArMTU2LDcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2lsbFN0YXJ0UGxhdGZv
cm1SZW5kZXJpbmdVcGRhdGUoKQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpkaWRD
b21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCkKIHsKLSAgICBkb3duY2FzdDxUaHJlYWRl
ZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSktPmRpZENvbXBsZXRlUGxhdGZvcm1SZW5k
ZXJpbmdVcGRhdGUoKTsKKyAgICBkb3duY2FzdDxTY3JvbGxpbmdUcmVlTWFjPihzY3JvbGxpbmdU
cmVlKCkpLT5kaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgUGxhdGZv
cm1DQUxheWVyQ29udGVudHNEZWxheWVkUmVsZWFzZXI6OnNpbmdsZXRvbigpLm1haW5UaHJlYWRD
b21taXREaWRFbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYy5tbQppbmRleCAxMzY4MmU2MjU2ZmI5NmMwNmI5MGUxYzMxYjM4OTBmMDQwNWYxMDk5Li5h
MzRlODQ4MDk4NGExYmQzZDdlYzI5NjgzZDg0ZWVmNGI4ODg3NWIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMTgyLDcgKzE4Miw3IEBAIHZvaWQg
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlvblNjcm9sbGluZ0xh
eWVycygpCiAgICAgICAgIC8vIFRoZSBtYWluIHRocmVhZCBtYXkgYWxyZWFkeSBoYXZlIHNldCB0
aGUgc2FtZSBsYXllciBwb3NpdGlvbiwgYnV0IGhlcmUgd2UgbmVlZCB0byB0cmlnZ2VyIGEgc2Ny
b2xsaW5nIHRocmVhZCBjb21taXQgdG8KICAgICAgICAgLy8gZW5zdXJlIHRoYXQgdGhlIHNjcm9s
bCBoYXBwZW5zIGV2ZW4gd2hlbiB0aGUgbWFpbiB0aHJlYWQgY29tbWl0IGlzIHRha2luZyBhIGxv
bmcgdGltZS4gU28gbWFrZSBzdXJlIHRoZSBsYXllciBwcm9wZXJ0eSBjaGFuZ2VzCiAgICAgICAg
IC8vIHdoZW4gdGhlcmUgaGFzIGJlZW4gYSBzY3JvbGwgcG9zaXRpb24gY2hhbmdlLgotICAgICAg
ICBpZiAoc2Nyb2xsUG9zaXRpb25BdExhc3REaXNwbGF5UmVmcmVzaCgpICYmIHNjcm9sbFBvc2l0
aW9uQXRMYXN0RGlzcGxheVJlZnJlc2goKS52YWx1ZSgpICE9IGN1cnJlbnRTY3JvbGxQb3NpdGlv
bigpKQorICAgICAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc1Njcm9sbGluZ1N5bmNocm9uaXpl
ZFdpdGhNYWluVGhyZWFkKCkpCiAgICAgICAgICAgICBsYXllci5wb3NpdGlvbiA9IENHUG9pbnRa
ZXJvOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21h
Yy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNTFiOTkyNTIxZjllMGQ3N2NlY2YwMmQ5NDhjMDU0
N2FjYmRiOWY4My4uMDg3OTcyNDc3OTcwNmI2ZWFiODg3ZDUyOTEyMTYwMjg4ZWE1ZjYwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJl
ZU1hYy5oCkBAIC0zNyw4ICszNywxMiBAQCBjbGFzcyBTY3JvbGxpbmdUcmVlTWFjIGZpbmFsIDog
cHVibGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxT
Y3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGluYXRvciYpOwogCisg
ICAgdm9pZCBkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCk7CisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGluZ0Nvb3JkaW5hdG9y
Jik7CisgICAgCisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVNYWMoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CiAKICAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNyZWF0ZVNjcm9sbGlu
Z1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQpIGZpbmFsOwogCkBA
IC02MSw2ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2NrTGF5ZXJzRm9ySGl0VGVzdGlu
ZygpIGZpbmFsIFdURl9BQ1FVSVJFU19MT0NLKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOwogICAgIHZv
aWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsIFdURl9SRUxFQVNFU19MT0NLKG1f
bGF5ZXJIaXRUZXN0TXV0ZXgpOwogCisgICAgdm9pZCBkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0
ZSgpIGZpbmFsOworCiAgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIHRoZSBDQUxheWVyL1BsYXRm
b3JtQ0FMYXllciB0cmVlLgogICAgIG11dGFibGUgTG9jayBtX2xheWVySGl0VGVzdE11dGV4Owog
ICAgIApAQCAtNjksNCArNzUsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfU0NST0xMSU5HX1RSRUUoV2ViQ29yZTo6U2Nyb2xs
aW5nVHJlZU1hYywgaXNTY3JvbGxpbmdUcmVlTWFjKCkpCisKICNlbmRpZiAvLyBFTkFCTEUoQVNZ
TkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0KaW5kZXgg
YTMxYjRiZGRhMWFhYzNkYmNkNzhiYWRlZWQ3NTMyNmU3N2NlYTVjMi4uMGFlZGQ5YjJiNGYyZjAx
ZTAyMjJiNmYxNmUxYzZiZTJiZTNiNWRlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0KQEAgLTI0Miw2ICsyNDIsMTgg
QEAgdm9pZCBTY3JvbGxpbmdUcmVlTWFjOjp1bmxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkKICAg
ICBtX2xheWVySGl0VGVzdE11dGV4LnVubG9jaygpOwogfQogCit2b2lkIFNjcm9sbGluZ1RyZWVN
YWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBib29sIGhhc0FjdGl2ZUNB
VHJhbnNhY3Rpb24gPSBbQ0FUcmFuc2FjdGlvbiBjdXJyZW50U3RhdGVdOworICAgIGlmICghaGFz
QWN0aXZlQ0FUcmFuc2FjdGlvbikKKyAgICAgICAgcmVuZGVyaW5nVXBkYXRlQ29tcGxldGUoKTsK
K30KKwordm9pZCBTY3JvbGxpbmdUcmVlTWFjOjpkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5n
VXBkYXRlKCkKK3sKKyAgICByZW5kZXJpbmdVcGRhdGVDb21wbGV0ZSgpOworfQorCiB2b2lkIFNj
cm9sbGluZ1RyZWVNYWM6OmFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgpCiB7CiAgICAgaWYg
KFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpCg==
</data>
<flag name="review"
          id="474411"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="474426"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448542</attachid>
            <date>2022-01-06 15:46:24 -0800</date>
            <delta_ts>2022-01-06 20:57:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234937-20220106154623.patch</filename>
            <type>text/plain</type>
            <size>20569</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2M4NDQwODNjMDkzZDE5
NTNmMzdhN2Y3MDc3YjgwNmVkOGVkZmM5NC4uNjcwNzk4MGVkNWM2MjQ2NjE0MzFjZmRiMDVjZjQz
ZjFhNDlhZTAwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY3IEBACisyMDIyLTAxLTA2ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIEVuc3VyZSB0aGF0
IHRoZSBzY3JvbGxpbmcgdGhyZWFkIGFsd2F5cyBjb21taXRzIGxheWVyIHBvc2l0aW9uIGNoYW5n
ZXMgdG8gcmVkdWNlIHNjcm9sbGluZyBzdHV0dGVycyAodjIpCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQ5MzcKKworICAgICAgICBSZXZpZXdlZCBi
eSBUaW0gSG9ydG9uLgorCisgICAgICAgIFJlZmluZSB0aGUgbG9naWMgYWRkZWQgaW4gcjI4Njkz
Miwgd2hpY2ggdHJpZXMgdG8gZW5zdXJlIHRoYXQgdGhlIHNjcm9sbGluZyB0aHJlYWQgY29tbWl0
cyBhCisgICAgICAgIGxheWVyIHBvc2l0aW9uIGNoYW5nZSBpbiBjYXNlcyB3aGVyZSB0aGUgbWFp
biB0aHJlYWQgaXMgYWxzbyBpbiB0aGUgbWlkZGxlIG9mIGEgY29tbWl0LgorCisgICAgICAgIFRo
ZSBjb25kaXRpb24gdXNlZCBpbiByMjg2OTMyIGZvcmNlZCBhIGxheWVyIHBvc2l0aW9uIGNoYW5n
ZSBpZiB0aGUgc2Nyb2xsIHBvc2l0aW9uIGhhZAorICAgICAgICBjaGFuZ2VkIGZyb20gdGhlIHNj
cm9sbCBwb3NpdGlvbiBhdCB0aGUgbGFzdCBkaXNwbGF5IHJlZnJlc2guIFRyYWNpbmcgc2hvd3Mg
dGhhdCB0aGlzIGlzbid0CisgICAgICAgIGFsd2F5cyBjb3JyZWN0LCBzbywgaW5zdGVhZCwgdXNl
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZSdzICJkZXN5bmNocm9uaXplZCIgc3RhdGUgYXMgdGhlCisg
ICAgICAgIHNpZ25hbCB0byBmb3JjZSBhIHBvc2l0aW9uIGNoYW5nZS4gV2UgY2FuIHRodXMgcmVt
b3ZlIHRoZSBjb2RlIHJlbGF0ZWQgdG8gbWFpbnRhaW5pbmcKKyAgICAgICAgc2Nyb2xsUG9zaXRp
b25BdExhc3REaXNwbGF5UmVmcmVzaC4KKworICAgICAgICBIb3dldmVyLCB0b3dhcmRzIHRoZSBl
bmQgb2YgYSBtb21lbnR1bSBzY3JvbGwsIHdoZW4gdGhlcmUgaXNuJ3QgYW4gZXZlbnQgb24gZXZl
cnkgZGlzcGxheQorICAgICAgICByZWZyZXNoLCB0aGlzIGNhdXNlZCB0b28gbWFueSBmb3JjZWQg
Y29tbWl0cy4gU28gbWFrZSB0d28gY2hhbmdlcyB0byByZWR1Y2UgdGhlIGZyZXF1ZW5jeSBvZgor
ICAgICAgICBnb2luZyBpbnRvIHRoZSBkZXN5bmNocm9uaXplZCBzdGF0ZSBoZXJlOgorICAgICAg
ICAKKyAgICAgICAgMS4gTm90IGV2ZXJ5IGRpc3BsYXkgcmVmcmVzaCB0cmlnZ2VycyBhIHJlbmRl
cmluZyB1cGRhdGUuIFNvIHRlbGwgVGhyZWFkZWRTY3JvbGxpbmdUcmVlLCB2aWEKKyAgICAgICAg
ICAgUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLCBQYWdlIGFuZCBTY3JvbGxpbmdDb29yZGluYXRv
ck1hYyBpZiBhIHJlbmRlcmluZyB1cGRhdGUgd2FzIHNjaGVkdWxlZC4KKyAgICAgICAgICAgVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVzaE9uU2Nyb2xsaW5nVGhyZWFkKCkg
dXNlcyB0aGlzIGtub3dsZWRnZSB0byBhdm9pZAorICAgICAgICAgICBzY2hlZHVsaW5nIHRoZSBk
ZWxheWVkIHJlbmRlcmluZyB1cGRhdGUgZGV0ZWN0aW9uIHRpbWVyLgorCisgICAgICAgIDIuIE5v
dCBldmVyeSByZW5kZXJpbmcgdXBkYXRlIHJlc3VsdHMgaW4gYSBDQSBjb21taXQsIHlldCB0aGUg
Y29kZSBhc3N1bWVkIHRoaXMuIEZpeCBieSBoYXZpbmcKKyAgICAgICAgICAgU2Nyb2xsaW5nVHJl
ZU1hYzo6ZGlkQ29tcGxldGVSZW5kZXJpbmdVcGRhdGUoKSBjaGVjayB0byBzZWUgaWYgYSBDQSB0
cmFuc2FjdGlvbiBpcyBhY3RpdmUuCisgICAgICAgICAgIFRoaXMgc3RvcHMgd2FpdEZvclJlbmRl
cmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKSB3YWl0aW5nIGZvciBhIHNpZ25hbCB0aGF0
IG5ldmVyCisgICAgICAgICAgIGNvbWVzIGFuZCB0aHVzIHRpbWluZyBvdXQuCisKKyAgICAgICAg
KiBwYWdlL1BhZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6c2NoZWR1bGVkUmVuZGVy
aW5nVXBkYXRlKToKKyAgICAgICAgKiBwYWdlL1BhZ2UuaDoKKyAgICAgICAgKiBwYWdlL1JlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXI6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBwYWdlL3Nj
cm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xs
aW5nQ29vcmRpbmF0b3I6OnNjaGVkdWxlZFJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5n
VHJlZTo6aXNTY3JvbGxpbmdUcmVlTWFjIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGluZ1RyZWU6OldURl9SRVFVSVJFU19MT0NLKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6dXBkYXRlU2Nyb2xsUG9zaXRpb25BdExhc3REaXNwbGF5UmVm
cmVzaCk6IERlbGV0ZWQuCisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaDoKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9UaHJlYWRlZFNjcm9sbGlu
Z1RyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpzY2hl
ZHVsZWRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxp
bmdUcmVlOjp3aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6VGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpc3BsYXlEaWRSZWZyZXNoT25TY3Jv
bGxpbmdUaHJlYWQpOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpp
c1Njcm9sbGluZ1N5bmNocm9uaXplZFdpdGhNYWluVGhyZWFkKToKKyAgICAgICAgKFdlYkNvcmU6
OlRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlkQ29tcGxldGVQbGF0Zm9ybVJlbmRlcmluZ1VwZGF0
ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OnN0
b3JlU2Nyb2xsUG9zaXRpb25zQXRMYXN0RGlzcGxheVJlZnJlc2gpOiBEZWxldGVkLgorICAgICAg
ICAqIHBhZ2Uvc2Nyb2xsaW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6VGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpXVEZfR1VBUkRFRF9CWV9MT0NLKToKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMuaDoKKyAgICAg
ICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW06CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6c2NoZWR1bGVkUmVuZGVyaW5n
VXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpkaWRD
b21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OnJlcG9zaXRpb25TY3Jv
bGxpbmdMYXllcnMpOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
TWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW06
CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSk6
CisgICAgICAgIChTY3JvbGxpbmdUcmVlTWFjOjpkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5n
VXBkYXRlKToKKwogMjAyMi0wMS0wNCAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0xGQ11bSUZDXSBmYXN0L3RleHQvY29tYmluaW5nLW1hcmstcGFpbnQuaHRtbCBp
cyBmYWlsaW5nIChjb21wbGV4IHRleHQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L1BhZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9QYWdlLmNwcAppbmRleCAzZmIyYjY3Y2Yy
YjU0OWQyNGE4Mzc5ZjgxODQyNjI5Mzk5YjFhZmIxLi45MjlmYWQ0NzQ1NGYzYWMwZDU2NDI3ZWVk
M2U2OTRiNDU2MzBhZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZS5jcHAKQEAgLTE1MDUsNiArMTUwNSwxNCBA
QCB2b2lkIFBhZ2U6OnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlSW50ZXJuYWwoKQogICAgIHJlbmRl
cmluZ1VwZGF0ZVNjaGVkdWxlcigpLnNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiB9CiAKK3Zv
aWQgUGFnZTo6ZGlkU2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKQoreworI2lmIEVOQUJMRShBU1lO
Q19TQ1JPTExJTkcpCisgICAgaWYgKGF1dG8qIHNjcm9sbGluZ0Nvb3JkaW5hdG9yID0gdGhpcy0+
c2Nyb2xsaW5nQ29vcmRpbmF0b3IoKSkKKyAgICAgICAgc2Nyb2xsaW5nQ29vcmRpbmF0b3ItPmRp
ZFNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CisjZW5kaWYKK30KKwogdm9pZCBQYWdlOjpjb21w
dXRlVW5mdWxmaWxsZWRSZW5kZXJpbmdTdGVwcyhPcHRpb25TZXQ8UmVuZGVyaW5nVXBkYXRlU3Rl
cD4gcmVxdWVzdGVkU3RlcHMpCiB7CiAgICAgLy8gbV9yZW5kZXJpbmdVcGRhdGVSZW1haW5pbmdT
dGVwcyBvbmx5IGhhcyBtb3JlIHRoYW4gb25lIGVudHJ5IGZvciB0aGUgcmUtZW50cmFudCByZW5k
ZXJpbmcgdXBkYXRlIHRyaWdnZXJlZCBieSB0ZXN0aW5nLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9QYWdlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaAppbmRleCBkNmQ1
YWUyYzU2NjQ0ZTI1Mzg5OGEwNGEwZjljYjNjY2FhNTM2YWYyLi4xYWM5MTYzNWVjMzljOGMwMDcw
OTViMDFmZTdhMzYzZjM5M2QwMDRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Bh
Z2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1BhZ2UuaApAQCAtNjE0LDYgKzYxNCw3IEBA
IHB1YmxpYzoKIAogICAgIC8vIFNjaGVkdWxlIGEgcmVuZGVyaW5nIHVwZGF0ZSB0aGF0IGNvb3Jk
aW5hdGVzIHdpdGggZGlzcGxheSByZWZyZXNoLgogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2No
ZWR1bGVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PFJlbmRlcmluZ1VwZGF0ZVN0ZXA+IHJlcXVl
c3RlZFN0ZXBzKTsKKyAgICB2b2lkIGRpZFNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCk7CiAgICAg
Ly8gVHJpZ2dlciBhIHJlbmRlcmluZyB1cGRhdGUgaW4gdGhlIGN1cnJlbnQgcnVubG9vcC4gT25s
eSB1c2VkIGZvciB0ZXN0aW5nLgogICAgIHZvaWQgdHJpZ2dlclJlbmRlcmluZ1VwZGF0ZUZvclRl
c3RpbmcoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRh
dGVTY2hlZHVsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZW5kZXJpbmdVcGRhdGVTY2hl
ZHVsZXIuY3BwCmluZGV4IDc3ZTRmZWYwYzE5MWJmYjE0YWMzOGM0MzNmYjg3ZjE0Nzk0NzRjMDcu
LmFiNzA5NDNhZThjZGViY2JiYTRkNjIyOTlmYjc3ZjEzMzQ2YjgwMzEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvUmVuZGVyaW5nVXBkYXRlU2NoZWR1bGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1JlbmRlcmluZ1VwZGF0ZVNjaGVkdWxlci5jcHAKQEAgLTg0LDYgKzg0
LDggQEAgdm9pZCBSZW5kZXJpbmdVcGRhdGVTY2hlZHVsZXI6OnNjaGVkdWxlUmVuZGVyaW5nVXBk
YXRlKCkKICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKERpc3BsYXlMaW5rLCBzdHJlYW0gPDwgIlJl
bmRlcmluZ1VwZGF0ZVNjaGVkdWxlcjo6c2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUgZm9yIGludGVy
dmFsICIgPDwgbV9wYWdlLnByZWZlcnJlZFJlbmRlcmluZ1VwZGF0ZUludGVydmFsKCkgPDwgIiBm
YWxsaW5nIGJhY2sgdG8gdGltZXIiKTsKICAgICAgICAgc3RhcnRUaW1lcihtX3BhZ2UucHJlZmVy
cmVkUmVuZGVyaW5nVXBkYXRlSW50ZXJ2YWwoKSk7CiAgICAgfQorICAgIAorICAgIG1fcGFnZS5k
aWRTY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogfQogCiBib29sIFJlbmRlcmluZ1VwZGF0ZVNj
aGVkdWxlcjo6aXNTY2hlZHVsZWQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmgKaW5kZXggNmQ4Yzg5ZGY1ODcxYWRj
ZmM2NWZkMDAxYzZhNTg0NGEwMjQ0OTY1ZS4uZTcwOTU4MTdhNmZjNjE3ZjYyNTU5NzFmMGFkMTU4
NzhhZTdhZTQ4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdDb29yZGluYXRvci5oCkBAIC0xMDEsNiArMTAxLDcgQEAgcHVibGljOgogICAgIC8v
IFRyYXZlcnNlcyB0aGUgc2Nyb2xsaW5nIHRyZWUsIHNldHRpbmcgbGF5ZXIgcG9zaXRpb25zIHRv
IHJlcHJlc2VudCB0aGUgY3VycmVudCBzY3JvbGxlZCBzdGF0ZS4KICAgICB2aXJ0dWFsIHZvaWQg
YXBwbHlTY3JvbGxpbmdUcmVlTGF5ZXJQb3NpdGlvbnMoKSB7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCBkaWRTY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3aWxs
U3RhcnRSZW5kZXJpbmdVcGRhdGUoKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlkQ29tcGxldGVS
ZW5kZXJpbmdVcGRhdGUoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZS5oCmluZGV4IDY0NjY0YWU4MmE2NWRjNzJkNDBjMDVkZDNkYmY0Y2M4YzMx
MWFjMzkuLmJkNDBlODBkNjFkNWU5NDc2YTM3MDc0YzcxYzIwMmQ2YmYzNmY5YzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlLmgKQEAgLTg3LDYgKzg3
LDcgQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHZpcnR1YWwgflNjcm9sbGluZ1RyZWUo
KTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc1RocmVhZGVkU2Nyb2xsaW5nVHJlZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsaW5nVHJlZU1hYygpIGNv
bnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzUmVtb3RlU2Nyb2xsaW5n
VHJlZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xs
aW5nVHJlZUlPUygpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKQEAgLTIyMCw2ICsyMjEsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGxvY2tMYXllcnNGb3JIaXRUZXN0aW5nKCkgeyB9
CiAgICAgdmlydHVhbCB2b2lkIHVubG9ja0xheWVyc0ZvckhpdFRlc3RpbmcoKSB7IH0KIAorICAg
IHZpcnR1YWwgYm9vbCBpc1Njcm9sbGluZ1N5bmNocm9uaXplZFdpdGhNYWluVGhyZWFkKCkgV1RG
X1JFUVVJUkVTX0xPQ0sobV90cmVlTG9jaykgeyByZXR1cm4gdHJ1ZTsgfQorCiAgICAgdmlydHVh
bCB2b2lkIHdpbGxTZW5kRXZlbnRUb01haW5UaHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
JikgeyB9CiAgICAgdmlydHVhbCB2b2lkIHdhaXRGb3JFdmVudFRvQmVQcm9jZXNzZWRCeU1haW5U
aHJlYWQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50JikgeyB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9k
ZS5jcHAKaW5kZXggNGQ3OTllZDU5ODcwZTQ1MDIwM2JjOTQ2MTQ1MDA0YmZmNDFjZTIxMC4uNGQ3
YzUwZmI2YzE3MTcxOWFiODQzYWU5NjA5NGIwYjMzMWI1YTYxZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmNwcApAQCAtMzAzLDExICszMDMsNiBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNjcm9sbAogICAg
IHNjcm9sbGluZ1RyZWUoKS5zY3JvbGxpbmdUcmVlTm9kZURpZFNjcm9sbCgqdGhpcywgYWN0aW9u
KTsKIH0KIAotdm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6dXBkYXRlU2Nyb2xsUG9z
aXRpb25BdExhc3REaXNwbGF5UmVmcmVzaCgpCi17Ci0gICAgbV9zY3JvbGxQb3NpdGlvbkF0TGFz
dERpc3BsYXlSZWZyZXNoID0gbV9jdXJyZW50U2Nyb2xsUG9zaXRpb247Ci19Ci0KIGJvb2wgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGU6OnNjcm9sbFBvc2l0aW9uQW5kTGF5b3V0Vmlld3BvcnRN
YXRjaChjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgc3RkOjpvcHRpb25hbDxGbG9hdFJlY3Q+
KQogewogICAgIHJldHVybiBwb3NpdGlvbiA9PSBtX2N1cnJlbnRTY3JvbGxQb3NpdGlvbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3Jv
bGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVl
U2Nyb2xsaW5nTm9kZS5oCmluZGV4IGVlMjI5ZmUxNTQwN2UwYjdiNGNjODc1OTY5YjcxOWEzZGFm
NTYxNGUuLmI5ZjU0MzA3MDE2ZTIwOGQ0YTZjNWYwYjNlMTMxZDk5NzVkOGU2NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGUuaApAQCAtMTQxLDkgKzE0MSw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1
YWwgdm9pZCByZXBvc2l0aW9uU2Nyb2xsaW5nTGF5ZXJzKCkgeyB9CiAgICAgdmlydHVhbCB2b2lk
IHJlcG9zaXRpb25SZWxhdGVkTGF5ZXJzKCkgeyB9Ci0gICAgCi0gICAgdm9pZCB1cGRhdGVTY3Jv
bGxQb3NpdGlvbkF0TGFzdERpc3BsYXlSZWZyZXNoKCk7Ci0gICAgc3RkOjpvcHRpb25hbDxGbG9h
dFBvaW50PiBzY3JvbGxQb3NpdGlvbkF0TGFzdERpc3BsYXlSZWZyZXNoKCkgeyByZXR1cm4gbV9z
Y3JvbGxQb3NpdGlvbkF0TGFzdERpc3BsYXlSZWZyZXNoOyB9OwogCiAgICAgdm9pZCBhcHBseUxh
eWVyUG9zaXRpb25zKCkgb3ZlcnJpZGU7CiAKQEAgLTE3Nyw3ICsxNzQsNiBAQCBwcml2YXRlOgog
ICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IG1fY3VycmVudEhvcml6b250YWxTbmFwUG9pbnRJ
bmRleDsKICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBtX2N1cnJlbnRWZXJ0aWNhbFNuYXBQ
b2ludEluZGV4OwogICAgIFNjcm9sbGFibGVBcmVhUGFyYW1ldGVycyBtX3Njcm9sbGFibGVBcmVh
UGFyYW1ldGVyczsKLSAgICBzdGQ6Om9wdGlvbmFsPEZsb2F0UG9pbnQ+IG1fc2Nyb2xsUG9zaXRp
b25BdExhc3REaXNwbGF5UmVmcmVzaDsKICNpZiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKICAg
ICBPcHRpb25TZXQ8U3luY2hyb25vdXNTY3JvbGxpbmdSZWFzb24+IG1fc3luY2hyb25vdXNTY3Jv
bGxpbmdSZWFzb25zOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9UaHJlYWRlZFNjcm9sbGluZ1RyZWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmNwcAppbmRleCA1YzhlNmI2NWI0NGEzNzY0
ZWRlZThlZmI5YzkzODhmZWM3MDcyMTcwLi5hZDk1NDhmYmFmMzQ1MGQ1Yjg1ODVjMTlmNjhhOWRk
YjY3MjUyNzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9UaHJl
YWRlZFNjcm9sbGluZ1RyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5n
L1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5jcHAKQEAgLTMzNCwxMCArMzM0LDE3IEBAIGJvb2wgVGhy
ZWFkZWRTY3JvbGxpbmdUcmVlOjpzY3JvbGxpbmdUaHJlYWRJc0FjdGl2ZSgpCiAgICAgcmV0dXJu
IGhhc1Byb2Nlc3NlZFdoZWVsRXZlbnRzUmVjZW50bHkoKSB8fCBoYXNOb2RlV2l0aEFjdGl2ZVNj
cm9sbEFuaW1hdGlvbnMoKTsKIH0KIAordm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpZFNj
aGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBtX3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVk
dWxlZCA9IHRydWU7Cit9CisKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjp3aWxsU3RhcnRS
ZW5kZXJpbmdVcGRhdGUoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKKyAgICBt
X3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxlZCA9IGZhbHNlOworCiAgICAgaWYgKCFzY3JvbGxp
bmdUaHJlYWRJc0FjdGl2ZSgpKQogICAgICAgICByZXR1cm47CiAKQEAgLTQyOSwxNCArNDM2LDYg
QEAgdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OndhaXRGb3JSZW5kZXJpbmdVcGRhdGVDb21w
bGV0aW9uT3JUaW1lb3V0KCkKIH0KIAogdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpZENv
bXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAgICAvLyBtYWNPUyBuZWVkcyB0byB3YWl0IGZv
ciB0aGUgQ0EgY29tbWl0ICh0aGUgInBsYXRmb3JtIHJlbmRlcmluZyB1cGRhdGUiKS4KLSNpZiAh
UExBVEZPUk0oTUFDKQotICAgIHJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRlKCk7Ci0jZW5kaWYKLX0K
LQotdm9pZCBUaHJlYWRlZFNjcm9sbGluZ1RyZWU6OmRpZENvbXBsZXRlUGxhdGZvcm1SZW5kZXJp
bmdVcGRhdGUoKQogewogICAgIHJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRlKCk7CiB9CkBAIC00OTAs
OSArNDg5LDExIEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpkaXNwbGF5RGlkUmVmcmVz
aE9uU2Nyb2xsaW5nVGhyZWFkKCkKIAogICAgIHN3aXRjaCAobV9zdGF0ZSkgewogICAgIGNhc2Ug
U3luY2hyb25pemF0aW9uU3RhdGU6OklkbGU6IHsKLSAgICAgICAgbV9zdGF0ZSA9IFN5bmNocm9u
aXphdGlvblN0YXRlOjpXYWl0aW5nRm9yUmVuZGVyaW5nVXBkYXRlOwotICAgICAgICBjb25zdGV4
cHIgYXV0byBtYXhTdGFydFJlbmRlcmluZ1VwZGF0ZURlbGF5ID0gMV9tczsKLSAgICAgICAgc2No
ZWR1bGVEZWxheWVkUmVuZGVyaW5nVXBkYXRlRGV0ZWN0aW9uVGltZXIobWF4U3RhcnRSZW5kZXJp
bmdVcGRhdGVEZWxheSk7CisgICAgICAgIGlmIChtX3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxl
ZCkgeworICAgICAgICAgICAgbV9zdGF0ZSA9IFN5bmNocm9uaXphdGlvblN0YXRlOjpXYWl0aW5n
Rm9yUmVuZGVyaW5nVXBkYXRlOworICAgICAgICAgICAgY29uc3RleHByIGF1dG8gbWF4U3RhcnRS
ZW5kZXJpbmdVcGRhdGVEZWxheSA9IDFfbXM7CisgICAgICAgICAgICBzY2hlZHVsZURlbGF5ZWRS
ZW5kZXJpbmdVcGRhdGVEZXRlY3Rpb25UaW1lcihtYXhTdGFydFJlbmRlcmluZ1VwZGF0ZURlbGF5
KTsKKyAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBTeW5jaHJvbml6
YXRpb25TdGF0ZTo6V2FpdGluZ0ZvclJlbmRlcmluZ1VwZGF0ZToKQEAgLTUwMCw4ICs1MDEsNiBA
QCB2b2lkIFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6ZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGlu
Z1RocmVhZCgpCiAgICAgY2FzZSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVzeW5jaHJvbml6ZWQ6
CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICAKLSAgICBzdG9yZVNjcm9sbFBvc2l0aW9uc0F0
TGFzdERpc3BsYXlSZWZyZXNoKCk7CiB9CiAKIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpk
aXNwbGF5RGlkUmVmcmVzaChQbGF0Zm9ybURpc3BsYXlJRCBkaXNwbGF5SUQpCkBAIC01MjcsMTIg
KzUyNiw5IEBAIHZvaWQgVGhyZWFkZWRTY3JvbGxpbmdUcmVlOjpyZW1vdmVQZW5kaW5nU2Nyb2xs
QW5pbWF0aW9uRm9yTm9kZShTY3JvbGxpbmdOb2RlSUQKICAgICBtX25vZGVzV2l0aFBlbmRpbmdT
Y3JvbGxBbmltYXRpb25zLnJlbW92ZShub2RlSUQpOwogfQogCi12b2lkIFRocmVhZGVkU2Nyb2xs
aW5nVHJlZTo6c3RvcmVTY3JvbGxQb3NpdGlvbnNBdExhc3REaXNwbGF5UmVmcmVzaCgpCitib29s
IFRocmVhZGVkU2Nyb2xsaW5nVHJlZTo6aXNTY3JvbGxpbmdTeW5jaHJvbml6ZWRXaXRoTWFpblRo
cmVhZCgpCiB7Ci0gICAgLy8gSWRlYWxseSB0aGlzIHdvdWxkIGJlIGEgdHJlZSB3YWxrIGZvciBl
dmVyeSBzY3JvbGxpbmcgbm9kZSwgYnV0IHNjcm9sbGluZyB0cmVlcyBjYW4gZ2V0IGJpZyBzbyBm
b3Igbm93IGp1c3QgZG8gdGhpcyBmb3IgdGhlIHJvb3Q7Ci0gICAgLy8gU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlvblNjcm9sbGluZ0xheWVycygpIHVzZXMgdGhl
IHN0YXRlIHRvIGtub3cgd2hldGhlciBpdCBzaG91bGQgZm9yY2UgYSBjb21taXQuCi0gICAgaWYg
KGF1dG8qIHJvb3ROb2RlID0gdGhpcy0+cm9vdE5vZGUoKSkKLSAgICAgICAgcm9vdE5vZGUtPnVw
ZGF0ZVNjcm9sbFBvc2l0aW9uQXRMYXN0RGlzcGxheVJlZnJlc2goKTsKKyAgICByZXR1cm4gbV9z
dGF0ZSAhPSBTeW5jaHJvbml6YXRpb25TdGF0ZTo6RGVzeW5jaHJvbml6ZWQ7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1RocmVhZGVkU2Nyb2xsaW5nVHJlZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvVGhyZWFkZWRTY3JvbGxpbmdUcmVlLmgKaW5kZXggMmNhZWJlZGNjODRiMDZmMjI5YjNlNDBl
MTJlOWU5MDhmNDg5MWYyNC4uNDZmMWQ5NTI0YmQ2NDhiNmE1NTEyNTQ0OGI4NWE5NDZiZDI2MjE2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRTY3Jv
bGxpbmdUcmVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvVGhyZWFkZWRT
Y3JvbGxpbmdUcmVlLmgKQEAgLTU4LDEwICs1OCw5IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgZGlzcGxheURpZFJlZnJlc2goUGxhdGZvcm1EaXNwbGF5SUQpOwogCisgICAg
dm9pZCBkaWRTY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgpOwogICAgIHZvaWQgd2lsbFN0YXJ0UmVu
ZGVyaW5nVXBkYXRlKCk7Ci0gICAgdm9pZCBkaWRDb21wbGV0ZVJlbmRlcmluZ1VwZGF0ZSgpOwot
Ci0gICAgdm9pZCBkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCk7CisgICAgdmly
dHVhbCB2b2lkIGRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICBMb2NrJiB0cmVl
TG9jaygpIFdURl9SRVRVUk5TX0xPQ0sobV90cmVlTG9jaykgeyByZXR1cm4gbV90cmVlTG9jazsg
fQogCkBAIC04NCw2ICs4Myw4IEBAIHByb3RlY3RlZDoKICAgICB2b2lkIGN1cnJlbnRTbmFwUG9p
bnRJbmRpY2VzRGlkQ2hhbmdlKFNjcm9sbGluZ05vZGVJRCwgc3RkOjpvcHRpb25hbDx1bnNpZ25l
ZD4gaG9yaXpvbnRhbCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gdmVydGljYWwpIG92ZXJyaWRl
OwogI2VuZGlmCiAKKyAgICB2b2lkIHJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRlKCk7CisKICAgICB2
b2lkIHJlcG9ydEV4cG9zZWRVbmZpbGxlZEFyZWEoTW9ub3RvbmljVGltZSwgdW5zaWduZWQgdW5m
aWxsZWRBcmVhKSBvdmVycmlkZTsKICAgICB2b2lkIHJlcG9ydFN5bmNocm9ub3VzU2Nyb2xsaW5n
UmVhc29uc0NoYW5nZWQoTW9ub3RvbmljVGltZSwgT3B0aW9uU2V0PFN5bmNocm9ub3VzU2Nyb2xs
aW5nUmVhc29uPikgb3ZlcnJpZGU7CiAKQEAgLTk4LDcgKzk5LDYgQEAgcHJpdmF0ZToKIAogICAg
IHZvaWQgZGlzcGxheURpZFJlZnJlc2hPblNjcm9sbGluZ1RocmVhZCgpOwogICAgIHZvaWQgd2Fp
dEZvclJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRpb25PclRpbWVvdXQoKSBXVEZfUkVRVUlSRVNfTE9D
SyhtX3RyZWVMb2NrKTsKLSAgICB2b2lkIHJlbmRlcmluZ1VwZGF0ZUNvbXBsZXRlKCk7CiAKICAg
ICBib29sIGNhblVwZGF0ZUxheWVyc09uU2Nyb2xsaW5nVGhyZWFkKCkgY29uc3QgV1RGX1JFUVVJ
UkVTX0xPQ0sobV90cmVlTG9jayk7CiAKQEAgLTEwNyw3ICsxMDcsNyBAQCBwcml2YXRlOgogCiAg
ICAgdm9pZCBoYXNOb2RlV2l0aEFuaW1hdGVkU2Nyb2xsQ2hhbmdlZChib29sKSBmaW5hbDsKICAg
ICAKLSAgICB2b2lkIHN0b3JlU2Nyb2xsUG9zaXRpb25zQXRMYXN0RGlzcGxheVJlZnJlc2goKSBX
VEZfUkVRVUlSRVNfTE9DSyhtX3RyZWVMb2NrKTsKKyAgICBib29sIGlzU2Nyb2xsaW5nU3luY2hy
b25pemVkV2l0aE1haW5UaHJlYWQoKSBmaW5hbCBXVEZfUkVRVUlSRVNfTE9DSyhtX3RyZWVMb2Nr
KTsKIAogICAgIHZvaWQgc2VydmljZVNjcm9sbEFuaW1hdGlvbnMoTW9ub3RvbmljVGltZSkgV1RG
X1JFUVVJUkVTX0xPQ0sobV90cmVlTG9jayk7CiAKQEAgLTEzNyw2ICsxMzcsNyBAQCBwcml2YXRl
OgogICAgIEhhc2hNYXA8U2Nyb2xsaW5nTm9kZUlELCBSZXF1ZXN0ZWRTY3JvbGxEYXRhPiBtX25v
ZGVzV2l0aFBlbmRpbmdTY3JvbGxBbmltYXRpb25zIFdURl9HVUFSREVEX0JZX0xPQ0sobV90cmVl
TG9jayk7CiAgICAgY29uc3QgYm9vbCBtX3Njcm9sbEFuaW1hdG9yRW5hYmxlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2hhc05vZGVzV2l0aFN5bmNocm9ub3VzU2Nyb2xsaW5nUmVhc29ucyBXVEZf
R1VBUkRFRF9CWV9MT0NLKG1fdHJlZUxvY2spIHsgZmFsc2UgfTsKKyAgICBzdGQ6OmF0b21pYzxi
b29sPiBtX3JlbmRlcmluZ1VwZGF0ZVdhc1NjaGVkdWxlZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9T
Y3JvbGxpbmdDb29yZGluYXRvck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKaW5kZXggNTY5M2FjZmVhN2JkZjRjOGQ4NTU1
ZTFkMDViMzAyOTcxMDM3ZmYyNi4uYzBlODM0MWM4YTMyYTQxMGIwNzhjN2RiMTk2Y2FlOTZiNmJl
NzBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ0Nvb3JkaW5hdG9yTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHJvdGVjdGVk
OgogcHJpdmF0ZToKICAgICB2b2lkIHNjaGVkdWxlVHJlZVN0YXRlQ29tbWl0KCkgZmluYWw7CiAK
KyAgICB2b2lkIGRpZFNjaGVkdWxlUmVuZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAgICAgdm9pZCB3
aWxsU3RhcnRSZW5kZXJpbmdVcGRhdGUoKSBmaW5hbDsKICAgICB2b2lkIGRpZENvbXBsZXRlUmVu
ZGVyaW5nVXBkYXRlKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdDb29yZGluYXRvck1hYy5tbQppbmRleCBkODE3
ZGViNDA2MTQ0NjQ5YTNiYjZlOWYzMTkyZWQ1ZWJiOTMwZjM4Li4zY2U2ZjVjODc2N2I5YTAyZTQ1
ZmRmMTcxNTMwMDk5MWM2M2UzOWM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ0Nvb3JkaW5hdG9yTWFjLm1tCkBAIC0xMjMs
NiArMTIzLDEyIEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3JNYWM6OmNvbW1pdFRyZWVTdGF0
ZUlmTmVlZGVkKCkKICAgICB1cGRhdGVUaWxlZFNjcm9sbGluZ0luZGljYXRvcigpOwogfQogCit2
b2lkIFNjcm9sbGluZ0Nvb3JkaW5hdG9yTWFjOjpkaWRTY2hlZHVsZVJlbmRlcmluZ1VwZGF0ZSgp
Cit7CisgICAgUmVmUHRyPFRocmVhZGVkU2Nyb2xsaW5nVHJlZT4gdGhyZWFkZWRTY3JvbGxpbmdU
cmVlID0gZG93bmNhc3Q8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPihzY3JvbGxpbmdUcmVlKCkpOwor
ICAgIHRocmVhZGVkU2Nyb2xsaW5nVHJlZS0+ZGlkU2NoZWR1bGVSZW5kZXJpbmdVcGRhdGUoKTsK
K30KKwogdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2lsbFN0YXJ0UmVuZGVyaW5nVXBk
YXRlKCkKIHsKICAgICBSZWZQdHI8VGhyZWFkZWRTY3JvbGxpbmdUcmVlPiB0aHJlYWRlZFNjcm9s
bGluZ1RyZWUgPSBkb3duY2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUo
KSk7CkBAIC0xNTAsNyArMTU2LDcgQEAgdm9pZCBTY3JvbGxpbmdDb29yZGluYXRvck1hYzo6d2ls
bFN0YXJ0UGxhdGZvcm1SZW5kZXJpbmdVcGRhdGUoKQogCiB2b2lkIFNjcm9sbGluZ0Nvb3JkaW5h
dG9yTWFjOjpkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCkKIHsKLSAgICBkb3du
Y2FzdDxUaHJlYWRlZFNjcm9sbGluZ1RyZWU+KHNjcm9sbGluZ1RyZWUoKSktPmRpZENvbXBsZXRl
UGxhdGZvcm1SZW5kZXJpbmdVcGRhdGUoKTsKKyAgICBkb3duY2FzdDxTY3JvbGxpbmdUcmVlTWFj
PihzY3JvbGxpbmdUcmVlKCkpLT5kaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCk7
CiAgICAgUGxhdGZvcm1DQUxheWVyQ29udGVudHNEZWxheWVkUmVsZWFzZXI6OnNpbmdsZXRvbigp
Lm1haW5UaHJlYWRDb21taXREaWRFbmQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1l
U2Nyb2xsaW5nTm9kZU1hYy5tbQppbmRleCAxMzY4MmU2MjU2ZmI5NmMwNmI5MGUxYzMxYjM4OTBm
MDQwNWYxMDk5Li5hMzRlODQ4MDk4NGExYmQzZDdlYzI5NjgzZDg0ZWVmNGI4ODg3NWIyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZy
YW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMTgyLDcgKzE4
Miw3IEBAIHZvaWQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6cmVwb3NpdGlv
blNjcm9sbGluZ0xheWVycygpCiAgICAgICAgIC8vIFRoZSBtYWluIHRocmVhZCBtYXkgYWxyZWFk
eSBoYXZlIHNldCB0aGUgc2FtZSBsYXllciBwb3NpdGlvbiwgYnV0IGhlcmUgd2UgbmVlZCB0byB0
cmlnZ2VyIGEgc2Nyb2xsaW5nIHRocmVhZCBjb21taXQgdG8KICAgICAgICAgLy8gZW5zdXJlIHRo
YXQgdGhlIHNjcm9sbCBoYXBwZW5zIGV2ZW4gd2hlbiB0aGUgbWFpbiB0aHJlYWQgY29tbWl0IGlz
IHRha2luZyBhIGxvbmcgdGltZS4gU28gbWFrZSBzdXJlIHRoZSBsYXllciBwcm9wZXJ0eSBjaGFu
Z2VzCiAgICAgICAgIC8vIHdoZW4gdGhlcmUgaGFzIGJlZW4gYSBzY3JvbGwgcG9zaXRpb24gY2hh
bmdlLgotICAgICAgICBpZiAoc2Nyb2xsUG9zaXRpb25BdExhc3REaXNwbGF5UmVmcmVzaCgpICYm
IHNjcm9sbFBvc2l0aW9uQXRMYXN0RGlzcGxheVJlZnJlc2goKS52YWx1ZSgpICE9IGN1cnJlbnRT
Y3JvbGxQb3NpdGlvbigpKQorICAgICAgICBpZiAoIXNjcm9sbGluZ1RyZWUoKS5pc1Njcm9sbGlu
Z1N5bmNocm9uaXplZFdpdGhNYWluVGhyZWFkKCkpCiAgICAgICAgICAgICBsYXllci5wb3NpdGlv
biA9IENHUG9pbnRaZXJvOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlTWFjLmgKaW5kZXggNTFiOTkyNTIxZjllMGQ3N2Nl
Y2YwMmQ5NDhjMDU0N2FjYmRiOWY4My4uMDg3OTcyNDc3OTcwNmI2ZWFiODg3ZDUyOTEyMTYwMjg4
ZWE1ZjYwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZU1hYy5oCkBAIC0zNyw4ICszNywxMiBAQCBjbGFzcyBTY3JvbGxpbmdUcmVl
TWFjIGZpbmFsIDogcHVibGljIFRocmVhZGVkU2Nyb2xsaW5nVHJlZSB7CiBwdWJsaWM6CiAgICAg
c3RhdGljIFJlZjxTY3JvbGxpbmdUcmVlTWFjPiBjcmVhdGUoQXN5bmNTY3JvbGxpbmdDb29yZGlu
YXRvciYpOwogCisgICAgdm9pZCBkaWRDb21wbGV0ZVBsYXRmb3JtUmVuZGVyaW5nVXBkYXRlKCk7
CisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgU2Nyb2xsaW5nVHJlZU1hYyhBc3luY1Njcm9sbGlu
Z0Nvb3JkaW5hdG9yJik7CisgICAgCisgICAgYm9vbCBpc1Njcm9sbGluZ1RyZWVNYWMoKSBjb25z
dCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBSZWY8U2Nyb2xsaW5nVHJlZU5vZGU+IGNy
ZWF0ZVNjcm9sbGluZ1RyZWVOb2RlKFNjcm9sbGluZ05vZGVUeXBlLCBTY3JvbGxpbmdOb2RlSUQp
IGZpbmFsOwogCkBAIC02MSw2ICs2NSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBsb2NrTGF5ZXJz
Rm9ySGl0VGVzdGluZygpIGZpbmFsIFdURl9BQ1FVSVJFU19MT0NLKG1fbGF5ZXJIaXRUZXN0TXV0
ZXgpOwogICAgIHZvaWQgdW5sb2NrTGF5ZXJzRm9ySGl0VGVzdGluZygpIGZpbmFsIFdURl9SRUxF
QVNFU19MT0NLKG1fbGF5ZXJIaXRUZXN0TXV0ZXgpOwogCisgICAgdm9pZCBkaWRDb21wbGV0ZVJl
bmRlcmluZ1VwZGF0ZSgpIGZpbmFsOworCiAgICAgLy8gVGhpcyBsb2NrIHByb3RlY3RzIHRoZSBD
QUxheWVyL1BsYXRmb3JtQ0FMYXllciB0cmVlLgogICAgIG11dGFibGUgTG9jayBtX2xheWVySGl0
VGVzdE11dGV4OwogICAgIApAQCAtNjksNCArNzUsNiBAQCBwcml2YXRlOgogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCiAKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfU0NST0xMSU5HX1RSRUUoV2Vi
Q29yZTo6U2Nyb2xsaW5nVHJlZU1hYywgaXNTY3JvbGxpbmdUcmVlTWFjKCkpCisKICNlbmRpZiAv
LyBFTkFCTEUoQVNZTkNfU0NST0xMSU5HKSAmJiBFTkFCTEUoU0NST0xMSU5HX1RIUkVBRCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVN
YWMubW0KaW5kZXggYTMxYjRiZGRhMWFhYzNkYmNkNzhiYWRlZWQ3NTMyNmU3N2NlYTVjMi4uMGFl
ZGQ5YjJiNGYyZjAxZTAyMjJiNmYxNmUxYzZiZTJiZTNiNWRlMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVNYWMubW0KQEAgLTI0
Miw2ICsyNDIsMTggQEAgdm9pZCBTY3JvbGxpbmdUcmVlTWFjOjp1bmxvY2tMYXllcnNGb3JIaXRU
ZXN0aW5nKCkKICAgICBtX2xheWVySGl0VGVzdE11dGV4LnVubG9jaygpOwogfQogCit2b2lkIFNj
cm9sbGluZ1RyZWVNYWM6OmRpZENvbXBsZXRlUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICBib29s
IGhhc0FjdGl2ZUNBVHJhbnNhY3Rpb24gPSBbQ0FUcmFuc2FjdGlvbiBjdXJyZW50U3RhdGVdOwor
ICAgIGlmICghaGFzQWN0aXZlQ0FUcmFuc2FjdGlvbikKKyAgICAgICAgcmVuZGVyaW5nVXBkYXRl
Q29tcGxldGUoKTsKK30KKwordm9pZCBTY3JvbGxpbmdUcmVlTWFjOjpkaWRDb21wbGV0ZVBsYXRm
b3JtUmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICByZW5kZXJpbmdVcGRhdGVDb21wbGV0ZSgpOwor
fQorCiB2b2lkIFNjcm9sbGluZ1RyZWVNYWM6OmFwcGx5TGF5ZXJQb3NpdGlvbnNJbnRlcm5hbCgp
CiB7CiAgICAgaWYgKFNjcm9sbGluZ1RocmVhZDo6aXNDdXJyZW50VGhyZWFkKCkpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>