<?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>218672</bug_id>
          
          <creation_ts>2020-11-06 13:50:10 -0800</creation_ts>
          <short_desc>A programmatic scroll to a new location should stop rubberbanding</short_desc>
          <delta_ts>2020-11-06 21:39:00 -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=218545</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>
          
          <blocked>218676</blocked>
          <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>1705399</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-06 13:50:10 -0800</bug_when>
    <thetext>A programmatic scroll to a new location should stop rubberbanding</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705404</commentid>
    <comment_count>1</comment_count>
      <attachid>413476</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-06 13:59:22 -0800</bug_when>
    <thetext>Created attachment 413476
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705410</commentid>
    <comment_count>2</comment_count>
      <attachid>413476</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-11-06 14:04:38 -0800</bug_when>
    <thetext>Comment on attachment 413476
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        before we got a chance to stop the rubberband, breaking some programmatic scrolls on netlix.com.

Probably netflix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705418</commentid>
    <comment_count>3</comment_count>
      <attachid>413482</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-06 14:14:06 -0800</bug_when>
    <thetext>Created attachment 413482
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705458</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-06 16:06:26 -0800</bug_when>
    <thetext>&lt;rdar://problem/71136710&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705517</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-06 21:38:59 -0800</bug_when>
    <thetext>Committed r269559: &lt;https://trac.webkit.org/changeset/269559&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413482.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413476</attachid>
            <date>2020-11-06 13:59:22 -0800</date>
            <delta_ts>2020-11-06 14:21:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>progscroll.patch</filename>
            <type>text/plain</type>
            <size>18861</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkODU0MGU1OTM4MDdjZTFiYmUzODcwN2IwYzA1YzE2NGQ2YTU3Y2UxLi40
ODQyYTZmOWNhNGM2ODZlMTg0ZTQ1YTc3ZGIzZWVmNDMxY2MyZmRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTMgQEAKKzIwMjAtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQSBwcm9ncmFtbWF0aWMgc2Nyb2xsIHRvIGEgbmV3IGxvY2F0aW9u
IHNob3VsZCBzdG9wIHJ1YmJlcmJhbmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgYSBiZXR0ZXIgdmVyc2lvbiBvZiB0aGUgZml4IGlu
IHIyNjkzNzMuIFRoYXQgZml4IGF0dGVtcHRlZCB0byBzdG9wIGEgcnViYmVyYmFuZCBpZiB0aGVy
ZQorICAgICAgICB3YXMgYSBwcm9ncmFtbWF0aWMgc2Nyb2xsIHRoYXQgbW92ZWQgeW91IGF3YXkg
ZnJvbSB0aGUgZWRnZSB3aGVyZSBhbnkgYWN0aXZlIHJ1YmJlcmJhbmQgd2FzIGhhcHBlbmluZy4K
KyAgICAgICAgSG93ZXZlciwgdGhlIGNvZGUgcmFuIHRvbyBsYXRlOyBieSB0aGUgdGltZSBTY3Jv
bGxDb250cm9sbGVyOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQoKSBpcyBjYWxsZWQsCisgICAgICAg
IHRoZSBwb3NpdGlvbiBoYXMgYWxyZWFkeSBjaGFuZ2VkLCBidXQgbW9yZSBpbXBvcnRhbnRseSB0
aGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbiBoYWQKKyAgICAgICAgYWxyZWFkeSBiZWVuIGNs
YW1wZWQgYmV0d2VlbiBtaW4gYW5kIG1heCBzY3JvbGwgcG9zaXRpb24sIHdoZXJlIHRoZSBiZWhh
dmlvciBvZgorICAgICAgICBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBpcyBhZmZlY3RlZCBieSB3
aGV0aGVyIHRoZSBydWJiZXJiYW5kaW5nIGlzIGFjdGl2ZSAoc2VlIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6Om1heGltdW1TY3JvbGxQb3NpdGlvbigpCisgICAgICAgIGFuZCBp
dHMgdXNlIG9mIHRvdGFsQ29udGVudHNTaXplRm9yUnViYmVyQmFuZCgpKS4KKworICAgICAgICBU
aGUgcmVzdWx0IG9mIHRoaXMgd2FzIHRoYXQgdGhlIGFjdGl2ZSBydWJiZXJiYW5kIHRyaWdnZXJl
ZCBjbGFtcGluZyBvZiB0aGUgcmVxdWVzdGVkIHNjcm9sbCBwb3NpdGlvbgorICAgICAgICBiZWZv
cmUgd2UgZ290IGEgY2hhbmNlIHRvIHN0b3AgdGhlIHJ1YmJlcmJhbmQsIGJyZWFraW5nIHNvbWUg
cHJvZ3JhbW1hdGljIHNjcm9sbHMgb24gbmV0bGl4LmNvbS4KKworICAgICAgICBGaXggYnkgcGx1
bWJpbmcgdGhyb3VnaCB3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoKSB3aGljaCBzdG9wcyB0aGUg
cnViYmVyYmFuZCBiZWZvcmUgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgZ2V0cyBh
IGNoYW5jZSB0byBjbGFtcCB0aGUgcG9zaXRpb24uCisKKyAgICAgICAgV2lsbCBiZSB0ZXN0ZWQg
YWZ0ZXIgb25lIGFkZGl0aW9uYWwgcmVxdWlyZWQgcGF0Y2ggdG8gY29tZS4KKworICAgICAgICAq
IHBhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNSdWJiZXJCYW5kaW5nIGNv
bnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVl
RnJhbWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Nj
cm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpT
Y3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3Jv
bGwpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAg
KiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05v
ZGVNYWM6OndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25D
aGFuZ2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3Jv
bGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGlj
U2Nyb2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OnNjcm9sbFBvc2l0aW9uSXNOb3RSdWJiZXJiYW5kaW5nRWRnZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SZWN0RWRn
ZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpu
b3RpZnlQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnJ1YmJlckJh
bmRpbmdFZGdlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJv
bGxlci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFBvc2l0
aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wUnVi
YmVyYmFuZGluZyk6CisKIDIwMjAtMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU2Nyb2xsaW5nU3RhdGVUcmVlIHNldFByb3Bl
cnR5Q2hhbmdlc0FmdGVyUmVhdHRhY2goKSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5k
ZXggOWUxMGY1ZTg3MzI1NmQwMWUyMzRhNzgxZTc3YWVmZTg3MTgzOTg4Yy4uYjc3NmYwYmRjNTY3
N2E0NThhOTZkNWY2MDgzNzJmMzRlOTMxZDFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApA
QCAtMjA3LDE4ICsyMDcsNiBAQCBSZWN0RWRnZXM8Ym9vbD4gU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGU6OmVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0CiAgICAgfTsKIH0KIAotYm9vbCBTY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNSdWJiZXJCYW5kaW5nKCkgY29uc3QKLXsKLSAgICBhdXRv
IHNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgYXV0byBtaW5T
Y3JvbGxQb3NpdGlvbiA9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpOwotICAgIGF1dG8gbWF4U2Ny
b2xsUG9zaXRpb24gPSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKTsKLQotICAgIHJldHVybiBzY3Jv
bGxQb3NpdGlvbi54KCkgPCBtaW5TY3JvbGxQb3NpdGlvbi54KCkKLSAgICAgICAgfHwgc2Nyb2xs
UG9zaXRpb24ueCgpID4gbWF4U2Nyb2xsUG9zaXRpb24ueCgpCi0gICAgICAgIHx8IHNjcm9sbFBv
c2l0aW9uLnkoKSA8IG1pblNjcm9sbFBvc2l0aW9uLnkoKQotICAgICAgICB8fCBzY3JvbGxQb3Np
dGlvbi55KCkgPiBtYXhTY3JvbGxQb3NpdGlvbi55KCk7Ci19Ci0KIGJvb2wgU2Nyb2xsaW5nVHJl
ZVNjcm9sbGluZ05vZGU6OmlzVXNlclNjcm9sbFByb2dyZXNzKCkgY29uc3QKIHsKICAgICByZXR1
cm4gc2Nyb2xsaW5nVHJlZSgpLmlzVXNlclNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKHNjcm9sbGlu
Z05vZGVJRCgpKTsKQEAgLTI1OSw2ICsyNDcsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxp
bmdOb2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQog
CiAgICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Ny
b2xsVHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwogCisgICAgaWYgKHNjcm9sbFR5
cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKQorICAgICAgICB3aWxsRG9Qcm9ncmFtbWF0
aWNTY3JvbGwocG9zaXRpb24pOworCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1
c3RlZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7CiAgICAgCiAgICAgTE9HX1dJVEhf
U1RSRUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAi
IDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIGFk
anVzdGVkIHRvICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Nj
cm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGQzYzU3ODMxZGJmZjMyN2M3ZGRk
ODlhMGM3OTA2MTRiMzFkMjM4NmMuLjEzYWZkM2NjMDBlMjE5YTI3ODIyMTAzYTM3NzEzNTlhNTNi
ZDgwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiAg
ICAgY29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xs
T3JpZ2luOyB9CiAKICAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3Q7
Ci0gICAgYm9vbCBpc1J1YmJlckJhbmRpbmcoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVc2VyU2Ny
b2xsUHJvZ3Jlc3MoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJTY3JvbGxJblByb2dyZXNzKGJv
b2wpOwpAQCAtMTI1LDYgKzEyNCw4IEBAIHByb3RlY3RlZDoKIAogICAgIEZsb2F0UG9pbnQgY2xh
bXBTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgCisgICAgdmly
dHVhbCB2b2lkIHdpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbChjb25zdCBGbG9hdFBvaW50JikgeyB9
CisgICAgCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29u
c3QgRmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQp
IGNvbnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
U2Nyb2xsVHlwZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVy
UG9zaXRpb25BY3Rpb246OlN5bmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdO
b2RlTWFjLmgKaW5kZXggZjc0Y2M2NzllMjQ5ZmViMzZlZWY3YmVkYmI2NTNjYzFlNjQwNTM5MC4u
N2Q0Y2JhZDBkMDZjZTZmMDkwMWY0ZTk2YTllYmY1ZTE5YmVlNzMwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGlu
Z05vZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC02NCw4ICs2NCw5IEBAIHByb3RlY3Rl
ZDoKIAogcHJpdmF0ZToKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZv
aWQgd2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKIAot
ICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50Jiwg
U2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IGZp
bmFsOwogCiAgICAgdm9pZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUs
IFNjcm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgcmVwb3NpdGlv
blNjcm9sbGluZ0xheWVycygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5tbQppbmRleCA1YWE3ZDMwMTM5MjQ1M2UxYWY3ODczZTMwYTVlNGViN2FjODhh
MmE3Li5hMjZkMWUxZTU5MjYzOTJjYTQ2MWQ2MmI4MmZmZTQ2YTUyNDU4M2U1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMv
U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMTMzLDYgKzEzMywxMSBA
QCBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9k
ZU1hYzo6aGFuZGxlV2hlZWxFdmVudChjbwogICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdS
ZXN1bHQ6OnJlc3VsdChoYW5kbGVkKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3Jv
bGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYg
dGFyZ2V0U2Nyb2xsUG9zaXRpb24pCit7CisgICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9ncmFtbWF0
aWNTY3JvbGwodGFyZ2V0U2Nyb2xsUG9zaXRpb24pOworfQorCiBGbG9hdFBvaW50IFNjcm9sbGlu
Z1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1wKSBjb25zdAogewogICAg
IEZsb2F0UG9pbnQgc2Nyb2xsUG9zaXRpb24ocm91bmRmKHBvc2l0aW9uLngoKSksIHJvdW5kZihw
b3NpdGlvbi55KCkpKTsKQEAgLTE0Myw3ICsxNDgsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFt
ZVNjcm9sbGluZ05vZGVNYWM6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlw
ZQogewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgY3Vy
cmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCB0byAiIDw8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbigp
IDw8ICIgbWluOiAiIDw8IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgbWF4OiAiIDw8IG1h
eGltdW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgc3luYzogIiA8PCBoYXNTeW5jaHJvbm91c1Njcm9s
bGluZ1JlYXNvbnMoKSk7CiAKLSAgICBtX2RlbGVnYXRlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNo
YW5nZWQoc2Nyb2xsVHlwZSk7CisgICAgbV9kZWxlZ2F0ZS5jdXJyZW50U2Nyb2xsUG9zaXRpb25D
aGFuZ2VkKCk7CiAKICAgICBpZiAoaXNSb290Tm9kZSgpKQogICAgICAgICB1cGRhdGVNYWluRnJh
bWVQaW5BbmRSdWJiZXJiYW5kU3RhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93
U2Nyb2xsaW5nTm9kZU1hYy5oCmluZGV4IDZhOTI2ZTM4YWRhOWEzYzU2MzE4ODlkZGIzYTZhNjU4
ZGE0NzJjYTEuLmRhYWQ3YjljZmEyYzNlMmQwODVjOWM1YTk1YjQ5YjBjZWMzNjMyYzAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3Zl
cmZsb3dTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaApAQCAtNDgsNiAr
NDgsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFNjcm9sbFBvc2l0aW9u
KGNvbnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlwZSwgU2Nyb2xsaW5n
TGF5ZXJQb3NpdGlvbkFjdGlvbikgZmluYWw7CisgICAgdm9pZCB3aWxsRG9Qcm9ncmFtbWF0aWNT
Y3JvbGwoY29uc3QgRmxvYXRQb2ludCYpIGZpbmFsOwogCiAgICAgdm9pZCByZXBvc2l0aW9uU2Ny
b2xsaW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRlZExheWVy
cygpIG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9k
ZU1hYy5tbQppbmRleCAxMDVkMDNkN2IyZmEzYTY3NmFjMjY2ZmFkZTBiNGFiOTk1YWQ0N2Q4Li4x
OGE1MjU2YzgzYTdmMzhlM2I3ZDA4NjBjZmM3OTZmOWFjYmQ5NGYzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xs
aW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtODYsMTAgKzg2LDE1IEBA
IFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdO
b2RlTWFjOjpoYW5kbGVXaGVlbEV2ZW50CiAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jl
c3VsdDo6cmVzdWx0KG1fZGVsZWdhdGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSk7CiB9
CiAKK3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6d2lsbERvUHJv
Z3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFNjcm9sbFBvc2l0aW9uKQor
eworICAgIG1fZGVsZWdhdGUud2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKHRhcmdldFNjcm9sbFBv
c2l0aW9uKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
OjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Ny
b2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rpb24pCiB7CiAgICAgU2Nyb2xsaW5nVHJlZU92
ZXJmbG93U2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChzY3JvbGxU
eXBlLCBhY3Rpb24pOwotICAgIG1fZGVsZWdhdGUuY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZChzY3JvbGxUeXBlKTsKKyAgICBtX2RlbGVnYXRlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoKTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjOjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBT
Y3JvbGxDbGFtcGluZyBjbGFtcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDcxOGZkYTg0ZGQzNDkxZjNkMzEwZTg5MWY5YjVjMDAx
MGZlMmFhZDAuLjdhMGU3M2ExZWI2YTRhOWVlNzZiMmJjY2QzYWRlYTVhN2IxZDJmY2UgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Ny
b2xsaW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvbWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNTEsNyAr
NTEsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZv
cm1XaGVlbEV2ZW50Jik7CiAgICAgCi0gICAgdm9pZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKFNjcm9sbFR5cGUpOworICAgIHZvaWQgd2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0
IEZsb2F0UG9pbnQmKTsKKyAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsK
IAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFw
UG9pbnRzKFNjcm9sbEV2ZW50QXhpcywgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiwgY29uc3Qg
VmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYpOwpAQCAtODgsNiArODksOCBA
QCBwcml2YXRlOgogICAgIHZvaWQgcnViYmVyQmFuZGluZ1N0YXRlQ2hhbmdlZChib29sKSBmaW5h
bDsKICAgICB2b2lkIGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIGZp
bmFsOwogCisgICAgYm9vbCBzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29u
c3QgRmxvYXRQb2ludCYpIGNvbnN0OworCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAg
ICBGbG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaW1t
ZWRpYXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRl
eCA3MTllMDlhNTAzZDExMTczNmI2NjdhMWExZDg2NTZmYzRmMGQ2ODk2Li44MGY4Nzc3ZmQzMzVm
OTU3ODYzODk2OTY5MGE0NmE2YTc4MTBhMjJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQpAQCAtMTYwLDkgKzE2MCw1NCBAQCBib29sIFNjcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3Qg
UGxhdGZvcm1XaGVlbAogICAgIHJldHVybiBoYW5kbGVkOwogfQogCi12b2lkIFNjcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
U2Nyb2xsVHlwZSBzY3JvbGxUeXBlKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURl
bGVnYXRlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFy
Z2V0UG9zaXRpb24pCiB7Ci0gICAgbV9zY3JvbGxDb250cm9sbGVyLnNjcm9sbFBvc2l0aW9uQ2hh
bmdlZChzY3JvbGxUeXBlKTsKKyAgICBpZiAoc2Nyb2xsUG9zaXRpb25Jc05vdFJ1YmJlcmJhbmRp
bmdFZGdlKHRhcmdldFBvc2l0aW9uKSkgeworICAgICAgICBMT0coU2Nyb2xsaW5nLCAiU2Nyb2xs
aW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xs
KCkgLSBzY3JvbGxpbmcgYXdheSBmcm9tIHJ1YmJlcmJhbmRpbmcgZWRnZSBzbyBzdG9wcGluZyBy
dWJiZXJiYW5kaW5nIik7CisgICAgICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wUnViYmVyYmFu
ZGluZygpOworICAgIH0KK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjpzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29uc3QgRmxvYXRQ
b2ludCYgdGFyZ2V0UG9zaXRpb24pIGNvbnN0Cit7CisgICAgaWYgKCFtX3Njcm9sbENvbnRyb2xs
ZXIuaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBhdXRvIHJ1YmJlcmJhbmRpbmdFZGdlcyA9IG1fc2Nyb2xsQ29udHJvbGxlci5ydWJiZXJCYW5k
aW5nRWRnZXMoKTsKKworICAgIGF1dG8gbWluaW11bVNjcm9sbFBvc2l0aW9uID0gdGhpcy0+bWlu
aW11bVNjcm9sbFBvc2l0aW9uKCk7CisgICAgYXV0byBtYXhpbXVtU2Nyb2xsUG9zaXRpb24gPSB0
aGlzLT5tYXhpbXVtU2Nyb2xsUG9zaXRpb24oKTsKKworICAgIGZvciAoYXV0byBzaWRlIDogYWxs
Qm94U2lkZXMpIHsKKyAgICAgICAgaWYgKCFydWJiZXJiYW5kaW5nRWRnZXNbc2lkZV0pCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICBzd2l0Y2ggKHNpZGUpIHsKKyAgICAgICAgY2Fz
ZSBCb3hTaWRlOjpUb3A6CisgICAgICAgICAgICBpZiAodGFyZ2V0UG9zaXRpb24ueSgpICE9IG1p
bmltdW1TY3JvbGxQb3NpdGlvbi55KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCb3hTaWRlOjpSaWdodDoKKyAgICAgICAg
ICAgIGlmICh0YXJnZXRQb3NpdGlvbi54KCkgIT0gbWF4aW11bVNjcm9sbFBvc2l0aW9uLngoKSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICBjYXNlIEJveFNpZGU6OkJvdHRvbToKKyAgICAgICAgICAgIGlmICh0YXJnZXRQb3NpdGlvbi55
KCkgIT0gbWF4aW11bVNjcm9sbFBvc2l0aW9uLnkoKSkKKyAgICAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIEJveFNpZGU6OkxlZnQ6Cisg
ICAgICAgICAgICBpZiAodGFyZ2V0UG9zaXRpb24ueCgpICE9IG1pbmltdW1TY3JvbGxQb3NpdGlv
bi54KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgfQorICAgIH0KKyAgICAKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKK3ZvaWQgU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3VycmVudFNjcm9sbFBvc2l0aW9u
Q2hhbmdlZCgpCit7CisgICAgbV9zY3JvbGxDb250cm9sbGVyLnNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZCgpOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6Omlz
UnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUmVjdEVkZ2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMu
aAppbmRleCA3NmMzOTdlYzFlNzU1ZGE1OWNjYTUzODlhZjk0NzRjZWQ1YjExNWNlLi44ODNlY2Fl
OWUxNTgyMjAzNGYyMTdhNTcwMTQ3Mzg1M2EwYjA1NDY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9S
ZWN0RWRnZXMuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldyaXRpbmdNb2RlLmgiCiAj
aW5jbHVkZSA8YXJyYXk+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgorI2luY2x1ZGUgPHd0
Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC05MSw0ICs5
MiwxMiBAQCBwcml2YXRlOgogICAgIHN0ZDo6YXJyYXk8VCwgND4gbV9zaWRlcyB7IH07CiB9Owog
CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZWN0RWRnZXM8VD4mIGVkZ2VzKQoreworICAgIHRzIDw8ICJbdG9wICIg
PDwgZWRnZXMudG9wKCkgPDwgIiByaWdodCAiIDw8IGVkZ2VzLnJpZ2h0KCkgPDwgIiBib3R0b20g
IiA8PCBlZGdlcy5ib3R0b20oKSA8PCAiIGxlZnQgIiA8PCBlZGdlcy5sZWZ0KCkgPDwgIl0iOwor
ICAgIHJldHVybiB0czsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuY3BwCmluZGV4IDljMWM3YTZjNzBiNmUwNzRiNmI1YTM2M2JjYWMzY2MwY2JiNDJhNDku
LmUxZjc5NTYzODhmNWE4MGVjYTg5ZWY2YjdiNTkzNmMzMmJhOTc5ZWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lk
IFNjcm9sbEFuaW1hdG9yOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQoY29uc3QgRmxvYXRTaXplJiBk
ZWx0YSkKICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbE9mZnNldEZyb21BbmltYXRpb24o
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocm91bmRlZEludFBvaW50
KGN1cnJlbnRQb3NpdGlvbigpKSkpOwogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkgfHwg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zY3JvbGxQb3Np
dGlvbkNoYW5nZWQoU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICBtX3Njcm9sbENvbnRy
b2xsZXIuc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCmluZGV4IGYyNTVjOTk1
ODUzZTU2MWE3NWFlZDg3NmIyZjAxYzljMzliZDFhM2IuLjQ0NWQxNjM4YTBlM2Q5YzU5NmIyNzg3
YjlkZjg4ZjU2MTc5ZjcxODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTE0NSwxMyArMTQ1LDE3IEBAIHB1YmxpYzoKICAgICBi
b29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50Jik7CiAjZW5kaWYK
IAorICAgIHZvaWQgc3RvcFJ1YmJlcmJhbmRpbmcoKTsKKwogICAgIGJvb2wgdXNlc1Njcm9sbFNu
YXAoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVc2VyU2Nyb2xsSW5Qcm9ncmVzcygpIGNvbnN0Owog
ICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0OwogICAgIGJvb2wgaXNTY3Jv
bGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0OwogICAgIAotICAgIHZvaWQgc2Nyb2xsUG9zaXRpb25D
aGFuZ2VkKFNjcm9sbFR5cGUpOworICAgIFJlY3RFZGdlczxib29sPiBydWJiZXJCYW5kaW5nRWRn
ZXMoKSBjb25zdCB7IHJldHVybiBtX3J1YmJlckJhbmRpbmdFZGdlczsgfQorICAgIAorICAgIHZv
aWQgc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogICAgIHZvaWQgdXBkYXRlU2Nyb2xsU25hcFBvaW50cyhTY3JvbGxFdmVudEF4aXMsIGNvbnN0
IFZlY3RvcjxMYXlvdXRVbml0PiYsIGNvbnN0IFZlY3RvcjxTY3JvbGxPZmZzZXRSYW5nZTxMYXlv
dXRVbml0Pj4mKTsKQEAgLTE3OCw4ICsxODIsNiBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAjaWYg
RU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIHZvaWQgc3RvcFJ1YmJlcmJhbmRpbmcoKTsKLQog
ICAgIHZvaWQgc3RhcnRTbmFwUnViYmVyYmFuZFRpbWVyKCk7CiAgICAgdm9pZCBzdG9wU25hcFJ1
YmJlcmJhbmRUaW1lcigpOwogICAgIHZvaWQgc25hcFJ1YmJlckJhbmQoKTsKQEAgLTE5MSw4ICsx
OTMsNiBAQCBwcml2YXRlOgogICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzc0ludGVybmFs
KCkgY29uc3Q7CiAgICAgdm9pZCB1cGRhdGVSdWJiZXJCYW5kaW5nU3RhdGUoKTsKICAgICB2b2lk
IHVwZGF0ZVJ1YmJlckJhbmRpbmdFZGdlcyhJbnRTaXplIGNsaWVudFN0cmV0Y2gpOwotICAgIAot
ICAgIGJvb2wgc2Nyb2xsZWRUb1J1YmJlcmJhbmRpbmdFZGdlKCkgY29uc3Q7CiAjZW5kaWYKIAog
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQppbmRleCA3YzE3MDVjMmEzZDllZWNiMGRmNTdl
ODA0YmNkMGE0YTMxMjNjZDExLi41YTRhOGQ3MTM1MzQ5ZDAzMmFkZDJjMzg1YjkxYmU4NDdjZjJl
M2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIubW0KQEAgLTQ1OSwxNSArNDU5LDEwIEBAIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c25h
cFJ1YmJlckJhbmRUaW1lckZpcmVkKCkKIH0KICNlbmRpZgogCi12b2lkIFNjcm9sbENvbnRyb2xs
ZXI6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZChTY3JvbGxUeXBlIHNjcm9sbFR5cGUpCit2b2lkIFNj
cm9sbENvbnRyb2xsZXI6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpCiB7CiAjaWYgRU5BQkxFKFJV
QkJFUl9CQU5ESU5HKQotICAgIGlmIChzY3JvbGxUeXBlID09IFNjcm9sbFR5cGU6OlByb2dyYW1t
YXRpYyAmJiAhc2Nyb2xsZWRUb1J1YmJlcmJhbmRpbmdFZGdlKCkpCi0gICAgICAgIHN0b3BSdWJi
ZXJiYW5kaW5nKCk7Ci0KICAgICB1cGRhdGVSdWJiZXJCYW5kaW5nU3RhdGUoKTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKHNjcm9sbFR5cGUpOwogI2VuZGlmCiB9CiAKQEAgLTUxMCwxNyArNTA1
LDE5IEBAIGJvb2wgU2Nyb2xsQ29udHJvbGxlcjo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNv
bnN0CiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0jaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQog
dm9pZCBTY3JvbGxDb250cm9sbGVyOjpzdG9wUnViYmVyYmFuZGluZygpCiB7CisjaWYgRU5BQkxF
KFJVQkJFUl9CQU5ESU5HKQogICAgIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVyKCk7CiAgICAgbV9z
dHJldGNoU2Nyb2xsRm9yY2UgPSB7IH07CiAgICAgbV9zdGFydFRpbWUgPSB7IH07CiAgICAgbV9z
dGFydFN0cmV0Y2ggPSB7IH07CiAgICAgbV9vcmlnVmVsb2NpdHkgPSB7IH07CiAgICAgdXBkYXRl
UnViYmVyQmFuZGluZ1N0YXRlKCk7CisjZW5kaWYKIH0KIAorI2lmIEVOQUJMRShSVUJCRVJfQkFO
RElORykKIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c3RhcnRTbmFwUnViYmVyYmFuZFRpbWVyKCkK
IHsKICAgICBtX2NsaWVudC53aWxsU3RhcnRSdWJiZXJCYW5kU25hcEFuaW1hdGlvbigpOwpAQCAt
NjA4LDE4ICs2MDUsNiBAQCB2b2lkIFNjcm9sbENvbnRyb2xsZXI6OnVwZGF0ZVJ1YmJlckJhbmRp
bmdFZGdlcyhJbnRTaXplIGNsaWVudFN0cmV0Y2gpCiAgICAgbV9ydWJiZXJCYW5kaW5nRWRnZXMu
c2V0Qm90dG9tKGNsaWVudFN0cmV0Y2guaGVpZ2h0KCkgPiAwKTsKIH0KIAotYm9vbCBTY3JvbGxD
b250cm9sbGVyOjpzY3JvbGxlZFRvUnViYmVyYmFuZGluZ0VkZ2UoKSBjb25zdAotewotICAgIGF1
dG8gcGlubmVkRWRnZXMgPSBtX2NsaWVudC5lZGdlUGlubmVkU3RhdGUoKTsKLSAgICAKLSAgICBm
b3IgKGF1dG8gc2lkZSA6IGFsbEJveFNpZGVzKSB7Ci0gICAgICAgIGlmIChtX3J1YmJlckJhbmRp
bmdFZGdlc1tzaWRlXSAmJiAhcGlubmVkRWRnZXNbc2lkZV0pCi0gICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgfQotICAgIAotICAgIHJldHVybiB0cnVlOwotfQotCiAjZW5kaWYgLy8gRU5B
QkxFKFJVQkJFUl9CQU5ESU5HKQogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkK
</data>
<flag name="review"
          id="430079"
          type_id="1"
          status="+"
          setter="thorton"
    />
    <flag name="commit-queue"
          id="430083"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413482</attachid>
            <date>2020-11-06 14:14:06 -0800</date>
            <delta_ts>2020-11-06 21:38:59 -0800</delta_ts>
            <desc>Patch v2</desc>
            <filename>progscroll.patch</filename>
            <type>text/plain</type>
            <size>18962</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBkODU0MGU1OTM4MDdjZTFiYmUzODcwN2IwYzA1YzE2NGQ2YTU3Y2UxLi5j
YmNmNjE0ZDYxNGFjMzkzZmNmMWI2NzU1MWFmMzMwNmZjM2MxNjg1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsNTMgQEAKKzIwMjAtMTEtMDYgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CisKKyAgICAgICAgQSBwcm9ncmFtbWF0aWMgc2Nyb2xsIHRvIGEgbmV3IGxvY2F0aW9u
IHNob3VsZCBzdG9wIHJ1YmJlcmJhbmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxODY3MgorCisgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIb3J0
b24uCisKKyAgICAgICAgVGhpcyBpcyBhIGJldHRlciB2ZXJzaW9uIG9mIHRoZSBmaXggaW4gcjI2
OTM3My4gVGhhdCBmaXggYXR0ZW1wdGVkIHRvIHN0b3AgYSBydWJiZXJiYW5kIGlmIHRoZXJlCisg
ICAgICAgIHdhcyBhIHByb2dyYW1tYXRpYyBzY3JvbGwgdGhhdCBtb3ZlZCB5b3UgYXdheSBmcm9t
IHRoZSBlZGdlIHdoZXJlIGFueSBhY3RpdmUgcnViYmVyYmFuZCB3YXMgaGFwcGVuaW5nLgorICAg
ICAgICBIb3dldmVyLCB0aGUgY29kZSByYW4gdG9vIGxhdGU7IGJ5IHRoZSB0aW1lIFNjcm9sbENv
bnRyb2xsZXI6OnNjcm9sbFBvc2l0aW9uQ2hhbmdlZCgpIGlzIGNhbGxlZCwKKyAgICAgICAgdGhl
IHBvc2l0aW9uIGhhcyBhbHJlYWR5IGNoYW5nZWQsIGJ1dCBtb3JlIGltcG9ydGFudGx5IHRoZSBy
ZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uIGhhZAorICAgICAgICBhbHJlYWR5IGJlZW4gY2xhbXBl
ZCBiZXR3ZWVuIG1pbiBhbmQgbWF4IHNjcm9sbCBwb3NpdGlvbiwgd2hlcmUgdGhlIGJlaGF2aW9y
IG9mCisgICAgICAgIG1heGltdW1TY3JvbGxQb3NpdGlvbigpIGlzIGFmZmVjdGVkIGJ5IHdoZXRo
ZXIgdGhlIHJ1YmJlcmJhbmRpbmcgaXMgYWN0aXZlIChzZWUgU2Nyb2xsaW5nVHJlZUZyYW1lU2Ny
b2xsaW5nTm9kZU1hYzo6bWF4aW11bVNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgYW5kIGl0cyB1
c2Ugb2YgdG90YWxDb250ZW50c1NpemVGb3JSdWJiZXJCYW5kKCkpLgorCisgICAgICAgIFRoZSBy
ZXN1bHQgb2YgdGhpcyB3YXMgdGhhdCB0aGUgYWN0aXZlIHJ1YmJlcmJhbmQgdHJpZ2dlcmVkIGNs
YW1waW5nIG9mIHRoZSByZXF1ZXN0ZWQgc2Nyb2xsIHBvc2l0aW9uCisgICAgICAgIGJlZm9yZSB3
ZSBnb3QgYSBjaGFuY2UgdG8gc3RvcCB0aGUgcnViYmVyYmFuZCwgYnJlYWtpbmcgc29tZSBwcm9n
cmFtbWF0aWMgc2Nyb2xscyBvbiBuZXRmbGl4LmNvbS4KKworICAgICAgICBGaXggYnkgcGx1bWJp
bmcgdGhyb3VnaCB3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoKSB3aGljaCBzdG9wcyB0aGUgcnVi
YmVyYmFuZCBiZWZvcmUgbWF4aW11bVNjcm9sbFBvc2l0aW9uKCkKKyAgICAgICAgZ2V0cyBhIGNo
YW5jZSB0byBjbGFtcCB0aGUgcG9zaXRpb24uCisKKyAgICAgICAgV2lsbCBiZSB0ZXN0ZWQgYWZ0
ZXIgb25lIGFkZGl0aW9uYWwgcmVxdWlyZWQgcGF0Y2ggdG8gY29tZS4KKworICAgICAgICAqIHBh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlOjpzY3JvbGxUbyk6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZTo6aXNSdWJiZXJCYW5kaW5nIGNvbnN0
KTogRGVsZXRlZC4KKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZS5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJh
bWVTY3JvbGxpbmdOb2RlTWFjLmg6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9s
bGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3Jv
bGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwp
OgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYzo6
Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCk6CisgICAgICAgICogcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaDoKKyAgICAgICAgKiBw
YWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVN
YWM6OndpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxp
bmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKToKKyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGlu
Z05vZGVEZWxlZ2F0ZU1hYy5oOgorICAgICAgICAqIHBhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxp
bmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Ny
b2xsKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdh
dGVNYWM6OnNjcm9sbFBvc2l0aW9uSXNOb3RSdWJiZXJiYW5kaW5nRWRnZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjOjpjdXJy
ZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9SZWN0RWRnZXMu
aDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHBsYXRmb3JtL1Nj
cm9sbEFuaW1hdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1hdG9yOjpub3Rp
ZnlQb3NpdGlvbkNoYW5nZWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRy
b2xsZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnJ1YmJlckJhbmRp
bmdFZGdlcyBjb25zdCk6CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbENvbnRyb2xsZXI6OnNjcm9sbFBvc2l0aW9u
Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxDb250cm9sbGVyOjpzdG9wUnViYmVy
YmFuZGluZyk6CisKIDIwMjAtMTEtMDUgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2xlYW4gdXAgU2Nyb2xsaW5nU3RhdGVUcmVlIHNldFByb3BlcnR5
Q2hhbmdlc0FmdGVyUmVhdHRhY2goKSBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5jcHAKaW5kZXgg
OWUxMGY1ZTg3MzI1NmQwMWUyMzRhNzgxZTc3YWVmZTg3MTgzOTg4Yy4uYjc3NmYwYmRjNTY3N2E0
NThhOTZkNWY2MDgzNzJmMzRlOTMxZDFkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlLmNwcApAQCAt
MjA3LDE4ICsyMDcsNiBAQCBSZWN0RWRnZXM8Ym9vbD4gU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGU6OmVkZ2VQaW5uZWRTdGF0ZSgpIGNvbnN0CiAgICAgfTsKIH0KIAotYm9vbCBTY3JvbGxpbmdU
cmVlU2Nyb2xsaW5nTm9kZTo6aXNSdWJiZXJCYW5kaW5nKCkgY29uc3QKLXsKLSAgICBhdXRvIHNj
cm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uKCk7Ci0gICAgYXV0byBtaW5TY3Jv
bGxQb3NpdGlvbiA9IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpOwotICAgIGF1dG8gbWF4U2Nyb2xs
UG9zaXRpb24gPSBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKTsKLQotICAgIHJldHVybiBzY3JvbGxQ
b3NpdGlvbi54KCkgPCBtaW5TY3JvbGxQb3NpdGlvbi54KCkKLSAgICAgICAgfHwgc2Nyb2xsUG9z
aXRpb24ueCgpID4gbWF4U2Nyb2xsUG9zaXRpb24ueCgpCi0gICAgICAgIHx8IHNjcm9sbFBvc2l0
aW9uLnkoKSA8IG1pblNjcm9sbFBvc2l0aW9uLnkoKQotICAgICAgICB8fCBzY3JvbGxQb3NpdGlv
bi55KCkgPiBtYXhTY3JvbGxQb3NpdGlvbi55KCk7Ci19Ci0KIGJvb2wgU2Nyb2xsaW5nVHJlZVNj
cm9sbGluZ05vZGU6OmlzVXNlclNjcm9sbFByb2dyZXNzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
c2Nyb2xsaW5nVHJlZSgpLmlzVXNlclNjcm9sbEluUHJvZ3Jlc3NGb3JOb2RlKHNjcm9sbGluZ05v
ZGVJRCgpKTsKQEAgLTI1OSw2ICsyNDcsOSBAQCB2b2lkIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdO
b2RlOjpzY3JvbGxUbyhjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsVHlwZQogCiAg
ICAgc2Nyb2xsaW5nVHJlZSgpLnNldElzSGFuZGxpbmdQcm9ncmFtbWF0aWNTY3JvbGwoc2Nyb2xs
VHlwZSA9PSBTY3JvbGxUeXBlOjpQcm9ncmFtbWF0aWMpOwogCisgICAgaWYgKHNjcm9sbFR5cGUg
PT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKQorICAgICAgICB3aWxsRG9Qcm9ncmFtbWF0aWNT
Y3JvbGwocG9zaXRpb24pOworCiAgICAgbV9jdXJyZW50U2Nyb2xsUG9zaXRpb24gPSBhZGp1c3Rl
ZFNjcm9sbFBvc2l0aW9uKHBvc2l0aW9uLCBjbGFtcCk7CiAgICAgCiAgICAgTE9HX1dJVEhfU1RS
RUFNKFNjcm9sbGluZywgc3RyZWFtIDw8ICJTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZSAiIDw8
IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgc2Nyb2xsVG8gIiA8PCBwb3NpdGlvbiA8PCAiIGFkanVz
dGVkIHRvICIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bGluZ1RyZWVTY3JvbGxpbmdOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZS5oCmluZGV4IGQzYzU3ODMxZGJmZjMyN2M3ZGRkODlh
MGM3OTA2MTRiMzFkMjM4NmMuLjEzYWZkM2NjMDBlMjE5YTI3ODIyMTAzYTM3NzEzNTlhNTNiZDgw
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Ny
b2xsaW5nVHJlZVNjcm9sbGluZ05vZGUuaApAQCAtNjYsNyArNjYsNiBAQCBwdWJsaWM6CiAgICAg
Y29uc3QgSW50UG9pbnQmIHNjcm9sbE9yaWdpbigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsT3Jp
Z2luOyB9CiAKICAgICBSZWN0RWRnZXM8Ym9vbD4gZWRnZVBpbm5lZFN0YXRlKCkgY29uc3Q7Ci0g
ICAgYm9vbCBpc1J1YmJlckJhbmRpbmcoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVc2VyU2Nyb2xs
UHJvZ3Jlc3MoKSBjb25zdDsKICAgICB2b2lkIHNldFVzZXJTY3JvbGxJblByb2dyZXNzKGJvb2wp
OwpAQCAtMTI1LDYgKzEyNCw4IEBAIHByb3RlY3RlZDoKIAogICAgIEZsb2F0UG9pbnQgY2xhbXBT
Y3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JikgY29uc3Q7CiAgICAgCisgICAgdmlydHVh
bCB2b2lkIHdpbGxEb1Byb2dyYW1tYXRpY1Njcm9sbChjb25zdCBGbG9hdFBvaW50JikgeyB9Cisg
ICAgCiAgICAgdmlydHVhbCBGbG9hdFBvaW50IGFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3Qg
RmxvYXRQb2ludCYsIFNjcm9sbENsYW1waW5nID0gU2Nyb2xsQ2xhbXBpbmc6OkNsYW1wZWQpIGNv
bnN0OwogCiAgICAgdmlydHVhbCB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Ny
b2xsVHlwZSwgU2Nyb2xsaW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiA9IFNjcm9sbGluZ0xheWVyUG9z
aXRpb25BY3Rpb246OlN5bmMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxpbmdOb2Rl
TWFjLmgKaW5kZXggZjc0Y2M2NzllMjQ5ZmViMzZlZWY3YmVkYmI2NTNjYzFlNjQwNTM5MC4uN2Q0
Y2JhZDBkMDZjZTZmMDkwMWY0ZTk2YTllYmY1ZTE5YmVlNzMwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05v
ZGVNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5n
VHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5oCkBAIC02NCw4ICs2NCw5IEBAIHByb3RlY3RlZDoK
IAogcHJpdmF0ZToKICAgICB2b2lkIHdpbGxCZURlc3Ryb3llZCgpIGZpbmFsOworICAgIHZvaWQg
d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmKSBmaW5hbDsKIAotICAg
IEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3JvbGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Ny
b2xsQ2xhbXBpbmcpIGNvbnN0IG92ZXJyaWRlOworICAgIEZsb2F0UG9pbnQgYWRqdXN0ZWRTY3Jv
bGxQb3NpdGlvbihjb25zdCBGbG9hdFBvaW50JiwgU2Nyb2xsQ2xhbXBpbmcpIGNvbnN0IGZpbmFs
OwogCiAgICAgdm9pZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUsIFNj
cm9sbGluZ0xheWVyUG9zaXRpb25BY3Rpb24pIGZpbmFsOwogICAgIHZvaWQgcmVwb3NpdGlvblNj
cm9sbGluZ0xheWVycygpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvbWFjL1Njcm9sbGluZ1RyZWVGcmFtZVNjcm9sbGluZ05vZGVNYWMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5n
Tm9kZU1hYy5tbQppbmRleCA1YWE3ZDMwMTM5MjQ1M2UxYWY3ODczZTMwYTVlNGViN2FjODhhMmE3
Li5hMjZkMWUxZTU5MjYzOTJjYTQ2MWQ2MmI4MmZmZTQ2YTUyNDU4M2U1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xs
aW5nTm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Ny
b2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtMTMzLDYgKzEzMywxMSBAQCBX
aGVlbEV2ZW50SGFuZGxpbmdSZXN1bHQgU2Nyb2xsaW5nVHJlZUZyYW1lU2Nyb2xsaW5nTm9kZU1h
Yzo6aGFuZGxlV2hlZWxFdmVudChjbwogICAgIHJldHVybiBXaGVlbEV2ZW50SGFuZGxpbmdSZXN1
bHQ6OnJlc3VsdChoYW5kbGVkKTsKIH0KIAordm9pZCBTY3JvbGxpbmdUcmVlRnJhbWVTY3JvbGxp
bmdOb2RlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFy
Z2V0U2Nyb2xsUG9zaXRpb24pCit7CisgICAgbV9kZWxlZ2F0ZS53aWxsRG9Qcm9ncmFtbWF0aWNT
Y3JvbGwodGFyZ2V0U2Nyb2xsUG9zaXRpb24pOworfQorCiBGbG9hdFBvaW50IFNjcm9sbGluZ1Ry
ZWVGcmFtZVNjcm9sbGluZ05vZGVNYWM6OmFkanVzdGVkU2Nyb2xsUG9zaXRpb24oY29uc3QgRmxv
YXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbENsYW1waW5nIGNsYW1wKSBjb25zdAogewogICAgIEZs
b2F0UG9pbnQgc2Nyb2xsUG9zaXRpb24ocm91bmRmKHBvc2l0aW9uLngoKSksIHJvdW5kZihwb3Np
dGlvbi55KCkpKTsKQEAgLTE0Myw3ICsxNDgsNyBAQCB2b2lkIFNjcm9sbGluZ1RyZWVGcmFtZVNj
cm9sbGluZ05vZGVNYWM6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlwZQog
ewogICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxpbmcsIHN0cmVhbSA8PCAiU2Nyb2xsaW5nVHJl
ZUZyYW1lU2Nyb2xsaW5nTm9kZU1hYyAiIDw8IHNjcm9sbGluZ05vZGVJRCgpIDw8ICIgY3VycmVu
dFNjcm9sbFBvc2l0aW9uQ2hhbmdlZCB0byAiIDw8IGN1cnJlbnRTY3JvbGxQb3NpdGlvbigpIDw8
ICIgbWluOiAiIDw8IG1pbmltdW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgbWF4OiAiIDw8IG1heGlt
dW1TY3JvbGxQb3NpdGlvbigpIDw8ICIgc3luYzogIiA8PCBoYXNTeW5jaHJvbm91c1Njcm9sbGlu
Z1JlYXNvbnMoKSk7CiAKLSAgICBtX2RlbGVnYXRlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5n
ZWQoc2Nyb2xsVHlwZSk7CisgICAgbV9kZWxlZ2F0ZS5jdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFu
Z2VkKCk7CiAKICAgICBpZiAoaXNSb290Tm9kZSgpKQogICAgICAgICB1cGRhdGVNYWluRnJhbWVQ
aW5BbmRSdWJiZXJiYW5kU3RhdGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Ny
b2xsaW5nTm9kZU1hYy5oCmluZGV4IDZhOTI2ZTM4YWRhOWEzYzU2MzE4ODlkZGIzYTZhNjU4ZGE0
NzJjYTEuLmRhYWQ3YjljZmEyYzNlMmQwODVjOWM1YTk1YjQ5YjBjZWMzNjMyYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlT3ZlcmZs
b3dTY3JvbGxpbmdOb2RlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMuaApAQCAtNDgsNiArNDgs
NyBAQCBwcm90ZWN0ZWQ6CiAgICAgRmxvYXRQb2ludCBhZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNv
bnN0IEZsb2F0UG9pbnQmLCBTY3JvbGxDbGFtcGluZykgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICB2
b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlwZSwgU2Nyb2xsaW5nTGF5
ZXJQb3NpdGlvbkFjdGlvbikgZmluYWw7CisgICAgdm9pZCB3aWxsRG9Qcm9ncmFtbWF0aWNTY3Jv
bGwoY29uc3QgRmxvYXRQb2ludCYpIGZpbmFsOwogCiAgICAgdm9pZCByZXBvc2l0aW9uU2Nyb2xs
aW5nTGF5ZXJzKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCByZXBvc2l0aW9uUmVsYXRlZExheWVycygp
IG92ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFj
L1Njcm9sbGluZ1RyZWVPdmVyZmxvd1Njcm9sbGluZ05vZGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1h
Yy5tbQppbmRleCAxMDVkMDNkN2IyZmEzYTY3NmFjMjY2ZmFkZTBiNGFiOTk1YWQ0N2Q4Li4xOGE1
MjU2YzgzYTdmMzhlM2I3ZDA4NjBjZmM3OTZmOWFjYmQ5NGYzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5n
Tm9kZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xs
aW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYy5tbQpAQCAtODYsMTAgKzg2LDE1IEBAIFdo
ZWVsRXZlbnRIYW5kbGluZ1Jlc3VsdCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2Rl
TWFjOjpoYW5kbGVXaGVlbEV2ZW50CiAgICAgcmV0dXJuIFdoZWVsRXZlbnRIYW5kbGluZ1Jlc3Vs
dDo6cmVzdWx0KG1fZGVsZWdhdGUuaGFuZGxlV2hlZWxFdmVudCh3aGVlbEV2ZW50KSk7CiB9CiAK
K3ZvaWQgU2Nyb2xsaW5nVHJlZU92ZXJmbG93U2Nyb2xsaW5nTm9kZU1hYzo6d2lsbERvUHJvZ3Jh
bW1hdGljU2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHRhcmdldFNjcm9sbFBvc2l0aW9uKQorewor
ICAgIG1fZGVsZWdhdGUud2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKHRhcmdldFNjcm9sbFBvc2l0
aW9uKTsKK30KKwogdm9pZCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFjOjpj
dXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSwgU2Nyb2xs
aW5nTGF5ZXJQb3NpdGlvbkFjdGlvbiBhY3Rpb24pCiB7CiAgICAgU2Nyb2xsaW5nVHJlZU92ZXJm
bG93U2Nyb2xsaW5nTm9kZTo6Y3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChzY3JvbGxUeXBl
LCBhY3Rpb24pOwotICAgIG1fZGVsZWdhdGUuY3VycmVudFNjcm9sbFBvc2l0aW9uQ2hhbmdlZChz
Y3JvbGxUeXBlKTsKKyAgICBtX2RlbGVnYXRlLmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQo
KTsKIH0KIAogRmxvYXRQb2ludCBTY3JvbGxpbmdUcmVlT3ZlcmZsb3dTY3JvbGxpbmdOb2RlTWFj
OjphZGp1c3RlZFNjcm9sbFBvc2l0aW9uKGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3Jv
bGxDbGFtcGluZyBjbGFtcCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRlTWFjLmggYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05v
ZGVEZWxlZ2F0ZU1hYy5oCmluZGV4IDcxOGZkYTg0ZGQzNDkxZjNkMzEwZTg5MWY5YjVjMDAxMGZl
MmFhZDAuLjdhMGU3M2ExZWI2YTRhOWVlNzZiMmJjY2QzYWRlYTVhN2IxZDJmY2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL21hYy9TY3JvbGxpbmdUcmVlU2Nyb2xs
aW5nTm9kZURlbGVnYXRlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
bWFjL1Njcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMuaApAQCAtNTEsNyArNTEs
OCBAQCBwdWJsaWM6CiAKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1X
aGVlbEV2ZW50Jik7CiAgICAgCi0gICAgdm9pZCBjdXJyZW50U2Nyb2xsUG9zaXRpb25DaGFuZ2Vk
KFNjcm9sbFR5cGUpOworICAgIHZvaWQgd2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKGNvbnN0IEZs
b2F0UG9pbnQmKTsKKyAgICB2b2lkIGN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoKTsKIAog
I2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFwUG9p
bnRzKFNjcm9sbEV2ZW50QXhpcywgY29uc3QgVmVjdG9yPExheW91dFVuaXQ+JiwgY29uc3QgVmVj
dG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYpOwpAQCAtODgsNiArODksOCBAQCBw
cml2YXRlOgogICAgIHZvaWQgcnViYmVyQmFuZGluZ1N0YXRlQ2hhbmdlZChib29sKSBmaW5hbDsK
ICAgICB2b2lkIGFkanVzdFNjcm9sbFBvc2l0aW9uVG9Cb3VuZHNJZk5lY2Vzc2FyeSgpIGZpbmFs
OwogCisgICAgYm9vbCBzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29uc3Qg
RmxvYXRQb2ludCYpIGNvbnN0OworCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKICAgICBG
bG9hdFBvaW50IHNjcm9sbE9mZnNldCgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgaW1tZWRp
YXRlU2Nyb2xsT25BeGlzKFNjcm9sbEV2ZW50QXhpcywgZmxvYXQgZGVsdGEpIG92ZXJyaWRlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvbWFjL1Njcm9sbGluZ1Ry
ZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQppbmRleCA3
MTllMDlhNTAzZDExMTczNmI2NjdhMWExZDg2NTZmYzRmMGQ2ODk2Li4wY2M4MzAzNWVjZDNlNWRk
YWI3ZjcyMmRlNGJkNWY5M2UzYzdhYWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9tYWMvU2Nyb2xsaW5nVHJlZVNjcm9s
bGluZ05vZGVEZWxlZ2F0ZU1hYy5tbQpAQCAtMTYwLDkgKzE2MCw1NyBAQCBib29sIFNjcm9sbGlu
Z1RyZWVTY3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxh
dGZvcm1XaGVlbAogICAgIHJldHVybiBoYW5kbGVkOwogfQogCi12b2lkIFNjcm9sbGluZ1RyZWVT
Y3JvbGxpbmdOb2RlRGVsZWdhdGVNYWM6OmN1cnJlbnRTY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Ny
b2xsVHlwZSBzY3JvbGxUeXBlKQordm9pZCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVn
YXRlTWFjOjp3aWxsRG9Qcm9ncmFtbWF0aWNTY3JvbGwoY29uc3QgRmxvYXRQb2ludCYgdGFyZ2V0
UG9zaXRpb24pCiB7Ci0gICAgbV9zY3JvbGxDb250cm9sbGVyLnNjcm9sbFBvc2l0aW9uQ2hhbmdl
ZChzY3JvbGxUeXBlKTsKKyAgICBpZiAoc2Nyb2xsUG9zaXRpb25Jc05vdFJ1YmJlcmJhbmRpbmdF
ZGdlKHRhcmdldFBvc2l0aW9uKSkgeworICAgICAgICBMT0coU2Nyb2xsaW5nLCAiU2Nyb2xsaW5n
VHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6d2lsbERvUHJvZ3JhbW1hdGljU2Nyb2xsKCkg
LSBzY3JvbGxpbmcgYXdheSBmcm9tIHJ1YmJlcmJhbmRpbmcgZWRnZSBzbyBzdG9wcGluZyBydWJi
ZXJiYW5kaW5nIik7CisgICAgICAgIG1fc2Nyb2xsQ29udHJvbGxlci5zdG9wUnViYmVyYmFuZGlu
ZygpOworICAgIH0KK30KKworYm9vbCBTY3JvbGxpbmdUcmVlU2Nyb2xsaW5nTm9kZURlbGVnYXRl
TWFjOjpzY3JvbGxQb3NpdGlvbklzTm90UnViYmVyYmFuZGluZ0VkZ2UoY29uc3QgRmxvYXRQb2lu
dCYgdGFyZ2V0UG9zaXRpb24pIGNvbnN0Cit7CisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQor
ICAgIGlmICghbV9zY3JvbGxDb250cm9sbGVyLmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSkKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byBydWJiZXJiYW5kaW5nRWRnZXMgPSBtX3Nj
cm9sbENvbnRyb2xsZXIucnViYmVyQmFuZGluZ0VkZ2VzKCk7CisKKyAgICBhdXRvIG1pbmltdW1T
Y3JvbGxQb3NpdGlvbiA9IHRoaXMtPm1pbmltdW1TY3JvbGxQb3NpdGlvbigpOworICAgIGF1dG8g
bWF4aW11bVNjcm9sbFBvc2l0aW9uID0gdGhpcy0+bWF4aW11bVNjcm9sbFBvc2l0aW9uKCk7CisK
KyAgICBmb3IgKGF1dG8gc2lkZSA6IGFsbEJveFNpZGVzKSB7CisgICAgICAgIGlmICghcnViYmVy
YmFuZGluZ0VkZ2VzW3NpZGVdKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgc3dp
dGNoIChzaWRlKSB7CisgICAgICAgIGNhc2UgQm94U2lkZTo6VG9wOgorICAgICAgICAgICAgaWYg
KHRhcmdldFBvc2l0aW9uLnkoKSAhPSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24ueSgpKQorICAgICAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
Qm94U2lkZTo6UmlnaHQ6CisgICAgICAgICAgICBpZiAodGFyZ2V0UG9zaXRpb24ueCgpICE9IG1h
eGltdW1TY3JvbGxQb3NpdGlvbi54KCkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBCb3hTaWRlOjpCb3R0b206CisgICAgICAg
ICAgICBpZiAodGFyZ2V0UG9zaXRpb24ueSgpICE9IG1heGltdW1TY3JvbGxQb3NpdGlvbi55KCkp
CisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSBCb3hTaWRlOjpMZWZ0OgorICAgICAgICAgICAgaWYgKHRhcmdldFBvc2l0aW9uLngo
KSAhPSBtaW5pbXVtU2Nyb2xsUG9zaXRpb24ueCgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisjZWxzZQorICAgIFVO
VVNFRF9QQVJBTSh0YXJnZXRQb3NpdGlvbik7CisjZW5kaWYKKyAgICByZXR1cm4gZmFsc2U7Cit9
CisKK3ZvaWQgU2Nyb2xsaW5nVHJlZVNjcm9sbGluZ05vZGVEZWxlZ2F0ZU1hYzo6Y3VycmVudFNj
cm9sbFBvc2l0aW9uQ2hhbmdlZCgpCit7CisgICAgbV9zY3JvbGxDb250cm9sbGVyLnNjcm9sbFBv
c2l0aW9uQ2hhbmdlZCgpOwogfQogCiBib29sIFNjcm9sbGluZ1RyZWVTY3JvbGxpbmdOb2RlRGVs
ZWdhdGVNYWM6OmlzUnViYmVyQmFuZEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUmVjdEVkZ2VzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9SZWN0RWRnZXMuaAppbmRleCA3NmMzOTdlYzFlNzU1ZGE1OWNjYTUzODlhZjk0NzRjZWQ1YjEx
NWNlLi44ODNlY2FlOWUxNTgyMjAzNGYyMTdhNTcwMTQ3Mzg1M2EwYjA1NDY4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9SZWN0RWRnZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9SZWN0RWRnZXMuaApAQCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIldyaXRp
bmdNb2RlLmgiCiAjaW5jbHVkZSA8YXJyYXk+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5oPgor
I2luY2x1ZGUgPHd0Zi90ZXh0L1RleHRTdHJlYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CkBAIC05MSw0ICs5MiwxMiBAQCBwcml2YXRlOgogICAgIHN0ZDo6YXJyYXk8VCwgND4gbV9zaWRl
cyB7IH07CiB9OwogCisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZWN0RWRnZXM8VD4mIGVkZ2VzKQoreworICAgIHRz
IDw8ICJbdG9wICIgPDwgZWRnZXMudG9wKCkgPDwgIiByaWdodCAiIDw8IGVkZ2VzLnJpZ2h0KCkg
PDwgIiBib3R0b20gIiA8PCBlZGdlcy5ib3R0b20oKSA8PCAiIGxlZnQgIiA8PCBlZGdlcy5sZWZ0
KCkgPDwgIl0iOworICAgIHJldHVybiB0czsKK30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDljMWM3YTZjNzBiNmUwNzRiNmI1YTM2M2JjYWMz
Y2MwY2JiNDJhNDkuLmUxZjc5NTYzODhmNWE4MGVjYTg5ZWY2YjdiNTkzNmMzMmJhOTc5ZWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTIzNSw3ICsy
MzUsNyBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yOjpub3RpZnlQb3NpdGlvbkNoYW5nZWQoY29uc3Qg
RmxvYXRTaXplJiBkZWx0YSkKICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbE9mZnNldEZy
b21BbmltYXRpb24obV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24ocm91
bmRlZEludFBvaW50KGN1cnJlbnRQb3NpdGlvbigpKSkpOwogCiAjaWYgRU5BQkxFKENTU19TQ1JP
TExfU05BUCkgfHwgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQotICAgIG1fc2Nyb2xsQ29udHJvbGxl
ci5zY3JvbGxQb3NpdGlvbkNoYW5nZWQoU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljKTsKKyAgICBt
X3Njcm9sbENvbnRyb2xsZXIuc2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCk7CiAjZW5kaWYKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5oCmlu
ZGV4IGYyNTVjOTk1ODUzZTU2MWE3NWFlZDg3NmIyZjAxYzljMzliZDFhM2IuLmZiMmFhODYzN2Nm
OGM3MzBlZWMxZTQzM2ZkNmFiMDEwOGZkOWIxMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9TY3JvbGxDb250cm9sbGVyLmgKQEAgLTE0NSwxMyArMTQ1LDE5IEBAIHB1
YmxpYzoKICAgICBib29sIGhhbmRsZVdoZWVsRXZlbnQoY29uc3QgUGxhdGZvcm1XaGVlbEV2ZW50
Jik7CiAjZW5kaWYKIAorICAgIHZvaWQgc3RvcFJ1YmJlcmJhbmRpbmcoKTsKKwogICAgIGJvb2wg
dXNlc1Njcm9sbFNuYXAoKSBjb25zdDsKIAogICAgIGJvb2wgaXNVc2VyU2Nyb2xsSW5Qcm9ncmVz
cygpIGNvbnN0OwogICAgIGJvb2wgaXNSdWJiZXJCYW5kSW5Qcm9ncmVzcygpIGNvbnN0OwogICAg
IGJvb2wgaXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0OwogICAgIAotICAgIHZvaWQgc2Ny
b2xsUG9zaXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUpOworI2lmIEVOQUJMRShSVUJCRVJfQkFORElO
RykKKyAgICBSZWN0RWRnZXM8Ym9vbD4gcnViYmVyQmFuZGluZ0VkZ2VzKCkgY29uc3QgeyByZXR1
cm4gbV9ydWJiZXJCYW5kaW5nRWRnZXM7IH0KKyNlbmRpZgorCisgICAgdm9pZCBzY3JvbGxQb3Np
dGlvbkNoYW5nZWQoKTsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCiAgICAgdm9pZCB1
cGRhdGVTY3JvbGxTbmFwUG9pbnRzKFNjcm9sbEV2ZW50QXhpcywgY29uc3QgVmVjdG9yPExheW91
dFVuaXQ+JiwgY29uc3QgVmVjdG9yPFNjcm9sbE9mZnNldFJhbmdlPExheW91dFVuaXQ+PiYpOwpA
QCAtMTc4LDggKzE4NCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICNpZiBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCi0gICAgdm9pZCBzdG9wUnViYmVyYmFuZGluZygpOwotCiAgICAgdm9pZCBzdGFy
dFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKICAgICB2b2lkIHN0b3BTbmFwUnViYmVyYmFuZFRpbWVy
KCk7CiAgICAgdm9pZCBzbmFwUnViYmVyQmFuZCgpOwpAQCAtMTkxLDggKzE5NSw2IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBpc1J1YmJlckJhbmRJblByb2dyZXNzSW50ZXJuYWwoKSBjb25zdDsKICAg
ICB2b2lkIHVwZGF0ZVJ1YmJlckJhbmRpbmdTdGF0ZSgpOwogICAgIHZvaWQgdXBkYXRlUnViYmVy
QmFuZGluZ0VkZ2VzKEludFNpemUgY2xpZW50U3RyZXRjaCk7Ci0gICAgCi0gICAgYm9vbCBzY3Jv
bGxlZFRvUnViYmVyYmFuZGluZ0VkZ2UoKSBjb25zdDsKICNlbmRpZgogCiAjaWYgRU5BQkxFKENT
U19TQ1JPTExfU05BUCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Njcm9sbENvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9TY3Jv
bGxDb250cm9sbGVyLm1tCmluZGV4IDdjMTcwNWMyYTNkOWVlY2IwZGY1N2U4MDRiY2QwYTRhMzEy
M2NkMTEuLjVhNGE4ZDcxMzUzNDlkMDMyYWRkMmMzODViOTFiZTg0N2NmMmUzYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Njcm9sbENvbnRyb2xsZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvU2Nyb2xsQ29udHJvbGxlci5tbQpAQCAt
NDU5LDE1ICs0NTksMTAgQEAgdm9pZCBTY3JvbGxDb250cm9sbGVyOjpzbmFwUnViYmVyQmFuZFRp
bWVyRmlyZWQoKQogfQogI2VuZGlmCiAKLXZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6c2Nyb2xsUG9z
aXRpb25DaGFuZ2VkKFNjcm9sbFR5cGUgc2Nyb2xsVHlwZSkKK3ZvaWQgU2Nyb2xsQ29udHJvbGxl
cjo6c2Nyb2xsUG9zaXRpb25DaGFuZ2VkKCkKIHsKICNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcp
Ci0gICAgaWYgKHNjcm9sbFR5cGUgPT0gU2Nyb2xsVHlwZTo6UHJvZ3JhbW1hdGljICYmICFzY3Jv
bGxlZFRvUnViYmVyYmFuZGluZ0VkZ2UoKSkKLSAgICAgICAgc3RvcFJ1YmJlcmJhbmRpbmcoKTsK
LQogICAgIHVwZGF0ZVJ1YmJlckJhbmRpbmdTdGF0ZSgpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0oc2Nyb2xsVHlwZSk7CiAjZW5kaWYKIH0KIApAQCAtNTEwLDE3ICs1MDUsMTkgQEAgYm9vbCBT
Y3JvbGxDb250cm9sbGVyOjppc1Njcm9sbFNuYXBJblByb2dyZXNzKCkgY29uc3QKICAgICByZXR1
cm4gZmFsc2U7CiB9CiAKLSNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiB2b2lkIFNjcm9sbENv
bnRyb2xsZXI6OnN0b3BSdWJiZXJiYW5kaW5nKCkKIHsKKyNpZiBFTkFCTEUoUlVCQkVSX0JBTkRJ
TkcpCiAgICAgc3RvcFNuYXBSdWJiZXJiYW5kVGltZXIoKTsKICAgICBtX3N0cmV0Y2hTY3JvbGxG
b3JjZSA9IHsgfTsKICAgICBtX3N0YXJ0VGltZSA9IHsgfTsKICAgICBtX3N0YXJ0U3RyZXRjaCA9
IHsgfTsKICAgICBtX29yaWdWZWxvY2l0eSA9IHsgfTsKICAgICB1cGRhdGVSdWJiZXJCYW5kaW5n
U3RhdGUoKTsKKyNlbmRpZgogfQogCisjaWYgRU5BQkxFKFJVQkJFUl9CQU5ESU5HKQogdm9pZCBT
Y3JvbGxDb250cm9sbGVyOjpzdGFydFNuYXBSdWJiZXJiYW5kVGltZXIoKQogewogICAgIG1fY2xp
ZW50LndpbGxTdGFydFJ1YmJlckJhbmRTbmFwQW5pbWF0aW9uKCk7CkBAIC02MDgsMTggKzYwNSw2
IEBAIHZvaWQgU2Nyb2xsQ29udHJvbGxlcjo6dXBkYXRlUnViYmVyQmFuZGluZ0VkZ2VzKEludFNp
emUgY2xpZW50U3RyZXRjaCkKICAgICBtX3J1YmJlckJhbmRpbmdFZGdlcy5zZXRCb3R0b20oY2xp
ZW50U3RyZXRjaC5oZWlnaHQoKSA+IDApOwogfQogCi1ib29sIFNjcm9sbENvbnRyb2xsZXI6OnNj
cm9sbGVkVG9SdWJiZXJiYW5kaW5nRWRnZSgpIGNvbnN0Ci17Ci0gICAgYXV0byBwaW5uZWRFZGdl
cyA9IG1fY2xpZW50LmVkZ2VQaW5uZWRTdGF0ZSgpOwotICAgIAotICAgIGZvciAoYXV0byBzaWRl
IDogYWxsQm94U2lkZXMpIHsKLSAgICAgICAgaWYgKG1fcnViYmVyQmFuZGluZ0VkZ2VzW3NpZGVd
ICYmICFwaW5uZWRFZGdlc1tzaWRlXSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9
Ci0gICAgCi0gICAgcmV0dXJuIHRydWU7Ci19Ci0KICNlbmRpZiAvLyBFTkFCTEUoUlVCQkVSX0JB
TkRJTkcpCiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>