<?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>243621</bug_id>
          
          <creation_ts>2022-08-05 22:45:44 -0700</creation_ts>
          <short_desc>[Painting] Do not call textRunOffsetFromBottomMost() unless the resolved underline position value is TextUnderlinePosition::Under</short_desc>
          <delta_ts>2022-08-14 14:06:25 -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>
          
          <blocked>243766</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>koivisto</cc>
    
    <cc>mmaxfield</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>1889320</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-08-05 22:45:44 -0700</bug_when>
    <thetext>textRunOffsetFromBottomMost() is expensive</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889322</commentid>
    <comment_count>1</comment_count>
      <attachid>461436</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-05 22:57:30 -0700</bug_when>
    <thetext>Created attachment 461436
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889402</commentid>
    <comment_count>2</comment_count>
      <attachid>461445</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-08-06 14:12:28 -0700</bug_when>
    <thetext>Created attachment 461445
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889443</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-08-06 16:31:32 -0700</bug_when>
    <thetext>Committed 253186@main (3f94a77b8952): &lt;https://commits.webkit.org/253186@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461445.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1889444</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-08-06 16:32:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/98254665&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461436</attachid>
            <date>2022-08-05 22:57:30 -0700</date>
            <delta_ts>2022-08-06 14:12:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-243621-20220805225729.patch</filename>
            <type>text/plain</type>
            <size>13524</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjYjI0NTgzYWNmYzk1NGVjOGRmODhkMTNlMjQ4ZDk1YzY0ZTlhNDJhIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBG
cmksIDUgQXVnIDIwMjIgMjI6NDU6NTUgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbUGFpbnRpbmdd
IERvIG5vdCBjYWxsIHRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdCgpIHVubGVzcwogdGhlIHJl
c29sdmVkIHVuZGVybGluZSBwb3NpdGlvbiB2YWx1ZSBpcyBUZXh0VW5kZXJsaW5lUG9zaXRpb246
OlVuZGVyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzNjIxCgpS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCnRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdCgp
IHdhbGtzIHRoZSBsaW5lIGFuZCBsb29rcyBhdCBlYWNoIHRleHQgcnVuJ3MgbG9naWNhbCBib3R0
b20gdG8gZmluZCB0aGUgYm90dG9tIG1vc3QgcG9zaXRpb24uIFRoaXMgYm90dG9tIG1vc3QgdmFs
dWUgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdW5kZXJsaW5lIHdoZW4g
InRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIiByZXNvbHZlcyB0byAidW5kZXIiLiBBbnkgb3RoZXIg
InRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIiBpZ25vcmVzIHRoZSBib3R0b20gbW9zdCBwb3NpdGlv
bi4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHdlIG9ubHkgY2FsbCB0ZXh0UnVuT2Zmc2V0RnJv
bUJvdHRvbU1vc3QoKSB3aGVuIG5lZWRlZC4KMS4gUHJlY29tcHV0ZSB0aGUgInVuZGVybGluZSBw
b3NpdGlvbiIgdmFsdWUgYW5kIGNhbGwgdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0KCkgb25s
eSB3aGVuIGl0IHJlc29sdmVzIHRvIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXIuCjIuIFBh
c3MgaW4gdGhpcyByZXNvbHZlZCB2YWx1ZSB0byBjb21wdXRlZFVuZGVybGluZU9mZnNldCgpLgoK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9yVGV4dERlY29yYXRp
b25zKToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgooV2Vi
Q29yZTo6cmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbik6CihXZWJDb3JlOjpjb21wdXRlZFVuZGVy
bGluZU9mZnNldCk6CihXZWJDb3JlOjp2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKToKKFdl
YkNvcmU6OnVuZGVybGluZVN0eWxlQW5kT2Zmc2V0Rm9yVGV4dEJveFBhaW50aW5nKToKKFdlYkNv
cmU6OmNvbXB1dGVVbmRlcmxpbmVPZmZzZXQpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5oOgotLS0KIC4uLi9kaXNwbGF5L0lubGluZURpc3BsYXlD
b250ZW50QnVpbGRlci5jcHAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVU
ZXh0Qm94U3R5bGUuY3BwICAgfCA4MSArKysrKysrKysrKystLS0tLS0tCiBTb3VyY2UvV2ViQ29y
ZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuaCAgICAgfCAgMyArLQogMyBmaWxlcyBjaGFuZ2Vk
LCA1MyBpbnNlcnRpb25zKCspLCAzMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURp
c3BsYXlDb250ZW50QnVpbGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAK
aW5kZXggMDUzZTZiZTNkZDcxLi44NjE4MWM1YWJlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL2Rpc3BsYXkvSW5saW5lRGlzcGxh
eUNvbnRlbnRCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHAK
QEAgLTg4MCw3ICs4ODAsNyBAQCB2b2lkIElubGluZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y29s
bGVjdElua092ZXJmbG93Rm9yVGV4dERlY29yYXRpb25zKERpc3BsYXlCbwogICAgICAgICAgICAg
aWYgKCFsb2dpY2FsQm90dG9tRm9yVGV4dERlY29yYXRpb24pCiAgICAgICAgICAgICAgICAgbG9n
aWNhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uID0gbG9naWNhbEJvdHRvbUZvclRleHREZWNvcmF0
aW9uQ29udGVudChib3hlcywgaXNIb3Jpem9udGFsV3JpdGluZ01vZGUpOwogICAgICAgICAgICAg
YXV0byB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tID0gKmxvZ2ljYWxCb3R0b21G
b3JUZXh0RGVjb3JhdGlvbiAtIChpc0hvcml6b250YWxXcml0aW5nTW9kZSA/IGRpc3BsYXlCb3gu
Ym90dG9tKCkgOiBkaXNwbGF5Qm94LnJpZ2h0KCkpOwotICAgICAgICAgICAgcmV0dXJuIHZpc3Vh
bE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoc3R5bGUsIHsgZGlzcGxheUxpbmUuYmFzZWxpbmVUeXBl
KCksIGRpc3BsYXlCb3guaGVpZ2h0KCksIHRleHRSdW5Mb2dpY2FsT2Zmc2V0RnJvbUxpbmVCb3R0
b20gfSk7CisgICAgICAgICAgICByZXR1cm4gdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhz
dHlsZSwgZGlzcGxheUxpbmUuYmFzZWxpbmVUeXBlKCksIHsgZGlzcGxheUJveC5oZWlnaHQoKSwg
dGV4dFJ1bkxvZ2ljYWxPZmZzZXRGcm9tTGluZUJvdHRvbSB9KTsKICAgICAgICAgfSgpOwogCiAg
ICAgICAgIGlmICghZGVjb3JhdGlvbk92ZXJmbG93LmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKaW5kZXggODBhMDdlNGYwZjFkLi5lZjBh
MTgzYmZiMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hT
dHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmNw
cApAQCAtMzksNiArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBVbmRlcmxp
bmVPZmZzZXRBcmd1bWVudHMgewogICAgIGNvbnN0IFJlbmRlclN0eWxlJiBkZWNvcmF0aW5nQm94
U3R5bGU7CisgICAgVGV4dFVuZGVybGluZVBvc2l0aW9uIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRp
b24geyBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG8gfTsKICAgICBmbG9hdCBkZWZhdWx0R2Fw
IHsgMCB9OwogICAgIHN0ZDo6b3B0aW9uYWw8VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXI+IHRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsgfTsKIH07CkBAIC0xMzIsMTEgKzEzMywyMiBAQCBz
dGF0aWMgaW5saW5lIGZsb2F0IGRlZmF1bHRHYXAoY29uc3QgUmVuZGVyU3R5bGUmIHN0eWxlKQog
ICAgIHJldHVybiBzdHlsZS5jb21wdXRlZEZvbnRTaXplKCkgLyB0ZXh0RGVjb3JhdGlvbkJhc2VG
b250U2l6ZTsKIH0KIAotc3RhdGljIGZsb2F0IGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoY29uc3Qg
VW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzJiBjb250ZXh0KQorc3RhdGljIGlubGluZSBUZXh0VW5k
ZXJsaW5lUG9zaXRpb24gcmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbihjb25zdCBSZW5kZXJTdHls
ZSYgZGVjb3JhdGluZ0JveFN0eWxlLCBzdGQ6Om9wdGlvbmFsPEZvbnRCYXNlbGluZT4gYmFzZWxp
bmVUeXBlKQoreworICAgIGF1dG8gdW5kZXJsaW5lUG9zaXRpb24gPSBkZWNvcmF0aW5nQm94U3R5
bGUudGV4dFVuZGVybGluZVBvc2l0aW9uKCk7CisgICAgaWYgKHVuZGVybGluZVBvc2l0aW9uID09
IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0byAmJiBkZWNvcmF0aW5nQm94U3R5bGUudGV4dFVu
ZGVybGluZU9mZnNldCgpLmlzQXV0bygpKSB7CisgICAgICAgIGlmIChiYXNlbGluZVR5cGUpCisg
ICAgICAgICAgICByZXR1cm4gKmJhc2VsaW5lVHlwZSA9PSBJZGVvZ3JhcGhpY0Jhc2VsaW5lID8g
VGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlciA6IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0
bzsKKyAgICAgICAgcmV0dXJuIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzsKKyAgICB9Cisg
ICAgcmV0dXJuIHVuZGVybGluZVBvc2l0aW9uOworfQorCitzdGF0aWMgZmxvYXQgY29tcHV0ZWRV
bmRlcmxpbmVPZmZzZXQoY29uc3QgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzJiBjb250ZXh0KQog
ewogICAgIC8vIFRoaXMgcmVwcmVzZW50cyB0aGUgZ2FwIGJldHdlZW4gdGhlIGJhc2VsaW5lIGFu
ZCB0aGUgY2xvc2VzdCBlZGdlIG9mIHRoZSB1bmRlcmxpbmUuCi0gICAgZmxvYXQgZ2FwID0gc3Rk
OjptYXg8aW50PigxLCBzdGQ6OmNlaWwoY29udGV4dC5kZWZhdWx0R2FwIC8gMi4wZikpOwotICAg
IAorICAgIGF1dG8gZ2FwID0gc3RkOjptYXgoMS5mLCBzdGQ6OmNlaWwoY29udGV4dC5kZWZhdWx0
R2FwIC8gMi5mKSk7CisKICAgICAvLyBGSVhNRTogVGhlIGNvZGUgZm9yIHZpc3VhbCBvdmVyZmxv
dyBkZXRlY3Rpb24gcGFzc2VzIGluIGEgbnVsbCBpbmxpbmUgdGV4dCBib3guIFRoaXMgbWVhbnMg
aXQgaXMgbm93CiAgICAgLy8gYnJva2VuIGZvciB0aGUgY2FzZSB3aGVyZSBhdXRvIG5lZWRzIHRv
IGJlaGF2ZSBsaWtlICJ1bmRlciIuCiAgICAgCkBAIC0xNDQsMzcgKzE1NiwzMSBAQCBzdGF0aWMg
ZmxvYXQgY29tcHV0ZVVuZGVybGluZU9mZnNldChjb25zdCBVbmRlcmxpbmVPZmZzZXRBcmd1bWVu
dHMmIGNvbnRleHQpCiAgICAgLy8gc2NyaXB0cyB3aGVyZSBpdCB3b3VsZCBub3QgYmUgYXBwcm9w
cmlhdGUgKGUuZy4sIGlkZW9ncmFwaHMpLgogICAgIC8vIFN0cmljdGx5IHNwZWFraW5nIHRoaXMg
Y2FuIG9jY3VyIHdoZW5ldmVyIHRoZSBsaW5lIGNvbnRhaW5zIGlkZW9ncmFwaHMKICAgICAvLyBl
dmVuIGlmIGl0IGlzIGhvcml6b250YWwsIGJ1dCBkZXRlY3RpbmcgdGhpcyBoYXMgcGVyZm9ybWFu
Y2UgaW1wbGljYXRpb25zLiBGb3Igbm93IHdlIG9ubHkgd29yayB3aXRoCi0gICAgLy8gdmVydGlj
YWwgdGV4dCwgc2luY2Ugd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoZSBiYXNlbGluZSB0eXBlIHRv
IGJlIGlkZW9ncmFwaGljIGluIHRoYXQKLSAgICAvLyBjYXNlLgotICAgIGF1dG8gdW5kZXJsaW5l
UG9zaXRpb24gPSBjb250ZXh0LmRlY29yYXRpbmdCb3hTdHlsZS50ZXh0VW5kZXJsaW5lUG9zaXRp
b24oKTsKKyAgICAvLyB2ZXJ0aWNhbCB0ZXh0LCBzaW5jZSB3ZSBhbHJlYWR5IGRldGVybWluZWQg
dGhlIGJhc2VsaW5lIHR5cGUgdG8gYmUgaWRlb2dyYXBoaWMgaW4gdGhhdCBjYXNlLgogICAgIGF1
dG8gdW5kZXJsaW5lT2Zmc2V0ID0gY29udGV4dC5kZWNvcmF0aW5nQm94U3R5bGUudGV4dFVuZGVy
bGluZU9mZnNldCgpOwogICAgIGF1dG8mIGZvbnRNZXRyaWNzID0gY29udGV4dC5kZWNvcmF0aW5n
Qm94U3R5bGUubWV0cmljc09mUHJpbWFyeUZvbnQoKTsKIAotICAgIGF1dG8gcmVzb2x2ZWRVbmRl
cmxpbmVQb3NpdGlvbiA9IHVuZGVybGluZVBvc2l0aW9uOwotICAgIGlmIChyZXNvbHZlZFVuZGVy
bGluZVBvc2l0aW9uID09IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0byAmJiB1bmRlcmxpbmVP
ZmZzZXQuaXNBdXRvKCkpIHsKLSAgICAgICAgaWYgKGNvbnRleHQudGV4dFVuZGVybGluZVBvc2l0
aW9uVW5kZXIpCi0gICAgICAgICAgICByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uID0gY29udGV4
dC50ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci0+YmFzZWxpbmVUeXBlID09IElkZW9ncmFwaGlj
QmFzZWxpbmUgPyBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyIDogVGV4dFVuZGVybGluZVBv
c2l0aW9uOjpBdXRvOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXNvbHZlZFVuZGVybGlu
ZVBvc2l0aW9uID0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpBdXRvOwotICAgIH0KLQotICAgIHN3
aXRjaCAocmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbikgeworICAgIGZsb2F0IGNvbXB1dGVkVW5k
ZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNjZW50KCkgKyBnYXA7CisgICAgc3dpdGNoIChj
b250ZXh0LnJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24pIHsKICAgICBjYXNlIFRleHRVbmRlcmxp
bmVQb3NpdGlvbjo6QXV0bzoKLSAgICAgICAgaWYgKHVuZGVybGluZU9mZnNldC5pc0F1dG8oKSkK
LSAgICAgICAgICAgIHJldHVybiBmb250TWV0cmljcy5hc2NlbnQoKSArIGdhcDsKLSAgICAgICAg
cmV0dXJuIGZvbnRNZXRyaWNzLmFzY2VudCgpICsgdW5kZXJsaW5lT2Zmc2V0Lmxlbmd0aFZhbHVl
KCk7CisgICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0ID0gZm9udE1ldHJpY3MuYXNjZW50
KCkgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoZ2FwKTsKKyAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkZyb21Gb250OgotICAgICAgICByZXR1cm4gZm9u
dE1ldHJpY3MuYXNjZW50KCkgKyBmb250TWV0cmljcy51bmRlcmxpbmVQb3NpdGlvbigpICsgdW5k
ZXJsaW5lT2Zmc2V0Lmxlbmd0aE9yKDApOworICAgICAgICBjb21wdXRlZFVuZGVybGluZU9mZnNl
dCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZm9udE1ldHJpY3MudW5kZXJsaW5lUG9zaXRpb24o
KSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhPcigwLmYpOworICAgICAgICBicmVhazsKICAgICBj
YXNlIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXI6IHsKICAgICAgICAgQVNTRVJUKGNvbnRl
eHQudGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIpOwogICAgICAgICAvLyBQb3NpdGlvbiB1bmRl
cmxpbmUgcmVsYXRpdmUgdG8gdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBsb3dlc3QgZWxlbWVudCdz
IGNvbnRlbnQgYm94LgotICAgICAgICBhdXRvIGRlc2lyZWRPZmZzZXQgPSBjb250ZXh0LnRleHRV
bmRlcmxpbmVQb3NpdGlvblVuZGVyLT50ZXh0UnVuTG9naWNhbEhlaWdodCArIGdhcCArIHN0ZDo6
bWF4KGNvbnRleHQudGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXItPnRleHRSdW5PZmZzZXRGcm9t
Qm90dG9tTW9zdCwgMC4wZikgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoMCk7Ci0gICAgICAg
IHJldHVybiBzdGQ6Om1heDxmbG9hdD4oZGVzaXJlZE9mZnNldCwgZm9udE1ldHJpY3MuYXNjZW50
KCkpOworICAgICAgICBhdXRvIGRlc2lyZWRPZmZzZXQgPSBjb250ZXh0LnRleHRVbmRlcmxpbmVQ
b3NpdGlvblVuZGVyLT50ZXh0UnVuTG9naWNhbEhlaWdodCArIGdhcCArIHN0ZDo6bWF4KGNvbnRl
eHQudGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXItPnRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9z
dCwgMC5mKSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhPcigwLmYpOworICAgICAgICBjb21wdXRl
ZFVuZGVybGluZU9mZnNldCA9IHN0ZDo6bWF4PGZsb2F0PihkZXNpcmVkT2Zmc2V0LCBmb250TWV0
cmljcy5hc2NlbnQoKSk7CisgICAgICAgIGJyZWFrOwogICAgIH0KKyAgICBkZWZhdWx0OgorICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIGZvbnRNZXRyaWNzLmFzY2VudCgpICsg
Z2FwOworICAgIHJldHVybiBjb21wdXRlZFVuZGVybGluZU9mZnNldDsKIH0KIAogV2F2eVN0cm9r
ZVBhcmFtZXRlcnMgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMoZmxvYXQgZm9udFNpemUpCkBAIC0y
NTYsMTYgKzI2MiwyNCBAQCBzdGF0aWMgR2x5cGhPdmVyZmxvdyBjb21wdXRlZFZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmIGxpbgogR2x5cGhPdmVyZmxvdyB2
aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IElubGluZUl0ZXJhdG9yOjpMaW5lQm94
SXRlcmF0b3ImIGxpbmVCb3gsIGNvbnN0IFJlbmRlclRleHQmIHJlbmRlcmVyLCBmbG9hdCB0ZXh0
Qm94TG9naWNhbFRvcCwgZmxvYXQgdGV4dEJveExvZ2ljYWxCb3R0b20pCiB7CiAgICAgYXV0byYg
c3R5bGUgPSBsaW5lQm94LT5pc0ZpcnN0KCkgPyByZW5kZXJlci5maXJzdExpbmVTdHlsZSgpIDog
cmVuZGVyZXIuc3R5bGUoKTsKKyAgICBhdXRvIHVuZGVybGluZVBvc2l0aW9uVmFsdWUgPSByZXNv
bHZlZFVuZGVybGluZVBvc2l0aW9uKHN0eWxlLCBsaW5lQm94LT5iYXNlbGluZVR5cGUoKSk7Cisg
ICAgYXV0byB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IHN0ZDo6b3B0aW9uYWw8VGV4dFVu
ZGVybGluZVBvc2l0aW9uVW5kZXI+IHsgfTsKKworICAgIGlmICh1bmRlcmxpbmVQb3NpdGlvblZh
bHVlID09IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXIpIHsKKyAgICAgICAgYXV0byB0ZXh0
UnVuT2Zmc2V0ID0gdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0KGxpbmVCb3gsIHJlbmRlcmVy
LCB0ZXh0Qm94TG9naWNhbFRvcCwgdGV4dEJveExvZ2ljYWxCb3R0b20pOworICAgICAgICB0ZXh0
VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsgdGV4
dEJveExvZ2ljYWxCb3R0b20gLSB0ZXh0Qm94TG9naWNhbFRvcCwgdGV4dFJ1bk9mZnNldCB9Owor
ICAgIH0KKwogICAgIGF1dG8gdW5kZXJsaW5lT2Zmc2V0ID0gc3R5bGUudGV4dERlY29yYXRpb25z
SW5FZmZlY3QoKS5jb250YWlucyhUZXh0RGVjb3JhdGlvbkxpbmU6OlVuZGVybGluZSkKLSAgICAg
ICAgPyBzdGQ6Om1ha2Vfb3B0aW9uYWwoY29tcHV0ZVVuZGVybGluZU9mZnNldCh7IHN0eWxlLCBk
ZWZhdWx0R2FwKHN0eWxlKSwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgeyBsaW5lQm94LT5i
YXNlbGluZVR5cGUoKSwgdGV4dEJveExvZ2ljYWxCb3R0b20gLSB0ZXh0Qm94TG9naWNhbFRvcCwg
dGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0KGxpbmVCb3gsIHJlbmRlcmVyLCB0ZXh0Qm94TG9n
aWNhbFRvcCwgdGV4dEJveExvZ2ljYWxCb3R0b20pIH0gfSkpCisgICAgICAgID8gc3RkOjptYWtl
X29wdGlvbmFsKGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHVuZGVybGluZVBvc2l0
aW9uVmFsdWUsIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9
KSkKICAgICAgICAgOiBzdGQ6Om51bGxvcHQ7CiAgICAgcmV0dXJuIGNvbXB1dGVkVmlzdWFsT3Zl
cmZsb3dGb3JEZWNvcmF0aW9ucyhzdHlsZSwgdW5kZXJsaW5lT2Zmc2V0KTsKIH0KIAotR2x5cGhP
dmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBz
dHlsZSwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5k
ZXIpCitHbHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVu
ZGVyU3R5bGUmIHN0eWxlLCBGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlLCBUZXh0VW5kZXJsaW5l
UG9zaXRpb25VbmRlciB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcikKIHsKICAgICBhdXRvIHVu
ZGVybGluZU9mZnNldCA9IHN0eWxlLnRleHREZWNvcmF0aW9uc0luRWZmZWN0KCkuY29udGFpbnMo
VGV4dERlY29yYXRpb25MaW5lOjpVbmRlcmxpbmUpCi0gICAgICAgID8gc3RkOjptYWtlX29wdGlv
bmFsKGNvbXB1dGVVbmRlcmxpbmVPZmZzZXQoeyBzdHlsZSwgZGVmYXVsdEdhcChzdHlsZSksIHRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIH0pKQorICAgICAgICA/IHN0ZDo6bWFrZV9vcHRpb25h
bChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCByZXNvbHZlZFVuZGVybGluZVBvc2l0
aW9uKHN0eWxlLCBiYXNlbGluZVR5cGUpLCBkZWZhdWx0R2FwKHN0eWxlKSwgdGV4dFVuZGVybGlu
ZVBvc2l0aW9uVW5kZXIgfSkpCiAgICAgICAgIDogc3RkOjpudWxsb3B0OwogICAgIHJldHVybiBj
b21wdXRlZFZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoc3R5bGUsIHVuZGVybGluZU9mZnNl
dCk7CiB9CkBAIC0yNzMsNyArMjg3LDcgQEAgR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0Zv
ckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgVGV4dFVuZGVybGkKIEdseXBo
T3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHlsZSYg
c3R5bGUpCiB7CiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBzdHlsZS50ZXh0RGVjb3JhdGlv
bnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6VW5kZXJsaW5lKQotICAg
ICAgICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUs
IGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSkpCisgICAgICAgID8gc3RkOjptYWtlX29wdGlvbmFs
KGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHJlc29sdmVkVW5kZXJsaW5lUG9zaXRp
b24oc3R5bGUsIHsgfSksIGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSkpCiAgICAgICAgIDogc3Rk
OjpudWxsb3B0OwogICAgIHJldHVybiBjb21wdXRlZFZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlv
bnMoc3R5bGUsIHVuZGVybGluZU9mZnNldCk7CiB9CkBAIC0yOTIsMTMgKzMwNiwyMCBAQCBEZWNv
cmF0aW5nQm94U3R5bGVBbmRPZmZzZXRGb3JVbmRlcmxpbmUgdW5kZXJsaW5lU3R5bGVBbmRPZmZz
ZXRGb3JUZXh0Qm94UGFpbnRpbgogICAgIH0KIAogICAgIGF1dG8mIHN0eWxlID0gaXNGaXJzdExp
bmUgPyBkZWNvcmF0aW9uUmVuZGVyZXItPmZpcnN0TGluZVN0eWxlKCkgOiBkZWNvcmF0aW9uUmVu
ZGVyZXItPnN0eWxlKCk7Ci0gICAgYXV0byB0ZXh0UnVuT2Zmc2V0ID0gdGV4dFJ1bk9mZnNldEZy
b21Cb3R0b21Nb3N0V2l0aGluRGVjb3JhdGluZ0JveChsaW5lQm94LCAqZGVjb3JhdGlvblJlbmRl
cmVyLCBzdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCksIHRleHRCb3gtPmxvZ2ljYWxU
b3AoKSwgdGV4dEJveC0+bG9naWNhbEJvdHRvbSgpKTsKLSAgICBhdXRvIHRleHRCb3hIZWlnaHQg
PSB0ZXh0Qm94LT5sb2dpY2FsQm90dG9tKCkgLSB0ZXh0Qm94LT5sb2dpY2FsVG9wKCk7CisgICAg
YXV0byB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IHN0ZDo6b3B0aW9uYWw8VGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXI+IHsgfTsKKyAgICBhdXRvIHVuZGVybGluZVBvc2l0aW9uVmFsdWUg
PSByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKHN0eWxlLCBsaW5lQm94LT5iYXNlbGluZVR5cGUo
KSk7CisKKyAgICBpZiAodW5kZXJsaW5lUG9zaXRpb25WYWx1ZSA9PSBUZXh0VW5kZXJsaW5lUG9z
aXRpb246OlVuZGVyKSB7CisgICAgICAgIGF1dG8gdGV4dEJveEhlaWdodCA9IHRleHRCb3gtPmxv
Z2ljYWxCb3R0b20oKSAtIHRleHRCb3gtPmxvZ2ljYWxUb3AoKTsKKyAgICAgICAgYXV0byB0ZXh0
UnVuT2Zmc2V0ID0gdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0V2l0aGluRGVjb3JhdGluZ0Jv
eChsaW5lQm94LCAqZGVjb3JhdGlvblJlbmRlcmVyLCBzdHlsZS5pc0ZsaXBwZWRMaW5lc1dyaXRp
bmdNb2RlKCksIHRleHRCb3gtPmxvZ2ljYWxUb3AoKSwgdGV4dEJveC0+bG9naWNhbEJvdHRvbSgp
KTsKKyAgICAgICAgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgPSBUZXh0VW5kZXJsaW5lUG9z
aXRpb25VbmRlciB7IHRleHRCb3hIZWlnaHQsIHRleHRSdW5PZmZzZXQgfTsKKyAgICB9CisKICAg
ICByZXR1cm4gewogICAgICAgICBzdHlsZS50ZXh0RGVjb3JhdGlvblN0eWxlKCksCiAgICAgICAg
IHN0eWxlLnZpc2l0ZWREZXBlbmRlbnRDb2xvcldpdGhDb2xvckZpbHRlcihDU1NQcm9wZXJ0eVRl
eHREZWNvcmF0aW9uQ29sb3IpLAogICAgICAgICBjZWlsVG9EZXZpY2VQaXhlbChzdHlsZS50ZXh0
RGVjb3JhdGlvblRoaWNrbmVzcygpLnJlc29sdmUoc3R5bGUuY29tcHV0ZWRGb250U2l6ZSgpLCBz
dHlsZS5tZXRyaWNzT2ZQcmltYXJ5Rm9udCgpKSwgZGVjb3JhdGlvblJlbmRlcmVyLT5kb2N1bWVu
dCgpLmRldmljZVNjYWxlRmFjdG9yKCkpLAotICAgICAgICBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0
KHsgc3R5bGUgLCBkZWZhdWx0R2FwKHN0eWxlKSwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIg
eyBsaW5lQm94LT5iYXNlbGluZVR5cGUoKSwgdGV4dEJveEhlaWdodCwgdGV4dFJ1bk9mZnNldCB9
IH0pCisgICAgICAgIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHVuZGVybGluZVBv
c2l0aW9uVmFsdWUsIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRl
ciB9KQogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGlu
ZVRleHRCb3hTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0eWxl
LmgKaW5kZXggZGJjNWQxZGRiNmI4Li5iY2RmOWE1ODk4OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL0lubGluZVRleHRCb3hTdHlsZS5oCkBAIC01NSwxNCArNTUsMTMgQEAgc3RydWN0IFdhdnlT
dHJva2VQYXJhbWV0ZXJzIHsKIFdhdnlTdHJva2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJh
bWV0ZXJzKGZsb2F0IGZvbnRTaXplKTsKIAogc3RydWN0IFRleHRVbmRlcmxpbmVQb3NpdGlvblVu
ZGVyIHsKLSAgICBGb250QmFzZWxpbmUgYmFzZWxpbmVUeXBlIHsgQWxwaGFiZXRpY0Jhc2VsaW5l
IH07CiAgICAgZmxvYXQgdGV4dFJ1bkxvZ2ljYWxIZWlnaHQgeyAwIH07CiAgICAgLy8gVGhpcyBv
ZmZzZXQgdmFsdWUgaXMgdGhlIGRpc3RhbmNlIGJldHdlZW4gdGhlIGN1cnJlbnQgdGV4dCBydW4n
cyBsb2dpY2FsIGJvdHRvbSBhbmQgdGhlIGxvd2VzdCBwb3NpdGlvbiBvZiBhbGwgdGhlIHRleHQg
cnVucwogICAgIC8vIG9uIGxpbmUgdGhhdCBiZWxvbmcgdG8gdGhlIHNhbWUgZGVjb3JhdGlvbiBi
b3guCiAgICAgZmxvYXQgdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0IHsgMCB9OwogfTsKIEds
eXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBSZW5kZXJTdHls
ZSYpOwotR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJl
bmRlclN0eWxlJiwgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIpOworR2x5cGhPdmVyZmxvdyB2
aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiwgRm9udEJhc2Vs
aW5lLCBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcik7CiBHbHlwaE92ZXJmbG93IHZpc3VhbE92
ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgSW5saW5lSXRlcmF0b3I6OkxpbmVCb3hJdGVyYXRv
ciYsIGNvbnN0IFJlbmRlclRleHQmLCBmbG9hdCB0ZXh0Qm94TG9naWNhbFRvcCwgZmxvYXQgdGV4
dEJveExvZ2ljYWxCb3R0b20pOwogCiBzdHJ1Y3QgRGVjb3JhdGluZ0JveFN0eWxlQW5kT2Zmc2V0
Rm9yVW5kZXJsaW5lIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461445</attachid>
            <date>2022-08-06 14:12:28 -0700</date>
            <delta_ts>2022-08-06 16:31:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-243621-20220806141227.patch</filename>
            <type>text/plain</type>
            <size>13056</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSAwY2IwM2Q3YzgxNjZjNDMzN2JmMjdlY2VkNWU2OWMzOTJkYTYzZDdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBT
YXQsIDYgQXVnIDIwMjIgMTQ6MTA6MzkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBbUGFpbnRpbmdd
IERvIG5vdCBjYWxsIHRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdCgpIHVubGVzcwogdGhlIHJl
c29sdmVkIHVuZGVybGluZSBwb3NpdGlvbiB2YWx1ZSBpcyBUZXh0VW5kZXJsaW5lUG9zaXRpb246
OlVuZGVyCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQzNjIxCgpS
ZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KCnRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdCgp
IHdhbGtzIHRoZSBsaW5lIGFuZCBsb29rcyBhdCBlYWNoIHRleHQgcnVuJ3MgbG9naWNhbCBib3R0
b20gdG8gZmluZCB0aGUgYm90dG9tIG1vc3QgcG9zaXRpb24uIFRoaXMgYm90dG9tIG1vc3QgdmFs
dWUgaXMgdXNlZCB0byBjb21wdXRlIHRoZSBwb3NpdGlvbiBvZiB0aGUgdW5kZXJsaW5lIHdoZW4g
InRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIiByZXNvbHZlcyB0byAidW5kZXIiLiBBbnkgb3RoZXIg
InRleHQtdW5kZXJsaW5lLXBvc2l0aW9uIiBpZ25vcmVzIHRoZSBib3R0b20gbW9zdCBwb3NpdGlv
bi4KClRoaXMgcGF0Y2ggZW5zdXJlcyB0aGF0IHdlIG9ubHkgY2FsbCB0ZXh0UnVuT2Zmc2V0RnJv
bUJvdHRvbU1vc3QoKSB3aGVuIG5lZWRlZC4KMS4gUHJlY29tcHV0ZSB0aGUgInVuZGVybGluZSBw
b3NpdGlvbiIgdmFsdWUgYW5kIGNhbGwgdGV4dFJ1bk9mZnNldEZyb21Cb3R0b21Nb3N0KCkgb25s
eSB3aGVuIGl0IHJlc29sdmVzIHRvIFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6VW5kZXIuCjIuIFBh
c3MgaW4gdGhpcyByZXNvbHZlZCB2YWx1ZSB0byBjb21wdXRlZFVuZGVybGluZU9mZnNldCgpLgoK
KiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5
L0lubGluZURpc3BsYXlDb250ZW50QnVpbGRlci5jcHA6CihXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZURpc3BsYXlDb250ZW50QnVpbGRlcjo6Y29sbGVjdElua092ZXJmbG93Rm9yVGV4dERlY29yYXRp
b25zKToKKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwOgooV2Vi
Q29yZTo6cmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbik6CihXZWJDb3JlOjpjb21wdXRlZFVuZGVy
bGluZU9mZnNldCk6CihXZWJDb3JlOjp2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKToKKFdl
YkNvcmU6OnVuZGVybGluZU9mZnNldEZvclRleHRCb3hQYWludGluZyk6CihXZWJDb3JlOjpjb21w
dXRlVW5kZXJsaW5lT2Zmc2V0KTogRGVsZXRlZC4KKiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9Jbmxp
bmVUZXh0Qm94U3R5bGUuaDoKLS0tCiAuLi4vZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1
aWxkZXIuY3BwICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJveFN0
eWxlLmNwcCAgIHwgODQgKysrKysrKysrKystLS0tLS0tLQogU291cmNlL1dlYkNvcmUvc3R5bGUv
SW5saW5lVGV4dEJveFN0eWxlLmggICAgIHwgIDMgKy0KIDMgZmlsZXMgY2hhbmdlZCwgNTMgaW5z
ZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29u
dGVudEJ1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCmluZGV4IDA1
M2U2YmUzZGQ3MS4uODYxODFjNWFiZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9kaXNwbGF5L0lubGluZURpc3BsYXlDb250ZW50
QnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvZGlzcGxheS9JbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXIuY3BwCkBAIC04ODAs
NyArODgwLDcgQEAgdm9pZCBJbmxpbmVEaXNwbGF5Q29udGVudEJ1aWxkZXI6OmNvbGxlY3RJbmtP
dmVyZmxvd0ZvclRleHREZWNvcmF0aW9ucyhEaXNwbGF5Qm8KICAgICAgICAgICAgIGlmICghbG9n
aWNhbEJvdHRvbUZvclRleHREZWNvcmF0aW9uKQogICAgICAgICAgICAgICAgIGxvZ2ljYWxCb3R0
b21Gb3JUZXh0RGVjb3JhdGlvbiA9IGxvZ2ljYWxCb3R0b21Gb3JUZXh0RGVjb3JhdGlvbkNvbnRl
bnQoYm94ZXMsIGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKTsKICAgICAgICAgICAgIGF1dG8gdGV4
dFJ1bkxvZ2ljYWxPZmZzZXRGcm9tTGluZUJvdHRvbSA9ICpsb2dpY2FsQm90dG9tRm9yVGV4dERl
Y29yYXRpb24gLSAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUgPyBkaXNwbGF5Qm94LmJvdHRvbSgp
IDogZGlzcGxheUJveC5yaWdodCgpKTsKLSAgICAgICAgICAgIHJldHVybiB2aXN1YWxPdmVyZmxv
d0ZvckRlY29yYXRpb25zKHN0eWxlLCB7IGRpc3BsYXlMaW5lLmJhc2VsaW5lVHlwZSgpLCBkaXNw
bGF5Qm94LmhlaWdodCgpLCB0ZXh0UnVuTG9naWNhbE9mZnNldEZyb21MaW5lQm90dG9tIH0pOwor
ICAgICAgICAgICAgcmV0dXJuIHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoc3R5bGUsIGRp
c3BsYXlMaW5lLmJhc2VsaW5lVHlwZSgpLCB7IGRpc3BsYXlCb3guaGVpZ2h0KCksIHRleHRSdW5M
b2dpY2FsT2Zmc2V0RnJvbUxpbmVCb3R0b20gfSk7CiAgICAgICAgIH0oKTsKIAogICAgICAgICBp
ZiAoIWRlY29yYXRpb25PdmVyZmxvdy5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3BwCmluZGV4IGI2YzNiMjQ2NGRlMy4uMGY5NzY0ZjE0MjQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL0lubGluZVRleHRCb3hTdHlsZS5jcHAKQEAgLTM5
LDYgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgVW5kZXJsaW5lT2Zmc2V0
QXJndW1lbnRzIHsKICAgICBjb25zdCBSZW5kZXJTdHlsZSYgbGluZVN0eWxlOworICAgIFRleHRV
bmRlcmxpbmVQb3NpdGlvbiByZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uIHsgVGV4dFVuZGVybGlu
ZVBvc2l0aW9uOjpBdXRvIH07CiAgICAgZmxvYXQgZGVmYXVsdEdhcCB7IDAgfTsKICAgICBzdGQ6
Om9wdGlvbmFsPFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyPiB0ZXh0VW5kZXJsaW5lUG9zaXRp
b25VbmRlciB7IH07CiB9OwpAQCAtMTMwLDExICsxMzEsMjIgQEAgc3RhdGljIGlubGluZSBmbG9h
dCBkZWZhdWx0R2FwKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSkKICAgICByZXR1cm4gc3R5bGUu
Y29tcHV0ZWRGb250U2l6ZSgpIC8gdGV4dERlY29yYXRpb25CYXNlRm9udFNpemU7CiB9CiAKLXN0
YXRpYyBmbG9hdCBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KGNvbnN0IFVuZGVybGluZU9mZnNldEFy
Z3VtZW50cyYgY29udGV4dCkKK3N0YXRpYyBpbmxpbmUgVGV4dFVuZGVybGluZVBvc2l0aW9uIHJl
c29sdmVkVW5kZXJsaW5lUG9zaXRpb24oY29uc3QgUmVuZGVyU3R5bGUmIGRlY29yYXRpbmdCb3hT
dHlsZSwgc3RkOjpvcHRpb25hbDxGb250QmFzZWxpbmU+IGJhc2VsaW5lVHlwZSkKK3sKKyAgICBh
dXRvIHVuZGVybGluZVBvc2l0aW9uID0gZGVjb3JhdGluZ0JveFN0eWxlLnRleHRVbmRlcmxpbmVQ
b3NpdGlvbigpOworICAgIGlmICh1bmRlcmxpbmVQb3NpdGlvbiA9PSBUZXh0VW5kZXJsaW5lUG9z
aXRpb246OkF1dG8gJiYgZGVjb3JhdGluZ0JveFN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQoKS5p
c0F1dG8oKSkgeworICAgICAgICBpZiAoYmFzZWxpbmVUeXBlKQorICAgICAgICAgICAgcmV0dXJu
ICpiYXNlbGluZVR5cGUgPT0gSWRlb2dyYXBoaWNCYXNlbGluZSA/IFRleHRVbmRlcmxpbmVQb3Np
dGlvbjo6VW5kZXIgOiBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG87CisgICAgICAgIHJldHVy
biBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG87CisgICAgfQorICAgIHJldHVybiB1bmRlcmxp
bmVQb3NpdGlvbjsKK30KKworc3RhdGljIGZsb2F0IGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KGNv
bnN0IFVuZGVybGluZU9mZnNldEFyZ3VtZW50cyYgY29udGV4dCkKIHsKICAgICAvLyBUaGlzIHJl
cHJlc2VudHMgdGhlIGdhcCBiZXR3ZWVuIHRoZSBiYXNlbGluZSBhbmQgdGhlIGNsb3Nlc3QgZWRn
ZSBvZiB0aGUgdW5kZXJsaW5lLgotICAgIGZsb2F0IGdhcCA9IHN0ZDo6bWF4PGludD4oMSwgc3Rk
OjpjZWlsKGNvbnRleHQuZGVmYXVsdEdhcCAvIDIuMGYpKTsKLSAgICAKKyAgICBhdXRvIGdhcCA9
IHN0ZDo6bWF4KDEuZiwgc3RkOjpjZWlsKGNvbnRleHQuZGVmYXVsdEdhcCAvIDIuZikpOworCiAg
ICAgLy8gRklYTUU6IFRoZSBjb2RlIGZvciB2aXN1YWwgb3ZlcmZsb3cgZGV0ZWN0aW9uIHBhc3Nl
cyBpbiBhIG51bGwgaW5saW5lIHRleHQgYm94LiBUaGlzIG1lYW5zIGl0IGlzIG5vdwogICAgIC8v
IGJyb2tlbiBmb3IgdGhlIGNhc2Ugd2hlcmUgYXV0byBuZWVkcyB0byBiZWhhdmUgbGlrZSAidW5k
ZXIiLgogICAgIApAQCAtMTQyLDM3ICsxNTQsMzEgQEAgc3RhdGljIGZsb2F0IGNvbXB1dGVVbmRl
cmxpbmVPZmZzZXQoY29uc3QgVW5kZXJsaW5lT2Zmc2V0QXJndW1lbnRzJiBjb250ZXh0KQogICAg
IC8vIHNjcmlwdHMgd2hlcmUgaXQgd291bGQgbm90IGJlIGFwcHJvcHJpYXRlIChlLmcuLCBpZGVv
Z3JhcGhzKS4KICAgICAvLyBTdHJpY3RseSBzcGVha2luZyB0aGlzIGNhbiBvY2N1ciB3aGVuZXZl
ciB0aGUgbGluZSBjb250YWlucyBpZGVvZ3JhcGhzCiAgICAgLy8gZXZlbiBpZiBpdCBpcyBob3Jp
em9udGFsLCBidXQgZGV0ZWN0aW5nIHRoaXMgaGFzIHBlcmZvcm1hbmNlIGltcGxpY2F0aW9ucy4g
Rm9yIG5vdyB3ZSBvbmx5IHdvcmsgd2l0aAotICAgIC8vIHZlcnRpY2FsIHRleHQsIHNpbmNlIHdl
IGFscmVhZHkgZGV0ZXJtaW5lZCB0aGUgYmFzZWxpbmUgdHlwZSB0byBiZSBpZGVvZ3JhcGhpYyBp
biB0aGF0Ci0gICAgLy8gY2FzZS4KLSAgICBhdXRvIHVuZGVybGluZVBvc2l0aW9uID0gY29udGV4
dC5saW5lU3R5bGUudGV4dFVuZGVybGluZVBvc2l0aW9uKCk7CisgICAgLy8gdmVydGljYWwgdGV4
dCwgc2luY2Ugd2UgYWxyZWFkeSBkZXRlcm1pbmVkIHRoZSBiYXNlbGluZSB0eXBlIHRvIGJlIGlk
ZW9ncmFwaGljIGluIHRoYXQgY2FzZS4KICAgICBhdXRvIHVuZGVybGluZU9mZnNldCA9IGNvbnRl
eHQubGluZVN0eWxlLnRleHRVbmRlcmxpbmVPZmZzZXQoKTsKICAgICBhdXRvJiBmb250TWV0cmlj
cyA9IGNvbnRleHQubGluZVN0eWxlLm1ldHJpY3NPZlByaW1hcnlGb250KCk7CiAKLSAgICBhdXRv
IHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24gPSB1bmRlcmxpbmVQb3NpdGlvbjsKLSAgICBpZiAo
cmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbiA9PSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG8g
JiYgdW5kZXJsaW5lT2Zmc2V0LmlzQXV0bygpKSB7Ci0gICAgICAgIGlmIChjb250ZXh0LnRleHRV
bmRlcmxpbmVQb3NpdGlvblVuZGVyKQotICAgICAgICAgICAgcmVzb2x2ZWRVbmRlcmxpbmVQb3Np
dGlvbiA9IGNvbnRleHQudGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXItPmJhc2VsaW5lVHlwZSA9
PSBJZGVvZ3JhcGhpY0Jhc2VsaW5lID8gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlciA6IFRl
eHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVz
b2x2ZWRVbmRlcmxpbmVQb3NpdGlvbiA9IFRleHRVbmRlcmxpbmVQb3NpdGlvbjo6QXV0bzsKLSAg
ICB9Ci0KLSAgICBzd2l0Y2ggKHJlc29sdmVkVW5kZXJsaW5lUG9zaXRpb24pIHsKKyAgICBmbG9h
dCBjb21wdXRlZFVuZGVybGluZU9mZnNldCA9IGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZ2FwOwor
ICAgIHN3aXRjaCAoY29udGV4dC5yZXNvbHZlZFVuZGVybGluZVBvc2l0aW9uKSB7CiAgICAgY2Fz
ZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OkF1dG86Ci0gICAgICAgIGlmICh1bmRlcmxpbmVPZmZz
ZXQuaXNBdXRvKCkpCi0gICAgICAgICAgICByZXR1cm4gZm9udE1ldHJpY3MuYXNjZW50KCkgKyBn
YXA7Ci0gICAgICAgIHJldHVybiBmb250TWV0cmljcy5hc2NlbnQoKSArIHVuZGVybGluZU9mZnNl
dC5sZW5ndGhWYWx1ZSgpOworICAgICAgICBjb21wdXRlZFVuZGVybGluZU9mZnNldCA9IGZvbnRN
ZXRyaWNzLmFzY2VudCgpICsgdW5kZXJsaW5lT2Zmc2V0Lmxlbmd0aE9yKGdhcCk7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgVGV4dFVuZGVybGluZVBvc2l0aW9uOjpGcm9tRm9udDoKLSAgICAg
ICAgcmV0dXJuIGZvbnRNZXRyaWNzLmFzY2VudCgpICsgZm9udE1ldHJpY3MudW5kZXJsaW5lUG9z
aXRpb24oKSArIHVuZGVybGluZU9mZnNldC5sZW5ndGhPcigwKTsKKyAgICAgICAgY29tcHV0ZWRV
bmRlcmxpbmVPZmZzZXQgPSBmb250TWV0cmljcy5hc2NlbnQoKSArIGZvbnRNZXRyaWNzLnVuZGVy
bGluZVBvc2l0aW9uKCkgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoMC5mKTsKKyAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyOiB7CiAgICAgICAg
IEFTU0VSVChjb250ZXh0LnRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyKTsKICAgICAgICAgLy8g
UG9zaXRpb24gdW5kZXJsaW5lIHJlbGF0aXZlIHRvIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgbG93
ZXN0IGVsZW1lbnQncyBjb250ZW50IGJveC4KLSAgICAgICAgYXV0byBkZXNpcmVkT2Zmc2V0ID0g
Y29udGV4dC50ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci0+dGV4dFJ1bkxvZ2ljYWxIZWlnaHQg
KyBnYXAgKyBzdGQ6Om1heChjb250ZXh0LnRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyLT50ZXh0
UnVuT2Zmc2V0RnJvbUJvdHRvbU1vc3QsIDAuMGYpICsgdW5kZXJsaW5lT2Zmc2V0Lmxlbmd0aE9y
KDApOwotICAgICAgICByZXR1cm4gc3RkOjptYXg8ZmxvYXQ+KGRlc2lyZWRPZmZzZXQsIGZvbnRN
ZXRyaWNzLmFzY2VudCgpKTsKKyAgICAgICAgYXV0byBkZXNpcmVkT2Zmc2V0ID0gY29udGV4dC50
ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlci0+dGV4dFJ1bkxvZ2ljYWxIZWlnaHQgKyBnYXAgKyBz
dGQ6Om1heChjb250ZXh0LnRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyLT50ZXh0UnVuT2Zmc2V0
RnJvbUJvdHRvbU1vc3QsIDAuZikgKyB1bmRlcmxpbmVPZmZzZXQubGVuZ3RoT3IoMC5mKTsKKyAg
ICAgICAgY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQgPSBzdGQ6Om1heDxmbG9hdD4oZGVzaXJlZE9m
ZnNldCwgZm9udE1ldHJpY3MuYXNjZW50KCkpOworICAgICAgICBicmVhazsKICAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOwog
ICAgIH0KIAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBmb250TWV0cmlj
cy5hc2NlbnQoKSArIGdhcDsKKyAgICByZXR1cm4gY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQ7CiB9
CiAKIFdhdnlTdHJva2VQYXJhbWV0ZXJzIGdldFdhdnlTdHJva2VQYXJhbWV0ZXJzKGZsb2F0IGZv
bnRTaXplKQpAQCAtMjU0LDE2ICsyNjAsMjQgQEAgc3RhdGljIEdseXBoT3ZlcmZsb3cgY29tcHV0
ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBsaW4KIEds
eXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBJbmxpbmVJdGVy
YXRvcjo6TGluZUJveEl0ZXJhdG9yJiBsaW5lQm94LCBjb25zdCBSZW5kZXJUZXh0JiByZW5kZXJl
ciwgZmxvYXQgdGV4dEJveExvZ2ljYWxUb3AsIGZsb2F0IHRleHRCb3hMb2dpY2FsQm90dG9tKQog
ewogICAgIGF1dG8mIHN0eWxlID0gbGluZUJveC0+aXNGaXJzdCgpID8gcmVuZGVyZXIuZmlyc3RM
aW5lU3R5bGUoKSA6IHJlbmRlcmVyLnN0eWxlKCk7CisgICAgYXV0byB1bmRlcmxpbmVQb3NpdGlv
blZhbHVlID0gcmVzb2x2ZWRVbmRlcmxpbmVQb3NpdGlvbihzdHlsZSwgbGluZUJveC0+YmFzZWxp
bmVUeXBlKCkpOworICAgIGF1dG8gdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgPSBzdGQ6Om9w
dGlvbmFsPFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyPiB7IH07CisKKyAgICBpZiAodW5kZXJs
aW5lUG9zaXRpb25WYWx1ZSA9PSBUZXh0VW5kZXJsaW5lUG9zaXRpb246OlVuZGVyKSB7CisgICAg
ICAgIGF1dG8gdGV4dFJ1bk9mZnNldCA9IHRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdChsaW5l
Qm94LCByZW5kZXJlciwgdGV4dEJveExvZ2ljYWxUb3AsIHRleHRCb3hMb2dpY2FsQm90dG9tKTsK
KyAgICAgICAgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgPSBUZXh0VW5kZXJsaW5lUG9zaXRp
b25VbmRlciB7IHRleHRCb3hMb2dpY2FsQm90dG9tIC0gdGV4dEJveExvZ2ljYWxUb3AsIHRleHRS
dW5PZmZzZXQgfTsKKyAgICB9CisKICAgICBhdXRvIHVuZGVybGluZU9mZnNldCA9IHN0eWxlLnRl
eHREZWNvcmF0aW9uc0luRWZmZWN0KCkuY29udGFpbnMoVGV4dERlY29yYXRpb25MaW5lOjpVbmRl
cmxpbmUpCi0gICAgICAgID8gc3RkOjptYWtlX29wdGlvbmFsKGNvbXB1dGVVbmRlcmxpbmVPZmZz
ZXQoeyBzdHlsZSwgZGVmYXVsdEdhcChzdHlsZSksIFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVy
IHsgbGluZUJveC0+YmFzZWxpbmVUeXBlKCksIHRleHRCb3hMb2dpY2FsQm90dG9tIC0gdGV4dEJv
eExvZ2ljYWxUb3AsIHRleHRSdW5PZmZzZXRGcm9tQm90dG9tTW9zdChsaW5lQm94LCByZW5kZXJl
ciwgdGV4dEJveExvZ2ljYWxUb3AsIHRleHRCb3hMb2dpY2FsQm90dG9tKSB9IH0pKQorICAgICAg
ICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlZFVuZGVybGluZU9mZnNldCh7IHN0eWxlLCB1
bmRlcmxpbmVQb3NpdGlvblZhbHVlLCBkZWZhdWx0R2FwKHN0eWxlKSwgdGV4dFVuZGVybGluZVBv
c2l0aW9uVW5kZXIgfSkpCiAgICAgICAgIDogc3RkOjpudWxsb3B0OwogICAgIHJldHVybiBjb21w
dXRlZFZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoc3R5bGUsIHVuZGVybGluZU9mZnNldCk7
CiB9CiAKLUdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25zdCBS
ZW5kZXJTdHlsZSYgc3R5bGUsIFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHRleHRVbmRlcmxp
bmVQb3NpdGlvblVuZGVyKQorR2x5cGhPdmVyZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRp
b25zKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgRm9udEJhc2VsaW5lIGJhc2VsaW5lVHlwZSwg
VGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIpCiB7
CiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBzdHlsZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6VW5kZXJsaW5lKQotICAgICAgICA/IHN0
ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIGRlZmF1bHRH
YXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9KSkKKyAgICAgICAgPyBzdGQ6
Om1ha2Vfb3B0aW9uYWwoY29tcHV0ZWRVbmRlcmxpbmVPZmZzZXQoeyBzdHlsZSwgcmVzb2x2ZWRV
bmRlcmxpbmVQb3NpdGlvbihzdHlsZSwgYmFzZWxpbmVUeXBlKSwgZGVmYXVsdEdhcChzdHlsZSks
IHRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIH0pKQogICAgICAgICA6IHN0ZDo6bnVsbG9wdDsK
ICAgICByZXR1cm4gY29tcHV0ZWRWaXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKHN0eWxlLCB1
bmRlcmxpbmVPZmZzZXQpOwogfQpAQCAtMjcxLDE5ICsyODUsMjMgQEAgR2x5cGhPdmVyZmxvdyB2
aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJiBzdHlsZSwgVGV4
dFVuZGVybGkKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dGb3JEZWNvcmF0aW9ucyhjb25z
dCBSZW5kZXJTdHlsZSYgc3R5bGUpCiB7CiAgICAgYXV0byB1bmRlcmxpbmVPZmZzZXQgPSBzdHls
ZS50ZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCgpLmNvbnRhaW5zKFRleHREZWNvcmF0aW9uTGluZTo6
VW5kZXJsaW5lKQotICAgICAgICA/IHN0ZDo6bWFrZV9vcHRpb25hbChjb21wdXRlVW5kZXJsaW5l
T2Zmc2V0KHsgc3R5bGUsIGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSkpCisgICAgICAgID8gc3Rk
OjptYWtlX29wdGlvbmFsKGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHJlc29sdmVk
VW5kZXJsaW5lUG9zaXRpb24oc3R5bGUsIHsgfSksIGRlZmF1bHRHYXAoc3R5bGUpLCB7IH0gfSkp
CiAgICAgICAgIDogc3RkOjpudWxsb3B0OwogICAgIHJldHVybiBjb21wdXRlZFZpc3VhbE92ZXJm
bG93Rm9yRGVjb3JhdGlvbnMoc3R5bGUsIHVuZGVybGluZU9mZnNldCk7CiB9CiAKIGZsb2F0IHVu
ZGVybGluZU9mZnNldEZvclRleHRCb3hQYWludGluZyhjb25zdCBSZW5kZXJTdHlsZSYgc3R5bGUs
IGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3ImIHRleHRCb3gpCiB7Ci0gICAg
YXV0byB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciA9IFRleHRVbmRlcmxpbmVQb3NpdGlvblVu
ZGVyIHsKLSAgICAgICAgdGV4dEJveC0+bGluZUJveCgpLT5iYXNlbGluZVR5cGUoKSwKLSAgICAg
ICAgdGV4dEJveC0+bG9naWNhbEJvdHRvbSgpIC0gdGV4dEJveC0+bG9naWNhbFRvcCgpLAotICAg
ICAgICB0ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1vc3QodGV4dEJveC0+bGluZUJveCgpLCB0ZXh0
Qm94LT5yZW5kZXJlcigpLCB0ZXh0Qm94LT5sb2dpY2FsVG9wKCksIHRleHRCb3gtPmxvZ2ljYWxC
b3R0b20oKSkKLSAgICB9OwotICAgIHJldHVybiBjb21wdXRlVW5kZXJsaW5lT2Zmc2V0KHsgc3R5
bGUgLCBkZWZhdWx0R2FwKHN0eWxlKSwgdGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgfSk7Cisg
ICAgYXV0byBsaW5lQm94ID0gdGV4dEJveC0+bGluZUJveCgpOworICAgIGF1dG8gdGV4dFVuZGVy
bGluZVBvc2l0aW9uVW5kZXIgPSBzdGQ6Om9wdGlvbmFsPFRleHRVbmRlcmxpbmVQb3NpdGlvblVu
ZGVyPiB7IH07CisgICAgYXV0byB1bmRlcmxpbmVQb3NpdGlvblZhbHVlID0gcmVzb2x2ZWRVbmRl
cmxpbmVQb3NpdGlvbihzdHlsZSwgbGluZUJveC0+YmFzZWxpbmVUeXBlKCkpOworCisgICAgaWYg
KHVuZGVybGluZVBvc2l0aW9uVmFsdWUgPT0gVGV4dFVuZGVybGluZVBvc2l0aW9uOjpVbmRlcikg
eworICAgICAgICBhdXRvIHRleHRSdW5PZmZzZXQgPSB0ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1v
c3QobGluZUJveCwgdGV4dEJveC0+cmVuZGVyZXIoKSwgdGV4dEJveC0+bG9naWNhbFRvcCgpLCB0
ZXh0Qm94LT5sb2dpY2FsQm90dG9tKCkpOworICAgICAgICB0ZXh0VW5kZXJsaW5lUG9zaXRpb25V
bmRlciA9IFRleHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyIHsgdGV4dEJveC0+bG9naWNhbEJvdHRv
bSgpIC0gdGV4dEJveC0+bG9naWNhbFRvcCgpLCB0ZXh0UnVuT2Zmc2V0IH07CisgICAgfQorCisg
ICAgcmV0dXJuIGNvbXB1dGVkVW5kZXJsaW5lT2Zmc2V0KHsgc3R5bGUsIHVuZGVybGluZVBvc2l0
aW9uVmFsdWUsIGRlZmF1bHRHYXAoc3R5bGUpLCB0ZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlciB9
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5saW5lVGV4dEJv
eFN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9JbmxpbmVUZXh0Qm94U3R5bGUuaAppbmRl
eCA4YjA3YzVhOTI5YmEuLjM4NDMyMDlkNjI2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3R5bGUvSW5saW5lVGV4dEJveFN0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvSW5s
aW5lVGV4dEJveFN0eWxlLmgKQEAgLTU1LDE0ICs1NSwxMyBAQCBzdHJ1Y3QgV2F2eVN0cm9rZVBh
cmFtZXRlcnMgewogV2F2eVN0cm9rZVBhcmFtZXRlcnMgZ2V0V2F2eVN0cm9rZVBhcmFtZXRlcnMo
ZmxvYXQgZm9udFNpemUpOwogCiBzdHJ1Y3QgVGV4dFVuZGVybGluZVBvc2l0aW9uVW5kZXIgewot
ICAgIEZvbnRCYXNlbGluZSBiYXNlbGluZVR5cGUgeyBBbHBoYWJldGljQmFzZWxpbmUgfTsKICAg
ICBmbG9hdCB0ZXh0UnVuTG9naWNhbEhlaWdodCB7IDAgfTsKICAgICAvLyBUaGlzIG9mZnNldCB2
YWx1ZSBpcyB0aGUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgY3VycmVudCB0ZXh0IHJ1bidzIGxvZ2lj
YWwgYm90dG9tIGFuZCB0aGUgbG93ZXN0IHBvc2l0aW9uIG9mIGFsbCB0aGUgdGV4dCBydW5zCiAg
ICAgLy8gb24gbGluZSB0aGF0IGJlbG9uZyB0byB0aGUgc2FtZSBkZWNvcmF0aW9uIGJveC4KICAg
ICBmbG9hdCB0ZXh0UnVuT2Zmc2V0RnJvbUJvdHRvbU1vc3QgeyAwIH07CiB9OwogR2x5cGhPdmVy
ZmxvdyB2aXN1YWxPdmVyZmxvd0ZvckRlY29yYXRpb25zKGNvbnN0IFJlbmRlclN0eWxlJik7Ci1H
bHlwaE92ZXJmbG93IHZpc3VhbE92ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5
bGUmLCBUZXh0VW5kZXJsaW5lUG9zaXRpb25VbmRlcik7CitHbHlwaE92ZXJmbG93IHZpc3VhbE92
ZXJmbG93Rm9yRGVjb3JhdGlvbnMoY29uc3QgUmVuZGVyU3R5bGUmLCBGb250QmFzZWxpbmUsIFRl
eHRVbmRlcmxpbmVQb3NpdGlvblVuZGVyKTsKIEdseXBoT3ZlcmZsb3cgdmlzdWFsT3ZlcmZsb3dG
b3JEZWNvcmF0aW9ucyhjb25zdCBJbmxpbmVJdGVyYXRvcjo6TGluZUJveEl0ZXJhdG9yJiwgY29u
c3QgUmVuZGVyVGV4dCYsIGZsb2F0IHRleHRCb3hMb2dpY2FsVG9wLCBmbG9hdCB0ZXh0Qm94TG9n
aWNhbEJvdHRvbSk7CiAKIGZsb2F0IHVuZGVybGluZU9mZnNldEZvclRleHRCb3hQYWludGluZyhj
b25zdCBSZW5kZXJTdHlsZSYsIGNvbnN0IElubGluZUl0ZXJhdG9yOjpUZXh0Qm94SXRlcmF0b3Im
KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>