<?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>249653</bug_id>
          
          <creation_ts>2022-12-20 08:48:50 -0800</creation_ts>
          <short_desc>[IFC][hanging punctuation] Candidate content should let the line breaker know if there&apos;s hanging punctuation</short_desc>
          <delta_ts>2022-12-22 05:55:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="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>1920792</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-12-20 08:48:50 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1920795</commentid>
    <comment_count>1</comment_count>
      <attachid>464123</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-20 08:54:54 -0800</bug_when>
    <thetext>Created attachment 464123
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921173</commentid>
    <comment_count>2</comment_count>
      <attachid>464151</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-21 12:01:04 -0800</bug_when>
    <thetext>Created attachment 464151
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921188</commentid>
    <comment_count>3</comment_count>
      <attachid>464153</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-21 12:54:00 -0800</bug_when>
    <thetext>Created attachment 464153
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921268</commentid>
    <comment_count>4</comment_count>
      <attachid>464157</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-21 16:38:52 -0800</bug_when>
    <thetext>Created attachment 464157
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921310</commentid>
    <comment_count>5</comment_count>
      <attachid>464161</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-21 22:08:10 -0800</bug_when>
    <thetext>Created attachment 464161
[fast-cq]Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921349</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-12-22 05:54:29 -0800</bug_when>
    <thetext>Committed 258239@main (dced9d40e0ba): &lt;https://commits.webkit.org/258239@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 464161.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1921351</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-12-22 05:55:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/103635898&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464123</attachid>
            <date>2022-12-20 08:54:54 -0800</date>
            <delta_ts>2022-12-21 12:01:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-249653-20221220085453.patch</filename>
            <type>text/plain</type>
            <size>10685</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MGY0NjU5ZDJjZGIzNjMzOTk1OWFmNzdlZjBmYjIwZjBjMjRkNjYwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjAgRGVjIDIwMjIgMDg6NTI6NDQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVto
YW5naW5nIHB1bmN0dWF0aW9uXSBDYW5kaWRhdGUgY29udGVudCBzaG91bGQgbGV0IHRoZQogbGlu
ZSBicmVha2VyIGtub3cgaWYgdGhlcmUncyBoYW5naW5nIHB1bmN0dWF0aW9uCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzCgpSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBpbmxpbmUgY29udGVudCBicmVh
a2VyIChsaW5lIGJyZWFrZXIpIGlzIGF3YXJlIG9mIGFueSBoYW5naW5nIHB1bmN0dWF0aW9uIGlu
IHRoZSBjYW5kaWRhdGUgY29udGVudC4KVGhpcyBoZWxwcyB3aGVuIGNvbXB1dGluZyBpZiB0aGUg
Y2FuZGlkYXRlIGNvbnRlbnQgZml0cyB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UuCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6c2V0SGFuZ2luZ0NvbnRlbnRXaWR0aCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWls
ZGVyOjpsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRl
Q29udGVudEZvckxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKy0tLQogLi4uL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgIDIgKwogMiBmaWxlcyBj
aGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5kZXggMmFkMmJmNTA4ZThjLi4yOTNiNTNjMDA0
MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTIwOCw2
ICsyMDgsOCBAQCBzdHJ1Y3QgTGluZUNhbmRpZGF0ZSB7CiAgICAgICAgIHZvaWQgc2V0SGFzVHJh
aWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5KGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVu
aXR5KSB7IG1faGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5ID0gaGFzVHJhaWxpbmdTb2Z0
V3JhcE9wcG9ydHVuaXR5OyB9CiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9y
dHVuaXR5KCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHk7
IH0KIAorICAgICAgICB2b2lkIHNldEhhbmdpbmdDb250ZW50V2lkdGgoSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgpIHsgbV9jb250aW51b3VzQ29udGVudC5zZXRIYW5naW5nQ29udGVudFdp
ZHRoKGxvZ2ljYWxXaWR0aCk7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pZ25v
cmVUcmFpbGluZ0xldHRlclNwYWNpbmcgeyBmYWxzZSB9OwogCkBAIC02MzYsNiArNjM4LDU0IEBA
IExpbmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmluaXRpYWxDb25zdHJh
aW50c0ZvckxpbmUoY29uc3QgSW5saW5lCiAgICAgcmV0dXJuIFVzZWRDb25zdHJhaW50cyB7IGFk
anVzdGVkTGluZUxvZ2ljYWxSZWN0LCB0ZXh0SW5kZW50LCBsaW5lSXNDb25zdHJhaW5lZEJ5Rmxv
YXQgfTsKIH0KIAorSW5saW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0
aW9uV2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwg
c2l6ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAoreworICAgIGF1dG8gaXNG
aXJzdExpbmVGaXJzdENvbnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUu
aGFzQ29udGVudCgpOworICAgIGlmICghaXNGaXJzdExpbmVGaXJzdENvbnRlbnQpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4KSB7CisgICAg
ICAgIC8vIFRoZSB0ZXh0IGNvbnRlbnQgaXMgbm90IHRoZSBmaXJzdCBpbiB0aGUgY2FuZGlkYXRl
IGxpc3QuIEhvd2V2ZXIgaXQgbWF5IGJlIHRoZSBmaXJzdCBjb250ZW50ZnVsIG9uZS4KKyAgICAg
ICAgZm9yIChhdXRvIGluZGV4ID0gZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4IC0gMTsgaW5kZXgg
Pj0gY2FuZGlkYXRlQ29udGVudFN0YXJ0SW5kZXg7IC0taW5kZXgpIHsKKyAgICAgICAgICAgIGF1
dG8mIGlubGluZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgICAgIEFTU0VS
VCghaW5saW5lSXRlbS5pc1RleHQoKSAmJiAhaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpICYmICFp
bmxpbmVJdGVtLmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSk7CisgICAgICAgICAgICBpZiAoaW5s
aW5lSXRlbS5pc0Zsb2F0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAg
ICBhdXRvIGlzQ29udGVudGZ1bCA9IGlubGluZUl0ZW0uaXNCb3goKQorICAgICAgICAgICAgICAg
IHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBh
ZGRpbmdTdGFydCgpKQorICAgICAgICAgICAgICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94
RW5kKCkgJiYgZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxh
eW91dEJveCgpKS5tYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKCkpOworICAgICAgICAgICAgaWYg
KGlzQ29udGVudGZ1bCkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9Cisg
ICAgfQorICAgIGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+
KG1faW5saW5lSXRlbXNbZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5
bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5
bGUoKSA6IGlubGluZVRleHRJdGVtLnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVh
ZGluZyBjb250ZW50IG1heSBoYXZlIGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0
dXJuIFRleHRVdGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRl
bSwgc3R5bGUpOworfQorCitJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjp0cmFpbGluZ1B1
bmN0dWF0aW9uV2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGxhc3RJbmxpbmVUZXh0SXRlbUlu
ZGV4LCBzaXplX3QgbGF5b3V0UmFuZ2VFbmQpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IElmIHRo
aXMgdHVybnMgb3V0IHRvIGJlIHByb2JsZW1hdGljIChmaW5kaW5nIG91dCBpZiB0aGlzIGlzIHRo
ZSBsYXN0IGZvcm1hdHRlZCBsaW5lIHRoYXQgaXMpLCB3ZQorICAgIC8vIG1heSBoYXZlIHRvIGZh
bGxiYWNrIHRvIGEgcG9zdC1wcm9jZXNzIHNldHVwLCB3aGVyZSBhZnRlciBmaW5pc2hpbmcgbGF5
aW5nIG91dCB0aGUgY29udGVudCwgd2UgZ28gYmFjayBhbmQgcmUtbGF5b3V0CisgICAgLy8gdGhl
IGxhc3QgKDI/KSBsaW5lKHMpIHdoZW4gdGhlcmUncyB0cmFpbGluZyBoYW5naW5nIHB1bmN0dWF0
aW9uLgorICAgIC8vIEZvciBub3cgbGV0J3MgcHJvYmUgdGhlIGNvbnRlbnQgYWxsIHRoZSB3YXkg
dG8gbGF5b3V0UmFuZ2VFbmQuCisgICAgZm9yIChhdXRvIGluZGV4ID0gbGFzdElubGluZVRleHRJ
dGVtSW5kZXggKyAxOyBpbmRleCA8IGxheW91dFJhbmdlRW5kOyArK2luZGV4KSB7CisgICAgICAg
IGF1dG8mIGlubGluZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgaWYgKGlu
bGluZUl0ZW0uaXNGbG9hdCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8g
aXNDb250ZW50ZnVsID0gaW5saW5lSXRlbS5pc0JveCgpIHx8IGlubGluZUl0ZW0uaXNUZXh0KCkK
KyAgICAgICAgICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0
aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdp
bkJvcmRlckFuZFBhZGRpbmdTdGFydCgpKQorICAgICAgICAgICAgfHwgKGlubGluZUl0ZW0uaXNJ
bmxpbmVCb3hFbmQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGlu
ZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQoKSk7CisgICAgICAg
IGlmIChpc0NvbnRlbnRmdWwpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAgICBh
dXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0
ZW1zW2xhc3RJbmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0
Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGlu
ZVRleHRJdGVtLnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVhZGluZyBjb250ZW50
IG1heSBoYXZlIGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0dXJuIFRleHRVdGls
OjpoYW5nYWJsZVB1bmN0dWF0aW9uRW5kV2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlKTsKK30K
Kwogdm9pZCBMaW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0
ZSYgbGluZUNhbmRpZGF0ZSwgc2l6ZV90IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgsIGNvbnN0IElu
bGluZUl0ZW1SYW5nZSYgbGF5b3V0UmFuZ2UsIElubGluZUxheW91dFVuaXQgY3VycmVudExvZ2lj
YWxSaWdodCkKIHsKICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCA8IGxheW91dFJh
bmdlLmVuZCk7CkBAIC02NTcsMjggKzcwNywyOSBAQCB2b2lkIExpbmVCdWlsZGVyOjpjYW5kaWRh
dGVDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlLCBzaXplX3QgYwog
ICAgICAgICArK2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CiAgICAgfQogCisgICAgYXV0byBmaXJz
dElubGluZVRleHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9OworICAgIGF1
dG8gbGFzdElubGluZVRleHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9Owog
ICAgIGZvciAoYXV0byBpbmRleCA9IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXg7IGluZGV4IDwgc29m
dFdyYXBPcHBvcnR1bml0eUluZGV4OyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0
ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKLSAgICAgICAgYXV0byYgc3R5bGUgPSBbJl0gKCkg
LT4gY29uc3QgUmVuZGVyU3R5bGUmIHsKLSAgICAgICAgICAgIHJldHVybiBpc0ZpcnN0Rm9ybWF0
dGVkTGluZSgpID8gaW5saW5lSXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHls
ZSgpOwotICAgICAgICB9KCk7CisgICAgICAgIGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRl
ZExpbmUoKSA/IGlubGluZUl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZUl0ZW0uc3R5bGUo
KTsKKwogICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0Zsb2F0KCkpIHsKICAgICAgICAgICAgIGxp
bmVDYW5kaWRhdGUuZmxvYXRJdGVtID0gJmlubGluZUl0ZW07CiAgICAgICAgICAgICAvLyBUaGlz
IGlzIGEgc29mdCB3cmFwIG9wcG9ydHVuaXR5LCBtdXN0IGJlIHRoZSBvbmx5IGl0ZW0gaW4gdGhl
IGxpc3QuCiAgICAgICAgICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCArIDEgPT0g
c29mdFdyYXBPcHBvcnR1bml0eUluZGV4KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICB9Ci0gICAgICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxp
bmVCb3hTdGFydCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkgewotICAgICAgICAg
ICAgYXV0byBsb2dpY2FsV2lkdGggPSBtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoID8gKnN0ZDo6
ZXhjaGFuZ2UobV9vdmVyZmxvd2luZ0xvZ2ljYWxXaWR0aCwgc3RkOjpudWxsb3B0KSA6IGlubGlu
ZUl0ZW1XaWR0aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKLSAgICAgICAgICAg
IGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0s
IHN0eWxlLCBsb2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCAr
PSBsb2dpY2FsV2lkdGg7Ci0gICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGlu
ZUl0ZW0pICYmIGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1dvcmRTZXBh
cmF0b3IoKSkgewotICAgICAgICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtl
IHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBM
aW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3ZWxsLgotICAgICAgICAgICAgICAgIGN1cnJlbnRM
b2dpY2FsUmlnaHQgKz0gc3R5bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpOwotICAgICAg
ICAgICAgfQorICAgICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgeworICAgICAgICAgICAg
YXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRl
bSk7CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2Fs
V2lkdGggPyAqc3RkOjpleGNoYW5nZShtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51
bGxvcHQpIDogaW5saW5lSXRlbVdpZHRoKGlubGluZVRleHRJdGVtLCBjdXJyZW50TG9naWNhbFJp
Z2h0KTsKKyAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxp
bmVJdGVtKGlubGluZVRleHRJdGVtLCBzdHlsZSwgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAg
IC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJv
ZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3
ZWxsLgorICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGggKyAo
aW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndv
cmRTcGFjaW5nKCkgOiAwLmYpOworICAgICAgICAgICAgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4
ID0gZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LnZhbHVlX29yKGluZGV4KTsKKyAgICAgICAgICAg
IGxhc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgfQotICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0JveCgpKSB7CisgICAgICAgIGlm
IChpbmxpbmVJdGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwg
aW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSB7CiAgICAgICAgICAgICBhdXRvIGxvZ2ljYWxX
aWR0aCA9IGlubGluZUl0ZW1XaWR0aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXaGlsZSB0aGUgbGluZSBicmVha2luZyByZWxhdGVkIHBy
b3BlcnRpZXMgZm9yIGF0b21pYyBsZXZlbCBib3hlcyBkbyBub3QgZGVwZW5kIG9uIHRoZSBsaW5l
IGluZGV4IChmaXJzdCBsaW5lIHN0eWxlKSBpdCdkIGJlIGdyZWF0IHRvIGZpZ3VyZSBvdXQgdGhl
IGNvcnJlY3Qgc3R5bGUgdG8gcGFzcyBpbi4KICAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5s
aW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIGlubGluZUl0ZW0ubGF5b3V0
Qm94KCkucGFyZW50KCkuc3R5bGUoKSwgbG9naWNhbFdpZHRoKTsKQEAgLTY5Nyw2ICs3NDgsMTgg
QEAgdm9pZCBMaW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0
ZSYgbGluZUNhbmRpZGF0ZSwgc2l6ZV90IGMKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKICAgICB9CisKKyAgICBhdXRvIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdp
bmdQdW5jdHVhdGlvbiA9IFsmXSB7CisgICAgICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnRXaWR0aCA9
IGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5jb250aW51b3VzQ29udGVudCgpLmhhbmdpbmdD
b250ZW50V2lkdGgoKTsKKyAgICAgICAgLy8gRG8gbm90IGV2ZW4gdHJ5IHRvIGNoZWNrIGZvciB0
cmFpbGluZyBwdW5jdHVhdGlvbiB3aGVuIHRoZSBjYW5kaWRhdGUgY29udGVudCBhbHJlYWR5IGhh
cyB3aGl0ZXNwYWNlIHR5cGUgb2YgaGFuZ2luZyBjb250ZW50LgorICAgICAgICBpZiAoIWhhbmdp
bmdDb250ZW50V2lkdGggJiYgbGFzdElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBo
YW5naW5nQ29udGVudFdpZHRoICs9IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5k
aWF0ZSgqbGFzdElubGluZVRleHRJdGVtSW5kZXgsIGxheW91dFJhbmdlLmVuZCk7CisgICAgICAg
IGlmIChmaXJzdElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBoYW5naW5nQ29udGVu
dFdpZHRoICs9IGxlYWRpbmdQdW5jdHVhdGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKCpmaXJzdElu
bGluZVRleHRJdGVtSW5kZXgsIGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgpOworICAgICAgICBsaW5l
Q2FuZGlkYXRlLmlubGluZUNvbnRlbnQuc2V0SGFuZ2luZ0NvbnRlbnRXaWR0aChoYW5naW5nQ29u
dGVudFdpZHRoKTsKKyAgICB9OworICAgIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdpbmdQdW5j
dHVhdGlvbigpOworCiAgICAgYXV0byBpbmxpbmVDb250ZW50RW5kc0luU29mdFdyYXBPcHBvcnR1
bml0eSA9IFsmXSB7CiAgICAgICAgIGlmICghc29mdFdyYXBPcHBvcnR1bml0eUluZGV4IHx8IHNv
ZnRXcmFwT3Bwb3J0dW5pdHlJbmRleCA9PSBsYXlvdXRSYW5nZS5lbmQpIHsKICAgICAgICAgICAg
IC8vIFRoaXMgY2FuZGlkYXRlIGlubGluZSBjb250ZW50IGVuZHMgYmVjYXVzZSB0aGUgZW50aXJl
IGNvbnRlbnQgZW5kcyBhbmQgbm90IGJlY2F1c2UgdGhlcmUncyBhIHNvZnQgd3JhcCBvcHBvcnR1
bml0eS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IDg0NTQ1MmZk
ZDAwYy4uYzQxZjkzZjBlZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVy
LmgKQEAgLTExMyw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjYW5k
aWRhdGVDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiwgc2l6ZV90IGlubGluZUl0ZW1JbmRl
eCwgY29uc3QgSW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBJbmxpbmVMYXlvdXRV
bml0IGN1cnJlbnRMb2dpY2FsUmlnaHQpOworICAgIElubGluZUxheW91dFVuaXQgbGVhZGluZ1B1
bmN0dWF0aW9uV2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1J
bmRleCwgc2l6ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdDsKKyAgICBJbmxp
bmVMYXlvdXRVbml0IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXpl
X3QgbGFzdElubGluZVRleHRJdGVtSW5kZXgsIHNpemVfdCBsYXlvdXRSYW5nZUVuZCkgY29uc3Q7
CiAgICAgc2l6ZV90IG5leHRXcmFwT3Bwb3J0dW5pdHkoc2l6ZV90IHN0YXJ0SW5kZXgsIGNvbnN0
IExpbmVCdWlsZGVyOjpJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKSBjb25zdDsKIAogICAg
IHN0cnVjdCBVc2VkQ29uc3RyYWludHMgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464151</attachid>
            <date>2022-12-21 12:01:04 -0800</date>
            <delta_ts>2022-12-21 12:53:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-249653-20221221120103.patch</filename>
            <type>text/plain</type>
            <size>10676</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMWEyZDYwZjFjOTRjNDNlYjYxNTNkMTJlYTZkMWRkZTNiMDY3OGJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjAgRGVjIDIwMjIgMDg6NTI6NDQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVto
YW5naW5nIHB1bmN0dWF0aW9uXSBDYW5kaWRhdGUgY29udGVudCBzaG91bGQgbGV0IHRoZQogbGlu
ZSBicmVha2VyIGtub3cgaWYgdGhlcmUncyBoYW5naW5nIHB1bmN0dWF0aW9uCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzCgpSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBpbmxpbmUgY29udGVudCBicmVh
a2VyIChsaW5lIGJyZWFrZXIpIGlzIGF3YXJlIG9mIGFueSBoYW5naW5nIHB1bmN0dWF0aW9uIGlu
IHRoZSBjYW5kaWRhdGUgY29udGVudC4KVGhpcyBoZWxwcyB3aGVuIGNvbXB1dGluZyBpZiB0aGUg
Y2FuZGlkYXRlIGNvbnRlbnQgZml0cyB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UuCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6c2V0SGFuZ2luZ0NvbnRlbnRXaWR0aCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWls
ZGVyOjpsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRl
Q29udGVudEZvckxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKy0tLQogLi4uL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgIDIgKwogMiBmaWxlcyBj
aGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5kZXggMmFkMmJmNTA4ZThjLi4wZjU1YjA5NDRk
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTIwOCw2
ICsyMDgsOCBAQCBzdHJ1Y3QgTGluZUNhbmRpZGF0ZSB7CiAgICAgICAgIHZvaWQgc2V0SGFzVHJh
aWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5KGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVu
aXR5KSB7IG1faGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5ID0gaGFzVHJhaWxpbmdTb2Z0
V3JhcE9wcG9ydHVuaXR5OyB9CiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9y
dHVuaXR5KCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHk7
IH0KIAorICAgICAgICB2b2lkIHNldEhhbmdpbmdDb250ZW50V2lkdGgoSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgpIHsgbV9jb250aW51b3VzQ29udGVudC5zZXRIYW5naW5nQ29udGVudFdp
ZHRoKGxvZ2ljYWxXaWR0aCk7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pZ25v
cmVUcmFpbGluZ0xldHRlclNwYWNpbmcgeyBmYWxzZSB9OwogCkBAIC02MzYsNiArNjM4LDU0IEBA
IExpbmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmluaXRpYWxDb25zdHJh
aW50c0ZvckxpbmUoY29uc3QgSW5saW5lCiAgICAgcmV0dXJuIFVzZWRDb25zdHJhaW50cyB7IGFk
anVzdGVkTGluZUxvZ2ljYWxSZWN0LCB0ZXh0SW5kZW50LCBsaW5lSXNDb25zdHJhaW5lZEJ5Rmxv
YXQgfTsKIH0KIAorSW5saW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0
aW9uV2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwg
c2l6ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAoreworICAgIGF1dG8gaXNG
aXJzdExpbmVGaXJzdENvbnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUu
aGFzQ29udGVudCgpOworICAgIGlmICghaXNGaXJzdExpbmVGaXJzdENvbnRlbnQpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4KSB7CisgICAg
ICAgIC8vIFRoZSB0ZXh0IGNvbnRlbnQgaXMgbm90IHRoZSBmaXJzdCBpbiB0aGUgY2FuZGlkYXRl
IGxpc3QuIEhvd2V2ZXIgaXQgbWF5IGJlIHRoZSBmaXJzdCBjb250ZW50ZnVsIG9uZS4KKyAgICAg
ICAgZm9yIChzaXplX3QgaW5kZXggPSBmaXJzdElubGluZVRleHRJdGVtSW5kZXg7IGluZGV4LS0g
PiBjYW5kaWRhdGVDb250ZW50U3RhcnRJbmRleDspIHsKKyAgICAgICAgICAgIGF1dG8mIGlubGlu
ZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgICAgIEFTU0VSVCghaW5saW5l
SXRlbS5pc1RleHQoKSAmJiAhaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpICYmICFpbmxpbmVJdGVt
LmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSk7CisgICAgICAgICAgICBpZiAoaW5saW5lSXRlbS5p
c0Zsb2F0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvIGlz
Q29udGVudGZ1bCA9IGlubGluZUl0ZW0uaXNCb3goKQorICAgICAgICAgICAgICAgIHx8IChpbmxp
bmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5
Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBhZGRpbmdTdGFy
dCgpKQorICAgICAgICAgICAgICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkgJiYg
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91dEJveCgp
KS5tYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKCkpOworICAgICAgICAgICAgaWYgKGlzQ29udGVu
dGZ1bCkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgfQorICAg
IGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5l
SXRlbXNbZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5bGUgPSBpc0Zp
cnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlu
bGluZVRleHRJdGVtLnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVhZGluZyBjb250
ZW50IG1heSBoYXZlIGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0dXJuIFRleHRV
dGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5bGUp
OworfQorCitJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9u
V2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGxhc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBzaXpl
X3QgbGF5b3V0UmFuZ2VFbmQpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IElmIHRoaXMgdHVybnMg
b3V0IHRvIGJlIHByb2JsZW1hdGljIChmaW5kaW5nIG91dCBpZiB0aGlzIGlzIHRoZSBsYXN0IGZv
cm1hdHRlZCBsaW5lIHRoYXQgaXMpLCB3ZQorICAgIC8vIG1heSBoYXZlIHRvIGZhbGxiYWNrIHRv
IGEgcG9zdC1wcm9jZXNzIHNldHVwLCB3aGVyZSBhZnRlciBmaW5pc2hpbmcgbGF5aW5nIG91dCB0
aGUgY29udGVudCwgd2UgZ28gYmFjayBhbmQgcmUtbGF5b3V0CisgICAgLy8gdGhlIGxhc3QgKDI/
KSBsaW5lKHMpIHdoZW4gdGhlcmUncyB0cmFpbGluZyBoYW5naW5nIHB1bmN0dWF0aW9uLgorICAg
IC8vIEZvciBub3cgbGV0J3MgcHJvYmUgdGhlIGNvbnRlbnQgYWxsIHRoZSB3YXkgdG8gbGF5b3V0
UmFuZ2VFbmQuCisgICAgZm9yIChhdXRvIGluZGV4ID0gbGFzdElubGluZVRleHRJdGVtSW5kZXgg
KyAxOyBpbmRleCA8IGxheW91dFJhbmdlRW5kOyArK2luZGV4KSB7CisgICAgICAgIGF1dG8mIGlu
bGluZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0u
aXNGbG9hdCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8gaXNDb250ZW50
ZnVsID0gaW5saW5lSXRlbS5pc0JveCgpIHx8IGlubGluZUl0ZW0uaXNUZXh0KCkKKyAgICAgICAg
ICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0aW5nQ29udGV4
dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFu
ZFBhZGRpbmdTdGFydCgpKQorICAgICAgICAgICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hF
bmQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5
b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQoKSk7CisgICAgICAgIGlmIChpc0Nv
bnRlbnRmdWwpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAgICBhdXRvJiBpbmxp
bmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1zW2xhc3RJ
bmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVk
TGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZVRleHRJdGVt
LnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVhZGluZyBjb250ZW50IG1heSBoYXZl
IGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0dXJuIFRleHRVdGlsOjpoYW5nYWJs
ZVB1bmN0dWF0aW9uRW5kV2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlKTsKK30KKwogdm9pZCBM
aW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0ZSYgbGluZUNh
bmRpZGF0ZSwgc2l6ZV90IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgsIGNvbnN0IElubGluZUl0ZW1S
YW5nZSYgbGF5b3V0UmFuZ2UsIElubGluZUxheW91dFVuaXQgY3VycmVudExvZ2ljYWxSaWdodCkK
IHsKICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCA8IGxheW91dFJhbmdlLmVuZCk7
CkBAIC02NTcsMjggKzcwNywyOSBAQCB2b2lkIExpbmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50
Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlLCBzaXplX3QgYwogICAgICAgICAr
K2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CiAgICAgfQogCisgICAgYXV0byBmaXJzdElubGluZVRl
eHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9OworICAgIGF1dG8gbGFzdElu
bGluZVRleHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9OwogICAgIGZvciAo
YXV0byBpbmRleCA9IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXg7IGluZGV4IDwgc29mdFdyYXBPcHBv
cnR1bml0eUluZGV4OyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBtX2lu
bGluZUl0ZW1zW2luZGV4XTsKLSAgICAgICAgYXV0byYgc3R5bGUgPSBbJl0gKCkgLT4gY29uc3Qg
UmVuZGVyU3R5bGUmIHsKLSAgICAgICAgICAgIHJldHVybiBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgp
ID8gaW5saW5lSXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHlsZSgpOwotICAg
ICAgICB9KCk7CisgICAgICAgIGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/
IGlubGluZUl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZUl0ZW0uc3R5bGUoKTsKKwogICAg
ICAgICBpZiAoaW5saW5lSXRlbS5pc0Zsb2F0KCkpIHsKICAgICAgICAgICAgIGxpbmVDYW5kaWRh
dGUuZmxvYXRJdGVtID0gJmlubGluZUl0ZW07CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc29m
dCB3cmFwIG9wcG9ydHVuaXR5LCBtdXN0IGJlIHRoZSBvbmx5IGl0ZW0gaW4gdGhlIGxpc3QuCiAg
ICAgICAgICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCArIDEgPT0gc29mdFdyYXBP
cHBvcnR1bml0eUluZGV4KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAg
ICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFy
dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkgewotICAgICAgICAgICAgYXV0byBs
b2dpY2FsV2lkdGggPSBtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoID8gKnN0ZDo6ZXhjaGFuZ2Uo
bV9vdmVyZmxvd2luZ0xvZ2ljYWxXaWR0aCwgc3RkOjpudWxsb3B0KSA6IGlubGluZUl0ZW1XaWR0
aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKLSAgICAgICAgICAgIGxpbmVDYW5k
aWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIHN0eWxlLCBs
b2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2Fs
V2lkdGg7Ci0gICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pICYm
IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1dvcmRTZXBhcmF0b3IoKSkg
ewotICAgICAgICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4g
bG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBl
bmRUZXh0Q29udGVudCBhcyB3ZWxsLgotICAgICAgICAgICAgICAgIGN1cnJlbnRMb2dpY2FsUmln
aHQgKz0gc3R5bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpOwotICAgICAgICAgICAgfQor
ICAgICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgeworICAgICAgICAgICAgYXV0byYgaW5s
aW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7CisgICAg
ICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAq
c3RkOjpleGNoYW5nZShtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDog
aW5saW5lSXRlbVdpZHRoKGlubGluZVRleHRJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKyAg
ICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlu
bGluZVRleHRJdGVtLCBzdHlsZSwgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIC8vIFdvcmQg
c3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4g
b2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3ZWxsLgorICAg
ICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGggKyAoaW5saW5lVGV4
dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5n
KCkgOiAwLmYpOworICAgICAgICAgICAgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gZmlyc3RJ
bmxpbmVUZXh0SXRlbUluZGV4LnZhbHVlX29yKGluZGV4KTsKKyAgICAgICAgICAgIGxhc3RJbmxp
bmVUZXh0SXRlbUluZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0JveCgpKSB7CisgICAgICAgIGlmIChpbmxpbmVJ
dGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5saW5lSXRl
bS5pc0lubGluZUJveEVuZCgpKSB7CiAgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGlu
bGluZUl0ZW1XaWR0aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBXaGlsZSB0aGUgbGluZSBicmVha2luZyByZWxhdGVkIHByb3BlcnRpZXMg
Zm9yIGF0b21pYyBsZXZlbCBib3hlcyBkbyBub3QgZGVwZW5kIG9uIHRoZSBsaW5lIGluZGV4IChm
aXJzdCBsaW5lIHN0eWxlKSBpdCdkIGJlIGdyZWF0IHRvIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3Qg
c3R5bGUgdG8gcGFzcyBpbi4KICAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVu
dC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIGlubGluZUl0ZW0ubGF5b3V0Qm94KCkucGFy
ZW50KCkuc3R5bGUoKSwgbG9naWNhbFdpZHRoKTsKQEAgLTY5Nyw2ICs3NDgsMTggQEAgdm9pZCBM
aW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0ZSYgbGluZUNh
bmRpZGF0ZSwgc2l6ZV90IGMKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CisKKyAgICBhdXRvIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdpbmdQdW5jdHVh
dGlvbiA9IFsmXSB7CisgICAgICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnRXaWR0aCA9IGxpbmVDYW5k
aWRhdGUuaW5saW5lQ29udGVudC5jb250aW51b3VzQ29udGVudCgpLmhhbmdpbmdDb250ZW50V2lk
dGgoKTsKKyAgICAgICAgLy8gRG8gbm90IGV2ZW4gdHJ5IHRvIGNoZWNrIGZvciB0cmFpbGluZyBw
dW5jdHVhdGlvbiB3aGVuIHRoZSBjYW5kaWRhdGUgY29udGVudCBhbHJlYWR5IGhhcyB3aGl0ZXNw
YWNlIHR5cGUgb2YgaGFuZ2luZyBjb250ZW50LgorICAgICAgICBpZiAoIWhhbmdpbmdDb250ZW50
V2lkdGggJiYgbGFzdElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBoYW5naW5nQ29u
dGVudFdpZHRoICs9IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSgqbGFz
dElubGluZVRleHRJdGVtSW5kZXgsIGxheW91dFJhbmdlLmVuZCk7CisgICAgICAgIGlmIChmaXJz
dElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBoYW5naW5nQ29udGVudFdpZHRoICs9
IGxlYWRpbmdQdW5jdHVhdGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKCpmaXJzdElubGluZVRleHRJ
dGVtSW5kZXgsIGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgpOworICAgICAgICBsaW5lQ2FuZGlkYXRl
LmlubGluZUNvbnRlbnQuc2V0SGFuZ2luZ0NvbnRlbnRXaWR0aChoYW5naW5nQ29udGVudFdpZHRo
KTsKKyAgICB9OworICAgIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdpbmdQdW5jdHVhdGlvbigp
OworCiAgICAgYXV0byBpbmxpbmVDb250ZW50RW5kc0luU29mdFdyYXBPcHBvcnR1bml0eSA9IFsm
XSB7CiAgICAgICAgIGlmICghc29mdFdyYXBPcHBvcnR1bml0eUluZGV4IHx8IHNvZnRXcmFwT3Bw
b3J0dW5pdHlJbmRleCA9PSBsYXlvdXRSYW5nZS5lbmQpIHsKICAgICAgICAgICAgIC8vIFRoaXMg
Y2FuZGlkYXRlIGlubGluZSBjb250ZW50IGVuZHMgYmVjYXVzZSB0aGUgZW50aXJlIGNvbnRlbnQg
ZW5kcyBhbmQgbm90IGJlY2F1c2UgdGhlcmUncyBhIHNvZnQgd3JhcCBvcHBvcnR1bml0eS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IDg0NTQ1MmZkZDAwYy4uYzQx
ZjkzZjBlZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKQEAgLTEx
Myw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjYW5kaWRhdGVDb250
ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiwgc2l6ZV90IGlubGluZUl0ZW1JbmRleCwgY29uc3Qg
SW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBJbmxpbmVMYXlvdXRVbml0IGN1cnJl
bnRMb2dpY2FsUmlnaHQpOworICAgIElubGluZUxheW91dFVuaXQgbGVhZGluZ1B1bmN0dWF0aW9u
V2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6
ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRV
bml0IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgbGFzdElu
bGluZVRleHRJdGVtSW5kZXgsIHNpemVfdCBsYXlvdXRSYW5nZUVuZCkgY29uc3Q7CiAgICAgc2l6
ZV90IG5leHRXcmFwT3Bwb3J0dW5pdHkoc2l6ZV90IHN0YXJ0SW5kZXgsIGNvbnN0IExpbmVCdWls
ZGVyOjpJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKSBjb25zdDsKIAogICAgIHN0cnVjdCBV
c2VkQ29uc3RyYWludHMgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464153</attachid>
            <date>2022-12-21 12:54:00 -0800</date>
            <delta_ts>2022-12-21 17:35:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-249653-20221221125359.patch</filename>
            <type>text/plain</type>
            <size>10676</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBkMWEyZDYwZjFjOTRjNDNlYjYxNTNkMTJlYTZkMWRkZTNiMDY3OGJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjAgRGVjIDIwMjIgMDg6NTI6NDQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVto
YW5naW5nIHB1bmN0dWF0aW9uXSBDYW5kaWRhdGUgY29udGVudCBzaG91bGQgbGV0IHRoZQogbGlu
ZSBicmVha2VyIGtub3cgaWYgdGhlcmUncyBoYW5naW5nIHB1bmN0dWF0aW9uCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzCgpSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBpbmxpbmUgY29udGVudCBicmVh
a2VyIChsaW5lIGJyZWFrZXIpIGlzIGF3YXJlIG9mIGFueSBoYW5naW5nIHB1bmN0dWF0aW9uIGlu
IHRoZSBjYW5kaWRhdGUgY29udGVudC4KVGhpcyBoZWxwcyB3aGVuIGNvbXB1dGluZyBpZiB0aGUg
Y2FuZGlkYXRlIGNvbnRlbnQgZml0cyB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UuCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6c2V0SGFuZ2luZ0NvbnRlbnRXaWR0aCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWls
ZGVyOjpsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRl
Q29udGVudEZvckxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKy0tLQogLi4uL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgIDIgKwogMiBmaWxlcyBj
aGFuZ2VkLCA3NyBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKaW5kZXggMmFkMmJmNTA4ZThjLi4wZjU1YjA5NDRk
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5jcHAKQEAgLTIwOCw2
ICsyMDgsOCBAQCBzdHJ1Y3QgTGluZUNhbmRpZGF0ZSB7CiAgICAgICAgIHZvaWQgc2V0SGFzVHJh
aWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5KGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVu
aXR5KSB7IG1faGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9ydHVuaXR5ID0gaGFzVHJhaWxpbmdTb2Z0
V3JhcE9wcG9ydHVuaXR5OyB9CiAgICAgICAgIGJvb2wgaGFzVHJhaWxpbmdTb2Z0V3JhcE9wcG9y
dHVuaXR5KCkgY29uc3QgeyByZXR1cm4gbV9oYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHk7
IH0KIAorICAgICAgICB2b2lkIHNldEhhbmdpbmdDb250ZW50V2lkdGgoSW5saW5lTGF5b3V0VW5p
dCBsb2dpY2FsV2lkdGgpIHsgbV9jb250aW51b3VzQ29udGVudC5zZXRIYW5naW5nQ29udGVudFdp
ZHRoKGxvZ2ljYWxXaWR0aCk7IH0KKwogICAgIHByaXZhdGU6CiAgICAgICAgIGJvb2wgbV9pZ25v
cmVUcmFpbGluZ0xldHRlclNwYWNpbmcgeyBmYWxzZSB9OwogCkBAIC02MzYsNiArNjM4LDU0IEBA
IExpbmVCdWlsZGVyOjpVc2VkQ29uc3RyYWludHMgTGluZUJ1aWxkZXI6OmluaXRpYWxDb25zdHJh
aW50c0ZvckxpbmUoY29uc3QgSW5saW5lCiAgICAgcmV0dXJuIFVzZWRDb25zdHJhaW50cyB7IGFk
anVzdGVkTGluZUxvZ2ljYWxSZWN0LCB0ZXh0SW5kZW50LCBsaW5lSXNDb25zdHJhaW5lZEJ5Rmxv
YXQgfTsKIH0KIAorSW5saW5lTGF5b3V0VW5pdCBMaW5lQnVpbGRlcjo6bGVhZGluZ1B1bmN0dWF0
aW9uV2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwg
c2l6ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdAoreworICAgIGF1dG8gaXNG
aXJzdExpbmVGaXJzdENvbnRlbnQgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpICYmICFtX2xpbmUu
aGFzQ29udGVudCgpOworICAgIGlmICghaXNGaXJzdExpbmVGaXJzdENvbnRlbnQpCisgICAgICAg
IHJldHVybiB7IH07CisKKyAgICBpZiAoZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4KSB7CisgICAg
ICAgIC8vIFRoZSB0ZXh0IGNvbnRlbnQgaXMgbm90IHRoZSBmaXJzdCBpbiB0aGUgY2FuZGlkYXRl
IGxpc3QuIEhvd2V2ZXIgaXQgbWF5IGJlIHRoZSBmaXJzdCBjb250ZW50ZnVsIG9uZS4KKyAgICAg
ICAgZm9yIChzaXplX3QgaW5kZXggPSBmaXJzdElubGluZVRleHRJdGVtSW5kZXg7IGluZGV4LS0g
PiBjYW5kaWRhdGVDb250ZW50U3RhcnRJbmRleDspIHsKKyAgICAgICAgICAgIGF1dG8mIGlubGlu
ZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgICAgIEFTU0VSVCghaW5saW5l
SXRlbS5pc1RleHQoKSAmJiAhaW5saW5lSXRlbS5pc0xpbmVCcmVhaygpICYmICFpbmxpbmVJdGVt
LmlzV29yZEJyZWFrT3Bwb3J0dW5pdHkoKSk7CisgICAgICAgICAgICBpZiAoaW5saW5lSXRlbS5p
c0Zsb2F0KCkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBhdXRvIGlz
Q29udGVudGZ1bCA9IGlubGluZUl0ZW0uaXNCb3goKQorICAgICAgICAgICAgICAgIHx8IChpbmxp
bmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5
Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBhZGRpbmdTdGFy
dCgpKQorICAgICAgICAgICAgICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94RW5kKCkgJiYg
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVJdGVtLmxheW91dEJveCgp
KS5tYXJnaW5Cb3JkZXJBbmRQYWRkaW5nRW5kKCkpOworICAgICAgICAgICAgaWYgKGlzQ29udGVu
dGZ1bCkKKyAgICAgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICB9CisgICAgfQorICAg
IGF1dG8mIGlubGluZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5l
SXRlbXNbZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5bGUgPSBpc0Zp
cnN0Rm9ybWF0dGVkTGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlu
bGluZVRleHRJdGVtLnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVhZGluZyBjb250
ZW50IG1heSBoYXZlIGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0dXJuIFRleHRV
dGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5bGUp
OworfQorCitJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9u
V2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGxhc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBzaXpl
X3QgbGF5b3V0UmFuZ2VFbmQpIGNvbnN0Cit7CisgICAgLy8gRklYTUU6IElmIHRoaXMgdHVybnMg
b3V0IHRvIGJlIHByb2JsZW1hdGljIChmaW5kaW5nIG91dCBpZiB0aGlzIGlzIHRoZSBsYXN0IGZv
cm1hdHRlZCBsaW5lIHRoYXQgaXMpLCB3ZQorICAgIC8vIG1heSBoYXZlIHRvIGZhbGxiYWNrIHRv
IGEgcG9zdC1wcm9jZXNzIHNldHVwLCB3aGVyZSBhZnRlciBmaW5pc2hpbmcgbGF5aW5nIG91dCB0
aGUgY29udGVudCwgd2UgZ28gYmFjayBhbmQgcmUtbGF5b3V0CisgICAgLy8gdGhlIGxhc3QgKDI/
KSBsaW5lKHMpIHdoZW4gdGhlcmUncyB0cmFpbGluZyBoYW5naW5nIHB1bmN0dWF0aW9uLgorICAg
IC8vIEZvciBub3cgbGV0J3MgcHJvYmUgdGhlIGNvbnRlbnQgYWxsIHRoZSB3YXkgdG8gbGF5b3V0
UmFuZ2VFbmQuCisgICAgZm9yIChhdXRvIGluZGV4ID0gbGFzdElubGluZVRleHRJdGVtSW5kZXgg
KyAxOyBpbmRleCA8IGxheW91dFJhbmdlRW5kOyArK2luZGV4KSB7CisgICAgICAgIGF1dG8mIGlu
bGluZUl0ZW0gPSBtX2lubGluZUl0ZW1zW2luZGV4XTsKKyAgICAgICAgaWYgKGlubGluZUl0ZW0u
aXNGbG9hdCgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGF1dG8gaXNDb250ZW50
ZnVsID0gaW5saW5lSXRlbS5pc0JveCgpIHx8IGlubGluZUl0ZW0uaXNUZXh0KCkKKyAgICAgICAg
ICAgIHx8IChpbmxpbmVJdGVtLmlzSW5saW5lQm94U3RhcnQoKSAmJiBmb3JtYXR0aW5nQ29udGV4
dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFu
ZFBhZGRpbmdTdGFydCgpKQorICAgICAgICAgICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hF
bmQoKSAmJiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5
b3V0Qm94KCkpLm1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQoKSk7CisgICAgICAgIGlmIChpc0Nv
bnRlbnRmdWwpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgIH0KKyAgICBhdXRvJiBpbmxp
bmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihtX2lubGluZUl0ZW1zW2xhc3RJ
bmxpbmVUZXh0SXRlbUluZGV4XSk7CisgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVk
TGluZSgpID8gaW5saW5lVGV4dEl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZVRleHRJdGVt
LnN0eWxlKCk7CisgICAgLy8gVGhpcyBjYW5kaWRhdGUgbGVhZGluZyBjb250ZW50IG1heSBoYXZl
IGhhbmdpbmcgcHVuY3R1YXRpb24gc3RhcnQuCisgICAgcmV0dXJuIFRleHRVdGlsOjpoYW5nYWJs
ZVB1bmN0dWF0aW9uRW5kV2lkdGgoaW5saW5lVGV4dEl0ZW0sIHN0eWxlKTsKK30KKwogdm9pZCBM
aW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0ZSYgbGluZUNh
bmRpZGF0ZSwgc2l6ZV90IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgsIGNvbnN0IElubGluZUl0ZW1S
YW5nZSYgbGF5b3V0UmFuZ2UsIElubGluZUxheW91dFVuaXQgY3VycmVudExvZ2ljYWxSaWdodCkK
IHsKICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCA8IGxheW91dFJhbmdlLmVuZCk7
CkBAIC02NTcsMjggKzcwNywyOSBAQCB2b2lkIExpbmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50
Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlLCBzaXplX3QgYwogICAgICAgICAr
K2N1cnJlbnRJbmxpbmVJdGVtSW5kZXg7CiAgICAgfQogCisgICAgYXV0byBmaXJzdElubGluZVRl
eHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9OworICAgIGF1dG8gbGFzdElu
bGluZVRleHRJdGVtSW5kZXggPSBzdGQ6Om9wdGlvbmFsPHNpemVfdD4geyB9OwogICAgIGZvciAo
YXV0byBpbmRleCA9IGN1cnJlbnRJbmxpbmVJdGVtSW5kZXg7IGluZGV4IDwgc29mdFdyYXBPcHBv
cnR1bml0eUluZGV4OyArK2luZGV4KSB7CiAgICAgICAgIGF1dG8mIGlubGluZUl0ZW0gPSBtX2lu
bGluZUl0ZW1zW2luZGV4XTsKLSAgICAgICAgYXV0byYgc3R5bGUgPSBbJl0gKCkgLT4gY29uc3Qg
UmVuZGVyU3R5bGUmIHsKLSAgICAgICAgICAgIHJldHVybiBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgp
ID8gaW5saW5lSXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHlsZSgpOwotICAg
ICAgICB9KCk7CisgICAgICAgIGF1dG8mIHN0eWxlID0gaXNGaXJzdEZvcm1hdHRlZExpbmUoKSA/
IGlubGluZUl0ZW0uZmlyc3RMaW5lU3R5bGUoKSA6IGlubGluZUl0ZW0uc3R5bGUoKTsKKwogICAg
ICAgICBpZiAoaW5saW5lSXRlbS5pc0Zsb2F0KCkpIHsKICAgICAgICAgICAgIGxpbmVDYW5kaWRh
dGUuZmxvYXRJdGVtID0gJmlubGluZUl0ZW07CiAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgc29m
dCB3cmFwIG9wcG9ydHVuaXR5LCBtdXN0IGJlIHRoZSBvbmx5IGl0ZW0gaW4gdGhlIGxpc3QuCiAg
ICAgICAgICAgICBBU1NFUlQoY3VycmVudElubGluZUl0ZW1JbmRleCArIDEgPT0gc29mdFdyYXBP
cHBvcnR1bml0eUluZGV4KTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAg
ICAgIGlmIChpbmxpbmVJdGVtLmlzVGV4dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFy
dCgpIHx8IGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSkgewotICAgICAgICAgICAgYXV0byBs
b2dpY2FsV2lkdGggPSBtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoID8gKnN0ZDo6ZXhjaGFuZ2Uo
bV9vdmVyZmxvd2luZ0xvZ2ljYWxXaWR0aCwgc3RkOjpudWxsb3B0KSA6IGlubGluZUl0ZW1XaWR0
aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKLSAgICAgICAgICAgIGxpbmVDYW5k
aWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIHN0eWxlLCBs
b2dpY2FsV2lkdGgpOwotICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2Fs
V2lkdGg7Ci0gICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pICYm
IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1dvcmRTZXBhcmF0b3IoKSkg
ewotICAgICAgICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4g
bG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBl
bmRUZXh0Q29udGVudCBhcyB3ZWxsLgotICAgICAgICAgICAgICAgIGN1cnJlbnRMb2dpY2FsUmln
aHQgKz0gc3R5bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpOwotICAgICAgICAgICAgfQor
ICAgICAgICBpZiAoaW5saW5lSXRlbS5pc1RleHQoKSkgeworICAgICAgICAgICAgYXV0byYgaW5s
aW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7CisgICAg
ICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAq
c3RkOjpleGNoYW5nZShtX292ZXJmbG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDog
aW5saW5lSXRlbVdpZHRoKGlubGluZVRleHRJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKyAg
ICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlu
bGluZVRleHRJdGVtLCBzdHlsZSwgbG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIC8vIFdvcmQg
c3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4g
b2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3ZWxsLgorICAg
ICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGggKyAoaW5saW5lVGV4
dEl0ZW0uaXNXb3JkU2VwYXJhdG9yKCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5n
KCkgOiAwLmYpOworICAgICAgICAgICAgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gZmlyc3RJ
bmxpbmVUZXh0SXRlbUluZGV4LnZhbHVlX29yKGluZGV4KTsKKyAgICAgICAgICAgIGxhc3RJbmxp
bmVUZXh0SXRlbUluZGV4ID0gaW5kZXg7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
fQotICAgICAgICBpZiAoaW5saW5lSXRlbS5pc0JveCgpKSB7CisgICAgICAgIGlmIChpbmxpbmVJ
dGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5saW5lSXRl
bS5pc0lubGluZUJveEVuZCgpKSB7CiAgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGlu
bGluZUl0ZW1XaWR0aChpbmxpbmVJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKICAgICAgICAg
ICAgIC8vIEZJWE1FOiBXaGlsZSB0aGUgbGluZSBicmVha2luZyByZWxhdGVkIHByb3BlcnRpZXMg
Zm9yIGF0b21pYyBsZXZlbCBib3hlcyBkbyBub3QgZGVwZW5kIG9uIHRoZSBsaW5lIGluZGV4IChm
aXJzdCBsaW5lIHN0eWxlKSBpdCdkIGJlIGdyZWF0IHRvIGZpZ3VyZSBvdXQgdGhlIGNvcnJlY3Qg
c3R5bGUgdG8gcGFzcyBpbi4KICAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVu
dC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIGlubGluZUl0ZW0ubGF5b3V0Qm94KCkucGFy
ZW50KCkuc3R5bGUoKSwgbG9naWNhbFdpZHRoKTsKQEAgLTY5Nyw2ICs3NDgsMTggQEAgdm9pZCBM
aW5lQnVpbGRlcjo6Y2FuZGlkYXRlQ29udGVudEZvckxpbmUoTGluZUNhbmRpZGF0ZSYgbGluZUNh
bmRpZGF0ZSwgc2l6ZV90IGMKICAgICAgICAgfQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICB9CisKKyAgICBhdXRvIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdpbmdQdW5jdHVh
dGlvbiA9IFsmXSB7CisgICAgICAgIGF1dG8gaGFuZ2luZ0NvbnRlbnRXaWR0aCA9IGxpbmVDYW5k
aWRhdGUuaW5saW5lQ29udGVudC5jb250aW51b3VzQ29udGVudCgpLmhhbmdpbmdDb250ZW50V2lk
dGgoKTsKKyAgICAgICAgLy8gRG8gbm90IGV2ZW4gdHJ5IHRvIGNoZWNrIGZvciB0cmFpbGluZyBw
dW5jdHVhdGlvbiB3aGVuIHRoZSBjYW5kaWRhdGUgY29udGVudCBhbHJlYWR5IGhhcyB3aGl0ZXNw
YWNlIHR5cGUgb2YgaGFuZ2luZyBjb250ZW50LgorICAgICAgICBpZiAoIWhhbmdpbmdDb250ZW50
V2lkdGggJiYgbGFzdElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBoYW5naW5nQ29u
dGVudFdpZHRoICs9IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSgqbGFz
dElubGluZVRleHRJdGVtSW5kZXgsIGxheW91dFJhbmdlLmVuZCk7CisgICAgICAgIGlmIChmaXJz
dElubGluZVRleHRJdGVtSW5kZXgpCisgICAgICAgICAgICBoYW5naW5nQ29udGVudFdpZHRoICs9
IGxlYWRpbmdQdW5jdHVhdGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKCpmaXJzdElubGluZVRleHRJ
dGVtSW5kZXgsIGN1cnJlbnRJbmxpbmVJdGVtSW5kZXgpOworICAgICAgICBsaW5lQ2FuZGlkYXRl
LmlubGluZUNvbnRlbnQuc2V0SGFuZ2luZ0NvbnRlbnRXaWR0aChoYW5naW5nQ29udGVudFdpZHRo
KTsKKyAgICB9OworICAgIHNldExlYWRpbmdBbmRUcmFpbGluZ0hhbmdpbmdQdW5jdHVhdGlvbigp
OworCiAgICAgYXV0byBpbmxpbmVDb250ZW50RW5kc0luU29mdFdyYXBPcHBvcnR1bml0eSA9IFsm
XSB7CiAgICAgICAgIGlmICghc29mdFdyYXBPcHBvcnR1bml0eUluZGV4IHx8IHNvZnRXcmFwT3Bw
b3J0dW5pdHlJbmRleCA9PSBsYXlvdXRSYW5nZS5lbmQpIHsKICAgICAgICAgICAgIC8vIFRoaXMg
Y2FuZGlkYXRlIGlubGluZSBjb250ZW50IGVuZHMgYmVjYXVzZSB0aGUgZW50aXJlIGNvbnRlbnQg
ZW5kcyBhbmQgbm90IGJlY2F1c2UgdGhlcmUncyBhIHNvZnQgd3JhcCBvcHBvcnR1bml0eS4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCdWlsZGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCmluZGV4IDg0NTQ1MmZkZDAwYy4uYzQx
ZjkzZjBlZWY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQnVpbGRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmgKQEAgLTEx
Myw2ICsxMTMsOCBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjYW5kaWRhdGVDb250
ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiwgc2l6ZV90IGlubGluZUl0ZW1JbmRleCwgY29uc3Qg
SW5saW5lSXRlbVJhbmdlJiBuZWVkc0xheW91dFJhbmdlLCBJbmxpbmVMYXlvdXRVbml0IGN1cnJl
bnRMb2dpY2FsUmlnaHQpOworICAgIElubGluZUxheW91dFVuaXQgbGVhZGluZ1B1bmN0dWF0aW9u
V2lkdGhGb3JMaW5lQ2FuZGlhdGUoc2l6ZV90IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6
ZV90IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4KSBjb25zdDsKKyAgICBJbmxpbmVMYXlvdXRV
bml0IHRyYWlsaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgbGFzdElu
bGluZVRleHRJdGVtSW5kZXgsIHNpemVfdCBsYXlvdXRSYW5nZUVuZCkgY29uc3Q7CiAgICAgc2l6
ZV90IG5leHRXcmFwT3Bwb3J0dW5pdHkoc2l6ZV90IHN0YXJ0SW5kZXgsIGNvbnN0IExpbmVCdWls
ZGVyOjpJbmxpbmVJdGVtUmFuZ2UmIGxheW91dFJhbmdlKSBjb25zdDsKIAogICAgIHN0cnVjdCBV
c2VkQ29uc3RyYWludHMgewo=
</data>
<flag name="commit-queue"
          id="492539"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464157</attachid>
            <date>2022-12-21 16:38:52 -0800</date>
            <delta_ts>2022-12-21 22:08:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-249653-20221221163851.patch</filename>
            <type>text/plain</type>
            <size>10363</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBhN2UwMzZmMjZhNzA5YTM5OTc1MmU1ODRhMGE0ZmU5YzA3YzZiZmYyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjAgRGVjIDIwMjIgMDg6NTI6NDQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVto
YW5naW5nIHB1bmN0dWF0aW9uXSBDYW5kaWRhdGUgY29udGVudCBzaG91bGQgbGV0IHRoZQogbGlu
ZSBicmVha2VyIGtub3cgaWYgdGhlcmUncyBoYW5naW5nIHB1bmN0dWF0aW9uCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzCgpSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBpbmxpbmUgY29udGVudCBicmVh
a2VyIChsaW5lIGJyZWFrZXIpIGlzIGF3YXJlIG9mIGFueSBoYW5naW5nIHB1bmN0dWF0aW9uIGlu
IHRoZSBjYW5kaWRhdGUgY29udGVudC4KVGhpcyBoZWxwcyB3aGVuIGNvbXB1dGluZyBpZiB0aGUg
Y2FuZGlkYXRlIGNvbnRlbnQgZml0cyB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UuCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6c2V0SGFuZ2luZ0NvbnRlbnRXaWR0aCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWls
ZGVyOjpsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRl
Q29udGVudEZvckxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKystLQogLi4uL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgIDIgKwogMiBmaWxlcyBj
aGFuZ2VkLCA4MCBpbnNlcnRpb25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAyYWQyYmY1MDhlOGMuLmRmZWI1NGIxYjI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjA4LDYg
KzIwOCw4IEBAIHN0cnVjdCBMaW5lQ2FuZGlkYXRlIHsKICAgICAgICAgdm9pZCBzZXRIYXNUcmFp
bGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHkoYm9vbCBoYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5p
dHkpIHsgbV9oYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHkgPSBoYXNUcmFpbGluZ1NvZnRX
cmFwT3Bwb3J0dW5pdHk7IH0KICAgICAgICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0
dW5pdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eTsg
fQogCisgICAgICAgIHZvaWQgc2V0SGFuZ2luZ0NvbnRlbnRXaWR0aChJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxXaWR0aCkgeyBtX2NvbnRpbnVvdXNDb250ZW50LnNldEhhbmdpbmdDb250ZW50V2lk
dGgobG9naWNhbFdpZHRoKTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX2lnbm9y
ZVRyYWlsaW5nTGV0dGVyU3BhY2luZyB7IGZhbHNlIH07CiAKQEAgLTYzNiw2ICs2MzgsNTQgQEAg
TGluZUJ1aWxkZXI6OlVzZWRDb25zdHJhaW50cyBMaW5lQnVpbGRlcjo6aW5pdGlhbENvbnN0cmFp
bnRzRm9yTGluZShjb25zdCBJbmxpbmUKICAgICByZXR1cm4gVXNlZENvbnN0cmFpbnRzIHsgYWRq
dXN0ZWRMaW5lTG9naWNhbFJlY3QsIHRleHRJbmRlbnQsIGxpbmVJc0NvbnN0cmFpbmVkQnlGbG9h
dCB9OwogfQogCitJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjpsZWFkaW5nUHVuY3R1YXRp
b25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBz
aXplX3QgY2FuZGlkYXRlQ29udGVudFN0YXJ0SW5kZXgpIGNvbnN0Cit7CisgICAgYXV0byBpc0Zp
cnN0TGluZUZpcnN0Q29udGVudCA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgJiYgIW1fbGluZS5o
YXNDb250ZW50KCk7CisgICAgaWYgKCFpc0ZpcnN0TGluZUZpcnN0Q29udGVudCkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmIChmaXJzdElubGluZVRleHRJdGVtSW5kZXgpIHsKKyAgICAg
ICAgLy8gVGhlIHRleHQgY29udGVudCBpcyBub3QgdGhlIGZpcnN0IGluIHRoZSBjYW5kaWRhdGUg
bGlzdC4gSG93ZXZlciBpdCBtYXkgYmUgdGhlIGZpcnN0IGNvbnRlbnRmdWwgb25lLgorICAgICAg
ICBmb3IgKHNpemVfdCBpbmRleCA9IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleDsgaW5kZXgtLSA+
IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4OykgeworICAgICAgICAgICAgYXV0byYgaW5saW5l
SXRlbSA9IG1faW5saW5lSXRlbXNbaW5kZXhdOworICAgICAgICAgICAgQVNTRVJUKCFpbmxpbmVJ
dGVtLmlzVGV4dCgpICYmICFpbmxpbmVJdGVtLmlzTGluZUJyZWFrKCkgJiYgIWlubGluZUl0ZW0u
aXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpKTsKKyAgICAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlz
RmxvYXQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGF1dG8gaXND
b250ZW50ZnVsID0gaW5saW5lSXRlbS5pc0JveCgpCisgICAgICAgICAgICAgICAgfHwgKGlubGlu
ZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpICYmIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlG
b3JCb3goaW5saW5lSXRlbS5sYXlvdXRCb3goKSkubWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0
KCkpCisgICAgICAgICAgICAgICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSAmJiBm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkp
Lm1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQoKSk7CisgICAgICAgICAgICBpZiAoaXNDb250ZW50
ZnVsKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICB9CisgICAg
YXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obV9pbmxpbmVJ
dGVtc1tmaXJzdElubGluZVRleHRJdGVtSW5kZXhdKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlzRmly
c3RGb3JtYXR0ZWRMaW5lKCkgPyBpbmxpbmVUZXh0SXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5s
aW5lVGV4dEl0ZW0uc3R5bGUoKTsKKyAgICAvLyBUaGlzIGNhbmRpZGF0ZSBsZWFkaW5nIGNvbnRl
bnQgbWF5IGhhdmUgaGFuZ2luZyBwdW5jdHVhdGlvbiBzdGFydC4KKyAgICByZXR1cm4gVGV4dFV0
aWw6OmhhbmdhYmxlUHVuY3R1YXRpb25TdGFydFdpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZSk7
Cit9CisKK0lubGluZUxheW91dFVuaXQgTGluZUJ1aWxkZXI6OnRyYWlsaW5nUHVuY3R1YXRpb25X
aWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgbGFzdElubGluZVRleHRJdGVtSW5kZXgsIHNpemVf
dCBsYXlvdXRSYW5nZUVuZCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBv
dXQgdG8gYmUgcHJvYmxlbWF0aWMgKGZpbmRpbmcgb3V0IGlmIHRoaXMgaXMgdGhlIGxhc3QgZm9y
bWF0dGVkIGxpbmUgdGhhdCBpcyksIHdlCisgICAgLy8gbWF5IGhhdmUgdG8gZmFsbGJhY2sgdG8g
YSBwb3N0LXByb2Nlc3Mgc2V0dXAsIHdoZXJlIGFmdGVyIGZpbmlzaGluZyBsYXlpbmcgb3V0IHRo
ZSBjb250ZW50LCB3ZSBnbyBiYWNrIGFuZCByZS1sYXlvdXQKKyAgICAvLyB0aGUgbGFzdCAoMj8p
IGxpbmUocykgd2hlbiB0aGVyZSdzIHRyYWlsaW5nIGhhbmdpbmcgcHVuY3R1YXRpb24uCisgICAg
Ly8gRm9yIG5vdyBsZXQncyBwcm9iZSB0aGUgY29udGVudCBhbGwgdGhlIHdheSB0byBsYXlvdXRS
YW5nZUVuZC4KKyAgICBmb3IgKGF1dG8gaW5kZXggPSBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCAr
IDE7IGluZGV4IDwgbGF5b3V0UmFuZ2VFbmQ7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byYgaW5s
aW5lSXRlbSA9IG1faW5saW5lSXRlbXNbaW5kZXhdOworICAgICAgICBpZiAoaW5saW5lSXRlbS5p
c0Zsb2F0KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byBpc0NvbnRlbnRm
dWwgPSBpbmxpbmVJdGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc1RleHQoKQorICAgICAgICAg
ICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpICYmIGZvcm1hdHRpbmdDb250ZXh0
KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lSXRlbS5sYXlvdXRCb3goKSkubWFyZ2luQm9yZGVyQW5k
UGFkZGluZ1N0YXJ0KCkpCisgICAgICAgICAgICB8fCAoaW5saW5lSXRlbS5pc0lubGluZUJveEVu
ZCgpICYmIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lSXRlbS5sYXlv
dXRCb3goKSkubWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCgpKTsKKyAgICAgICAgaWYgKGlzQ29u
dGVudGZ1bCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgfQorICAgIGF1dG8mIGlubGlu
ZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbbGFzdElu
bGluZVRleHRJdGVtSW5kZXhdKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKCkgPyBpbmxpbmVUZXh0SXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEl0ZW0u
c3R5bGUoKTsKKyAgICAvLyBUaGlzIGNhbmRpZGF0ZSBsZWFkaW5nIGNvbnRlbnQgbWF5IGhhdmUg
aGFuZ2luZyBwdW5jdHVhdGlvbiBzdGFydC4KKyAgICByZXR1cm4gVGV4dFV0aWw6OmhhbmdhYmxl
UHVuY3R1YXRpb25FbmRXaWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5bGUpOworfQorCiB2b2lkIExp
bmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2Fu
ZGlkYXRlLCBzaXplX3QgY3VycmVudElubGluZUl0ZW1JbmRleCwgY29uc3QgSW5saW5lSXRlbVJh
bmdlJiBsYXlvdXRSYW5nZSwgSW5saW5lTGF5b3V0VW5pdCBjdXJyZW50TG9naWNhbFJpZ2h0KQog
ewogICAgIEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4IDwgbGF5b3V0UmFuZ2UuZW5kKTsK
QEAgLTY1NywyNSArNzA3LDMyIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmNhbmRpZGF0ZUNvbnRlbnRG
b3JMaW5lKExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUsIHNpemVfdCBjCiAgICAgICAgICsr
Y3VycmVudElubGluZUl0ZW1JbmRleDsKICAgICB9CiAKKyAgICBhdXRvIGZpcnN0SW5saW5lVGV4
dEl0ZW1JbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CisgICAgYXV0byBsYXN0SW5s
aW5lVGV4dEl0ZW1JbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CiAgICAgZm9yIChh
dXRvIGluZGV4ID0gY3VycmVudElubGluZUl0ZW1JbmRleDsgaW5kZXggPCBzb2Z0V3JhcE9wcG9y
dHVuaXR5SW5kZXg7ICsraW5kZXgpIHsKICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IG1faW5s
aW5lSXRlbXNbaW5kZXhdOwotICAgICAgICBhdXRvJiBzdHlsZSA9IFsmXSAoKSAtPiBjb25zdCBS
ZW5kZXJTdHlsZSYgewotICAgICAgICAgICAgcmV0dXJuIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkg
PyBpbmxpbmVJdGVtLmZpcnN0TGluZVN0eWxlKCkgOiBpbmxpbmVJdGVtLnN0eWxlKCk7Ci0gICAg
ICAgIH0oKTsKKyAgICAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8g
aW5saW5lSXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHlsZSgpOworCiAgICAg
ICAgIGlmIChpbmxpbmVJdGVtLmlzRmxvYXQoKSkgewogICAgICAgICAgICAgbGluZUNhbmRpZGF0
ZS5mbG9hdEl0ZW0gPSAmaW5saW5lSXRlbTsKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzb2Z0
IHdyYXAgb3Bwb3J0dW5pdHksIG11c3QgYmUgdGhlIG9ubHkgaXRlbSBpbiB0aGUgbGlzdC4KICAg
ICAgICAgICAgIEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4ICsgMSA9PSBzb2Z0V3JhcE9w
cG9ydHVuaXR5SW5kZXgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0
KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIGxv
Z2ljYWxXaWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAqc3RkOjpleGNoYW5nZSht
X292ZXJmbG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDogaW5saW5lSXRlbVdpZHRo
KGlubGluZUl0ZW0sIGN1cnJlbnRMb2dpY2FsUmlnaHQpOworICAgICAgICBpZiAoaW5saW5lSXRl
bS5pc1RleHQoKSkgeworICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2Fz
dDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxX
aWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAqc3RkOjpleGNoYW5nZShtX292ZXJm
bG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDogaW5saW5lSXRlbVdpZHRoKGlubGlu
ZVRleHRJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKyAgICAgICAgICAgIGxpbmVDYW5kaWRh
dGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZVRleHRJdGVtLCBzdHlsZSwg
bG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtl
IHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBM
aW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3ZWxsLgorICAgICAgICAgICAgY3VycmVudExvZ2lj
YWxSaWdodCArPSBsb2dpY2FsV2lkdGggKyAoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9y
KCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkgOiAwLmYpOworICAgICAgICAg
ICAgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LnZh
bHVlX29yKGluZGV4KTsKKyAgICAgICAgICAgIGxhc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gaW5k
ZXg7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5saW5l
SXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSB7
CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1XaWR0aChpbmxpbmVJ
dGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKICAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5s
aW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIHN0eWxlLCBsb2dpY2FsV2lk
dGgpOwogICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGg7Ci0g
ICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pICYmIGRvd25jYXN0
PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1dvcmRTZXBhcmF0b3IoKSkgewotICAgICAg
ICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4gbG9uZ2VyLCBi
dXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBlbmRUZXh0Q29u
dGVudCBhcyB3ZWxsLgotICAgICAgICAgICAgICAgIGN1cnJlbnRMb2dpY2FsUmlnaHQgKz0gc3R5
bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpOwotICAgICAgICAgICAgfQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkg
ewpAQCAtNjk3LDYgKzc1NCwxOCBAQCB2b2lkIExpbmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50
Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlLCBzaXplX3QgYwogICAgICAgICB9
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KKworICAgIGF1dG8gc2V0TGVh
ZGluZ0FuZFRyYWlsaW5nSGFuZ2luZ1B1bmN0dWF0aW9uID0gWyZdIHsKKyAgICAgICAgYXV0byBo
YW5naW5nQ29udGVudFdpZHRoID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50LmNvbnRpbnVv
dXNDb250ZW50KCkuaGFuZ2luZ0NvbnRlbnRXaWR0aCgpOworICAgICAgICAvLyBEbyBub3QgZXZl
biB0cnkgdG8gY2hlY2sgZm9yIHRyYWlsaW5nIHB1bmN0dWF0aW9uIHdoZW4gdGhlIGNhbmRpZGF0
ZSBjb250ZW50IGFscmVhZHkgaGFzIHdoaXRlc3BhY2UgdHlwZSBvZiBoYW5naW5nIGNvbnRlbnQu
CisgICAgICAgIGlmICghaGFuZ2luZ0NvbnRlbnRXaWR0aCAmJiBsYXN0SW5saW5lVGV4dEl0ZW1J
bmRleCkKKyAgICAgICAgICAgIGhhbmdpbmdDb250ZW50V2lkdGggKz0gdHJhaWxpbmdQdW5jdHVh
dGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKCpsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgbGF5b3V0
UmFuZ2UuZW5kKTsKKyAgICAgICAgaWYgKGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCkKKyAgICAg
ICAgICAgIGhhbmdpbmdDb250ZW50V2lkdGggKz0gbGVhZGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JM
aW5lQ2FuZGlhdGUoKmZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgY3VycmVudElubGluZUl0ZW1J
bmRleCk7CisgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5zZXRIYW5naW5nQ29u
dGVudFdpZHRoKGhhbmdpbmdDb250ZW50V2lkdGgpOworICAgIH07CisgICAgc2V0TGVhZGluZ0Fu
ZFRyYWlsaW5nSGFuZ2luZ1B1bmN0dWF0aW9uKCk7CisKICAgICBhdXRvIGlubGluZUNvbnRlbnRF
bmRzSW5Tb2Z0V3JhcE9wcG9ydHVuaXR5ID0gWyZdIHsKICAgICAgICAgaWYgKCFzb2Z0V3JhcE9w
cG9ydHVuaXR5SW5kZXggfHwgc29mdFdyYXBPcHBvcnR1bml0eUluZGV4ID09IGxheW91dFJhbmdl
LmVuZCkgewogICAgICAgICAgICAgLy8gVGhpcyBjYW5kaWRhdGUgaW5saW5lIGNvbnRlbnQgZW5k
cyBiZWNhdXNlIHRoZSBlbnRpcmUgY29udGVudCBlbmRzIGFuZCBub3QgYmVjYXVzZSB0aGVyZSdz
IGEgc29mdCB3cmFwIG9wcG9ydHVuaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWls
ZGVyLmgKaW5kZXggODQ1NDUyZmRkMDBjLi5jNDFmOTNmMGVlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWls
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICB2b2lkIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lKExpbmVDYW5kaWRhdGUmLCBz
aXplX3QgaW5saW5lSXRlbUluZGV4LCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0
UmFuZ2UsIElubGluZUxheW91dFVuaXQgY3VycmVudExvZ2ljYWxSaWdodCk7CisgICAgSW5saW5l
TGF5b3V0VW5pdCBsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3Qg
Zmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBzaXplX3QgY2FuZGlkYXRlQ29udGVudFN0YXJ0SW5k
ZXgpIGNvbnN0OworICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdQdW5jdHVhdGlvbldpZHRo
Rm9yTGluZUNhbmRpYXRlKHNpemVfdCBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGxh
eW91dFJhbmdlRW5kKSBjb25zdDsKICAgICBzaXplX3QgbmV4dFdyYXBPcHBvcnR1bml0eShzaXpl
X3Qgc3RhcnRJbmRleCwgY29uc3QgTGluZUJ1aWxkZXI6OklubGluZUl0ZW1SYW5nZSYgbGF5b3V0
UmFuZ2UpIGNvbnN0OwogCiAgICAgc3RydWN0IFVzZWRDb25zdHJhaW50cyB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464161</attachid>
            <date>2022-12-21 22:08:10 -0800</date>
            <delta_ts>2022-12-22 05:54:29 -0800</delta_ts>
            <desc>[fast-cq]Patch</desc>
            <filename>bug-249653-20221221220809.patch</filename>
            <type>text/plain</type>
            <size>12961</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5MWNlNDhhM2I4YzY5MzBjNTNlOTRiN2I0OWY4ZDcxYzk1MTM2NzAzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjAgRGVjIDIwMjIgMDg6NTI6NDQgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbSUZDXVto
YW5naW5nIHB1bmN0dWF0aW9uXSBDYW5kaWRhdGUgY29udGVudCBzaG91bGQgbGV0IHRoZQogbGlu
ZSBicmVha2VyIGtub3cgaWYgdGhlcmUncyBoYW5naW5nIHB1bmN0dWF0aW9uCiBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQ5NjUzCgpSZXZpZXdlZCBieSBBbnR0aSBL
b2l2aXN0by4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHRoZSBpbmxpbmUgY29udGVudCBicmVh
a2VyIChsaW5lIGJyZWFrZXIpIGlzIGF3YXJlIG9mIGFueSBoYW5naW5nIHB1bmN0dWF0aW9uIGlu
IHRoZSBjYW5kaWRhdGUgY29udGVudC4KVGhpcyBoZWxwcyB3aGVuIGNvbXB1dGluZyBpZiB0aGUg
Y2FuZGlkYXRlIGNvbnRlbnQgZml0cyB0aGUgYXZhaWxhYmxlIGhvcml6b250YWwgc3BhY2UuCgoq
IFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxp
bmVCdWlsZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUNhbmRpZGF0ZTo6SW5saW5lQ29u
dGVudDo6c2V0SGFuZ2luZ0NvbnRlbnRXaWR0aCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCdWls
ZGVyOjpsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZSBjb25zdCk6CihXZWJD
b3JlOjpMYXlvdXQ6OkxpbmVCdWlsZGVyOjp0cmFpbGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JMaW5l
Q2FuZGlhdGUgY29uc3QpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQnVpbGRlcjo6Y2FuZGlkYXRl
Q29udGVudEZvckxpbmUpOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmg6Ci0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5l
QnVpbGRlci5jcHAgICAgICAgICAgICAgIHwgODcgKysrKysrKysrKysrKysrKystLQogLi4uL2lu
bGluZS9JbmxpbmVMaW5lQnVpbGRlci5oICAgICAgICAgICAgICAgIHwgIDIgKwogLi4uL2lubGlu
ZS90ZXh0L1RleHRVdGlsLmNwcCAgICAgICAgICAgICAgICAgIHwgMTAgKy0tCiAzIGZpbGVzIGNo
YW5nZWQsIDg0IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVC
dWlsZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcAppbmRleCAyYWQyYmY1MDhlOGMuLmRmZWI1NGIxYjI2
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWlsZGVyLmNwcApAQCAtMjA4LDYg
KzIwOCw4IEBAIHN0cnVjdCBMaW5lQ2FuZGlkYXRlIHsKICAgICAgICAgdm9pZCBzZXRIYXNUcmFp
bGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHkoYm9vbCBoYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5p
dHkpIHsgbV9oYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0dW5pdHkgPSBoYXNUcmFpbGluZ1NvZnRX
cmFwT3Bwb3J0dW5pdHk7IH0KICAgICAgICAgYm9vbCBoYXNUcmFpbGluZ1NvZnRXcmFwT3Bwb3J0
dW5pdHkoKSBjb25zdCB7IHJldHVybiBtX2hhc1RyYWlsaW5nU29mdFdyYXBPcHBvcnR1bml0eTsg
fQogCisgICAgICAgIHZvaWQgc2V0SGFuZ2luZ0NvbnRlbnRXaWR0aChJbmxpbmVMYXlvdXRVbml0
IGxvZ2ljYWxXaWR0aCkgeyBtX2NvbnRpbnVvdXNDb250ZW50LnNldEhhbmdpbmdDb250ZW50V2lk
dGgobG9naWNhbFdpZHRoKTsgfQorCiAgICAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX2lnbm9y
ZVRyYWlsaW5nTGV0dGVyU3BhY2luZyB7IGZhbHNlIH07CiAKQEAgLTYzNiw2ICs2MzgsNTQgQEAg
TGluZUJ1aWxkZXI6OlVzZWRDb25zdHJhaW50cyBMaW5lQnVpbGRlcjo6aW5pdGlhbENvbnN0cmFp
bnRzRm9yTGluZShjb25zdCBJbmxpbmUKICAgICByZXR1cm4gVXNlZENvbnN0cmFpbnRzIHsgYWRq
dXN0ZWRMaW5lTG9naWNhbFJlY3QsIHRleHRJbmRlbnQsIGxpbmVJc0NvbnN0cmFpbmVkQnlGbG9h
dCB9OwogfQogCitJbmxpbmVMYXlvdXRVbml0IExpbmVCdWlsZGVyOjpsZWFkaW5nUHVuY3R1YXRp
b25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBz
aXplX3QgY2FuZGlkYXRlQ29udGVudFN0YXJ0SW5kZXgpIGNvbnN0Cit7CisgICAgYXV0byBpc0Zp
cnN0TGluZUZpcnN0Q29udGVudCA9IGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkgJiYgIW1fbGluZS5o
YXNDb250ZW50KCk7CisgICAgaWYgKCFpc0ZpcnN0TGluZUZpcnN0Q29udGVudCkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIGlmIChmaXJzdElubGluZVRleHRJdGVtSW5kZXgpIHsKKyAgICAg
ICAgLy8gVGhlIHRleHQgY29udGVudCBpcyBub3QgdGhlIGZpcnN0IGluIHRoZSBjYW5kaWRhdGUg
bGlzdC4gSG93ZXZlciBpdCBtYXkgYmUgdGhlIGZpcnN0IGNvbnRlbnRmdWwgb25lLgorICAgICAg
ICBmb3IgKHNpemVfdCBpbmRleCA9IGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleDsgaW5kZXgtLSA+
IGNhbmRpZGF0ZUNvbnRlbnRTdGFydEluZGV4OykgeworICAgICAgICAgICAgYXV0byYgaW5saW5l
SXRlbSA9IG1faW5saW5lSXRlbXNbaW5kZXhdOworICAgICAgICAgICAgQVNTRVJUKCFpbmxpbmVJ
dGVtLmlzVGV4dCgpICYmICFpbmxpbmVJdGVtLmlzTGluZUJyZWFrKCkgJiYgIWlubGluZUl0ZW0u
aXNXb3JkQnJlYWtPcHBvcnR1bml0eSgpKTsKKyAgICAgICAgICAgIGlmIChpbmxpbmVJdGVtLmlz
RmxvYXQoKSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIGF1dG8gaXND
b250ZW50ZnVsID0gaW5saW5lSXRlbS5pc0JveCgpCisgICAgICAgICAgICAgICAgfHwgKGlubGlu
ZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpICYmIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlG
b3JCb3goaW5saW5lSXRlbS5sYXlvdXRCb3goKSkubWFyZ2luQm9yZGVyQW5kUGFkZGluZ1N0YXJ0
KCkpCisgICAgICAgICAgICAgICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hFbmQoKSAmJiBm
b3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUl0ZW0ubGF5b3V0Qm94KCkp
Lm1hcmdpbkJvcmRlckFuZFBhZGRpbmdFbmQoKSk7CisgICAgICAgICAgICBpZiAoaXNDb250ZW50
ZnVsKQorICAgICAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIH0KKyAgICB9CisgICAg
YXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2FzdDxJbmxpbmVUZXh0SXRlbT4obV9pbmxpbmVJ
dGVtc1tmaXJzdElubGluZVRleHRJdGVtSW5kZXhdKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlzRmly
c3RGb3JtYXR0ZWRMaW5lKCkgPyBpbmxpbmVUZXh0SXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5s
aW5lVGV4dEl0ZW0uc3R5bGUoKTsKKyAgICAvLyBUaGlzIGNhbmRpZGF0ZSBsZWFkaW5nIGNvbnRl
bnQgbWF5IGhhdmUgaGFuZ2luZyBwdW5jdHVhdGlvbiBzdGFydC4KKyAgICByZXR1cm4gVGV4dFV0
aWw6OmhhbmdhYmxlUHVuY3R1YXRpb25TdGFydFdpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZSk7
Cit9CisKK0lubGluZUxheW91dFVuaXQgTGluZUJ1aWxkZXI6OnRyYWlsaW5nUHVuY3R1YXRpb25X
aWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3QgbGFzdElubGluZVRleHRJdGVtSW5kZXgsIHNpemVf
dCBsYXlvdXRSYW5nZUVuZCkgY29uc3QKK3sKKyAgICAvLyBGSVhNRTogSWYgdGhpcyB0dXJucyBv
dXQgdG8gYmUgcHJvYmxlbWF0aWMgKGZpbmRpbmcgb3V0IGlmIHRoaXMgaXMgdGhlIGxhc3QgZm9y
bWF0dGVkIGxpbmUgdGhhdCBpcyksIHdlCisgICAgLy8gbWF5IGhhdmUgdG8gZmFsbGJhY2sgdG8g
YSBwb3N0LXByb2Nlc3Mgc2V0dXAsIHdoZXJlIGFmdGVyIGZpbmlzaGluZyBsYXlpbmcgb3V0IHRo
ZSBjb250ZW50LCB3ZSBnbyBiYWNrIGFuZCByZS1sYXlvdXQKKyAgICAvLyB0aGUgbGFzdCAoMj8p
IGxpbmUocykgd2hlbiB0aGVyZSdzIHRyYWlsaW5nIGhhbmdpbmcgcHVuY3R1YXRpb24uCisgICAg
Ly8gRm9yIG5vdyBsZXQncyBwcm9iZSB0aGUgY29udGVudCBhbGwgdGhlIHdheSB0byBsYXlvdXRS
YW5nZUVuZC4KKyAgICBmb3IgKGF1dG8gaW5kZXggPSBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCAr
IDE7IGluZGV4IDwgbGF5b3V0UmFuZ2VFbmQ7ICsraW5kZXgpIHsKKyAgICAgICAgYXV0byYgaW5s
aW5lSXRlbSA9IG1faW5saW5lSXRlbXNbaW5kZXhdOworICAgICAgICBpZiAoaW5saW5lSXRlbS5p
c0Zsb2F0KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byBpc0NvbnRlbnRm
dWwgPSBpbmxpbmVJdGVtLmlzQm94KCkgfHwgaW5saW5lSXRlbS5pc1RleHQoKQorICAgICAgICAg
ICAgfHwgKGlubGluZUl0ZW0uaXNJbmxpbmVCb3hTdGFydCgpICYmIGZvcm1hdHRpbmdDb250ZXh0
KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lSXRlbS5sYXlvdXRCb3goKSkubWFyZ2luQm9yZGVyQW5k
UGFkZGluZ1N0YXJ0KCkpCisgICAgICAgICAgICB8fCAoaW5saW5lSXRlbS5pc0lubGluZUJveEVu
ZCgpICYmIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lSXRlbS5sYXlv
dXRCb3goKSkubWFyZ2luQm9yZGVyQW5kUGFkZGluZ0VuZCgpKTsKKyAgICAgICAgaWYgKGlzQ29u
dGVudGZ1bCkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgfQorICAgIGF1dG8mIGlubGlu
ZVRleHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KG1faW5saW5lSXRlbXNbbGFzdElu
bGluZVRleHRJdGVtSW5kZXhdKTsKKyAgICBhdXRvJiBzdHlsZSA9IGlzRmlyc3RGb3JtYXR0ZWRM
aW5lKCkgPyBpbmxpbmVUZXh0SXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lVGV4dEl0ZW0u
c3R5bGUoKTsKKyAgICAvLyBUaGlzIGNhbmRpZGF0ZSBsZWFkaW5nIGNvbnRlbnQgbWF5IGhhdmUg
aGFuZ2luZyBwdW5jdHVhdGlvbiBzdGFydC4KKyAgICByZXR1cm4gVGV4dFV0aWw6OmhhbmdhYmxl
UHVuY3R1YXRpb25FbmRXaWR0aChpbmxpbmVUZXh0SXRlbSwgc3R5bGUpOworfQorCiB2b2lkIExp
bmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2Fu
ZGlkYXRlLCBzaXplX3QgY3VycmVudElubGluZUl0ZW1JbmRleCwgY29uc3QgSW5saW5lSXRlbVJh
bmdlJiBsYXlvdXRSYW5nZSwgSW5saW5lTGF5b3V0VW5pdCBjdXJyZW50TG9naWNhbFJpZ2h0KQog
ewogICAgIEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4IDwgbGF5b3V0UmFuZ2UuZW5kKTsK
QEAgLTY1NywyNSArNzA3LDMyIEBAIHZvaWQgTGluZUJ1aWxkZXI6OmNhbmRpZGF0ZUNvbnRlbnRG
b3JMaW5lKExpbmVDYW5kaWRhdGUmIGxpbmVDYW5kaWRhdGUsIHNpemVfdCBjCiAgICAgICAgICsr
Y3VycmVudElubGluZUl0ZW1JbmRleDsKICAgICB9CiAKKyAgICBhdXRvIGZpcnN0SW5saW5lVGV4
dEl0ZW1JbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CisgICAgYXV0byBsYXN0SW5s
aW5lVGV4dEl0ZW1JbmRleCA9IHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiB7IH07CiAgICAgZm9yIChh
dXRvIGluZGV4ID0gY3VycmVudElubGluZUl0ZW1JbmRleDsgaW5kZXggPCBzb2Z0V3JhcE9wcG9y
dHVuaXR5SW5kZXg7ICsraW5kZXgpIHsKICAgICAgICAgYXV0byYgaW5saW5lSXRlbSA9IG1faW5s
aW5lSXRlbXNbaW5kZXhdOwotICAgICAgICBhdXRvJiBzdHlsZSA9IFsmXSAoKSAtPiBjb25zdCBS
ZW5kZXJTdHlsZSYgewotICAgICAgICAgICAgcmV0dXJuIGlzRmlyc3RGb3JtYXR0ZWRMaW5lKCkg
PyBpbmxpbmVJdGVtLmZpcnN0TGluZVN0eWxlKCkgOiBpbmxpbmVJdGVtLnN0eWxlKCk7Ci0gICAg
ICAgIH0oKTsKKyAgICAgICAgYXV0byYgc3R5bGUgPSBpc0ZpcnN0Rm9ybWF0dGVkTGluZSgpID8g
aW5saW5lSXRlbS5maXJzdExpbmVTdHlsZSgpIDogaW5saW5lSXRlbS5zdHlsZSgpOworCiAgICAg
ICAgIGlmIChpbmxpbmVJdGVtLmlzRmxvYXQoKSkgewogICAgICAgICAgICAgbGluZUNhbmRpZGF0
ZS5mbG9hdEl0ZW0gPSAmaW5saW5lSXRlbTsKICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBzb2Z0
IHdyYXAgb3Bwb3J0dW5pdHksIG11c3QgYmUgdGhlIG9ubHkgaXRlbSBpbiB0aGUgbGlzdC4KICAg
ICAgICAgICAgIEFTU0VSVChjdXJyZW50SW5saW5lSXRlbUluZGV4ICsgMSA9PSBzb2Z0V3JhcE9w
cG9ydHVuaXR5SW5kZXgpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAg
ICAgaWYgKGlubGluZUl0ZW0uaXNUZXh0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveFN0YXJ0
KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIGxv
Z2ljYWxXaWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAqc3RkOjpleGNoYW5nZSht
X292ZXJmbG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDogaW5saW5lSXRlbVdpZHRo
KGlubGluZUl0ZW0sIGN1cnJlbnRMb2dpY2FsUmlnaHQpOworICAgICAgICBpZiAoaW5saW5lSXRl
bS5pc1RleHQoKSkgeworICAgICAgICAgICAgYXV0byYgaW5saW5lVGV4dEl0ZW0gPSBkb3duY2Fz
dDxJbmxpbmVUZXh0SXRlbT4oaW5saW5lSXRlbSk7CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxX
aWR0aCA9IG1fb3ZlcmZsb3dpbmdMb2dpY2FsV2lkdGggPyAqc3RkOjpleGNoYW5nZShtX292ZXJm
bG93aW5nTG9naWNhbFdpZHRoLCBzdGQ6Om51bGxvcHQpIDogaW5saW5lSXRlbVdpZHRoKGlubGlu
ZVRleHRJdGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKKyAgICAgICAgICAgIGxpbmVDYW5kaWRh
dGUuaW5saW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZVRleHRJdGVtLCBzdHlsZSwg
bG9naWNhbFdpZHRoKTsKKyAgICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtl
IHRoZSBydW4gbG9uZ2VyLCBidXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBM
aW5lOjphcHBlbmRUZXh0Q29udGVudCBhcyB3ZWxsLgorICAgICAgICAgICAgY3VycmVudExvZ2lj
YWxSaWdodCArPSBsb2dpY2FsV2lkdGggKyAoaW5saW5lVGV4dEl0ZW0uaXNXb3JkU2VwYXJhdG9y
KCkgPyBzdHlsZS5mb250Q2FzY2FkZSgpLndvcmRTcGFjaW5nKCkgOiAwLmYpOworICAgICAgICAg
ICAgZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gZmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LnZh
bHVlX29yKGluZGV4KTsKKyAgICAgICAgICAgIGxhc3RJbmxpbmVUZXh0SXRlbUluZGV4ID0gaW5k
ZXg7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBpZiAoaW5saW5l
SXRlbS5pc0lubGluZUJveFN0YXJ0KCkgfHwgaW5saW5lSXRlbS5pc0lubGluZUJveEVuZCgpKSB7
CisgICAgICAgICAgICBhdXRvIGxvZ2ljYWxXaWR0aCA9IGlubGluZUl0ZW1XaWR0aChpbmxpbmVJ
dGVtLCBjdXJyZW50TG9naWNhbFJpZ2h0KTsKICAgICAgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5s
aW5lQ29udGVudC5hcHBlbmRJbmxpbmVJdGVtKGlubGluZUl0ZW0sIHN0eWxlLCBsb2dpY2FsV2lk
dGgpOwogICAgICAgICAgICAgY3VycmVudExvZ2ljYWxSaWdodCArPSBsb2dpY2FsV2lkdGg7Ci0g
ICAgICAgICAgICBpZiAoaXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pICYmIGRvd25jYXN0
PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKS5pc1dvcmRTZXBhcmF0b3IoKSkgewotICAgICAg
ICAgICAgICAgIC8vIFdvcmQgc3BhY2luZyBkb2VzIG5vdCBtYWtlIHRoZSBydW4gbG9uZ2VyLCBi
dXQgaXQgcHJvZHVjZXMgYW4gb2Zmc2V0IGluc3RlYWQuIFNlZSBMaW5lOjphcHBlbmRUZXh0Q29u
dGVudCBhcyB3ZWxsLgotICAgICAgICAgICAgICAgIGN1cnJlbnRMb2dpY2FsUmlnaHQgKz0gc3R5
bGUuZm9udENhc2NhZGUoKS53b3JkU3BhY2luZygpOwotICAgICAgICAgICAgfQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGlubGluZUl0ZW0uaXNCb3goKSkg
ewpAQCAtNjk3LDYgKzc1NCwxOCBAQCB2b2lkIExpbmVCdWlsZGVyOjpjYW5kaWRhdGVDb250ZW50
Rm9yTGluZShMaW5lQ2FuZGlkYXRlJiBsaW5lQ2FuZGlkYXRlLCBzaXplX3QgYwogICAgICAgICB9
CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KKworICAgIGF1dG8gc2V0TGVh
ZGluZ0FuZFRyYWlsaW5nSGFuZ2luZ1B1bmN0dWF0aW9uID0gWyZdIHsKKyAgICAgICAgYXV0byBo
YW5naW5nQ29udGVudFdpZHRoID0gbGluZUNhbmRpZGF0ZS5pbmxpbmVDb250ZW50LmNvbnRpbnVv
dXNDb250ZW50KCkuaGFuZ2luZ0NvbnRlbnRXaWR0aCgpOworICAgICAgICAvLyBEbyBub3QgZXZl
biB0cnkgdG8gY2hlY2sgZm9yIHRyYWlsaW5nIHB1bmN0dWF0aW9uIHdoZW4gdGhlIGNhbmRpZGF0
ZSBjb250ZW50IGFscmVhZHkgaGFzIHdoaXRlc3BhY2UgdHlwZSBvZiBoYW5naW5nIGNvbnRlbnQu
CisgICAgICAgIGlmICghaGFuZ2luZ0NvbnRlbnRXaWR0aCAmJiBsYXN0SW5saW5lVGV4dEl0ZW1J
bmRleCkKKyAgICAgICAgICAgIGhhbmdpbmdDb250ZW50V2lkdGggKz0gdHJhaWxpbmdQdW5jdHVh
dGlvbldpZHRoRm9yTGluZUNhbmRpYXRlKCpsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgbGF5b3V0
UmFuZ2UuZW5kKTsKKyAgICAgICAgaWYgKGZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCkKKyAgICAg
ICAgICAgIGhhbmdpbmdDb250ZW50V2lkdGggKz0gbGVhZGluZ1B1bmN0dWF0aW9uV2lkdGhGb3JM
aW5lQ2FuZGlhdGUoKmZpcnN0SW5saW5lVGV4dEl0ZW1JbmRleCwgY3VycmVudElubGluZUl0ZW1J
bmRleCk7CisgICAgICAgIGxpbmVDYW5kaWRhdGUuaW5saW5lQ29udGVudC5zZXRIYW5naW5nQ29u
dGVudFdpZHRoKGhhbmdpbmdDb250ZW50V2lkdGgpOworICAgIH07CisgICAgc2V0TGVhZGluZ0Fu
ZFRyYWlsaW5nSGFuZ2luZ1B1bmN0dWF0aW9uKCk7CisKICAgICBhdXRvIGlubGluZUNvbnRlbnRF
bmRzSW5Tb2Z0V3JhcE9wcG9ydHVuaXR5ID0gWyZdIHsKICAgICAgICAgaWYgKCFzb2Z0V3JhcE9w
cG9ydHVuaXR5SW5kZXggfHwgc29mdFdyYXBPcHBvcnR1bml0eUluZGV4ID09IGxheW91dFJhbmdl
LmVuZCkgewogICAgICAgICAgICAgLy8gVGhpcyBjYW5kaWRhdGUgaW5saW5lIGNvbnRlbnQgZW5k
cyBiZWNhdXNlIHRoZSBlbnRpcmUgY29udGVudCBlbmRzIGFuZCBub3QgYmVjYXVzZSB0aGVyZSdz
IGEgc29mdCB3cmFwIG9wcG9ydHVuaXR5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJ1aWxkZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWls
ZGVyLmgKaW5kZXggODQ1NDUyZmRkMDBjLi5jNDFmOTNmMGVlZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCdWls
ZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lTGluZUJ1aWxkZXIuaApAQCAtMTEzLDYgKzExMyw4IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICB2b2lkIGNhbmRpZGF0ZUNvbnRlbnRGb3JMaW5lKExpbmVDYW5kaWRhdGUmLCBz
aXplX3QgaW5saW5lSXRlbUluZGV4LCBjb25zdCBJbmxpbmVJdGVtUmFuZ2UmIG5lZWRzTGF5b3V0
UmFuZ2UsIElubGluZUxheW91dFVuaXQgY3VycmVudExvZ2ljYWxSaWdodCk7CisgICAgSW5saW5l
TGF5b3V0VW5pdCBsZWFkaW5nUHVuY3R1YXRpb25XaWR0aEZvckxpbmVDYW5kaWF0ZShzaXplX3Qg
Zmlyc3RJbmxpbmVUZXh0SXRlbUluZGV4LCBzaXplX3QgY2FuZGlkYXRlQ29udGVudFN0YXJ0SW5k
ZXgpIGNvbnN0OworICAgIElubGluZUxheW91dFVuaXQgdHJhaWxpbmdQdW5jdHVhdGlvbldpZHRo
Rm9yTGluZUNhbmRpYXRlKHNpemVfdCBsYXN0SW5saW5lVGV4dEl0ZW1JbmRleCwgc2l6ZV90IGxh
eW91dFJhbmdlRW5kKSBjb25zdDsKICAgICBzaXplX3QgbmV4dFdyYXBPcHBvcnR1bml0eShzaXpl
X3Qgc3RhcnRJbmRleCwgY29uc3QgTGluZUJ1aWxkZXI6OklubGluZUl0ZW1SYW5nZSYgbGF5b3V0
UmFuZ2UpIGNvbnN0OwogCiAgICAgc3RydWN0IFVzZWRDb25zdHJhaW50cyB7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS90ZXh0L1Rl
eHRVdGlsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5s
aW5lL3RleHQvVGV4dFV0aWwuY3BwCmluZGV4IDM4NWU1ZmFjZTY1MS4uMmMzODg4ZDJhYTIwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS90ZXh0L1RleHRVdGlsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS90ZXh0L1RleHRVdGlsLmNwcApAQCAtNDM0LDggKzQzNCw3IEBAIFRl
eHRSdW4gVGV4dFV0aWw6OmVsbGlwc2lzVGV4dFJ1bihib29sIGlzSG9yaXpvbnRhbCkKIAogYm9v
bCBUZXh0VXRpbDo6aGFzSGFuZ2FibGVQdW5jdHVhdGlvblN0YXJ0KGNvbnN0IElubGluZVRleHRJ
dGVtJiBpbmxpbmVUZXh0SXRlbSwgY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQogewotICAgIEFT
U0VSVChpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSk7Ci0gICAgaWYgKCFzdHlsZS5oYW5naW5nUHVu
Y3R1YXRpb24oKS5jb250YWlucyhIYW5naW5nUHVuY3R1YXRpb246OkZpcnN0KSkKKyAgICBpZiAo
IWlubGluZVRleHRJdGVtLmxlbmd0aCgpIHx8ICFzdHlsZS5oYW5naW5nUHVuY3R1YXRpb24oKS5j
b250YWlucyhIYW5naW5nUHVuY3R1YXRpb246OkZpcnN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIGF1dG8gbGVhZGluZ0NoYXJhY3RlciA9IGlubGluZVRleHRJdGVtLmlubGluZVRleHRC
b3goKS5jb250ZW50KClbaW5saW5lVGV4dEl0ZW0uc3RhcnQoKV07CiAgICAgcmV0dXJuIFVfR0VU
X0dDX01BU0sobGVhZGluZ0NoYXJhY3RlcikgJiAoVV9HQ19QU19NQVNLIHwgVV9HQ19QSV9NQVNL
IHwgVV9HQ19QRl9NQVNLKTsKQEAgLTQ0MywxNyArNDQyLDE2IEBAIGJvb2wgVGV4dFV0aWw6Omhh
c0hhbmdhYmxlUHVuY3R1YXRpb25TdGFydChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4
dEl0ZW0sCiAKIGZsb2F0IFRleHRVdGlsOjpoYW5nYWJsZVB1bmN0dWF0aW9uU3RhcnRXaWR0aChj
b25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSkKIHsKLSAgICBBU1NFUlQoaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOwogICAgIGlmICgh
aGFzSGFuZ2FibGVQdW5jdHVhdGlvblN0YXJ0KGlubGluZVRleHRJdGVtLCBzdHlsZSkpCiAgICAg
ICAgIHJldHVybiB7IH07CisgICAgQVNTRVJUKGlubGluZVRleHRJdGVtLmxlbmd0aCgpKTsKICAg
ICBhdXRvIGxlYWRpbmdQb3NpdGlvbiA9IGlubGluZVRleHRJdGVtLnN0YXJ0KCk7CiAgICAgcmV0
dXJuIHdpZHRoKGlubGluZVRleHRJdGVtLCBzdHlsZS5mb250Q2FzY2FkZSgpLCBsZWFkaW5nUG9z
aXRpb24sIGxlYWRpbmdQb3NpdGlvbiArIDEsIHsgfSk7CiB9CiAKIGJvb2wgVGV4dFV0aWw6Omhh
c0hhbmdhYmxlUHVuY3R1YXRpb25FbmQoY29uc3QgSW5saW5lVGV4dEl0ZW0mIGlubGluZVRleHRJ
dGVtLCBjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7Ci0gICAgQVNTRVJUKGlubGluZVRleHRJ
dGVtLmxlbmd0aCgpKTsKLSAgICBpZiAoIXN0eWxlLmhhbmdpbmdQdW5jdHVhdGlvbigpLmNvbnRh
aW5zKEhhbmdpbmdQdW5jdHVhdGlvbjo6TGFzdCkpCisgICAgaWYgKCFpbmxpbmVUZXh0SXRlbS5s
ZW5ndGgoKSB8fCAhc3R5bGUuaGFuZ2luZ1B1bmN0dWF0aW9uKCkuY29udGFpbnMoSGFuZ2luZ1B1
bmN0dWF0aW9uOjpMYXN0KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8gdHJhaWxp
bmdDaGFyYWN0ZXIgPSBpbmxpbmVUZXh0SXRlbS5pbmxpbmVUZXh0Qm94KCkuY29udGVudCgpW2lu
bGluZVRleHRJdGVtLmVuZCgpIC0gMV07CiAgICAgcmV0dXJuIFVfR0VUX0dDX01BU0sodHJhaWxp
bmdDaGFyYWN0ZXIpICYgKFVfR0NfUEVfTUFTSyB8IFVfR0NfUElfTUFTSyB8IFVfR0NfUEZfTUFT
Syk7CkBAIC00NjEsOSArNDU5LDkgQEAgYm9vbCBUZXh0VXRpbDo6aGFzSGFuZ2FibGVQdW5jdHVh
dGlvbkVuZChjb25zdCBJbmxpbmVUZXh0SXRlbSYgaW5saW5lVGV4dEl0ZW0sIGMKIAogZmxvYXQg
VGV4dFV0aWw6OmhhbmdhYmxlUHVuY3R1YXRpb25FbmRXaWR0aChjb25zdCBJbmxpbmVUZXh0SXRl
bSYgaW5saW5lVGV4dEl0ZW0sIGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKIHsKLSAgICBBU1NF
UlQoaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOwogICAgIGlmICghaGFzSGFuZ2FibGVQdW5jdHVh
dGlvbkVuZChpbmxpbmVUZXh0SXRlbSwgc3R5bGUpKQogICAgICAgICByZXR1cm4geyB9OworICAg
IEFTU0VSVChpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSk7CiAgICAgYXV0byB0cmFpbGluZ1Bvc2l0
aW9uID0gaW5saW5lVGV4dEl0ZW0uZW5kKCkgLSAxOwogICAgIHJldHVybiB3aWR0aChpbmxpbmVU
ZXh0SXRlbSwgc3R5bGUuZm9udENhc2NhZGUoKSwgdHJhaWxpbmdQb3NpdGlvbiwgdHJhaWxpbmdQ
b3NpdGlvbiArIDEsIHsgfSk7CiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>