<?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>246962</bug_id>
          
          <creation_ts>2022-10-24 14:26:15 -0700</creation_ts>
          <short_desc>[LFC][IFC] Decouple layout bounds and ascent/descent on inline level boxes</short_desc>
          <delta_ts>2022-10-25 15:25:19 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1907878</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-10-24 14:26:15 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1907882</commentid>
    <comment_count>1</comment_count>
      <attachid>463202</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-24 14:29:09 -0700</bug_when>
    <thetext>Created attachment 463202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908117</commentid>
    <comment_count>2</comment_count>
      <attachid>463219</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-10-25 09:03:47 -0700</bug_when>
    <thetext>Created attachment 463219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908268</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-10-25 15:24:01 -0700</bug_when>
    <thetext>Committed 255987@main (3a5bb57eac7c): &lt;https://commits.webkit.org/255987@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 463219.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1908269</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-10-25 15:25:19 -0700</bug_when>
    <thetext>&lt;rdar://problem/101564176&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463202</attachid>
            <date>2022-10-24 14:29:09 -0700</date>
            <delta_ts>2022-10-25 09:03:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246962-20221024142908.patch</filename>
            <type>text/plain</type>
            <size>13125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA4MDRmYmQ4MTEwNzhjNzI0OGEzNjI4MGVhMzlhZDY1NzcwNmFiMDNjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBN
b24sIDI0IE9jdCAyMDIyIDE0OjI2OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBEZWNvdXBsZSBsYXlvdXQgYm91bmRzIGFuZCBhc2NlbnQvZGVzY2VudCBvbgogaW5saW5lIGxl
dmVsIGJveGVzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY5NjIK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3Ig
c3VwcG9ydGluZyBsaW5lLWJveC1jb250YWluLCB3aGVyZSB0aGUgbGF5b3V0IGJvdW5kcyAhPSBh
c2NlbnQvZGVzY2VudC4KCkludHJvZHVjZSBzZXRBc2NlbnRBbmREZXNjZW50IHRvIHNldCB0aGUg
YXNjZW50L2Rlc2NlbnQuIE5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGhlcmUuCgoqIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWls
ZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OnNldExheW91dEJvdW5k
cyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpzZXRBc2NlbnRBbmRE
ZXNjZW50IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVj
dElubGluZUxldmVsQm94ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWRq
dXN0SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZSk6CihXZWJDb3JlOjpMYXlvdXQ6Okxp
bmVCb3hCdWlsZGVyOjpzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJveEJ1aWxkZXIuaDoKLS0tCiAuLi4vaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNw
cCAgICAgICAgICAgfCA4NyArKysrKysrKystLS0tLS0tLS0tCiAuLi4vaW5saW5lL0lubGluZUxp
bmVCb3hCdWlsZGVyLmggICAgICAgICAgICAgfCAgNCArLQogMiBmaWxlcyBjaGFuZ2VkLCA0NCBp
bnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggMzZkYjczZjNjNjk4Li41N2I2OWYxYmY4NDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAgLTIwOSw0
MSArMjA5LDM3IEBAIHN0YXRpYyBMYXlvdXRCb3VuZHNNZXRyaWNzIGxheW91dEJvdW5kc1ByaW1h
cnlNZXRyaWNzRm9ySW5saW5lQm94KGNvbnN0IElubGluZUxlCiAgICAgcmV0dXJuIHsgYXNjZW50
LCBkZXNjZW50LCBsaW5lU3BhY2luZywgaW5saW5lQm94LmlzUHJlZmVycmVkTGluZUhlaWdodEZv
bnRNZXRyaWNzQmFzZWQoKSA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6bWFrZV9vcHRpb25hbChpbmxp
bmVCb3gucHJlZmVycmVkTGluZUhlaWdodCgpKSB9OwogfQogCi12b2lkIExpbmVCb3hCdWlsZGVy
OjpzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxC
b3gsIGNvbnN0IExheW91dEJvdW5kc01ldHJpY3MmIGxheW91dEJvdW5kc01ldHJpY3MsIEJlaGF2
ZXNBc1RleHQgYmVoYXZlc0FzVGV4dCkgY29uc3QKK3ZvaWQgTGluZUJveEJ1aWxkZXI6OnNldExh
eW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gsIGNvbnN0IExheW91dEJv
dW5kc01ldHJpY3MmIGxheW91dEJvdW5kc01ldHJpY3MpIGNvbnN0CiB7Ci0gICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzSW5saW5lQm94KCkgfHwgaW5saW5lTGV2ZWxCb3guaXNMaW5lQnJlYWtCb3go
KSB8fCBiZWhhdmVzQXNUZXh0ID09IEJlaGF2ZXNBc1RleHQ6OlllcykgewotICAgICAgICBhdXRv
IGxvZ2ljYWxIZWlnaHQgPSBsYXlvdXRCb3VuZHNNZXRyaWNzLmFzY2VudCArIGxheW91dEJvdW5k
c01ldHJpY3MuZGVzY2VudDsKLSAgICAgICAgYXV0byBoYWxmTGVhZGluZyA9IElubGluZUxheW91
dFVuaXQgeyB9OwotICAgICAgICBpZiAobGF5b3V0Qm91bmRzTWV0cmljcy5wcmVmZXJyZWRMaW5l
SGVpZ2h0KSB7Ci0gICAgICAgICAgICAvLyBJZiBsaW5lLWhlaWdodCBjb21wdXRlcyB0byBub3Jt
YWwgYW5kIGVpdGhlciB0ZXh0LWVkZ2UgaXMgbGVhZGluZyBvciB0aGlzIGlzIHRoZSByb290IGlu
bGluZSBib3gsCi0gICAgICAgICAgICAvLyB0aGUgZm9udOKAmXMgbGluZSBnYXAgbWV0cmljIG1h
eSBhbHNvIGJlIGluY29ycG9yYXRlZCBpbnRvIEEgYW5kIEQgYnkgYWRkaW5nIGhhbGYgdG8gZWFj
aCBzaWRlIGFzIGhhbGYtbGVhZGluZy4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9y
Zy9UUi9jc3MtaW5saW5lLTMvI2lubGluZS1oZWlnaHQKLSAgICAgICAgICAgIC8vIFNpbmNlIHRl
eHQtZWRnZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgdGhlIGluaXRpYWwgdmFsdWUgaXMgbGVh
ZGluZywgd2Ugc2hvdWxkIGp1c3QgYXBwbHkgaXQgdG8KLSAgICAgICAgICAgIC8vIGFsbCBpbmxp
bmUgYm94ZXMuCi0gICAgICAgICAgICBoYWxmTGVhZGluZyA9ICgqbGF5b3V0Qm91bmRzTWV0cmlj
cy5wcmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgLy8gUHJlZmVycmVkIGxpbmUgaGVpZ2h0IGlzIHB1cmVseSBmb250
IG1ldHJpY3MgYmFzZWQgKGkuZSBnbHlwaHMgc3RyZXRjaCB0aGUgbGluZSkuCi0gICAgICAgICAg
ICBoYWxmTGVhZGluZyA9IChsYXlvdXRCb3VuZHNNZXRyaWNzLmxpbmVTcGFjaW5nIC0gbG9naWNh
bEhlaWdodCkgLyAyOwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIG5lZWQgZmxvb3IvY2VpbCB0
byBtYXRjaCBsZWdhY3kgbGF5b3V0IGludGVncmFsIHBvc2l0aW9uaW5nLgotICAgICAgICBpbmxp
bmVMZXZlbEJveC5zZXRBc2NlbnQoZmxvb3JmKGxheW91dEJvdW5kc01ldHJpY3MuYXNjZW50KSk7
Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldERlc2NlbnQoY2VpbGYobGF5b3V0Qm91bmRzTWV0
cmljcy5kZXNjZW50KSk7Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExvZ2ljYWxIZWlnaHQo
bG9naWNhbEhlaWdodCk7Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExheW91dEJvdW5kcyh7
IGZsb29yZihsYXlvdXRCb3VuZHNNZXRyaWNzLmFzY2VudCArIGhhbGZMZWFkaW5nKSwgY2VpbGYo
bGF5b3V0Qm91bmRzTWV0cmljcy5kZXNjZW50ICsgaGFsZkxlYWRpbmcpIH0pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0F0b21pY0lubGluZUxldmVs
Qm94KCkpIHsKLSAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0QXNjZW50KGxheW91dEJvdW5kc01l
dHJpY3MuYXNjZW50KTsKLSAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0TGF5b3V0Qm91bmRzKHsg
bGF5b3V0Qm91bmRzTWV0cmljcy5hc2NlbnQsIGxheW91dEJvdW5kc01ldHJpY3MuZGVzY2VudCB9
KTsKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IGxheW91dEJvdW5k
c01ldHJpY3MuYXNjZW50ICsgbGF5b3V0Qm91bmRzTWV0cmljcy5kZXNjZW50OworICAgIGF1dG8g
aGFsZkxlYWRpbmcgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKKyAgICBpZiAobGF5b3V0Qm91bmRz
TWV0cmljcy5wcmVmZXJyZWRMaW5lSGVpZ2h0KSB7CisgICAgICAgIC8vIElmIGxpbmUtaGVpZ2h0
IGNvbXB1dGVzIHRvIG5vcm1hbCBhbmQgZWl0aGVyIHRleHQtZWRnZSBpcyBsZWFkaW5nIG9yIHRo
aXMgaXMgdGhlIHJvb3QgaW5saW5lIGJveCwKKyAgICAgICAgLy8gdGhlIGZvbnTigJlzIGxpbmUg
Z2FwIG1ldHJpYyBtYXkgYWxzbyBiZSBpbmNvcnBvcmF0ZWQgaW50byBBIGFuZCBEIGJ5IGFkZGlu
ZyBoYWxmIHRvIGVhY2ggc2lkZSBhcyBoYWxmLWxlYWRpbmcuCisgICAgICAgIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtaW5saW5lLTMvI2lubGluZS1oZWlnaHQKKyAgICAgICAgLy8gU2lu
Y2UgdGV4dC1lZGdlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBp
cyBsZWFkaW5nLCB3ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bworICAgICAgICAvLyBhbGwgaW5s
aW5lIGJveGVzLgorICAgICAgICBoYWxmTGVhZGluZyA9ICgqbGF5b3V0Qm91bmRzTWV0cmljcy5w
cmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIFByZWZlcnJlZCBsaW5lIGhlaWdodCBpcyBwdXJlbHkgZm9udCBtZXRyaWNzIGJh
c2VkIChpLmUgZ2x5cGhzIHN0cmV0Y2ggdGhlIGxpbmUpLgorICAgICAgICBoYWxmTGVhZGluZyA9
IChsYXlvdXRCb3VuZHNNZXRyaWNzLmxpbmVTcGFjaW5nIC0gbG9naWNhbEhlaWdodCkgLyAyOwog
ICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBpbmxpbmVMZXZlbEJveC5zZXRM
YXlvdXRCb3VuZHMoeyBmbG9vcmYobGF5b3V0Qm91bmRzTWV0cmljcy5hc2NlbnQgKyBoYWxmTGVh
ZGluZyksIGNlaWxmKGxheW91dEJvdW5kc01ldHJpY3MuZGVzY2VudCArIGhhbGZMZWFkaW5nKSB9
KTsKKyAgICBzZXRBc2NlbnRBbmREZXNjZW50KGlubGluZUxldmVsQm94LCBsYXlvdXRCb3VuZHNN
ZXRyaWNzLmFzY2VudCwgbGF5b3V0Qm91bmRzTWV0cmljcy5kZXNjZW50KTsKK30KKwordm9pZCBM
aW5lQm94QnVpbGRlcjo6c2V0QXNjZW50QW5kRGVzY2VudChJbmxpbmVMZXZlbEJveCYgaW5saW5l
TGV2ZWxCb3gsIElubGluZUxheW91dFVuaXQgYXNjZW50LCBJbmxpbmVMYXlvdXRVbml0IGRlc2Nl
bnQpIGNvbnN0Cit7CisgICAgLy8gV2UgbmVlZCBmbG9vci9jZWlsIHRvIG1hdGNoIGxlZ2FjeSBs
YXlvdXQgaW50ZWdyYWwgcG9zaXRpb25pbmcuCisgICAgaW5saW5lTGV2ZWxCb3guc2V0QXNjZW50
KGZsb29yZihhc2NlbnQpKTsKKyAgICBpbmxpbmVMZXZlbEJveC5zZXREZXNjZW50KGNlaWxmKGRl
c2NlbnQpKTsKKyAgICBpbmxpbmVMZXZlbEJveC5zZXRMb2dpY2FsSGVpZ2h0KGFzY2VudCArIGRl
c2NlbnQpOwogfQogCiB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJbmxpbmVMZXZlbEJv
eGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGlu
ZUNvbnRlbnQsIHNpemVfdCBsaW5lSW5kZXgpCiB7CiAgICAgYXV0byYgcm9vdElubGluZUJveCA9
IGxpbmVCb3gucm9vdElubGluZUJveCgpOwotICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRz
KHJvb3RJbmxpbmVCb3gsIGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KHJv
b3RJbmxpbmVCb3gpKTsKKyAgICBzZXRMYXlvdXRCb3VuZHMocm9vdElubGluZUJveCwgbGF5b3V0
Qm91bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3gocm9vdElubGluZUJveCkpOwogCiAgICAg
YXV0byBzdHlsZVRvVXNlID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIC0+IGNvbnN0IFJl
bmRlclN0eWxlJiB7CiAgICAgICAgIHJldHVybiAhbGluZUluZGV4ID8gbGF5b3V0Qm94LmZpcnN0
TGluZVN0eWxlKCkgOiBsYXlvdXRCb3guc3R5bGUoKTsKQEAgLTI5OSwyMCArMjk1LDIzIEBAIHZv
aWQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGlu
ZUJveCwgY29uc3QgTGluZUJ1aWxkCiAgICAgICAgICAgICB9KCk7CiAgICAgICAgICAgICBsb2dp
Y2FsTGVmdCArPSBzdGQ6Om1heCgwX2x1LCBpbmxpbmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpblN0
YXJ0KCkpOwogICAgICAgICAgICAgYXV0byBhdG9taWNJbmxpbmVMZXZlbEJveCA9IElubGluZUxl
dmVsQm94OjpjcmVhdGVBdG9taWNJbmxpbmVMZXZlbEJveChsYXlvdXRCb3gsIHN0eWxlLCBsb2dp
Y2FsTGVmdCwgeyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LmJvcmRlckJveFdpZHRoKCksIG1hcmdp
bkJveEhlaWdodCB9KTsKLSAgICAgICAgICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRzKGF0
b21pY0lubGluZUxldmVsQm94LCB7IGFzY2VudCwgbWFyZ2luQm94SGVpZ2h0IC0gYXNjZW50IH0p
OworICAgICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhdG9taWNJbmxpbmVMZXZlbEJveCwg
YXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBhc2NlbnQpOworICAgICAgICAgICAgYXRvbWljSW5s
aW5lTGV2ZWxCb3guc2V0TGF5b3V0Qm91bmRzKHsgYXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBh
c2NlbnQgfSk7CiAgICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUo
YXRvbWljSW5saW5lTGV2ZWxCb3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAgICAgICAgIGlmIChydW4uaXNMaXN0TWFya2VyKCkpIHsKICAgICAgICAgICAgIGF1dG8mIGxp
c3RNYXJrZXJCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
bGF5b3V0Qm94KTsKICAgICAgICAgICAgIGF1dG8gbWFyZ2luQm94SGVpZ2h0ID0gbGlzdE1hcmtl
ckJveEdlb21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOwotICAgICAgICAgICAgLy8gSW50ZWdyYXRp
b24gY29kZXBhdGggY29uc3RydWN0cyBSZXBsYWNlZEJveGVzIGZvciBsaXN0IG1hcmtlcnMuCi0g
ICAgICAgICAgICBhdXRvIGJhc2VsaW5lID0gZG93bmNhc3Q8RWxlbWVudEJveD4obGF5b3V0Qm94
KS5iYXNlbGluZUZvckludGVncmF0aW9uKCk7Ci0gICAgICAgICAgICBhdXRvIGFzY2VudCA9IGJh
c2VsaW5lLnZhbHVlX29yKG1hcmdpbkJveEhlaWdodCk7Ci0KICAgICAgICAgICAgIGxvZ2ljYWxM
ZWZ0ICs9IHN0ZDo6bWF4KDBfbHUsIGxpc3RNYXJrZXJCb3hHZW9tZXRyeS5tYXJnaW5TdGFydCgp
KTsKICAgICAgICAgICAgIGF1dG8gbGlzdE1hcmtlcklubGluZUxldmVsQm94ID0gSW5saW5lTGV2
ZWxCb3g6OmNyZWF0ZUF0b21pY0lubGluZUxldmVsQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2lj
YWxMZWZ0LCB7IGxpc3RNYXJrZXJCb3hHZW9tZXRyeS5ib3JkZXJCb3hXaWR0aCgpLCBtYXJnaW5C
b3hIZWlnaHQgfSk7Ci0gICAgICAgICAgICBzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyhsaXN0
TWFya2VySW5saW5lTGV2ZWxCb3gsIHsgYXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBhc2NlbnQg
fSwgYmFzZWxpbmUuaGFzX3ZhbHVlKCkgPyBCZWhhdmVzQXNUZXh0OjpZZXMgOiBCZWhhdmVzQXNU
ZXh0OjpObyk7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGFzY2VudCA9IGRvd25jYXN0PEVsZW1l
bnRCb3g+KGxheW91dEJveCkuYmFzZWxpbmVGb3JJbnRlZ3JhdGlvbigpKQorICAgICAgICAgICAg
ICAgIHNldExheW91dEJvdW5kcyhsaXN0TWFya2VySW5saW5lTGV2ZWxCb3gsIHsgKmFzY2VudCwg
bWFyZ2luQm94SGVpZ2h0IC0gKmFzY2VudCB9KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQobGlzdE1hcmtlcklubGluZUxldmVsQm94LCBt
YXJnaW5Cb3hIZWlnaHQsIHsgfSk7CisgICAgICAgICAgICAgICAgbGlzdE1hcmtlcklubGluZUxl
dmVsQm94LnNldExheW91dEJvdW5kcyh7IG1hcmdpbkJveEhlaWdodCwgeyB9IH0pOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3ZlKGxp
c3RNYXJrZXJJbmxpbmVMZXZlbEJveCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KQEAgLTMyNSw3ICszMjQsNyBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJbmxp
bmVMZXZlbEJveGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZAogICAgICAgICAg
ICAgYXV0byBhZGp1c3RlZExvZ2ljYWxTdGFydCA9IGxvZ2ljYWxMZWZ0ICsgc3RkOjptYXgoMC4w
ZiwgbWFyZ2luU3RhcnQpOwogICAgICAgICAgICAgYXV0byBsb2dpY2FsV2lkdGggPSByb290SW5s
aW5lQm94LmxvZ2ljYWxXaWR0aCgpIC0gYWRqdXN0ZWRMb2dpY2FsU3RhcnQ7CiAgICAgICAgICAg
ICBhdXRvIGlubGluZUJveCA9IElubGluZUxldmVsQm94OjpjcmVhdGVJbmxpbmVCb3gobGF5b3V0
Qm94LCBzdHlsZSwgYWRqdXN0ZWRMb2dpY2FsU3RhcnQsIGxvZ2ljYWxXaWR0aCwgSW5saW5lTGV2
ZWxCb3g6OkxpbmVTcGFubmluZ0lubGluZUJveDo6WWVzKTsKLSAgICAgICAgICAgIHNldEJhc2Vs
aW5lQW5kTGF5b3V0Qm91bmRzKGlubGluZUJveCwgbGF5b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3NG
b3JJbmxpbmVCb3goaW5saW5lQm94KSk7CisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5s
aW5lQm94LCBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChpbmxpbmVCb3gp
KTsKICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShpbmxpbmVC
b3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC0zNDAsNyArMzM5LDcg
QEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0SW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94
JiBsaW5lQm94LCBjb25zdCBMaW5lQnVpbGQKICAgICAgICAgICAgIGluaXRpYWxMb2dpY2FsV2lk
dGggPSBzdGQ6Om1heChpbml0aWFsTG9naWNhbFdpZHRoLCAwLmYpOwogICAgICAgICAgICAgYXV0
byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwg
c3R5bGUsIGxvZ2ljYWxMZWZ0LCBpbml0aWFsTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIGlu
bGluZUJveC5zZXRJc0ZpcnN0Qm94KCk7Ci0gICAgICAgICAgICBzZXRCYXNlbGluZUFuZExheW91
dEJvdW5kcyhpbmxpbmVCb3gsIGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94
KGlubGluZUJveCkpOworICAgICAgICAgICAgc2V0TGF5b3V0Qm91bmRzKGlubGluZUJveCwgbGF5
b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3goaW5saW5lQm94KSk7CiAgICAgICAg
ICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUoaW5saW5lQm94KSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzc1LDcgKzM3NCw3IEBAIHZvaWQgTGlu
ZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZUJveCwg
Y29uc3QgTGluZUJ1aWxkCiAgICAgICAgIH0KICAgICAgICAgaWYgKHJ1bi5pc0hhcmRMaW5lQnJl
YWsoKSkgewogICAgICAgICAgICAgYXV0byBsaW5lQnJlYWtCb3ggPSBJbmxpbmVMZXZlbEJveDo6
Y3JlYXRlTGluZUJyZWFrQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0KTsKLSAgICAg
ICAgICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRzKGxpbmVCcmVha0JveCwgbGF5b3V0Qm91
bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3gobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxh
eW91dEJveChsYXlvdXRCb3gucGFyZW50KCkpKSk7CisgICAgICAgICAgICBzZXRMYXlvdXRCb3Vu
ZHMobGluZUJyZWFrQm94LCBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChs
aW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveC5wYXJlbnQoKSkpKTsK
ICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShsaW5lQnJlYWtC
b3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC00MjYsMTkgKzQyNSwx
NyBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJZGVvZ3JhcGhpY0Jhc2VsaW5lSWZBcHBs
aWNhYmxlKExpbmVCb3gmIGxpbmVCb3gsIHNpegogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGF1dG8gYmVoYXZlc0FzVGV4dCA9IGlubGluZUxldmVsQm94LmlzTGluZUJyZWFrQm94KCkg
fHwgKGlubGluZUxldmVsQm94LmlzTGlzdE1hcmtlcigpICYmICFkb3duY2FzdDxFbGVtZW50Qm94
PihpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSkuaXNMaXN0TWFya2VySW1hZ2UoKSk7Ci0gICAg
ICAgIGF1dG8gbGF5b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3MgPSBMYXlvdXRCb3VuZHNNZXRyaWNz
IHsgfTsKLSAgICAgICAgaWYgKGJlaGF2ZXNBc1RleHQpIHsKLSAgICAgICAgICAgIGF1dG8mIHBh
cmVudElubGluZUJveCA9IGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3goaW5saW5l
TGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpOwotICAgICAgICAgICAgbGF5b3V0Qm91bmRz
UHJpbWFyeU1ldHJpY3MgPSBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChw
YXJlbnRJbmxpbmVCb3gsIElkZW9ncmFwaGljQmFzZWxpbmUpOwotICAgICAgICB9IGVsc2UgaWYg
KGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkpCi0gICAgICAgICAgICBsYXlvdXRCb3VuZHNQ
cmltYXJ5TWV0cmljcyA9IGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGlu
bGluZUxldmVsQm94LCBJZGVvZ3JhcGhpY0Jhc2VsaW5lKTsKKyAgICAgICAgaWYgKGJlaGF2ZXNB
c1RleHQpCisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91
dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGxpbmVCb3guaW5saW5lTGV2ZWxCb3hG
b3JMYXlvdXRCb3goaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpLCBJZGVvZ3Jh
cGhpY0Jhc2VsaW5lKSk7CisgICAgICAgIGVsc2UgaWYgKGlubGluZUxldmVsQm94LmlzSW5saW5l
Qm94KCkpCisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91
dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGlubGluZUxldmVsQm94LCBJZGVvZ3Jh
cGhpY0Jhc2VsaW5lKSk7CiAgICAgICAgIGVsc2UgaWYgKGlubGluZUxldmVsQm94LmlzQXRvbWlj
SW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveEhlaWdo
dCA9IGlubGluZUxldmVsQm94LmxheW91dEJvdW5kcygpLmhlaWdodCgpOwogICAgICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCBpZGVvZ3JhcGhpY0Jhc2VsaW5lID0gcm91bmRUb0ludChpbmxpbmVM
ZXZlbEJveEhlaWdodCAvIDIpOwogICAgICAgICAgICAgLy8gTW92ZSB0aGUgYmFzZWxpbmUgcG9z
aXRpb24gYnV0IGtlZXAgdGhlIHNhbWUgbG9naWNhbCBoZWlnaHQuCi0gICAgICAgICAgICBsYXlv
dXRCb3VuZHNQcmltYXJ5TWV0cmljcyA9IHsgaWRlb2dyYXBoaWNCYXNlbGluZSwgaW5saW5lTGV2
ZWxCb3hIZWlnaHQgLSBpZGVvZ3JhcGhpY0Jhc2VsaW5lIH07CisgICAgICAgICAgICBpbmxpbmVM
ZXZlbEJveC5zZXRBc2NlbnQoaWRlb2dyYXBoaWNCYXNlbGluZSk7CisgICAgICAgICAgICBpbmxp
bmVMZXZlbEJveC5zZXRMYXlvdXRCb3VuZHMoeyBpZGVvZ3JhcGhpY0Jhc2VsaW5lLCBpbmxpbmVM
ZXZlbEJveEhlaWdodCAtIGlkZW9ncmFwaGljQmFzZWxpbmUgfSk7CiAgICAgICAgIH0KLSAgICAg
ICAgc2V0QmFzZWxpbmVBbmRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91dEJvdW5k
c1ByaW1hcnlNZXRyaWNzKTsKIAogICAgICAgICBhdXRvIG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0
bWVudCA9IGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkgfHwgaW5saW5lTGV2ZWxCb3guaXNM
aW5lQnJlYWtCb3goKTsKICAgICAgICAgaWYgKG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0bWVudCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmgKaW5kZXggYWE2ZDQz
MGE1YWE2Li45ZDI2NzAzMWE5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eEJ1aWxkZXIuaApAQCAtNDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgTGluZUJveCBidWlsZChj
b25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmLCBzaXplX3QgbGluZUluZGV4KTsKIAogcHJp
dmF0ZToKLSAgICBlbnVtIGNsYXNzIEJlaGF2ZXNBc1RleHQgOiB1aW50OF90IHsgTm8sIFllcyB9
OwotICAgIHZvaWQgc2V0QmFzZWxpbmVBbmRMYXlvdXRCb3VuZHMoSW5saW5lTGV2ZWxCb3gmLCBj
b25zdCBMYXlvdXRCb3VuZHNNZXRyaWNzJiwgQmVoYXZlc0FzVGV4dCA9IEJlaGF2ZXNBc1RleHQ6
Ok5vKSBjb25zdDsKKyAgICB2b2lkIHNldExheW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYsIGNv
bnN0IExheW91dEJvdW5kc01ldHJpY3MmKSBjb25zdDsKKyAgICB2b2lkIHNldEFzY2VudEFuZERl
c2NlbnQoSW5saW5lTGV2ZWxCb3gmLCBJbmxpbmVMYXlvdXRVbml0IGFzY2VudCwgSW5saW5lTGF5
b3V0VW5pdCBkZXNjZW50KSBjb25zdDsKICAgICB2b2lkIGFkanVzdExheW91dEJvdW5kc1dpdGhG
YWxsYmFja0ZvbnRzKElubGluZUxldmVsQm94JiwgY29uc3QgVGV4dFV0aWw6OkZhbGxiYWNrRm9u
dExpc3QmIGZhbGxiYWNrRm9udHNGb3JDb250ZW50LCBGb250QmFzZWxpbmUpIGNvbnN0OwogICAg
IFRleHRVdGlsOjpGYWxsYmFja0ZvbnRMaXN0IGNvbGxlY3RGYWxsYmFja0ZvbnRzKGNvbnN0IElu
bGluZUxldmVsQm94JiBwYXJlbnRJbmxpbmVCb3gsIGNvbnN0IExpbmU6OlJ1biYsIGNvbnN0IFJl
bmRlclN0eWxlJik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463219</attachid>
            <date>2022-10-25 09:03:47 -0700</date>
            <delta_ts>2022-10-25 15:24:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-246962-20221025090346.patch</filename>
            <type>text/plain</type>
            <size>13125</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA5Zjk1OTcxNWY0YjNjMmEwY2IyZjA4ZGVjNjU3MGRjNWEwOTUxYjQzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJ1anRhcyA8emFsYW5AYXBwbGUuY29tPgpEYXRlOiBN
b24sIDI0IE9jdCAyMDIyIDE0OjI2OjMxIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW0xGQ11bSUZD
XSBEZWNvdXBsZSBsYXlvdXQgYm91bmRzIGFuZCBhc2NlbnQvZGVzY2VudCBvbgogaW5saW5lIGxl
dmVsIGJveGVzIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDY5NjIK
ClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3Ig
c3VwcG9ydGluZyBsaW5lLWJveC1jb250YWluLCB3aGVyZSB0aGUgbGF5b3V0IGJvdW5kcyAhPSBh
c2NlbnQvZGVzY2VudC4KCkludHJvZHVjZSBzZXRBc2NlbnRBbmREZXNjZW50IHRvIHNldCB0aGUg
YXNjZW50L2Rlc2NlbnQuIE5vIGZ1bmN0aW9uYWxpdHkgY2hhbmdlIGhlcmUuCgoqIFNvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWls
ZGVyLmNwcDoKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OnNldExheW91dEJvdW5k
cyBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hCdWlsZGVyOjpzZXRBc2NlbnRBbmRE
ZXNjZW50IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVj
dElubGluZUxldmVsQm94ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWRq
dXN0SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZSk6CihXZWJDb3JlOjpMYXlvdXQ6Okxp
bmVCb3hCdWlsZGVyOjpzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyBjb25zdCk6IERlbGV0ZWQu
CiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJveEJ1aWxkZXIuaDoKLS0tCiAuLi4vaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNw
cCAgICAgICAgICAgfCA4NyArKysrKysrKystLS0tLS0tLS0tCiAuLi4vaW5saW5lL0lubGluZUxp
bmVCb3hCdWlsZGVyLmggICAgICAgICAgICAgfCAgNCArLQogMiBmaWxlcyBjaGFuZ2VkLCA0NCBp
bnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggMzZkYjczZjNjNjk4Li45ZmE4ZGYzMWVkMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAgLTIwOSw0
MSArMjA5LDM3IEBAIHN0YXRpYyBMYXlvdXRCb3VuZHNNZXRyaWNzIGxheW91dEJvdW5kc1ByaW1h
cnlNZXRyaWNzRm9ySW5saW5lQm94KGNvbnN0IElubGluZUxlCiAgICAgcmV0dXJuIHsgYXNjZW50
LCBkZXNjZW50LCBsaW5lU3BhY2luZywgaW5saW5lQm94LmlzUHJlZmVycmVkTGluZUhlaWdodEZv
bnRNZXRyaWNzQmFzZWQoKSA/IHN0ZDo6bnVsbG9wdCA6IHN0ZDo6bWFrZV9vcHRpb25hbChpbmxp
bmVCb3gucHJlZmVycmVkTGluZUhlaWdodCgpKSB9OwogfQogCi12b2lkIExpbmVCb3hCdWlsZGVy
OjpzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxC
b3gsIGNvbnN0IExheW91dEJvdW5kc01ldHJpY3MmIGxheW91dEJvdW5kc01ldHJpY3MsIEJlaGF2
ZXNBc1RleHQgYmVoYXZlc0FzVGV4dCkgY29uc3QKK3ZvaWQgTGluZUJveEJ1aWxkZXI6OnNldExh
eW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gsIGNvbnN0IExheW91dEJv
dW5kc01ldHJpY3MmIGxheW91dEJvdW5kc01ldHJpY3MpIGNvbnN0CiB7Ci0gICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzSW5saW5lQm94KCkgfHwgaW5saW5lTGV2ZWxCb3guaXNMaW5lQnJlYWtCb3go
KSB8fCBiZWhhdmVzQXNUZXh0ID09IEJlaGF2ZXNBc1RleHQ6OlllcykgewotICAgICAgICBhdXRv
IGxvZ2ljYWxIZWlnaHQgPSBsYXlvdXRCb3VuZHNNZXRyaWNzLmFzY2VudCArIGxheW91dEJvdW5k
c01ldHJpY3MuZGVzY2VudDsKLSAgICAgICAgYXV0byBoYWxmTGVhZGluZyA9IElubGluZUxheW91
dFVuaXQgeyB9OwotICAgICAgICBpZiAobGF5b3V0Qm91bmRzTWV0cmljcy5wcmVmZXJyZWRMaW5l
SGVpZ2h0KSB7Ci0gICAgICAgICAgICAvLyBJZiBsaW5lLWhlaWdodCBjb21wdXRlcyB0byBub3Jt
YWwgYW5kIGVpdGhlciB0ZXh0LWVkZ2UgaXMgbGVhZGluZyBvciB0aGlzIGlzIHRoZSByb290IGlu
bGluZSBib3gsCi0gICAgICAgICAgICAvLyB0aGUgZm9udOKAmXMgbGluZSBnYXAgbWV0cmljIG1h
eSBhbHNvIGJlIGluY29ycG9yYXRlZCBpbnRvIEEgYW5kIEQgYnkgYWRkaW5nIGhhbGYgdG8gZWFj
aCBzaWRlIGFzIGhhbGYtbGVhZGluZy4KLSAgICAgICAgICAgIC8vIGh0dHBzOi8vd3d3LnczLm9y
Zy9UUi9jc3MtaW5saW5lLTMvI2lubGluZS1oZWlnaHQKLSAgICAgICAgICAgIC8vIFNpbmNlIHRl
eHQtZWRnZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgdGhlIGluaXRpYWwgdmFsdWUgaXMgbGVh
ZGluZywgd2Ugc2hvdWxkIGp1c3QgYXBwbHkgaXQgdG8KLSAgICAgICAgICAgIC8vIGFsbCBpbmxp
bmUgYm94ZXMuCi0gICAgICAgICAgICBoYWxmTGVhZGluZyA9ICgqbGF5b3V0Qm91bmRzTWV0cmlj
cy5wcmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgLy8gUHJlZmVycmVkIGxpbmUgaGVpZ2h0IGlzIHB1cmVseSBmb250
IG1ldHJpY3MgYmFzZWQgKGkuZSBnbHlwaHMgc3RyZXRjaCB0aGUgbGluZSkuCi0gICAgICAgICAg
ICBoYWxmTGVhZGluZyA9IChsYXlvdXRCb3VuZHNNZXRyaWNzLmxpbmVTcGFjaW5nIC0gbG9naWNh
bEhlaWdodCkgLyAyOwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIG5lZWQgZmxvb3IvY2VpbCB0
byBtYXRjaCBsZWdhY3kgbGF5b3V0IGludGVncmFsIHBvc2l0aW9uaW5nLgotICAgICAgICBpbmxp
bmVMZXZlbEJveC5zZXRBc2NlbnQoZmxvb3JmKGxheW91dEJvdW5kc01ldHJpY3MuYXNjZW50KSk7
Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldERlc2NlbnQoY2VpbGYobGF5b3V0Qm91bmRzTWV0
cmljcy5kZXNjZW50KSk7Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExvZ2ljYWxIZWlnaHQo
bG9naWNhbEhlaWdodCk7Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExheW91dEJvdW5kcyh7
IGZsb29yZihsYXlvdXRCb3VuZHNNZXRyaWNzLmFzY2VudCArIGhhbGZMZWFkaW5nKSwgY2VpbGYo
bGF5b3V0Qm91bmRzTWV0cmljcy5kZXNjZW50ICsgaGFsZkxlYWRpbmcpIH0pOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0F0b21pY0lubGluZUxldmVs
Qm94KCkpIHsKLSAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0QXNjZW50KGxheW91dEJvdW5kc01l
dHJpY3MuYXNjZW50KTsKLSAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0TGF5b3V0Qm91bmRzKHsg
bGF5b3V0Qm91bmRzTWV0cmljcy5hc2NlbnQsIGxheW91dEJvdW5kc01ldHJpY3MuZGVzY2VudCB9
KTsKLSAgICAgICAgcmV0dXJuOworICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IGxheW91dEJvdW5k
c01ldHJpY3MuYXNjZW50ICsgbGF5b3V0Qm91bmRzTWV0cmljcy5kZXNjZW50OworICAgIGF1dG8g
aGFsZkxlYWRpbmcgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKKyAgICBpZiAobGF5b3V0Qm91bmRz
TWV0cmljcy5wcmVmZXJyZWRMaW5lSGVpZ2h0KSB7CisgICAgICAgIC8vIElmIGxpbmUtaGVpZ2h0
IGNvbXB1dGVzIHRvIG5vcm1hbCBhbmQgZWl0aGVyIHRleHQtZWRnZSBpcyBsZWFkaW5nIG9yIHRo
aXMgaXMgdGhlIHJvb3QgaW5saW5lIGJveCwKKyAgICAgICAgLy8gdGhlIGZvbnTigJlzIGxpbmUg
Z2FwIG1ldHJpYyBtYXkgYWxzbyBiZSBpbmNvcnBvcmF0ZWQgaW50byBBIGFuZCBEIGJ5IGFkZGlu
ZyBoYWxmIHRvIGVhY2ggc2lkZSBhcyBoYWxmLWxlYWRpbmcuCisgICAgICAgIC8vIGh0dHBzOi8v
d3d3LnczLm9yZy9UUi9jc3MtaW5saW5lLTMvI2lubGluZS1oZWlnaHQKKyAgICAgICAgLy8gU2lu
Y2UgdGV4dC1lZGdlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBp
cyBsZWFkaW5nLCB3ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bworICAgICAgICAvLyBhbGwgaW5s
aW5lIGJveGVzLgorICAgICAgICBoYWxmTGVhZGluZyA9ICgqbGF5b3V0Qm91bmRzTWV0cmljcy5w
cmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOworICAgIH0gZWxzZSB7Cisg
ICAgICAgIC8vIFByZWZlcnJlZCBsaW5lIGhlaWdodCBpcyBwdXJlbHkgZm9udCBtZXRyaWNzIGJh
c2VkIChpLmUgZ2x5cGhzIHN0cmV0Y2ggdGhlIGxpbmUpLgorICAgICAgICBoYWxmTGVhZGluZyA9
IChsYXlvdXRCb3VuZHNNZXRyaWNzLmxpbmVTcGFjaW5nIC0gbG9naWNhbEhlaWdodCkgLyAyOwog
ICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBpbmxpbmVMZXZlbEJveC5zZXRM
YXlvdXRCb3VuZHMoeyBmbG9vcmYobGF5b3V0Qm91bmRzTWV0cmljcy5hc2NlbnQgKyBoYWxmTGVh
ZGluZyksIGNlaWxmKGxheW91dEJvdW5kc01ldHJpY3MuZGVzY2VudCArIGhhbGZMZWFkaW5nKSB9
KTsKKyAgICAvLyBXZSBuZWVkIGZsb29yL2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxheW91dCBpbnRl
Z3JhbCBwb3NpdGlvbmluZy4KKyAgICBzZXRBc2NlbnRBbmREZXNjZW50KGlubGluZUxldmVsQm94
LCBmbG9vcmYobGF5b3V0Qm91bmRzTWV0cmljcy5hc2NlbnQpLCBjZWlsZihsYXlvdXRCb3VuZHNN
ZXRyaWNzLmRlc2NlbnQpKTsKK30KKwordm9pZCBMaW5lQm94QnVpbGRlcjo6c2V0QXNjZW50QW5k
RGVzY2VudChJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gsIElubGluZUxheW91dFVuaXQg
YXNjZW50LCBJbmxpbmVMYXlvdXRVbml0IGRlc2NlbnQpIGNvbnN0Cit7CisgICAgaW5saW5lTGV2
ZWxCb3guc2V0QXNjZW50KGFzY2VudCk7CisgICAgaW5saW5lTGV2ZWxCb3guc2V0RGVzY2VudChk
ZXNjZW50KTsKKyAgICBpbmxpbmVMZXZlbEJveC5zZXRMb2dpY2FsSGVpZ2h0KGFzY2VudCArIGRl
c2NlbnQpOwogfQogCiB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJbmxpbmVMZXZlbEJv
eGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZGVyOjpMaW5lQ29udGVudCYgbGlu
ZUNvbnRlbnQsIHNpemVfdCBsaW5lSW5kZXgpCiB7CiAgICAgYXV0byYgcm9vdElubGluZUJveCA9
IGxpbmVCb3gucm9vdElubGluZUJveCgpOwotICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRz
KHJvb3RJbmxpbmVCb3gsIGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KHJv
b3RJbmxpbmVCb3gpKTsKKyAgICBzZXRMYXlvdXRCb3VuZHMocm9vdElubGluZUJveCwgbGF5b3V0
Qm91bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3gocm9vdElubGluZUJveCkpOwogCiAgICAg
YXV0byBzdHlsZVRvVXNlID0gWyZdIChjb25zdCBhdXRvJiBsYXlvdXRCb3gpIC0+IGNvbnN0IFJl
bmRlclN0eWxlJiB7CiAgICAgICAgIHJldHVybiAhbGluZUluZGV4ID8gbGF5b3V0Qm94LmZpcnN0
TGluZVN0eWxlKCkgOiBsYXlvdXRCb3guc3R5bGUoKTsKQEAgLTI5OSwyMCArMjk1LDIzIEBAIHZv
aWQgTGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGlu
ZUJveCwgY29uc3QgTGluZUJ1aWxkCiAgICAgICAgICAgICB9KCk7CiAgICAgICAgICAgICBsb2dp
Y2FsTGVmdCArPSBzdGQ6Om1heCgwX2x1LCBpbmxpbmVMZXZlbEJveEdlb21ldHJ5Lm1hcmdpblN0
YXJ0KCkpOwogICAgICAgICAgICAgYXV0byBhdG9taWNJbmxpbmVMZXZlbEJveCA9IElubGluZUxl
dmVsQm94OjpjcmVhdGVBdG9taWNJbmxpbmVMZXZlbEJveChsYXlvdXRCb3gsIHN0eWxlLCBsb2dp
Y2FsTGVmdCwgeyBpbmxpbmVMZXZlbEJveEdlb21ldHJ5LmJvcmRlckJveFdpZHRoKCksIG1hcmdp
bkJveEhlaWdodCB9KTsKLSAgICAgICAgICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRzKGF0
b21pY0lubGluZUxldmVsQm94LCB7IGFzY2VudCwgbWFyZ2luQm94SGVpZ2h0IC0gYXNjZW50IH0p
OworICAgICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChhdG9taWNJbmxpbmVMZXZlbEJveCwg
YXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBhc2NlbnQpOworICAgICAgICAgICAgYXRvbWljSW5s
aW5lTGV2ZWxCb3guc2V0TGF5b3V0Qm91bmRzKHsgYXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBh
c2NlbnQgfSk7CiAgICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUo
YXRvbWljSW5saW5lTGV2ZWxCb3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9
CiAgICAgICAgIGlmIChydW4uaXNMaXN0TWFya2VyKCkpIHsKICAgICAgICAgICAgIGF1dG8mIGxp
c3RNYXJrZXJCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3go
bGF5b3V0Qm94KTsKICAgICAgICAgICAgIGF1dG8gbWFyZ2luQm94SGVpZ2h0ID0gbGlzdE1hcmtl
ckJveEdlb21ldHJ5Lm1hcmdpbkJveEhlaWdodCgpOwotICAgICAgICAgICAgLy8gSW50ZWdyYXRp
b24gY29kZXBhdGggY29uc3RydWN0cyBSZXBsYWNlZEJveGVzIGZvciBsaXN0IG1hcmtlcnMuCi0g
ICAgICAgICAgICBhdXRvIGJhc2VsaW5lID0gZG93bmNhc3Q8RWxlbWVudEJveD4obGF5b3V0Qm94
KS5iYXNlbGluZUZvckludGVncmF0aW9uKCk7Ci0gICAgICAgICAgICBhdXRvIGFzY2VudCA9IGJh
c2VsaW5lLnZhbHVlX29yKG1hcmdpbkJveEhlaWdodCk7Ci0KICAgICAgICAgICAgIGxvZ2ljYWxM
ZWZ0ICs9IHN0ZDo6bWF4KDBfbHUsIGxpc3RNYXJrZXJCb3hHZW9tZXRyeS5tYXJnaW5TdGFydCgp
KTsKICAgICAgICAgICAgIGF1dG8gbGlzdE1hcmtlcklubGluZUxldmVsQm94ID0gSW5saW5lTGV2
ZWxCb3g6OmNyZWF0ZUF0b21pY0lubGluZUxldmVsQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2lj
YWxMZWZ0LCB7IGxpc3RNYXJrZXJCb3hHZW9tZXRyeS5ib3JkZXJCb3hXaWR0aCgpLCBtYXJnaW5C
b3hIZWlnaHQgfSk7Ci0gICAgICAgICAgICBzZXRCYXNlbGluZUFuZExheW91dEJvdW5kcyhsaXN0
TWFya2VySW5saW5lTGV2ZWxCb3gsIHsgYXNjZW50LCBtYXJnaW5Cb3hIZWlnaHQgLSBhc2NlbnQg
fSwgYmFzZWxpbmUuaGFzX3ZhbHVlKCkgPyBCZWhhdmVzQXNUZXh0OjpZZXMgOiBCZWhhdmVzQXNU
ZXh0OjpObyk7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGFzY2VudCA9IGRvd25jYXN0PEVsZW1l
bnRCb3g+KGxheW91dEJveCkuYmFzZWxpbmVGb3JJbnRlZ3JhdGlvbigpKQorICAgICAgICAgICAg
ICAgIHNldExheW91dEJvdW5kcyhsaXN0TWFya2VySW5saW5lTGV2ZWxCb3gsIHsgKmFzY2VudCwg
bWFyZ2luQm94SGVpZ2h0IC0gKmFzY2VudCB9KTsKKyAgICAgICAgICAgIGVsc2UgeworICAgICAg
ICAgICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQobGlzdE1hcmtlcklubGluZUxldmVsQm94LCBt
YXJnaW5Cb3hIZWlnaHQsIHsgfSk7CisgICAgICAgICAgICAgICAgbGlzdE1hcmtlcklubGluZUxl
dmVsQm94LnNldExheW91dEJvdW5kcyh7IG1hcmdpbkJveEhlaWdodCwgeyB9IH0pOworICAgICAg
ICAgICAgfQogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3ZlKGxp
c3RNYXJrZXJJbmxpbmVMZXZlbEJveCkpOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KQEAgLTMyNSw3ICszMjQsNyBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJbmxp
bmVMZXZlbEJveGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZAogICAgICAgICAg
ICAgYXV0byBhZGp1c3RlZExvZ2ljYWxTdGFydCA9IGxvZ2ljYWxMZWZ0ICsgc3RkOjptYXgoMC4w
ZiwgbWFyZ2luU3RhcnQpOwogICAgICAgICAgICAgYXV0byBsb2dpY2FsV2lkdGggPSByb290SW5s
aW5lQm94LmxvZ2ljYWxXaWR0aCgpIC0gYWRqdXN0ZWRMb2dpY2FsU3RhcnQ7CiAgICAgICAgICAg
ICBhdXRvIGlubGluZUJveCA9IElubGluZUxldmVsQm94OjpjcmVhdGVJbmxpbmVCb3gobGF5b3V0
Qm94LCBzdHlsZSwgYWRqdXN0ZWRMb2dpY2FsU3RhcnQsIGxvZ2ljYWxXaWR0aCwgSW5saW5lTGV2
ZWxCb3g6OkxpbmVTcGFubmluZ0lubGluZUJveDo6WWVzKTsKLSAgICAgICAgICAgIHNldEJhc2Vs
aW5lQW5kTGF5b3V0Qm91bmRzKGlubGluZUJveCwgbGF5b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3NG
b3JJbmxpbmVCb3goaW5saW5lQm94KSk7CisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5s
aW5lQm94LCBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChpbmxpbmVCb3gp
KTsKICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShpbmxpbmVC
b3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC0zNDAsNyArMzM5LDcg
QEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6Y29uc3RydWN0SW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94
JiBsaW5lQm94LCBjb25zdCBMaW5lQnVpbGQKICAgICAgICAgICAgIGluaXRpYWxMb2dpY2FsV2lk
dGggPSBzdGQ6Om1heChpbml0aWFsTG9naWNhbFdpZHRoLCAwLmYpOwogICAgICAgICAgICAgYXV0
byBpbmxpbmVCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlSW5saW5lQm94KGxheW91dEJveCwg
c3R5bGUsIGxvZ2ljYWxMZWZ0LCBpbml0aWFsTG9naWNhbFdpZHRoKTsKICAgICAgICAgICAgIGlu
bGluZUJveC5zZXRJc0ZpcnN0Qm94KCk7Ci0gICAgICAgICAgICBzZXRCYXNlbGluZUFuZExheW91
dEJvdW5kcyhpbmxpbmVCb3gsIGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94
KGlubGluZUJveCkpOworICAgICAgICAgICAgc2V0TGF5b3V0Qm91bmRzKGlubGluZUJveCwgbGF5
b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3goaW5saW5lQm94KSk7CiAgICAgICAg
ICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUoaW5saW5lQm94KSk7CiAgICAg
ICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQpAQCAtMzc1LDcgKzM3NCw3IEBAIHZvaWQgTGlu
ZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElubGluZUxldmVsQm94ZXMoTGluZUJveCYgbGluZUJveCwg
Y29uc3QgTGluZUJ1aWxkCiAgICAgICAgIH0KICAgICAgICAgaWYgKHJ1bi5pc0hhcmRMaW5lQnJl
YWsoKSkgewogICAgICAgICAgICAgYXV0byBsaW5lQnJlYWtCb3ggPSBJbmxpbmVMZXZlbEJveDo6
Y3JlYXRlTGluZUJyZWFrQm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0KTsKLSAgICAg
ICAgICAgIHNldEJhc2VsaW5lQW5kTGF5b3V0Qm91bmRzKGxpbmVCcmVha0JveCwgbGF5b3V0Qm91
bmRzUHJpbWFyeU1ldHJpY3NGb3JJbmxpbmVCb3gobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxh
eW91dEJveChsYXlvdXRCb3gucGFyZW50KCkpKSk7CisgICAgICAgICAgICBzZXRMYXlvdXRCb3Vu
ZHMobGluZUJyZWFrQm94LCBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChs
aW5lQm94LmlubGluZUxldmVsQm94Rm9yTGF5b3V0Qm94KGxheW91dEJveC5wYXJlbnQoKSkpKTsK
ICAgICAgICAgICAgIGxpbmVCb3guYWRkSW5saW5lTGV2ZWxCb3goV1RGTW92ZShsaW5lQnJlYWtC
b3gpKTsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CkBAIC00MjYsMTkgKzQyNSwx
NyBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjphZGp1c3RJZGVvZ3JhcGhpY0Jhc2VsaW5lSWZBcHBs
aWNhYmxlKExpbmVCb3gmIGxpbmVCb3gsIHNpegogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGF1dG8gYmVoYXZlc0FzVGV4dCA9IGlubGluZUxldmVsQm94LmlzTGluZUJyZWFrQm94KCkg
fHwgKGlubGluZUxldmVsQm94LmlzTGlzdE1hcmtlcigpICYmICFkb3duY2FzdDxFbGVtZW50Qm94
PihpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSkuaXNMaXN0TWFya2VySW1hZ2UoKSk7Ci0gICAg
ICAgIGF1dG8gbGF5b3V0Qm91bmRzUHJpbWFyeU1ldHJpY3MgPSBMYXlvdXRCb3VuZHNNZXRyaWNz
IHsgfTsKLSAgICAgICAgaWYgKGJlaGF2ZXNBc1RleHQpIHsKLSAgICAgICAgICAgIGF1dG8mIHBh
cmVudElubGluZUJveCA9IGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3goaW5saW5l
TGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpOwotICAgICAgICAgICAgbGF5b3V0Qm91bmRz
UHJpbWFyeU1ldHJpY3MgPSBsYXlvdXRCb3VuZHNQcmltYXJ5TWV0cmljc0ZvcklubGluZUJveChw
YXJlbnRJbmxpbmVCb3gsIElkZW9ncmFwaGljQmFzZWxpbmUpOwotICAgICAgICB9IGVsc2UgaWYg
KGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkpCi0gICAgICAgICAgICBsYXlvdXRCb3VuZHNQ
cmltYXJ5TWV0cmljcyA9IGxheW91dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGlu
bGluZUxldmVsQm94LCBJZGVvZ3JhcGhpY0Jhc2VsaW5lKTsKKyAgICAgICAgaWYgKGJlaGF2ZXNB
c1RleHQpCisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91
dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGxpbmVCb3guaW5saW5lTGV2ZWxCb3hG
b3JMYXlvdXRCb3goaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpLCBJZGVvZ3Jh
cGhpY0Jhc2VsaW5lKSk7CisgICAgICAgIGVsc2UgaWYgKGlubGluZUxldmVsQm94LmlzSW5saW5l
Qm94KCkpCisgICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91
dEJvdW5kc1ByaW1hcnlNZXRyaWNzRm9ySW5saW5lQm94KGlubGluZUxldmVsQm94LCBJZGVvZ3Jh
cGhpY0Jhc2VsaW5lKSk7CiAgICAgICAgIGVsc2UgaWYgKGlubGluZUxldmVsQm94LmlzQXRvbWlj
SW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveEhlaWdo
dCA9IGlubGluZUxldmVsQm94LmxheW91dEJvdW5kcygpLmhlaWdodCgpOwogICAgICAgICAgICAg
SW5saW5lTGF5b3V0VW5pdCBpZGVvZ3JhcGhpY0Jhc2VsaW5lID0gcm91bmRUb0ludChpbmxpbmVM
ZXZlbEJveEhlaWdodCAvIDIpOwogICAgICAgICAgICAgLy8gTW92ZSB0aGUgYmFzZWxpbmUgcG9z
aXRpb24gYnV0IGtlZXAgdGhlIHNhbWUgbG9naWNhbCBoZWlnaHQuCi0gICAgICAgICAgICBsYXlv
dXRCb3VuZHNQcmltYXJ5TWV0cmljcyA9IHsgaWRlb2dyYXBoaWNCYXNlbGluZSwgaW5saW5lTGV2
ZWxCb3hIZWlnaHQgLSBpZGVvZ3JhcGhpY0Jhc2VsaW5lIH07CisgICAgICAgICAgICBpbmxpbmVM
ZXZlbEJveC5zZXRBc2NlbnQoaWRlb2dyYXBoaWNCYXNlbGluZSk7CisgICAgICAgICAgICBpbmxp
bmVMZXZlbEJveC5zZXRMYXlvdXRCb3VuZHMoeyBpZGVvZ3JhcGhpY0Jhc2VsaW5lLCBpbmxpbmVM
ZXZlbEJveEhlaWdodCAtIGlkZW9ncmFwaGljQmFzZWxpbmUgfSk7CiAgICAgICAgIH0KLSAgICAg
ICAgc2V0QmFzZWxpbmVBbmRMYXlvdXRCb3VuZHMoaW5saW5lTGV2ZWxCb3gsIGxheW91dEJvdW5k
c1ByaW1hcnlNZXRyaWNzKTsKIAogICAgICAgICBhdXRvIG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0
bWVudCA9IGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkgfHwgaW5saW5lTGV2ZWxCb3guaXNM
aW5lQnJlYWtCb3goKTsKICAgICAgICAgaWYgKG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0bWVudCkg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmgKaW5kZXggYWE2ZDQz
MGE1YWE2Li45ZDI2NzAzMWE5MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eEJ1aWxkZXIuaApAQCAtNDQsOCArNDQsOCBAQCBwdWJsaWM6CiAgICAgTGluZUJveCBidWlsZChj
b25zdCBMaW5lQnVpbGRlcjo6TGluZUNvbnRlbnQmLCBzaXplX3QgbGluZUluZGV4KTsKIAogcHJp
dmF0ZToKLSAgICBlbnVtIGNsYXNzIEJlaGF2ZXNBc1RleHQgOiB1aW50OF90IHsgTm8sIFllcyB9
OwotICAgIHZvaWQgc2V0QmFzZWxpbmVBbmRMYXlvdXRCb3VuZHMoSW5saW5lTGV2ZWxCb3gmLCBj
b25zdCBMYXlvdXRCb3VuZHNNZXRyaWNzJiwgQmVoYXZlc0FzVGV4dCA9IEJlaGF2ZXNBc1RleHQ6
Ok5vKSBjb25zdDsKKyAgICB2b2lkIHNldExheW91dEJvdW5kcyhJbmxpbmVMZXZlbEJveCYsIGNv
bnN0IExheW91dEJvdW5kc01ldHJpY3MmKSBjb25zdDsKKyAgICB2b2lkIHNldEFzY2VudEFuZERl
c2NlbnQoSW5saW5lTGV2ZWxCb3gmLCBJbmxpbmVMYXlvdXRVbml0IGFzY2VudCwgSW5saW5lTGF5
b3V0VW5pdCBkZXNjZW50KSBjb25zdDsKICAgICB2b2lkIGFkanVzdExheW91dEJvdW5kc1dpdGhG
YWxsYmFja0ZvbnRzKElubGluZUxldmVsQm94JiwgY29uc3QgVGV4dFV0aWw6OkZhbGxiYWNrRm9u
dExpc3QmIGZhbGxiYWNrRm9udHNGb3JDb250ZW50LCBGb250QmFzZWxpbmUpIGNvbnN0OwogICAg
IFRleHRVdGlsOjpGYWxsYmFja0ZvbnRMaXN0IGNvbGxlY3RGYWxsYmFja0ZvbnRzKGNvbnN0IElu
bGluZUxldmVsQm94JiBwYXJlbnRJbmxpbmVCb3gsIGNvbnN0IExpbmU6OlJ1biYsIGNvbnN0IFJl
bmRlclN0eWxlJik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>