<?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>278519</bug_id>
          
          <creation_ts>2024-08-22 07:44:47 -0700</creation_ts>
          <short_desc>[Cleanup] Move ruby overhang adjustment logic to RubyFormattingContext</short_desc>
          <delta_ts>2024-08-22 10:11:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2054696</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2024-08-22 07:44:47 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2054697</commentid>
    <comment_count>1</comment_count>
      <attachid>472264</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-08-22 07:45:58 -0700</bug_when>
    <thetext>Created attachment 472264
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2054707</commentid>
    <comment_count>2</comment_count>
      <attachid>472265</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-08-22 08:16:48 -0700</bug_when>
    <thetext>Created attachment 472265
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2054714</commentid>
    <comment_count>3</comment_count>
      <attachid>472266</attachid>
    <who name="alan">zalan</who>
    <bug_when>2024-08-22 08:53:35 -0700</bug_when>
    <thetext>Created attachment 472266
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2054735</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2024-08-22 10:10:29 -0700</bug_when>
    <thetext>Committed 282621@main (240586229262): &lt;https://commits.webkit.org/282621@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 472266.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2054736</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2024-08-22 10:11:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/134508337&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472264</attachid>
            <date>2024-08-22 07:45:58 -0700</date>
            <delta_ts>2024-08-22 08:16:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-278519-20240822074557.patch</filename>
            <type>text/plain</type>
            <size>14280</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1ODZlNmFiOGEyZmEwNTVkYzhiMzYyMDI5MDJkNWRjODg1MjMzNjUyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjIgQXVnIDIwMjQgMDc6NDU6MDUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBydWJ5IG92ZXJoYW5nIGFkanVzdG1lbnQgbG9naWMgdG8KIFJ1YnlGb3JtYXR0aW5n
Q29udGV4dCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NTE5CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OnByb2Nl
c3NSdWJ5Q29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6YXBwbHlSdWJ5T3ZlcmhhbmcpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNw
cDoKKFdlYkNvcmU6OkxheW91dDo6UnVieUZvcm1hdHRpbmdDb250ZXh0OjphcHBseVJ1YnlPdmVy
aGFuZyk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
cnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRleHQuaDoKLS0tCiAuLi4vZGlzcGxheS9JbmxpbmVEaXNw
bGF5Q29udGVudEJ1aWxkZXIuY3BwICAgfCA3MSArLS0tLS0tLS0tLS0tLS0tLS0tCiAuLi4vaW5s
aW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcCAgICAgfCA2NyArKysrKysrKysrKysr
KysrKwogLi4uL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5oICAgICAgIHwgIDUg
Ky0KIDMgZmlsZXMgY2hhbmdlZCwgNzEgaW5zZXJ0aW9ucygrKSwgNzIgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDZhZjRhZDFjYTIyYy4uYTEwNTc2OTlhZTY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9k
aXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXIuY3BwCkBAIC0xMTM3LDcgKzExMzcsNyBAQCB2b2lkIElubGluZURpc3Bs
YXlDb250ZW50QnVpbGRlcjo6cHJvY2Vzc1J1YnlDb250ZW50KElubGluZURpc3BsYXk6OkJveGVz
JiBkaXNwbAogCiAgICAgICAgIGluZGV4ID0gcHJvY2Vzc1J1YnlCYXNlKGluZGV4LCBkaXNwbGF5
Qm94ZXMsIGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdCwgcnVieUJhc2VTdGFydEluZGV4
TGlzdFdpdGhBbm5vdGF0aW9uKTsKICAgICB9Ci0gICAgYXBwbHlSdWJ5T3ZlcmhhbmcoZGlzcGxh
eUJveGVzLCBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpOworICAgIFJ1YnlGb3JtYXR0
aW5nQ29udGV4dDo6YXBwbHlSdWJ5T3ZlcmhhbmcoZm9ybWF0dGluZ0NvbnRleHQoKSwgbGluZUJv
eCgpLmxvZ2ljYWxSZWN0KCkuaGVpZ2h0KCksIGRpc3BsYXlCb3hlcywgaW50ZXJsaW5lYXJSdWJ5
Q29sdW1uUmFuZ2VMaXN0KTsKIAogICAgIGF1dG8gbGluZUJveExvZ2ljYWxSZWN0ID0gbGluZUJv
eCgpLmxvZ2ljYWxSZWN0KCk7CiAgICAgYXV0byB3cml0aW5nTW9kZSA9IHJvb3QoKS5zdHlsZSgp
LndyaXRpbmdNb2RlKCk7CkBAIC0xMTU1LDc1ICsxMTU1LDYgQEAgdm9pZCBJbmxpbmVEaXNwbGF5
Q29udGVudEJ1aWxkZXI6OnByb2Nlc3NSdWJ5Q29udGVudChJbmxpbmVEaXNwbGF5OjpCb3hlcyYg
ZGlzcGwKICAgICB9CiB9CiAKLXZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjphcHBs
eVJ1YnlPdmVyaGFuZyhJbmxpbmVEaXNwbGF5OjpCb3hlcyYgZGlzcGxheUJveGVzLCBjb25zdCBW
ZWN0b3I8V1RGOjpSYW5nZTxzaXplX3Q+PiYgaW50ZXJsaW5lYXJSdWJ5Q29sdW1uUmFuZ2VMaXN0
KQotewotICAgIC8vIEZJWE1FOiBXZSBhcmUgb25seSBzdXBwb3NlZCB0byBhcHBseSBvdmVyaGFu
ZyB3aGVuIGFubm90YXRpb24gYm94IGlzIHdpZGVyIHRoYW4gYmFzZSwgYnV0IGF0IHRoaXMgcG9p
bnQgd2UgY2FuJ3QgdGVsbCAodGhpcyBuZWVkcyB0byBiZSBhZGRyZXNzZWQgdG9nZXRoZXIgd2l0
aCBhbm5vdGF0aW9uIGJveCBzaXppbmcpLgotICAgIGlmIChpbnRlcmxpbmVhclJ1YnlDb2x1bW5S
YW5nZUxpc3QuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGlzSG9yaXpv
bnRhbFdyaXRpbmdNb2RlID0gcm9vdCgpLnN0eWxlKCkuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KTsKLSAgICBhdXRvIGxpbmVMb2dpY2FsSGVpZ2h0ID0gbGluZUJveCgpLmxvZ2ljYWxSZWN0KCku
aGVpZ2h0KCk7Ci0gICAgYXV0byYgZm9ybWF0dGluZ0NvbnRleHQgPSB0aGlzLT5mb3JtYXR0aW5n
Q29udGV4dCgpOwotICAgIGZvciAoYXV0byBzdGFydEVuZFBhaXIgOiBpbnRlcmxpbmVhclJ1YnlD
b2x1bW5SYW5nZUxpc3QpIHsKLSAgICAgICAgQVNTRVJUKHN0YXJ0RW5kUGFpcik7Ci0gICAgICAg
IGlmIChzdGFydEVuZFBhaXIuZGlzdGFuY2UoKSA9PSAxKQotICAgICAgICAgICAgY29udGludWU7
Ci0KLSAgICAgICAgYXV0byBydWJ5QmFzZVN0YXJ0ID0gc3RhcnRFbmRQYWlyLmJlZ2luKCk7Ci0g
ICAgICAgIGF1dG8mIHJ1YnlCYXNlTGF5b3V0Qm94ID0gZGlzcGxheUJveGVzW3J1YnlCYXNlU3Rh
cnRdLmxheW91dEJveCgpOwotICAgICAgICBBU1NFUlQocnVieUJhc2VMYXlvdXRCb3guaXNSdWJ5
QmFzZSgpKTsKLSAgICAgICAgQVNTRVJUKFJ1YnlGb3JtYXR0aW5nQ29udGV4dDo6aGFzSW50ZXJs
aW5lYXJBbm5vdGF0aW9uKHJ1YnlCYXNlTGF5b3V0Qm94KSk7Ci0KLSAgICAgICAgYXV0byBiZWZv
cmVPdmVyaGFuZyA9IFJ1YnlGb3JtYXR0aW5nQ29udGV4dDo6b3ZlcmhhbmdGb3JBbm5vdGF0aW9u
QmVmb3JlKHJ1YnlCYXNlTGF5b3V0Qm94LCBydWJ5QmFzZVN0YXJ0LCBkaXNwbGF5Qm94ZXMsIGxp
bmVMb2dpY2FsSGVpZ2h0LCBmb3JtYXR0aW5nQ29udGV4dCk7Ci0gICAgICAgIGF1dG8gYWZ0ZXJP
dmVyaGFuZyA9IFJ1YnlGb3JtYXR0aW5nQ29udGV4dDo6b3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0
ZXIocnVieUJhc2VMYXlvdXRCb3gsIHsgcnVieUJhc2VTdGFydCwgc3RhcnRFbmRQYWlyLmVuZCgp
IH0sIGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIGZvcm1hdHRpbmdDb250ZXh0KTsK
LQotICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwcmVmIGJvdHRs
ZW5lY2ssIG1ha2Ugc3VyZSB3ZSBwYXNzIGluIHRoZSBhY2N1bXVsYXRlZCBzaGlmdCB0byBvdmVy
aGFuZ0ZvckFubm90YXRpb25CZWZvcmUvYWZ0ZXIgYW5kCi0gICAgICAgIC8vIG9mZnNldCBhbGwg
Ym94IGdlb21ldHJ5IGFzIHdlIGNoZWNrIGZvciBvdmVybGFwLgotICAgICAgICBhdXRvIG1vdmVC
b3hSYW5nZVRvVmlzdWFsTGVmdCA9IFsmXShhdXRvIHN0YXJ0LCBhdXRvIGVuZCwgYXV0byBzaGlm
dFZhbHVlKSB7Ci0gICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFydDsgaW5kZXggPD0g
ZW5kOyArK2luZGV4KSB7Ci0gICAgICAgICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGRpc3Bs
YXlCb3hlc1tpbmRleF07Ci0gICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUg
PyBkaXNwbGF5Qm94Lm1vdmVIb3Jpem9udGFsbHkoLXNoaWZ0VmFsdWUpIDogZGlzcGxheUJveC5t
b3ZlVmVydGljYWxseSgtc2hpZnRWYWx1ZSk7Ci0KLSAgICAgICAgICAgICAgICBhdXRvJiBsYXlv
dXRCb3ggPSBkaXNwbGF5Qm94LmxheW91dEJveCgpOwotICAgICAgICAgICAgICAgIGlmIChkaXNw
bGF5Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiAhZGlzcGxheUJveC5pc1Jvb3RJbmxpbmVCb3go
KSkKLSAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3go
bGF5b3V0Qm94KS5tb3ZlSG9yaXpvbnRhbGx5KExheW91dFVuaXQgeyAtc2hpZnRWYWx1ZSB9KTsK
LQotICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNSdWJ5QmFzZSgpICYmIGxheW91dEJv
eC5hc3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkKLSAgICAgICAgICAgICAgICAgICAgZm9y
bWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5hc3NvY2lhdGVkUnVieUFu
bm90YXRpb25Cb3goKSkubW92ZUhvcml6b250YWxseShMYXlvdXRVbml0IHsgLXNoaWZ0VmFsdWUg
fSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH07Ci0gICAgICAgIGF1dG8gaGFzSnVzdGlmaWVk
QWRqYWNlbnRBZnRlckNvbnRlbnQgPSBbJl0gewotICAgICAgICAgICAgaWYgKHN0YXJ0RW5kUGFp
ci5lbmQoKSA9PSBkaXNwbGF5Qm94ZXMuc2l6ZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgICAgIGF1dG8mIGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94ID0gZGlzcGxh
eUJveGVzW3N0YXJ0RW5kUGFpci5lbmQoKV07Ci0gICAgICAgICAgICBpZiAoYWZ0ZXJSdWJ5QmFz
ZURpc3BsYXlCb3gubGF5b3V0Qm94KCkuaXNSdWJ5QmFzZSgpKSB7Ci0gICAgICAgICAgICAgICAg
Ly8gQWRqYWNlbnQgY29udGVudCBpcyBhbHNvIGEgcnVieSBiYXNlLgotICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHJldHVybiAhIWFmdGVy
UnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpLmhvcml6b250YWxFeHBhbnNpb247Ci0gICAg
ICAgIH0oKTsKLQotICAgICAgICBpZiAoYmVmb3JlT3ZlcmhhbmcpIHsKLSAgICAgICAgICAgIC8v
IFdoZW4gImJlZm9yZSIgYWRqYWNlbnQgY29udGVudCBzbGlnaHRseSBwdWxscyB0aGUgcmVzdCBv
ZiB0aGUgY29udGVudCBvbiB0aGUgbGluZSBsZWZ0d2FyZCwganVzdGlmeSBjb250ZW50IHNob3Vs
ZCBzdGF5IGludGFjdC4KLSAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRvVmlzdWFsTGVmdChydWJ5
QmFzZVN0YXJ0LCBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVudCA/IHN0YXJ0RW5kUGFp
ci5lbmQoKSA6IGRpc3BsYXlCb3hlcy5zaXplKCkgLSAxLCBiZWZvcmVPdmVyaGFuZyk7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKGFmdGVyT3ZlcmhhbmcpIHsKLSAgICAgICAgICAgIC8vIE5vcm1h
bGx5IHdlIHNoaWZ0IGFsbCB0aGUgImFmdGVyIiBib3hlcyB0byB0aGUgbGVmdCBoZXJlIGFzIG9u
ZSBtb25vbGl0aGljIGNvbnRlbnQKLSAgICAgICAgICAgIC8vIGJ1dCBpbiBjYXNlIG9mIGp1c3Rp
ZmllZCBhbGlnbm1lbnQgd2UgY2FuIG9ubHkgbW92ZSB0aGUgYWRqYWNlbnQgcnVuIHVuZGVyIHRo
ZSBhbm5vdGF0aW9uCi0gICAgICAgICAgICAvLyBhbmQgZXhwYW5kIHRoZSBqdXN0aWZpZWQgc3Bh
Y2UgdG8ga2VlcCB0aGUgcmVzdCBvZiB0aGUgcnVucyBzdGF0aW9uYXJ5LgotICAgICAgICAgICAg
aWYgKGhhc0p1c3RpZmllZEFkamFjZW50QWZ0ZXJDb250ZW50KSB7Ci0gICAgICAgICAgICAgICAg
YXV0byYgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94ZXNbc3RhcnRFbmRQYWly
LmVuZCgpXTsKLSAgICAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbiA9IGFmdGVyUnVieUJhc2VE
aXNwbGF5Qm94LmV4cGFuc2lvbigpOwotICAgICAgICAgICAgICAgIGF1dG8gaW5mbGF0ZVZhbHVl
ID0gYWZ0ZXJPdmVyaGFuZyArIGJlZm9yZU92ZXJoYW5nOwotICAgICAgICAgICAgICAgIGFmdGVy
UnVieUJhc2VEaXNwbGF5Qm94LnNldEV4cGFuc2lvbih7IGV4cGFuc2lvbi5iZWhhdmlvciwgZXhw
YW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gKyBpbmZsYXRlVmFsdWUgfSk7Ci0gICAgICAgICAg
ICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBhZnRlclJ1YnlCYXNlRGlzcGxheUJveC5l
eHBhbmRIb3Jpem9udGFsbHkoaW5mbGF0ZVZhbHVlKSA6IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94
LmV4cGFuZFZlcnRpY2FsbHkoaW5mbGF0ZVZhbHVlKTsKLSAgICAgICAgICAgICAgICBtb3ZlQm94
UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRFbmRQYWlyLmVuZCgpLCBzdGFydEVuZFBhaXIuZW5kKCks
IGFmdGVyT3ZlcmhhbmcpOwotICAgICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICAgICAgbW92
ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHN0YXJ0RW5kUGFpci5lbmQoKSwgZGlzcGxheUJveGVzLnNp
emUoKSAtIDEsIGFmdGVyT3ZlcmhhbmcpOwotICAgICAgICB9Ci0gICAgfQotfQotCiB2b2lkIElu
bGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6c2V0SW5saW5lQm94R2VvbWV0cnkoTGF5b3V0OjpC
b3hHZW9tZXRyeSYgYm94R2VvbWV0cnksIGNvbnN0IElubGluZVJlY3QmIGxvZ2ljYWxSZWN0LCBi
b29sIGlzRmlyc3RJbmxpbmVCb3hGcmFnbWVudCkKIHsKICAgICBhdXRvIGVuY2xvc2luZ0xvZ2lj
YWxSZWN0ID0gUmVjdCB7IHRvTGF5b3V0UG9pbnQobG9naWNhbFJlY3QudG9wTGVmdCgpKSwgeyBM
YXlvdXRVbml0Ojpmcm9tRmxvYXRDZWlsKGxvZ2ljYWxSZWN0LndpZHRoKCkpLCBMYXlvdXRVbml0
Ojpmcm9tRmxvYXRDZWlsKGxvZ2ljYWxSZWN0LmhlaWdodCgpKSB9IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNWVlNGFk
NjIyMzY2Li45ZmI0ZmQzNDMwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5
L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTU5Miw2ICs1OTIsNzMgQEAgYm9vbCBSdWJ5
Rm9ybWF0dGluZ0NvbnRleHQ6Omhhc0ludGVyQ2hhcmFjdGVyQW5ub3RhdGlvbihjb25zdCBCb3gm
IHJ1YnlCYXNlTGF5b3UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVieUZvcm1hdHRp
bmdDb250ZXh0OjphcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgcGFy
ZW50Rm9ybWF0dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQs
IElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlJh
bmdlPHNpemVfdD4+JiBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpCit7CisgICAgLy8g
RklYTUU6IFdlIGFyZSBvbmx5IHN1cHBvc2VkIHRvIGFwcGx5IG92ZXJoYW5nIHdoZW4gYW5ub3Rh
dGlvbiBib3ggaXMgd2lkZXIgdGhhbiBiYXNlLCBidXQgYXQgdGhpcyBwb2ludCB3ZSBjYW4ndCB0
ZWxsICh0aGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCB0b2dldGhlciB3aXRoIGFubm90YXRpb24g
Ym94IHNpemluZykuCisgICAgaWYgKGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPSBwYXJlbnRGb3JtYXR0aW5nQ29udGV4dC5yb290KCkuc3R5bGUoKS5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpOworICAgIGZvciAoYXV0byBzdGFydEVuZFBhaXIgOiBpbnRlcmxpbmVhclJ1
YnlDb2x1bW5SYW5nZUxpc3QpIHsKKyAgICAgICAgQVNTRVJUKHN0YXJ0RW5kUGFpcik7CisgICAg
ICAgIGlmIChzdGFydEVuZFBhaXIuZGlzdGFuY2UoKSA9PSAxKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgYXV0byBydWJ5QmFzZVN0YXJ0ID0gc3RhcnRFbmRQYWlyLmJlZ2luKCk7
CisgICAgICAgIGF1dG8mIHJ1YnlCYXNlTGF5b3V0Qm94ID0gZGlzcGxheUJveGVzW3J1YnlCYXNl
U3RhcnRdLmxheW91dEJveCgpOworICAgICAgICBBU1NFUlQocnVieUJhc2VMYXlvdXRCb3guaXNS
dWJ5QmFzZSgpKTsKKyAgICAgICAgQVNTRVJUKGhhc0ludGVybGluZWFyQW5ub3RhdGlvbihydWJ5
QmFzZUxheW91dEJveCkpOworCisgICAgICAgIGF1dG8gYmVmb3JlT3ZlcmhhbmcgPSBvdmVyaGFu
Z0ZvckFubm90YXRpb25CZWZvcmUocnVieUJhc2VMYXlvdXRCb3gsIHJ1YnlCYXNlU3RhcnQsIGRp
c3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0KTsK
KyAgICAgICAgYXV0byBhZnRlck92ZXJoYW5nID0gb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0ZXIo
cnVieUJhc2VMYXlvdXRCb3gsIHsgcnVieUJhc2VTdGFydCwgc3RhcnRFbmRQYWlyLmVuZCgpIH0s
IGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0
KTsKKworICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwcmVmIGJv
dHRsZW5lY2ssIG1ha2Ugc3VyZSB3ZSBwYXNzIGluIHRoZSBhY2N1bXVsYXRlZCBzaGlmdCB0byBv
dmVyaGFuZ0ZvckFubm90YXRpb25CZWZvcmUvYWZ0ZXIgYW5kCisgICAgICAgIC8vIG9mZnNldCBh
bGwgYm94IGdlb21ldHJ5IGFzIHdlIGNoZWNrIGZvciBvdmVybGFwLgorICAgICAgICBhdXRvIG1v
dmVCb3hSYW5nZVRvVmlzdWFsTGVmdCA9IFsmXShhdXRvIHN0YXJ0LCBhdXRvIGVuZCwgYXV0byBz
aGlmdFZhbHVlKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFydDsgaW5kZXgg
PD0gZW5kOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGRp
c3BsYXlCb3hlc1tpbmRleF07CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPyBkaXNwbGF5Qm94Lm1vdmVIb3Jpem9udGFsbHkoLXNoaWZ0VmFsdWUpIDogZGlzcGxheUJv
eC5tb3ZlVmVydGljYWxseSgtc2hpZnRWYWx1ZSk7CisKKyAgICAgICAgICAgICAgICBhdXRvJiBs
YXlvdXRCb3ggPSBkaXNwbGF5Qm94LmxheW91dEJveCgpOworICAgICAgICAgICAgICAgIGlmIChk
aXNwbGF5Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiAhZGlzcGxheUJveC5pc1Jvb3RJbmxpbmVC
b3goKSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KS5tb3ZlSG9yaXpvbnRhbGx5KExheW91dFVuaXQgeyAtc2hpZnRW
YWx1ZSB9KTsKKworICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNSdWJ5QmFzZSgpICYm
IGxheW91dEJveC5hc3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkKKyAgICAgICAgICAgICAg
ICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5h
c3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkubW92ZUhvcml6b250YWxseShMYXlvdXRVbml0
IHsgLXNoaWZ0VmFsdWUgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGF1
dG8gaGFzSnVzdGlmaWVkQWRqYWNlbnRBZnRlckNvbnRlbnQgPSBbJl0geworICAgICAgICAgICAg
aWYgKHN0YXJ0RW5kUGFpci5lbmQoKSA9PSBkaXNwbGF5Qm94ZXMuc2l6ZSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGF1dG8mIGFmdGVyUnVieUJhc2VEaXNw
bGF5Qm94ID0gZGlzcGxheUJveGVzW3N0YXJ0RW5kUGFpci5lbmQoKV07CisgICAgICAgICAgICBp
ZiAoYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3gubGF5b3V0Qm94KCkuaXNSdWJ5QmFzZSgpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWRqYWNlbnQgY29udGVudCBpcyBhbHNvIGEgcnVieSBiYXNlLgor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiAhIWFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpLmhvcml6b250YWxF
eHBhbnNpb247CisgICAgICAgIH0oKTsKKworICAgICAgICBpZiAoYmVmb3JlT3ZlcmhhbmcpIHsK
KyAgICAgICAgICAgIC8vIFdoZW4gImJlZm9yZSIgYWRqYWNlbnQgY29udGVudCBzbGlnaHRseSBw
dWxscyB0aGUgcmVzdCBvZiB0aGUgY29udGVudCBvbiB0aGUgbGluZSBsZWZ0d2FyZCwganVzdGlm
eSBjb250ZW50IHNob3VsZCBzdGF5IGludGFjdC4KKyAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRv
VmlzdWFsTGVmdChydWJ5QmFzZVN0YXJ0LCBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVu
dCA/IHN0YXJ0RW5kUGFpci5lbmQoKSA6IGRpc3BsYXlCb3hlcy5zaXplKCkgLSAxLCBiZWZvcmVP
dmVyaGFuZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFmdGVyT3ZlcmhhbmcpIHsKKyAgICAg
ICAgICAgIC8vIE5vcm1hbGx5IHdlIHNoaWZ0IGFsbCB0aGUgImFmdGVyIiBib3hlcyB0byB0aGUg
bGVmdCBoZXJlIGFzIG9uZSBtb25vbGl0aGljIGNvbnRlbnQKKyAgICAgICAgICAgIC8vIGJ1dCBp
biBjYXNlIG9mIGp1c3RpZmllZCBhbGlnbm1lbnQgd2UgY2FuIG9ubHkgbW92ZSB0aGUgYWRqYWNl
bnQgcnVuIHVuZGVyIHRoZSBhbm5vdGF0aW9uCisgICAgICAgICAgICAvLyBhbmQgZXhwYW5kIHRo
ZSBqdXN0aWZpZWQgc3BhY2UgdG8ga2VlcCB0aGUgcmVzdCBvZiB0aGUgcnVucyBzdGF0aW9uYXJ5
LgorICAgICAgICAgICAgaWYgKGhhc0p1c3RpZmllZEFkamFjZW50QWZ0ZXJDb250ZW50KSB7Cisg
ICAgICAgICAgICAgICAgYXV0byYgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94
ZXNbc3RhcnRFbmRQYWlyLmVuZCgpXTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbiA9
IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpOworICAgICAgICAgICAgICAgIGF1
dG8gaW5mbGF0ZVZhbHVlID0gYWZ0ZXJPdmVyaGFuZyArIGJlZm9yZU92ZXJoYW5nOworICAgICAg
ICAgICAgICAgIGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LnNldEV4cGFuc2lvbih7IGV4cGFuc2lv
bi5iZWhhdmlvciwgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gKyBpbmZsYXRlVmFsdWUg
fSk7CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBhZnRlclJ1YnlC
YXNlRGlzcGxheUJveC5leHBhbmRIb3Jpem9udGFsbHkoaW5mbGF0ZVZhbHVlKSA6IGFmdGVyUnVi
eUJhc2VEaXNwbGF5Qm94LmV4cGFuZFZlcnRpY2FsbHkoaW5mbGF0ZVZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBtb3ZlQm94UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRFbmRQYWlyLmVuZCgpLCBzdGFy
dEVuZFBhaXIuZW5kKCksIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgbW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHN0YXJ0RW5kUGFpci5lbmQoKSwg
ZGlzcGxheUJveGVzLnNpemUoKSAtIDEsIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICB9CisgICAg
fQorfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IDIxMzI1YjhiYTkxZi4uMThmMWUxZWM4OGMwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1
YnlGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTU1LDgg
KzU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRQb2ludCBwbGFjZUFubm90
YXRpb25Cb3goY29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgY29uc3QgUmVjdCYgcnVieUJh
c2VNYXJnaW5Cb3hMb2dpY2FsUmVjdCwgY29uc3QgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsK
ICAgICBzdGF0aWMgSW5saW5lTGF5b3V0U2l6ZSBzaXplQW5ub3RhdGlvbkJveChjb25zdCBCb3gm
IHJ1YnlCYXNlTGF5b3V0Qm94LCBjb25zdCBSZWN0JiBydWJ5QmFzZU1hcmdpbkJveExvZ2ljYWxS
ZWN0LCBjb25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwogCi0gICAgc3RhdGljIElubGlu
ZUxheW91dFVuaXQgb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQmVmb3JlKGNvbnN0IEJveCYgcnVieUJh
c2VMYXlvdXRCb3gsIHNpemVfdCBydWJ5QmFzZVN0YXJ0LCBjb25zdCBJbmxpbmVEaXNwbGF5OjpC
b3hlcyYsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIGNvbnN0IElubGluZUZv
cm1hdHRpbmdDb250ZXh0Jik7Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgb3ZlcmhhbmdG
b3JBbm5vdGF0aW9uQWZ0ZXIoY29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgV1RGOjpSYW5n
ZTxzaXplX3Q+IHJ1YnlCYXNlUmFuZ2UsIGNvbnN0IElubGluZURpc3BsYXk6OkJveGVzJiwgSW5s
aW5lTGF5b3V0VW5pdCBsaW5lTG9naWNhbEhlaWdodCwgY29uc3QgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQmKTsKKyAgICBzdGF0aWMgdm9pZCBhcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCYgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGlu
ZUxvZ2ljYWxIZWlnaHQsIElubGluZURpc3BsYXk6OkJveGVzJiwgY29uc3QgVmVjdG9yPFdURjo6
UmFuZ2U8c2l6ZV90Pj4mIGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdCk7CiAKICAgICBl
bnVtIGNsYXNzIFJ1YnlCYXNlc01heU5lZWRSZXNpemluZyA6IGJvb2wgeyBObywgWWVzIH07CiAg
ICAgc3RhdGljIHZvaWQgYXBwbHlBbGlnbm1lbnRPZmZzZXRMaXN0KElubGluZURpc3BsYXk6OkJv
eGVzJiwgY29uc3QgSGFzaE1hcDxjb25zdCBCb3gqLCBJbmxpbmVMYXlvdXRVbml0PiYgYWxpZ25t
ZW50T2Zmc2V0TGlzdCwgUnVieUJhc2VzTWF5TmVlZFJlc2l6aW5nLCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCYpOwpAQCAtNzAsNiArNjksOCBAQCBwcml2YXRlOgogICAgIHVzaW5nIE1heGltdW1M
YXlvdXRCb3VuZHNTdHJldGNoTWFwID0gSGFzaE1hcDxjb25zdCBJbmxpbmVMZXZlbEJveCosIElu
bGluZUxldmVsQm94OjpBc2NlbnRBbmREZXNjZW50PjsKICAgICBzdGF0aWMgdm9pZCBhZGp1c3RM
YXlvdXRCb3VuZHNBbmRTdHJldGNoQW5jZXN0b3JSdWJ5QmFzZShMaW5lQm94JiwgSW5saW5lTGV2
ZWxCb3gmIHJ1YnlCYXNlSW5saW5lQm94LCBNYXhpbXVtTGF5b3V0Qm91bmRzU3RyZXRjaE1hcCYs
IGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7CiAgICAgc3RhdGljIHNpemVfdCBhcHBs
eVJ1YnlBbGlnbk9uQmFzZUNvbnRlbnQoc2l6ZV90IHJ1YnlCYXNlU3RhcnQsIExpbmUmLCBIYXNo
TWFwPGNvbnN0IEJveCosIElubGluZUxheW91dFVuaXQ+JiBhbGlnbm1lbnRPZmZzZXRMaXN0LCBj
b25zdCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRV
bml0IG92ZXJoYW5nRm9yQW5ub3RhdGlvbkJlZm9yZShjb25zdCBCb3gmIHJ1YnlCYXNlTGF5b3V0
Qm94LCBzaXplX3QgcnVieUJhc2VTdGFydCwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBJ
bmxpbmVMYXlvdXRVbml0IGxpbmVMb2dpY2FsSGVpZ2h0LCBjb25zdCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dCYpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IG92ZXJoYW5nRm9yQW5ub3Rh
dGlvbkFmdGVyKGNvbnN0IEJveCYgcnVieUJhc2VMYXlvdXRCb3gsIFdURjo6UmFuZ2U8c2l6ZV90
PiBydWJ5QmFzZVJhbmdlLCBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIElubGluZUxheW91
dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIGNvbnN0IElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBMYXlvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472265</attachid>
            <date>2024-08-22 08:16:48 -0700</date>
            <delta_ts>2024-08-22 08:53:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-278519-20240822081647.patch</filename>
            <type>text/plain</type>
            <size>15561</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA1NGMzZjM2MmZhZGY2YjE2MWU4NGMwODA5MzUxNDdmNjIzMWU0ZTMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjIgQXVnIDIwMjQgMDg6MTA6MzggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBydWJ5IG92ZXJoYW5nIGFkanVzdG1lbnQgbG9naWMgdG8KIFJ1YnlGb3JtYXR0aW5n
Q29udGV4dCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NTE5CgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OnByb2Nl
c3NSdWJ5Q29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6YXBwbHlSdWJ5T3ZlcmhhbmcpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmg6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvcnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpSdWJ5
Rm9ybWF0dGluZ0NvbnRleHQ6OmFwcGx5UnVieU92ZXJoYW5nKToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4
dC5oOgotLS0KIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgICB8
IDcxICstLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50
QnVpbGRlci5oICAgICB8ICAxIC0KIC4uLi9pbmxpbmUvcnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRl
eHQuY3BwICAgICB8IDY3ICsrKysrKysrKysrKysrKysrCiAuLi4vaW5saW5lL3J1YnkvUnVieUZv
cm1hdHRpbmdDb250ZXh0LmggICAgICAgfCAgNiArLQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNl
cnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggMDhh
NWZiMWE5NmI2Li4yMWU3ZjgwYjM5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTExMzgs
NyArMTEzOCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpwcm9jZXNzUnVi
eUNvbnRlbnQoSW5saW5lRGlzcGxheTo6Qm94ZXMmIGRpc3BsCiAKICAgICAgICAgaW5kZXggPSBw
cm9jZXNzUnVieUJhc2UoaW5kZXgsIGRpc3BsYXlCb3hlcywgaW50ZXJsaW5lYXJSdWJ5Q29sdW1u
UmFuZ2VMaXN0LCBydWJ5QmFzZVN0YXJ0SW5kZXhMaXN0V2l0aEFubm90YXRpb24pOwogICAgIH0K
LSAgICBhcHBseVJ1YnlPdmVyaGFuZyhkaXNwbGF5Qm94ZXMsIGludGVybGluZWFyUnVieUNvbHVt
blJhbmdlTGlzdCk7CisgICAgUnVieUZvcm1hdHRpbmdDb250ZXh0OjphcHBseVJ1YnlPdmVyaGFu
Zyhmb3JtYXR0aW5nQ29udGV4dCgpLCBsaW5lQm94KCkubG9naWNhbFJlY3QoKS5oZWlnaHQoKSwg
ZGlzcGxheUJveGVzLCBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpOwogCiAgICAgYXV0
byBsaW5lQm94TG9naWNhbFJlY3QgPSBsaW5lQm94KCkubG9naWNhbFJlY3QoKTsKICAgICBhdXRv
IHdyaXRpbmdNb2RlID0gcm9vdCgpLnN0eWxlKCkud3JpdGluZ01vZGUoKTsKQEAgLTExNTYsNzUg
KzExNTYsNiBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6cHJvY2Vzc1J1YnlD
b250ZW50KElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbAogICAgIH0KIH0KIAotdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGx5UnVieU92ZXJoYW5nKElubGluZURpc3BsYXk6
OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlJhbmdlPHNpemVfdD4+JiBp
bnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpCi17Ci0gICAgLy8gRklYTUU6IFdlIGFyZSBv
bmx5IHN1cHBvc2VkIHRvIGFwcGx5IG92ZXJoYW5nIHdoZW4gYW5ub3RhdGlvbiBib3ggaXMgd2lk
ZXIgdGhhbiBiYXNlLCBidXQgYXQgdGhpcyBwb2ludCB3ZSBjYW4ndCB0ZWxsICh0aGlzIG5lZWRz
IHRvIGJlIGFkZHJlc3NlZCB0b2dldGhlciB3aXRoIGFubm90YXRpb24gYm94IHNpemluZykuCi0g
ICAgaWYgKGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdC5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPSByb290KCkuc3R5
bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwotICAgIGF1dG8gbGluZUxvZ2ljYWxIZWln
aHQgPSBsaW5lQm94KCkubG9naWNhbFJlY3QoKS5oZWlnaHQoKTsKLSAgICBhdXRvJiBmb3JtYXR0
aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7Ci0gICAgZm9yIChhdXRvIHN0
YXJ0RW5kUGFpciA6IGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdCkgewotICAgICAgICBB
U1NFUlQoc3RhcnRFbmRQYWlyKTsKLSAgICAgICAgaWYgKHN0YXJ0RW5kUGFpci5kaXN0YW5jZSgp
ID09IDEpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBhdXRvIHJ1YnlCYXNlU3Rh
cnQgPSBzdGFydEVuZFBhaXIuYmVnaW4oKTsKLSAgICAgICAgYXV0byYgcnVieUJhc2VMYXlvdXRC
b3ggPSBkaXNwbGF5Qm94ZXNbcnVieUJhc2VTdGFydF0ubGF5b3V0Qm94KCk7Ci0gICAgICAgIEFT
U0VSVChydWJ5QmFzZUxheW91dEJveC5pc1J1YnlCYXNlKCkpOwotICAgICAgICBBU1NFUlQoUnVi
eUZvcm1hdHRpbmdDb250ZXh0OjpoYXNJbnRlcmxpbmVhckFubm90YXRpb24ocnVieUJhc2VMYXlv
dXRCb3gpKTsKLQotICAgICAgICBhdXRvIGJlZm9yZU92ZXJoYW5nID0gUnVieUZvcm1hdHRpbmdD
b250ZXh0OjpvdmVyaGFuZ0ZvckFubm90YXRpb25CZWZvcmUocnVieUJhc2VMYXlvdXRCb3gsIHJ1
YnlCYXNlU3RhcnQsIGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIGZvcm1hdHRpbmdD
b250ZXh0KTsKLSAgICAgICAgYXV0byBhZnRlck92ZXJoYW5nID0gUnVieUZvcm1hdHRpbmdDb250
ZXh0OjpvdmVyaGFuZ0ZvckFubm90YXRpb25BZnRlcihydWJ5QmFzZUxheW91dEJveCwgeyBydWJ5
QmFzZVN0YXJ0LCBzdGFydEVuZFBhaXIuZW5kKCkgfSwgZGlzcGxheUJveGVzLCBsaW5lTG9naWNh
bEhlaWdodCwgZm9ybWF0dGluZ0NvbnRleHQpOwotCi0gICAgICAgIC8vIEZJWE1FOiBJZiB0aGlz
IHR1cm5zIG91dCB0byBiZSBhIHByZWYgYm90dGxlbmVjaywgbWFrZSBzdXJlIHdlIHBhc3MgaW4g
dGhlIGFjY3VtdWxhdGVkIHNoaWZ0IHRvIG92ZXJoYW5nRm9yQW5ub3RhdGlvbkJlZm9yZS9hZnRl
ciBhbmQKLSAgICAgICAgLy8gb2Zmc2V0IGFsbCBib3ggZ2VvbWV0cnkgYXMgd2UgY2hlY2sgZm9y
IG92ZXJsYXAuCi0gICAgICAgIGF1dG8gbW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0ID0gWyZdKGF1
dG8gc3RhcnQsIGF1dG8gZW5kLCBhdXRvIHNoaWZ0VmFsdWUpIHsKLSAgICAgICAgICAgIGZvciAo
YXV0byBpbmRleCA9IHN0YXJ0OyBpbmRleCA8PSBlbmQ7ICsraW5kZXgpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZGlzcGxheUJveGVzW2luZGV4XTsKLSAgICAgICAgICAg
ICAgICBpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGRpc3BsYXlCb3gubW92ZUhvcml6b250YWxs
eSgtc2hpZnRWYWx1ZSkgOiBkaXNwbGF5Qm94Lm1vdmVWZXJ0aWNhbGx5KC1zaGlmdFZhbHVlKTsK
LQotICAgICAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGRpc3BsYXlCb3gubGF5b3V0Qm94
KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3guaXNJbmxpbmVMZXZlbEJveCgpICYm
ICFkaXNwbGF5Qm94LmlzUm9vdElubGluZUJveCgpKQotICAgICAgICAgICAgICAgICAgICBmb3Jt
YXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpLm1vdmVIb3Jpem9udGFsbHko
TGF5b3V0VW5pdCB7IC1zaGlmdFZhbHVlIH0pOwotCi0gICAgICAgICAgICAgICAgaWYgKGxheW91
dEJveC5pc1J1YnlCYXNlKCkgJiYgbGF5b3V0Qm94LmFzc29jaWF0ZWRSdWJ5QW5ub3RhdGlvbkJv
eCgpKQotICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJv
eCgqbGF5b3V0Qm94LmFzc29jaWF0ZWRSdWJ5QW5ub3RhdGlvbkJveCgpKS5tb3ZlSG9yaXpvbnRh
bGx5KExheW91dFVuaXQgeyAtc2hpZnRWYWx1ZSB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLSAgICAgICAgYXV0byBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVudCA9IFsmXSB7
Ci0gICAgICAgICAgICBpZiAoc3RhcnRFbmRQYWlyLmVuZCgpID09IGRpc3BsYXlCb3hlcy5zaXpl
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0byYgYWZ0
ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94ZXNbc3RhcnRFbmRQYWlyLmVuZCgpXTsK
LSAgICAgICAgICAgIGlmIChhZnRlclJ1YnlCYXNlRGlzcGxheUJveC5sYXlvdXRCb3goKS5pc1J1
YnlCYXNlKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBBZGphY2VudCBjb250ZW50IGlzIGFsc28g
YSBydWJ5IGJhc2UuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuICEhYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5zaW9u
KCkuaG9yaXpvbnRhbEV4cGFuc2lvbjsKLSAgICAgICAgfSgpOwotCi0gICAgICAgIGlmIChiZWZv
cmVPdmVyaGFuZykgewotICAgICAgICAgICAgLy8gV2hlbiAiYmVmb3JlIiBhZGphY2VudCBjb250
ZW50IHNsaWdodGx5IHB1bGxzIHRoZSByZXN0IG9mIHRoZSBjb250ZW50IG9uIHRoZSBsaW5lIGxl
ZnR3YXJkLCBqdXN0aWZ5IGNvbnRlbnQgc2hvdWxkIHN0YXkgaW50YWN0LgotICAgICAgICAgICAg
bW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHJ1YnlCYXNlU3RhcnQsIGhhc0p1c3RpZmllZEFkamFj
ZW50QWZ0ZXJDb250ZW50ID8gc3RhcnRFbmRQYWlyLmVuZCgpIDogZGlzcGxheUJveGVzLnNpemUo
KSAtIDEsIGJlZm9yZU92ZXJoYW5nKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYWZ0ZXJPdmVy
aGFuZykgewotICAgICAgICAgICAgLy8gTm9ybWFsbHkgd2Ugc2hpZnQgYWxsIHRoZSAiYWZ0ZXIi
IGJveGVzIHRvIHRoZSBsZWZ0IGhlcmUgYXMgb25lIG1vbm9saXRoaWMgY29udGVudAotICAgICAg
ICAgICAgLy8gYnV0IGluIGNhc2Ugb2YganVzdGlmaWVkIGFsaWdubWVudCB3ZSBjYW4gb25seSBt
b3ZlIHRoZSBhZGphY2VudCBydW4gdW5kZXIgdGhlIGFubm90YXRpb24KLSAgICAgICAgICAgIC8v
IGFuZCBleHBhbmQgdGhlIGp1c3RpZmllZCBzcGFjZSB0byBrZWVwIHRoZSByZXN0IG9mIHRoZSBy
dW5zIHN0YXRpb25hcnkuCi0gICAgICAgICAgICBpZiAoaGFzSnVzdGlmaWVkQWRqYWNlbnRBZnRl
ckNvbnRlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBhZnRlclJ1YnlCYXNlRGlzcGxheUJv
eCA9IGRpc3BsYXlCb3hlc1tzdGFydEVuZFBhaXIuZW5kKCldOwotICAgICAgICAgICAgICAgIGF1
dG8gZXhwYW5zaW9uID0gYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5zaW9uKCk7Ci0gICAg
ICAgICAgICAgICAgYXV0byBpbmZsYXRlVmFsdWUgPSBhZnRlck92ZXJoYW5nICsgYmVmb3JlT3Zl
cmhhbmc7Ci0gICAgICAgICAgICAgICAgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guc2V0RXhwYW5z
aW9uKHsgZXhwYW5zaW9uLmJlaGF2aW9yLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiAr
IGluZmxhdGVWYWx1ZSB9KTsKLSAgICAgICAgICAgICAgICBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSA/IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuZEhvcml6b250YWxseShpbmZsYXRlVmFs
dWUpIDogYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5kVmVydGljYWxseShpbmZsYXRlVmFs
dWUpOwotICAgICAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRvVmlzdWFsTGVmdChzdGFydEVuZFBh
aXIuZW5kKCksIHN0YXJ0RW5kUGFpci5lbmQoKSwgYWZ0ZXJPdmVyaGFuZyk7Ci0gICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtb3ZlQm94UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRF
bmRQYWlyLmVuZCgpLCBkaXNwbGF5Qm94ZXMuc2l6ZSgpIC0gMSwgYWZ0ZXJPdmVyaGFuZyk7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpz
ZXRJbmxpbmVCb3hHZW9tZXRyeShMYXlvdXQ6OkJveEdlb21ldHJ5JiBib3hHZW9tZXRyeSwgY29u
c3QgSW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIGJvb2wgaXNGaXJzdElubGluZUJveEZyYWdtZW50
KQogewogICAgIGF1dG8gZW5jbG9zaW5nTG9naWNhbFJlY3QgPSBSZWN0IHsgdG9MYXlvdXRQb2lu
dChsb2dpY2FsUmVjdC50b3BMZWZ0KCkpLCB7IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobG9n
aWNhbFJlY3Qud2lkdGgoKSksIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobG9naWNhbFJlY3Qu
aGVpZ2h0KCkpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oCmluZGV4IDIzMzkzYTc3MGY3NS4uZjhiY2Nj
MDkwNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgKQEAgLTYzLDcgKzYzLDYgQEAgcHJpdmF0ZToKIAog
ICAgIHNpemVfdCBwcm9jZXNzUnVieUJhc2Uoc2l6ZV90IHJ1YnlCYXNlU3RhcnQsIElubGluZURp
c3BsYXk6OkJveGVzJiwgVmVjdG9yPFdURjo6UmFuZ2U8c2l6ZV90Pj4mIGludGVybGluZWFyUnVi
eUNvbHVtblJhbmdlTGlzdCwgVmVjdG9yPHNpemVfdD4mIHJ1YnlCYXNlU3RhcnRJbmRleExpc3RX
aXRoQW5ub3RhdGlvbik7CiAgICAgdm9pZCBwcm9jZXNzUnVieUNvbnRlbnQoSW5saW5lRGlzcGxh
eTo6Qm94ZXMmLCBjb25zdCBMaW5lTGF5b3V0UmVzdWx0Jik7Ci0gICAgdm9pZCBhcHBseVJ1YnlP
dmVyaGFuZyhJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIGNvbnN0IFZlY3RvcjxXVEY6OlJhbmdlPHNp
emVfdD4+JiBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpOwogCiAgICAgdm9pZCBzZXRJ
bmxpbmVCb3hHZW9tZXRyeShMYXlvdXQ6OkJveEdlb21ldHJ5JiwgY29uc3QgSW5saW5lUmVjdCYs
IGJvb2wgaXNGaXJzdElubGluZUJveEZyYWdtZW50KTsKICAgICB2b2lkIGFkanVzdFZpc3VhbEdl
b21ldHJ5Rm9yRGlzcGxheUJveChzaXplX3QgZGlzcGxheUJveE5vZGVJbmRleCwgSW5saW5lTGF5
b3V0VW5pdCYgYWNjdW11bGF0ZWRPZmZzZXQsIElubGluZUxheW91dFVuaXQgbGluZUJveExvZ2lj
YWxUb3AsIGNvbnN0IERpc3BsYXlCb3hUcmVlJiwgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBjb25z
dCBIYXNoTWFwPGNvbnN0IEJveCosIElzRmlyc3RMYXN0SW5kZXg+Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNDk1NjEy
MDNiOGM0Li42OWM2ODgzNTM5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5
L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTYwMyw2ICs2MDMsNzMgQEAgYm9vbCBSdWJ5
Rm9ybWF0dGluZ0NvbnRleHQ6Omhhc0ludGVyQ2hhcmFjdGVyQW5ub3RhdGlvbihjb25zdCBCb3gm
IHJ1YnlCYXNlTGF5b3UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVieUZvcm1hdHRp
bmdDb250ZXh0OjphcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgcGFy
ZW50Rm9ybWF0dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQs
IElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlJh
bmdlPHNpemVfdD4+JiBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpCit7CisgICAgLy8g
RklYTUU6IFdlIGFyZSBvbmx5IHN1cHBvc2VkIHRvIGFwcGx5IG92ZXJoYW5nIHdoZW4gYW5ub3Rh
dGlvbiBib3ggaXMgd2lkZXIgdGhhbiBiYXNlLCBidXQgYXQgdGhpcyBwb2ludCB3ZSBjYW4ndCB0
ZWxsICh0aGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCB0b2dldGhlciB3aXRoIGFubm90YXRpb24g
Ym94IHNpemluZykuCisgICAgaWYgKGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPSBwYXJlbnRGb3JtYXR0aW5nQ29udGV4dC5yb290KCkuc3R5bGUoKS5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpOworICAgIGZvciAoYXV0byBzdGFydEVuZFBhaXIgOiBpbnRlcmxpbmVhclJ1
YnlDb2x1bW5SYW5nZUxpc3QpIHsKKyAgICAgICAgQVNTRVJUKHN0YXJ0RW5kUGFpcik7CisgICAg
ICAgIGlmIChzdGFydEVuZFBhaXIuZGlzdGFuY2UoKSA9PSAxKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgYXV0byBydWJ5QmFzZVN0YXJ0ID0gc3RhcnRFbmRQYWlyLmJlZ2luKCk7
CisgICAgICAgIGF1dG8mIHJ1YnlCYXNlTGF5b3V0Qm94ID0gZGlzcGxheUJveGVzW3J1YnlCYXNl
U3RhcnRdLmxheW91dEJveCgpOworICAgICAgICBBU1NFUlQocnVieUJhc2VMYXlvdXRCb3guaXNS
dWJ5QmFzZSgpKTsKKyAgICAgICAgQVNTRVJUKGhhc0ludGVybGluZWFyQW5ub3RhdGlvbihydWJ5
QmFzZUxheW91dEJveCkpOworCisgICAgICAgIGF1dG8gYmVmb3JlT3ZlcmhhbmcgPSBvdmVyaGFu
Z0ZvckFubm90YXRpb25CZWZvcmUocnVieUJhc2VMYXlvdXRCb3gsIHJ1YnlCYXNlU3RhcnQsIGRp
c3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0KTsK
KyAgICAgICAgYXV0byBhZnRlck92ZXJoYW5nID0gb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0ZXIo
cnVieUJhc2VMYXlvdXRCb3gsIHsgcnVieUJhc2VTdGFydCwgc3RhcnRFbmRQYWlyLmVuZCgpIH0s
IGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0
KTsKKworICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwcmVmIGJv
dHRsZW5lY2ssIG1ha2Ugc3VyZSB3ZSBwYXNzIGluIHRoZSBhY2N1bXVsYXRlZCBzaGlmdCB0byBv
dmVyaGFuZ0ZvckFubm90YXRpb25CZWZvcmUvYWZ0ZXIgYW5kCisgICAgICAgIC8vIG9mZnNldCBh
bGwgYm94IGdlb21ldHJ5IGFzIHdlIGNoZWNrIGZvciBvdmVybGFwLgorICAgICAgICBhdXRvIG1v
dmVCb3hSYW5nZVRvVmlzdWFsTGVmdCA9IFsmXShhdXRvIHN0YXJ0LCBhdXRvIGVuZCwgYXV0byBz
aGlmdFZhbHVlKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFydDsgaW5kZXgg
PD0gZW5kOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGRp
c3BsYXlCb3hlc1tpbmRleF07CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPyBkaXNwbGF5Qm94Lm1vdmVIb3Jpem9udGFsbHkoLXNoaWZ0VmFsdWUpIDogZGlzcGxheUJv
eC5tb3ZlVmVydGljYWxseSgtc2hpZnRWYWx1ZSk7CisKKyAgICAgICAgICAgICAgICBhdXRvJiBs
YXlvdXRCb3ggPSBkaXNwbGF5Qm94LmxheW91dEJveCgpOworICAgICAgICAgICAgICAgIGlmIChk
aXNwbGF5Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiAhZGlzcGxheUJveC5pc1Jvb3RJbmxpbmVC
b3goKSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KS5tb3ZlSG9yaXpvbnRhbGx5KExheW91dFVuaXQgeyAtc2hpZnRW
YWx1ZSB9KTsKKworICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNSdWJ5QmFzZSgpICYm
IGxheW91dEJveC5hc3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkKKyAgICAgICAgICAgICAg
ICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5h
c3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkubW92ZUhvcml6b250YWxseShMYXlvdXRVbml0
IHsgLXNoaWZ0VmFsdWUgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGF1
dG8gaGFzSnVzdGlmaWVkQWRqYWNlbnRBZnRlckNvbnRlbnQgPSBbJl0geworICAgICAgICAgICAg
aWYgKHN0YXJ0RW5kUGFpci5lbmQoKSA9PSBkaXNwbGF5Qm94ZXMuc2l6ZSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGF1dG8mIGFmdGVyUnVieUJhc2VEaXNw
bGF5Qm94ID0gZGlzcGxheUJveGVzW3N0YXJ0RW5kUGFpci5lbmQoKV07CisgICAgICAgICAgICBp
ZiAoYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3gubGF5b3V0Qm94KCkuaXNSdWJ5QmFzZSgpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWRqYWNlbnQgY29udGVudCBpcyBhbHNvIGEgcnVieSBiYXNlLgor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiAhIWFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpLmhvcml6b250YWxF
eHBhbnNpb247CisgICAgICAgIH0oKTsKKworICAgICAgICBpZiAoYmVmb3JlT3ZlcmhhbmcpIHsK
KyAgICAgICAgICAgIC8vIFdoZW4gImJlZm9yZSIgYWRqYWNlbnQgY29udGVudCBzbGlnaHRseSBw
dWxscyB0aGUgcmVzdCBvZiB0aGUgY29udGVudCBvbiB0aGUgbGluZSBsZWZ0d2FyZCwganVzdGlm
eSBjb250ZW50IHNob3VsZCBzdGF5IGludGFjdC4KKyAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRv
VmlzdWFsTGVmdChydWJ5QmFzZVN0YXJ0LCBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVu
dCA/IHN0YXJ0RW5kUGFpci5lbmQoKSA6IGRpc3BsYXlCb3hlcy5zaXplKCkgLSAxLCBiZWZvcmVP
dmVyaGFuZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFmdGVyT3ZlcmhhbmcpIHsKKyAgICAg
ICAgICAgIC8vIE5vcm1hbGx5IHdlIHNoaWZ0IGFsbCB0aGUgImFmdGVyIiBib3hlcyB0byB0aGUg
bGVmdCBoZXJlIGFzIG9uZSBtb25vbGl0aGljIGNvbnRlbnQKKyAgICAgICAgICAgIC8vIGJ1dCBp
biBjYXNlIG9mIGp1c3RpZmllZCBhbGlnbm1lbnQgd2UgY2FuIG9ubHkgbW92ZSB0aGUgYWRqYWNl
bnQgcnVuIHVuZGVyIHRoZSBhbm5vdGF0aW9uCisgICAgICAgICAgICAvLyBhbmQgZXhwYW5kIHRo
ZSBqdXN0aWZpZWQgc3BhY2UgdG8ga2VlcCB0aGUgcmVzdCBvZiB0aGUgcnVucyBzdGF0aW9uYXJ5
LgorICAgICAgICAgICAgaWYgKGhhc0p1c3RpZmllZEFkamFjZW50QWZ0ZXJDb250ZW50KSB7Cisg
ICAgICAgICAgICAgICAgYXV0byYgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94
ZXNbc3RhcnRFbmRQYWlyLmVuZCgpXTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbiA9
IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpOworICAgICAgICAgICAgICAgIGF1
dG8gaW5mbGF0ZVZhbHVlID0gYWZ0ZXJPdmVyaGFuZyArIGJlZm9yZU92ZXJoYW5nOworICAgICAg
ICAgICAgICAgIGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LnNldEV4cGFuc2lvbih7IGV4cGFuc2lv
bi5iZWhhdmlvciwgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gKyBpbmZsYXRlVmFsdWUg
fSk7CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBhZnRlclJ1YnlC
YXNlRGlzcGxheUJveC5leHBhbmRIb3Jpem9udGFsbHkoaW5mbGF0ZVZhbHVlKSA6IGFmdGVyUnVi
eUJhc2VEaXNwbGF5Qm94LmV4cGFuZFZlcnRpY2FsbHkoaW5mbGF0ZVZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBtb3ZlQm94UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRFbmRQYWlyLmVuZCgpLCBzdGFy
dEVuZFBhaXIuZW5kKCksIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgbW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHN0YXJ0RW5kUGFpci5lbmQoKSwg
ZGlzcGxheUJveGVzLnNpemUoKSAtIDEsIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICB9CisgICAg
fQorfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IDg5ODg2ZmI0ZjM3Mi4uMGVkZmEyOTM4MDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1
YnlGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTU1LDgg
KzU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRQb2ludCBwbGFjZUFubm90
YXRpb25Cb3goY29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgY29uc3QgUmVjdCYgcnVieUJh
c2VNYXJnaW5Cb3hMb2dpY2FsUmVjdCwgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKICAgICBz
dGF0aWMgSW5saW5lTGF5b3V0U2l6ZSBzaXplQW5ub3RhdGlvbkJveChjb25zdCBCb3gmIHJ1YnlC
YXNlTGF5b3V0Qm94LCBjb25zdCBSZWN0JiBydWJ5QmFzZU1hcmdpbkJveExvZ2ljYWxSZWN0LCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwogCi0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
b3ZlcmhhbmdGb3JBbm5vdGF0aW9uQmVmb3JlKGNvbnN0IEJveCYgcnVieUJhc2VMYXlvdXRCb3gs
IHNpemVfdCBydWJ5QmFzZVN0YXJ0LCBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIElubGlu
ZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7
Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0ZXIo
Y29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgV1RGOjpSYW5nZTxzaXplX3Q+IHJ1YnlCYXNl
UmFuZ2UsIGNvbnN0IElubGluZURpc3BsYXk6OkJveGVzJiwgSW5saW5lTGF5b3V0VW5pdCBsaW5l
TG9naWNhbEhlaWdodCwgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKKyAgICBzdGF0aWMgdm9p
ZCBhcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgcGFyZW50Rm9ybWF0
dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIElubGluZURp
c3BsYXk6OkJveGVzJiwgY29uc3QgVmVjdG9yPFdURjo6UmFuZ2U8c2l6ZV90Pj4mIGludGVybGlu
ZWFyUnVieUNvbHVtblJhbmdlTGlzdCk7CiAKICAgICBlbnVtIGNsYXNzIFJ1YnlCYXNlc01heU5l
ZWRSZXNpemluZyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgc3RhdGljIHZvaWQgYXBwbHlBbGln
bm1lbnRPZmZzZXRMaXN0KElubGluZURpc3BsYXk6OkJveGVzJiwgY29uc3QgSGFzaE1hcDxjb25z
dCBCb3gqLCBJbmxpbmVMYXlvdXRVbml0PiYgYWxpZ25tZW50T2Zmc2V0TGlzdCwgUnVieUJhc2Vz
TWF5TmVlZFJlc2l6aW5nLCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwpAQCAtNjksNyArNjgs
MTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBNYXhpbXVtTGF5b3V0Qm91bmRzU3Ry
ZXRjaE1hcCA9IEhhc2hNYXA8Y29uc3QgSW5saW5lTGV2ZWxCb3gqLCBJbmxpbmVMZXZlbEJveDo6
QXNjZW50QW5kRGVzY2VudD47CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0TGF5b3V0Qm91bmRzQW5k
U3RyZXRjaEFuY2VzdG9yUnVieUJhc2UoTGluZUJveCYsIElubGluZUxldmVsQm94JiBydWJ5QmFz
ZUlubGluZUJveCwgTWF4aW11bUxheW91dEJvdW5kc1N0cmV0Y2hNYXAmLCBjb25zdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCYpOworCiAgICAgc3RhdGljIHNpemVfdCBhcHBseVJ1YnlBbGlnbk9u
QmFzZUNvbnRlbnQoc2l6ZV90IHJ1YnlCYXNlU3RhcnQsIExpbmUmLCBIYXNoTWFwPGNvbnN0IEJv
eCosIElubGluZUxheW91dFVuaXQ+JiBhbGlnbm1lbnRPZmZzZXRMaXN0LCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCYpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IG92ZXJoYW5nRm9yQW5u
b3RhdGlvbkJlZm9yZShjb25zdCBCb3gmIHJ1YnlCYXNlTGF5b3V0Qm94LCBzaXplX3QgcnVieUJh
c2VTdGFydCwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBJbmxpbmVMYXlvdXRVbml0IGxp
bmVMb2dpY2FsSGVpZ2h0LCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOworICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IG92ZXJoYW5nRm9yQW5ub3RhdGlvbkFmdGVyKGNvbnN0IEJveCYgcnVi
eUJhc2VMYXlvdXRCb3gsIFdURjo6UmFuZ2U8c2l6ZV90PiBydWJ5QmFzZVJhbmdlLCBjb25zdCBJ
bmxpbmVEaXNwbGF5OjpCb3hlcyYsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQs
IElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBMYXlvdXQK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>472266</attachid>
            <date>2024-08-22 08:53:35 -0700</date>
            <delta_ts>2024-08-22 10:10:31 -0700</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-278519-20240822085335.patch</filename>
            <type>text/plain</type>
            <size>15561</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjMDgzOTgwODQ5YTlhYzFhOTcwNzdiOGMzMDFkZDBjZWE1ZTg4NjU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFRodSwgMjIgQXVnIDIwMjQgMDg6MTA6MzggLTA3MDAKU3ViamVjdDogW1BBVENIXSBbQ2xlYW51
cF0gTW92ZSBydWJ5IG92ZXJoYW5nIGFkanVzdG1lbnQgbG9naWMgdG8KIFJ1YnlGb3JtYXR0aW5n
Q29udGV4dCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mjc4NTE5CgpS
ZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIu
Y3BwOgooV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OnByb2Nl
c3NSdWJ5Q29udGVudCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZURpc3BsYXlDb250ZW50QnVp
bGRlcjo6YXBwbHlSdWJ5T3ZlcmhhbmcpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmg6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvcnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRleHQuY3BwOgooV2ViQ29yZTo6TGF5b3V0OjpSdWJ5
Rm9ybWF0dGluZ0NvbnRleHQ6OmFwcGx5UnVieU92ZXJoYW5nKToKKiBTb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4
dC5oOgotLS0KIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAgICB8
IDcxICstLS0tLS0tLS0tLS0tLS0tLS0KIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50
QnVpbGRlci5oICAgICB8ICAxIC0KIC4uLi9pbmxpbmUvcnVieS9SdWJ5Rm9ybWF0dGluZ0NvbnRl
eHQuY3BwICAgICB8IDY3ICsrKysrKysrKysrKysrKysrCiAuLi4vaW5saW5lL3J1YnkvUnVieUZv
cm1hdHRpbmdDb250ZXh0LmggICAgICAgfCAgNiArLQogNCBmaWxlcyBjaGFuZ2VkLCA3MiBpbnNl
cnRpb25zKCspLCA3MyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250
ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKaW5kZXggMDhh
NWZiMWE5NmI2Li4yMWU3ZjgwYjM5NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRC
dWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAKQEAgLTExMzgs
NyArMTEzOCw3IEBAIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpwcm9jZXNzUnVi
eUNvbnRlbnQoSW5saW5lRGlzcGxheTo6Qm94ZXMmIGRpc3BsCiAKICAgICAgICAgaW5kZXggPSBw
cm9jZXNzUnVieUJhc2UoaW5kZXgsIGRpc3BsYXlCb3hlcywgaW50ZXJsaW5lYXJSdWJ5Q29sdW1u
UmFuZ2VMaXN0LCBydWJ5QmFzZVN0YXJ0SW5kZXhMaXN0V2l0aEFubm90YXRpb24pOwogICAgIH0K
LSAgICBhcHBseVJ1YnlPdmVyaGFuZyhkaXNwbGF5Qm94ZXMsIGludGVybGluZWFyUnVieUNvbHVt
blJhbmdlTGlzdCk7CisgICAgUnVieUZvcm1hdHRpbmdDb250ZXh0OjphcHBseVJ1YnlPdmVyaGFu
Zyhmb3JtYXR0aW5nQ29udGV4dCgpLCBsaW5lQm94KCkubG9naWNhbFJlY3QoKS5oZWlnaHQoKSwg
ZGlzcGxheUJveGVzLCBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpOwogCiAgICAgYXV0
byBsaW5lQm94TG9naWNhbFJlY3QgPSBsaW5lQm94KCkubG9naWNhbFJlY3QoKTsKICAgICBhdXRv
IHdyaXRpbmdNb2RlID0gcm9vdCgpLnN0eWxlKCkud3JpdGluZ01vZGUoKTsKQEAgLTExNTYsNzUg
KzExNTYsNiBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6cHJvY2Vzc1J1YnlD
b250ZW50KElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbAogICAgIH0KIH0KIAotdm9pZCBJbmxp
bmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmFwcGx5UnVieU92ZXJoYW5nKElubGluZURpc3BsYXk6
OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlJhbmdlPHNpemVfdD4+JiBp
bnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpCi17Ci0gICAgLy8gRklYTUU6IFdlIGFyZSBv
bmx5IHN1cHBvc2VkIHRvIGFwcGx5IG92ZXJoYW5nIHdoZW4gYW5ub3RhdGlvbiBib3ggaXMgd2lk
ZXIgdGhhbiBiYXNlLCBidXQgYXQgdGhpcyBwb2ludCB3ZSBjYW4ndCB0ZWxsICh0aGlzIG5lZWRz
IHRvIGJlIGFkZHJlc3NlZCB0b2dldGhlciB3aXRoIGFubm90YXRpb24gYm94IHNpemluZykuCi0g
ICAgaWYgKGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdC5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPSByb290KCkuc3R5
bGUoKS5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpOwotICAgIGF1dG8gbGluZUxvZ2ljYWxIZWln
aHQgPSBsaW5lQm94KCkubG9naWNhbFJlY3QoKS5oZWlnaHQoKTsKLSAgICBhdXRvJiBmb3JtYXR0
aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7Ci0gICAgZm9yIChhdXRvIHN0
YXJ0RW5kUGFpciA6IGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdCkgewotICAgICAgICBB
U1NFUlQoc3RhcnRFbmRQYWlyKTsKLSAgICAgICAgaWYgKHN0YXJ0RW5kUGFpci5kaXN0YW5jZSgp
ID09IDEpCi0gICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICBhdXRvIHJ1YnlCYXNlU3Rh
cnQgPSBzdGFydEVuZFBhaXIuYmVnaW4oKTsKLSAgICAgICAgYXV0byYgcnVieUJhc2VMYXlvdXRC
b3ggPSBkaXNwbGF5Qm94ZXNbcnVieUJhc2VTdGFydF0ubGF5b3V0Qm94KCk7Ci0gICAgICAgIEFT
U0VSVChydWJ5QmFzZUxheW91dEJveC5pc1J1YnlCYXNlKCkpOwotICAgICAgICBBU1NFUlQoUnVi
eUZvcm1hdHRpbmdDb250ZXh0OjpoYXNJbnRlcmxpbmVhckFubm90YXRpb24ocnVieUJhc2VMYXlv
dXRCb3gpKTsKLQotICAgICAgICBhdXRvIGJlZm9yZU92ZXJoYW5nID0gUnVieUZvcm1hdHRpbmdD
b250ZXh0OjpvdmVyaGFuZ0ZvckFubm90YXRpb25CZWZvcmUocnVieUJhc2VMYXlvdXRCb3gsIHJ1
YnlCYXNlU3RhcnQsIGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIGZvcm1hdHRpbmdD
b250ZXh0KTsKLSAgICAgICAgYXV0byBhZnRlck92ZXJoYW5nID0gUnVieUZvcm1hdHRpbmdDb250
ZXh0OjpvdmVyaGFuZ0ZvckFubm90YXRpb25BZnRlcihydWJ5QmFzZUxheW91dEJveCwgeyBydWJ5
QmFzZVN0YXJ0LCBzdGFydEVuZFBhaXIuZW5kKCkgfSwgZGlzcGxheUJveGVzLCBsaW5lTG9naWNh
bEhlaWdodCwgZm9ybWF0dGluZ0NvbnRleHQpOwotCi0gICAgICAgIC8vIEZJWE1FOiBJZiB0aGlz
IHR1cm5zIG91dCB0byBiZSBhIHByZWYgYm90dGxlbmVjaywgbWFrZSBzdXJlIHdlIHBhc3MgaW4g
dGhlIGFjY3VtdWxhdGVkIHNoaWZ0IHRvIG92ZXJoYW5nRm9yQW5ub3RhdGlvbkJlZm9yZS9hZnRl
ciBhbmQKLSAgICAgICAgLy8gb2Zmc2V0IGFsbCBib3ggZ2VvbWV0cnkgYXMgd2UgY2hlY2sgZm9y
IG92ZXJsYXAuCi0gICAgICAgIGF1dG8gbW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0ID0gWyZdKGF1
dG8gc3RhcnQsIGF1dG8gZW5kLCBhdXRvIHNoaWZ0VmFsdWUpIHsKLSAgICAgICAgICAgIGZvciAo
YXV0byBpbmRleCA9IHN0YXJ0OyBpbmRleCA8PSBlbmQ7ICsraW5kZXgpIHsKLSAgICAgICAgICAg
ICAgICBhdXRvJiBkaXNwbGF5Qm94ID0gZGlzcGxheUJveGVzW2luZGV4XTsKLSAgICAgICAgICAg
ICAgICBpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGRpc3BsYXlCb3gubW92ZUhvcml6b250YWxs
eSgtc2hpZnRWYWx1ZSkgOiBkaXNwbGF5Qm94Lm1vdmVWZXJ0aWNhbGx5KC1zaGlmdFZhbHVlKTsK
LQotICAgICAgICAgICAgICAgIGF1dG8mIGxheW91dEJveCA9IGRpc3BsYXlCb3gubGF5b3V0Qm94
KCk7Ci0gICAgICAgICAgICAgICAgaWYgKGRpc3BsYXlCb3guaXNJbmxpbmVMZXZlbEJveCgpICYm
ICFkaXNwbGF5Qm94LmlzUm9vdElubGluZUJveCgpKQotICAgICAgICAgICAgICAgICAgICBmb3Jt
YXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXlvdXRCb3gpLm1vdmVIb3Jpem9udGFsbHko
TGF5b3V0VW5pdCB7IC1zaGlmdFZhbHVlIH0pOwotCi0gICAgICAgICAgICAgICAgaWYgKGxheW91
dEJveC5pc1J1YnlCYXNlKCkgJiYgbGF5b3V0Qm94LmFzc29jaWF0ZWRSdWJ5QW5ub3RhdGlvbkJv
eCgpKQotICAgICAgICAgICAgICAgICAgICBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJv
eCgqbGF5b3V0Qm94LmFzc29jaWF0ZWRSdWJ5QW5ub3RhdGlvbkJveCgpKS5tb3ZlSG9yaXpvbnRh
bGx5KExheW91dFVuaXQgeyAtc2hpZnRWYWx1ZSB9KTsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
fTsKLSAgICAgICAgYXV0byBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVudCA9IFsmXSB7
Ci0gICAgICAgICAgICBpZiAoc3RhcnRFbmRQYWlyLmVuZCgpID09IGRpc3BsYXlCb3hlcy5zaXpl
KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAgYXV0byYgYWZ0
ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94ZXNbc3RhcnRFbmRQYWlyLmVuZCgpXTsK
LSAgICAgICAgICAgIGlmIChhZnRlclJ1YnlCYXNlRGlzcGxheUJveC5sYXlvdXRCb3goKS5pc1J1
YnlCYXNlKCkpIHsKLSAgICAgICAgICAgICAgICAvLyBBZGphY2VudCBjb250ZW50IGlzIGFsc28g
YSBydWJ5IGJhc2UuCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgcmV0dXJuICEhYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5zaW9u
KCkuaG9yaXpvbnRhbEV4cGFuc2lvbjsKLSAgICAgICAgfSgpOwotCi0gICAgICAgIGlmIChiZWZv
cmVPdmVyaGFuZykgewotICAgICAgICAgICAgLy8gV2hlbiAiYmVmb3JlIiBhZGphY2VudCBjb250
ZW50IHNsaWdodGx5IHB1bGxzIHRoZSByZXN0IG9mIHRoZSBjb250ZW50IG9uIHRoZSBsaW5lIGxl
ZnR3YXJkLCBqdXN0aWZ5IGNvbnRlbnQgc2hvdWxkIHN0YXkgaW50YWN0LgotICAgICAgICAgICAg
bW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHJ1YnlCYXNlU3RhcnQsIGhhc0p1c3RpZmllZEFkamFj
ZW50QWZ0ZXJDb250ZW50ID8gc3RhcnRFbmRQYWlyLmVuZCgpIDogZGlzcGxheUJveGVzLnNpemUo
KSAtIDEsIGJlZm9yZU92ZXJoYW5nKTsKLSAgICAgICAgfQotICAgICAgICBpZiAoYWZ0ZXJPdmVy
aGFuZykgewotICAgICAgICAgICAgLy8gTm9ybWFsbHkgd2Ugc2hpZnQgYWxsIHRoZSAiYWZ0ZXIi
IGJveGVzIHRvIHRoZSBsZWZ0IGhlcmUgYXMgb25lIG1vbm9saXRoaWMgY29udGVudAotICAgICAg
ICAgICAgLy8gYnV0IGluIGNhc2Ugb2YganVzdGlmaWVkIGFsaWdubWVudCB3ZSBjYW4gb25seSBt
b3ZlIHRoZSBhZGphY2VudCBydW4gdW5kZXIgdGhlIGFubm90YXRpb24KLSAgICAgICAgICAgIC8v
IGFuZCBleHBhbmQgdGhlIGp1c3RpZmllZCBzcGFjZSB0byBrZWVwIHRoZSByZXN0IG9mIHRoZSBy
dW5zIHN0YXRpb25hcnkuCi0gICAgICAgICAgICBpZiAoaGFzSnVzdGlmaWVkQWRqYWNlbnRBZnRl
ckNvbnRlbnQpIHsKLSAgICAgICAgICAgICAgICBhdXRvJiBhZnRlclJ1YnlCYXNlRGlzcGxheUJv
eCA9IGRpc3BsYXlCb3hlc1tzdGFydEVuZFBhaXIuZW5kKCldOwotICAgICAgICAgICAgICAgIGF1
dG8gZXhwYW5zaW9uID0gYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5zaW9uKCk7Ci0gICAg
ICAgICAgICAgICAgYXV0byBpbmZsYXRlVmFsdWUgPSBhZnRlck92ZXJoYW5nICsgYmVmb3JlT3Zl
cmhhbmc7Ci0gICAgICAgICAgICAgICAgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guc2V0RXhwYW5z
aW9uKHsgZXhwYW5zaW9uLmJlaGF2aW9yLCBleHBhbnNpb24uaG9yaXpvbnRhbEV4cGFuc2lvbiAr
IGluZmxhdGVWYWx1ZSB9KTsKLSAgICAgICAgICAgICAgICBpc0hvcml6b250YWxXcml0aW5nTW9k
ZSA/IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuZEhvcml6b250YWxseShpbmZsYXRlVmFs
dWUpIDogYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3guZXhwYW5kVmVydGljYWxseShpbmZsYXRlVmFs
dWUpOwotICAgICAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRvVmlzdWFsTGVmdChzdGFydEVuZFBh
aXIuZW5kKCksIHN0YXJ0RW5kUGFpci5lbmQoKSwgYWZ0ZXJPdmVyaGFuZyk7Ci0gICAgICAgICAg
ICB9IGVsc2UKLSAgICAgICAgICAgICAgICBtb3ZlQm94UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRF
bmRQYWlyLmVuZCgpLCBkaXNwbGF5Qm94ZXMuc2l6ZSgpIC0gMSwgYWZ0ZXJPdmVyaGFuZyk7Ci0g
ICAgICAgIH0KLSAgICB9Ci19Ci0KIHZvaWQgSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyOjpz
ZXRJbmxpbmVCb3hHZW9tZXRyeShMYXlvdXQ6OkJveEdlb21ldHJ5JiBib3hHZW9tZXRyeSwgY29u
c3QgSW5saW5lUmVjdCYgbG9naWNhbFJlY3QsIGJvb2wgaXNGaXJzdElubGluZUJveEZyYWdtZW50
KQogewogICAgIGF1dG8gZW5jbG9zaW5nTG9naWNhbFJlY3QgPSBSZWN0IHsgdG9MYXlvdXRQb2lu
dChsb2dpY2FsUmVjdC50b3BMZWZ0KCkpLCB7IExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobG9n
aWNhbFJlY3Qud2lkdGgoKSksIExheW91dFVuaXQ6OmZyb21GbG9hdENlaWwobG9naWNhbFJlY3Qu
aGVpZ2h0KCkpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oCmluZGV4IDIzMzkzYTc3MGY3NS4uZjhiY2Nj
MDkwNDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5s
aW5lRGlzcGxheUNvbnRlbnRCdWlsZGVyLmgKQEAgLTYzLDcgKzYzLDYgQEAgcHJpdmF0ZToKIAog
ICAgIHNpemVfdCBwcm9jZXNzUnVieUJhc2Uoc2l6ZV90IHJ1YnlCYXNlU3RhcnQsIElubGluZURp
c3BsYXk6OkJveGVzJiwgVmVjdG9yPFdURjo6UmFuZ2U8c2l6ZV90Pj4mIGludGVybGluZWFyUnVi
eUNvbHVtblJhbmdlTGlzdCwgVmVjdG9yPHNpemVfdD4mIHJ1YnlCYXNlU3RhcnRJbmRleExpc3RX
aXRoQW5ub3RhdGlvbik7CiAgICAgdm9pZCBwcm9jZXNzUnVieUNvbnRlbnQoSW5saW5lRGlzcGxh
eTo6Qm94ZXMmLCBjb25zdCBMaW5lTGF5b3V0UmVzdWx0Jik7Ci0gICAgdm9pZCBhcHBseVJ1YnlP
dmVyaGFuZyhJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIGNvbnN0IFZlY3RvcjxXVEY6OlJhbmdlPHNp
emVfdD4+JiBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpOwogCiAgICAgdm9pZCBzZXRJ
bmxpbmVCb3hHZW9tZXRyeShMYXlvdXQ6OkJveEdlb21ldHJ5JiwgY29uc3QgSW5saW5lUmVjdCYs
IGJvb2wgaXNGaXJzdElubGluZUJveEZyYWdtZW50KTsKICAgICB2b2lkIGFkanVzdFZpc3VhbEdl
b21ldHJ5Rm9yRGlzcGxheUJveChzaXplX3QgZGlzcGxheUJveE5vZGVJbmRleCwgSW5saW5lTGF5
b3V0VW5pdCYgYWNjdW11bGF0ZWRPZmZzZXQsIElubGluZUxheW91dFVuaXQgbGluZUJveExvZ2lj
YWxUb3AsIGNvbnN0IERpc3BsYXlCb3hUcmVlJiwgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBjb25z
dCBIYXNoTWFwPGNvbnN0IEJveCosIElzRmlyc3RMYXN0SW5kZXg+Jik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlG
b3JtYXR0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggNDk1NjEy
MDNiOGM0Li42OWM2ODgzNTM5YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5
L1J1YnlGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTYwMyw2ICs2MDMsNzMgQEAgYm9vbCBSdWJ5
Rm9ybWF0dGluZ0NvbnRleHQ6Omhhc0ludGVyQ2hhcmFjdGVyQW5ub3RhdGlvbihjb25zdCBCb3gm
IHJ1YnlCYXNlTGF5b3UKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK3ZvaWQgUnVieUZvcm1hdHRp
bmdDb250ZXh0OjphcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgcGFy
ZW50Rm9ybWF0dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQs
IElubGluZURpc3BsYXk6OkJveGVzJiBkaXNwbGF5Qm94ZXMsIGNvbnN0IFZlY3RvcjxXVEY6OlJh
bmdlPHNpemVfdD4+JiBpbnRlcmxpbmVhclJ1YnlDb2x1bW5SYW5nZUxpc3QpCit7CisgICAgLy8g
RklYTUU6IFdlIGFyZSBvbmx5IHN1cHBvc2VkIHRvIGFwcGx5IG92ZXJoYW5nIHdoZW4gYW5ub3Rh
dGlvbiBib3ggaXMgd2lkZXIgdGhhbiBiYXNlLCBidXQgYXQgdGhpcyBwb2ludCB3ZSBjYW4ndCB0
ZWxsICh0aGlzIG5lZWRzIHRvIGJlIGFkZHJlc3NlZCB0b2dldGhlciB3aXRoIGFubm90YXRpb24g
Ym94IHNpemluZykuCisgICAgaWYgKGludGVybGluZWFyUnVieUNvbHVtblJhbmdlTGlzdC5pc0Vt
cHR5KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPSBwYXJlbnRGb3JtYXR0aW5nQ29udGV4dC5yb290KCkuc3R5bGUoKS5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpOworICAgIGZvciAoYXV0byBzdGFydEVuZFBhaXIgOiBpbnRlcmxpbmVhclJ1
YnlDb2x1bW5SYW5nZUxpc3QpIHsKKyAgICAgICAgQVNTRVJUKHN0YXJ0RW5kUGFpcik7CisgICAg
ICAgIGlmIChzdGFydEVuZFBhaXIuZGlzdGFuY2UoKSA9PSAxKQorICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgYXV0byBydWJ5QmFzZVN0YXJ0ID0gc3RhcnRFbmRQYWlyLmJlZ2luKCk7
CisgICAgICAgIGF1dG8mIHJ1YnlCYXNlTGF5b3V0Qm94ID0gZGlzcGxheUJveGVzW3J1YnlCYXNl
U3RhcnRdLmxheW91dEJveCgpOworICAgICAgICBBU1NFUlQocnVieUJhc2VMYXlvdXRCb3guaXNS
dWJ5QmFzZSgpKTsKKyAgICAgICAgQVNTRVJUKGhhc0ludGVybGluZWFyQW5ub3RhdGlvbihydWJ5
QmFzZUxheW91dEJveCkpOworCisgICAgICAgIGF1dG8gYmVmb3JlT3ZlcmhhbmcgPSBvdmVyaGFu
Z0ZvckFubm90YXRpb25CZWZvcmUocnVieUJhc2VMYXlvdXRCb3gsIHJ1YnlCYXNlU3RhcnQsIGRp
c3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0KTsK
KyAgICAgICAgYXV0byBhZnRlck92ZXJoYW5nID0gb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0ZXIo
cnVieUJhc2VMYXlvdXRCb3gsIHsgcnVieUJhc2VTdGFydCwgc3RhcnRFbmRQYWlyLmVuZCgpIH0s
IGRpc3BsYXlCb3hlcywgbGluZUxvZ2ljYWxIZWlnaHQsIHBhcmVudEZvcm1hdHRpbmdDb250ZXh0
KTsKKworICAgICAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBvdXQgdG8gYmUgYSBwcmVmIGJv
dHRsZW5lY2ssIG1ha2Ugc3VyZSB3ZSBwYXNzIGluIHRoZSBhY2N1bXVsYXRlZCBzaGlmdCB0byBv
dmVyaGFuZ0ZvckFubm90YXRpb25CZWZvcmUvYWZ0ZXIgYW5kCisgICAgICAgIC8vIG9mZnNldCBh
bGwgYm94IGdlb21ldHJ5IGFzIHdlIGNoZWNrIGZvciBvdmVybGFwLgorICAgICAgICBhdXRvIG1v
dmVCb3hSYW5nZVRvVmlzdWFsTGVmdCA9IFsmXShhdXRvIHN0YXJ0LCBhdXRvIGVuZCwgYXV0byBz
aGlmdFZhbHVlKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8gaW5kZXggPSBzdGFydDsgaW5kZXgg
PD0gZW5kOyArK2luZGV4KSB7CisgICAgICAgICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGRp
c3BsYXlCb3hlc1tpbmRleF07CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01v
ZGUgPyBkaXNwbGF5Qm94Lm1vdmVIb3Jpem9udGFsbHkoLXNoaWZ0VmFsdWUpIDogZGlzcGxheUJv
eC5tb3ZlVmVydGljYWxseSgtc2hpZnRWYWx1ZSk7CisKKyAgICAgICAgICAgICAgICBhdXRvJiBs
YXlvdXRCb3ggPSBkaXNwbGF5Qm94LmxheW91dEJveCgpOworICAgICAgICAgICAgICAgIGlmIChk
aXNwbGF5Qm94LmlzSW5saW5lTGV2ZWxCb3goKSAmJiAhZGlzcGxheUJveC5pc1Jvb3RJbmxpbmVC
b3goKSkKKyAgICAgICAgICAgICAgICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0
cnlGb3JCb3gobGF5b3V0Qm94KS5tb3ZlSG9yaXpvbnRhbGx5KExheW91dFVuaXQgeyAtc2hpZnRW
YWx1ZSB9KTsKKworICAgICAgICAgICAgICAgIGlmIChsYXlvdXRCb3guaXNSdWJ5QmFzZSgpICYm
IGxheW91dEJveC5hc3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkKKyAgICAgICAgICAgICAg
ICAgICAgcGFyZW50Rm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goKmxheW91dEJveC5h
c3NvY2lhdGVkUnVieUFubm90YXRpb25Cb3goKSkubW92ZUhvcml6b250YWxseShMYXlvdXRVbml0
IHsgLXNoaWZ0VmFsdWUgfSk7CisgICAgICAgICAgICB9CisgICAgICAgIH07CisgICAgICAgIGF1
dG8gaGFzSnVzdGlmaWVkQWRqYWNlbnRBZnRlckNvbnRlbnQgPSBbJl0geworICAgICAgICAgICAg
aWYgKHN0YXJ0RW5kUGFpci5lbmQoKSA9PSBkaXNwbGF5Qm94ZXMuc2l6ZSgpKQorICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIGF1dG8mIGFmdGVyUnVieUJhc2VEaXNw
bGF5Qm94ID0gZGlzcGxheUJveGVzW3N0YXJ0RW5kUGFpci5lbmQoKV07CisgICAgICAgICAgICBp
ZiAoYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3gubGF5b3V0Qm94KCkuaXNSdWJ5QmFzZSgpKSB7Cisg
ICAgICAgICAgICAgICAgLy8gQWRqYWNlbnQgY29udGVudCBpcyBhbHNvIGEgcnVieSBiYXNlLgor
ICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IHJldHVybiAhIWFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpLmhvcml6b250YWxF
eHBhbnNpb247CisgICAgICAgIH0oKTsKKworICAgICAgICBpZiAoYmVmb3JlT3ZlcmhhbmcpIHsK
KyAgICAgICAgICAgIC8vIFdoZW4gImJlZm9yZSIgYWRqYWNlbnQgY29udGVudCBzbGlnaHRseSBw
dWxscyB0aGUgcmVzdCBvZiB0aGUgY29udGVudCBvbiB0aGUgbGluZSBsZWZ0d2FyZCwganVzdGlm
eSBjb250ZW50IHNob3VsZCBzdGF5IGludGFjdC4KKyAgICAgICAgICAgIG1vdmVCb3hSYW5nZVRv
VmlzdWFsTGVmdChydWJ5QmFzZVN0YXJ0LCBoYXNKdXN0aWZpZWRBZGphY2VudEFmdGVyQ29udGVu
dCA/IHN0YXJ0RW5kUGFpci5lbmQoKSA6IGRpc3BsYXlCb3hlcy5zaXplKCkgLSAxLCBiZWZvcmVP
dmVyaGFuZyk7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGFmdGVyT3ZlcmhhbmcpIHsKKyAgICAg
ICAgICAgIC8vIE5vcm1hbGx5IHdlIHNoaWZ0IGFsbCB0aGUgImFmdGVyIiBib3hlcyB0byB0aGUg
bGVmdCBoZXJlIGFzIG9uZSBtb25vbGl0aGljIGNvbnRlbnQKKyAgICAgICAgICAgIC8vIGJ1dCBp
biBjYXNlIG9mIGp1c3RpZmllZCBhbGlnbm1lbnQgd2UgY2FuIG9ubHkgbW92ZSB0aGUgYWRqYWNl
bnQgcnVuIHVuZGVyIHRoZSBhbm5vdGF0aW9uCisgICAgICAgICAgICAvLyBhbmQgZXhwYW5kIHRo
ZSBqdXN0aWZpZWQgc3BhY2UgdG8ga2VlcCB0aGUgcmVzdCBvZiB0aGUgcnVucyBzdGF0aW9uYXJ5
LgorICAgICAgICAgICAgaWYgKGhhc0p1c3RpZmllZEFkamFjZW50QWZ0ZXJDb250ZW50KSB7Cisg
ICAgICAgICAgICAgICAgYXV0byYgYWZ0ZXJSdWJ5QmFzZURpc3BsYXlCb3ggPSBkaXNwbGF5Qm94
ZXNbc3RhcnRFbmRQYWlyLmVuZCgpXTsKKyAgICAgICAgICAgICAgICBhdXRvIGV4cGFuc2lvbiA9
IGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LmV4cGFuc2lvbigpOworICAgICAgICAgICAgICAgIGF1
dG8gaW5mbGF0ZVZhbHVlID0gYWZ0ZXJPdmVyaGFuZyArIGJlZm9yZU92ZXJoYW5nOworICAgICAg
ICAgICAgICAgIGFmdGVyUnVieUJhc2VEaXNwbGF5Qm94LnNldEV4cGFuc2lvbih7IGV4cGFuc2lv
bi5iZWhhdmlvciwgZXhwYW5zaW9uLmhvcml6b250YWxFeHBhbnNpb24gKyBpbmZsYXRlVmFsdWUg
fSk7CisgICAgICAgICAgICAgICAgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBhZnRlclJ1YnlC
YXNlRGlzcGxheUJveC5leHBhbmRIb3Jpem9udGFsbHkoaW5mbGF0ZVZhbHVlKSA6IGFmdGVyUnVi
eUJhc2VEaXNwbGF5Qm94LmV4cGFuZFZlcnRpY2FsbHkoaW5mbGF0ZVZhbHVlKTsKKyAgICAgICAg
ICAgICAgICBtb3ZlQm94UmFuZ2VUb1Zpc3VhbExlZnQoc3RhcnRFbmRQYWlyLmVuZCgpLCBzdGFy
dEVuZFBhaXIuZW5kKCksIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICAgICAgfSBlbHNlCisgICAg
ICAgICAgICAgICAgbW92ZUJveFJhbmdlVG9WaXN1YWxMZWZ0KHN0YXJ0RW5kUGFpci5lbmQoKSwg
ZGlzcGxheUJveGVzLnNpemUoKSAtIDEsIGFmdGVyT3ZlcmhhbmcpOworICAgICAgICB9CisgICAg
fQorfQorCiB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1YnlGb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IDg5ODg2ZmI0ZjM3Mi4uMGVkZmEyOTM4MDg0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9ydWJ5L1J1
YnlGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL3J1YnkvUnVieUZvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTU1LDgg
KzU1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRQb2ludCBwbGFjZUFubm90
YXRpb25Cb3goY29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgY29uc3QgUmVjdCYgcnVieUJh
c2VNYXJnaW5Cb3hMb2dpY2FsUmVjdCwgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKICAgICBz
dGF0aWMgSW5saW5lTGF5b3V0U2l6ZSBzaXplQW5ub3RhdGlvbkJveChjb25zdCBCb3gmIHJ1YnlC
YXNlTGF5b3V0Qm94LCBjb25zdCBSZWN0JiBydWJ5QmFzZU1hcmdpbkJveExvZ2ljYWxSZWN0LCBJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwogCi0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQg
b3ZlcmhhbmdGb3JBbm5vdGF0aW9uQmVmb3JlKGNvbnN0IEJveCYgcnVieUJhc2VMYXlvdXRCb3gs
IHNpemVfdCBydWJ5QmFzZVN0YXJ0LCBjb25zdCBJbmxpbmVEaXNwbGF5OjpCb3hlcyYsIElubGlu
ZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7
Ci0gICAgc3RhdGljIElubGluZUxheW91dFVuaXQgb3ZlcmhhbmdGb3JBbm5vdGF0aW9uQWZ0ZXIo
Y29uc3QgQm94JiBydWJ5QmFzZUxheW91dEJveCwgV1RGOjpSYW5nZTxzaXplX3Q+IHJ1YnlCYXNl
UmFuZ2UsIGNvbnN0IElubGluZURpc3BsYXk6OkJveGVzJiwgSW5saW5lTGF5b3V0VW5pdCBsaW5l
TG9naWNhbEhlaWdodCwgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQmKTsKKyAgICBzdGF0aWMgdm9p
ZCBhcHBseVJ1YnlPdmVyaGFuZyhJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYgcGFyZW50Rm9ybWF0
dGluZ0NvbnRleHQsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQsIElubGluZURp
c3BsYXk6OkJveGVzJiwgY29uc3QgVmVjdG9yPFdURjo6UmFuZ2U8c2l6ZV90Pj4mIGludGVybGlu
ZWFyUnVieUNvbHVtblJhbmdlTGlzdCk7CiAKICAgICBlbnVtIGNsYXNzIFJ1YnlCYXNlc01heU5l
ZWRSZXNpemluZyA6IGJvb2wgeyBObywgWWVzIH07CiAgICAgc3RhdGljIHZvaWQgYXBwbHlBbGln
bm1lbnRPZmZzZXRMaXN0KElubGluZURpc3BsYXk6OkJveGVzJiwgY29uc3QgSGFzaE1hcDxjb25z
dCBCb3gqLCBJbmxpbmVMYXlvdXRVbml0PiYgYWxpZ25tZW50T2Zmc2V0TGlzdCwgUnVieUJhc2Vz
TWF5TmVlZFJlc2l6aW5nLCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOwpAQCAtNjksNyArNjgs
MTAgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBNYXhpbXVtTGF5b3V0Qm91bmRzU3Ry
ZXRjaE1hcCA9IEhhc2hNYXA8Y29uc3QgSW5saW5lTGV2ZWxCb3gqLCBJbmxpbmVMZXZlbEJveDo6
QXNjZW50QW5kRGVzY2VudD47CiAgICAgc3RhdGljIHZvaWQgYWRqdXN0TGF5b3V0Qm91bmRzQW5k
U3RyZXRjaEFuY2VzdG9yUnVieUJhc2UoTGluZUJveCYsIElubGluZUxldmVsQm94JiBydWJ5QmFz
ZUlubGluZUJveCwgTWF4aW11bUxheW91dEJvdW5kc1N0cmV0Y2hNYXAmLCBjb25zdCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dCYpOworCiAgICAgc3RhdGljIHNpemVfdCBhcHBseVJ1YnlBbGlnbk9u
QmFzZUNvbnRlbnQoc2l6ZV90IHJ1YnlCYXNlU3RhcnQsIExpbmUmLCBIYXNoTWFwPGNvbnN0IEJv
eCosIElubGluZUxheW91dFVuaXQ+JiBhbGlnbm1lbnRPZmZzZXRMaXN0LCBJbmxpbmVGb3JtYXR0
aW5nQ29udGV4dCYpOworICAgIHN0YXRpYyBJbmxpbmVMYXlvdXRVbml0IG92ZXJoYW5nRm9yQW5u
b3RhdGlvbkJlZm9yZShjb25zdCBCb3gmIHJ1YnlCYXNlTGF5b3V0Qm94LCBzaXplX3QgcnVieUJh
c2VTdGFydCwgY29uc3QgSW5saW5lRGlzcGxheTo6Qm94ZXMmLCBJbmxpbmVMYXlvdXRVbml0IGxp
bmVMb2dpY2FsSGVpZ2h0LCBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCYpOworICAgIHN0YXRpYyBJ
bmxpbmVMYXlvdXRVbml0IG92ZXJoYW5nRm9yQW5ub3RhdGlvbkFmdGVyKGNvbnN0IEJveCYgcnVi
eUJhc2VMYXlvdXRCb3gsIFdURjo6UmFuZ2U8c2l6ZV90PiBydWJ5QmFzZVJhbmdlLCBjb25zdCBJ
bmxpbmVEaXNwbGF5OjpCb3hlcyYsIElubGluZUxheW91dFVuaXQgbGluZUxvZ2ljYWxIZWlnaHQs
IElubGluZUZvcm1hdHRpbmdDb250ZXh0Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBMYXlvdXQK
</data>

          </attachment>
      

    </bug>

</bugzilla>