<?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>204412</bug_id>
          
          <creation_ts>2019-11-20 07:43:41 -0800</creation_ts>
          <short_desc>[LFC][IFC] Cache InlinteTextItem width when possible</short_desc>
          <delta_ts>2019-11-20 10:57:08 -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>commit-queue</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>1592000</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-20 07:43:41 -0800</bug_when>
    <thetext>so that subsequent inline layouts don&apos;t need to keep remeasuring the text width (I know width-cache helps a bit but still).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592001</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-20 07:44:33 -0800</bug_when>
    <thetext>&lt;rdar://problem/57359366&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592002</commentid>
    <comment_count>2</comment_count>
      <attachid>383965</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-20 07:49:27 -0800</bug_when>
    <thetext>Created attachment 383965
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592036</commentid>
    <comment_count>3</comment_count>
      <attachid>383965</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-20 09:50:43 -0800</bug_when>
    <thetext>Comment on attachment 383965
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineTextItem.cpp:93
&gt; +    auto inlineItemWidth = [&amp;] (auto startPosition, auto length) -&gt; Optional&lt;LayoutUnit&gt; {

&quot;[](#spacing-lambda-paren) Do not place spaces between square brackets and parentheses of a lambda function but do place a space before braces.&quot;

You r+&apos;d it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592038</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-11-20 09:55:10 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 383965 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=383965&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineTextItem.cpp:93
&gt; &gt; +    auto inlineItemWidth = [&amp;] (auto startPosition, auto length) -&gt; Optional&lt;LayoutUnit&gt; {
&gt; 
&gt; &quot;[](#spacing-lambda-paren) Do not place spaces between square brackets and
&gt; parentheses of a lambda function but do place a space before braces.&quot;
&gt; 
&gt; You r+&apos;d it!
must have been one of those 3am reviews.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592042</commentid>
    <comment_count>5</comment_count>
      <attachid>383970</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-11-20 10:13:58 -0800</bug_when>
    <thetext>Created attachment 383970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592066</commentid>
    <comment_count>6</comment_count>
      <attachid>383970</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 10:57:06 -0800</bug_when>
    <thetext>Comment on attachment 383970
Patch

Clearing flags on attachment: 383970

Committed r252696: &lt;https://trac.webkit.org/changeset/252696&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592067</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-20 10:57:08 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383965</attachid>
            <date>2019-11-20 07:49:27 -0800</date>
            <delta_ts>2019-11-20 10:13:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204412-20191120074906.patch</filename>
            <type>text/plain</type>
            <size>10252</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNjQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU2NTM0ZWU3Y2IxMzc4
NjE4NmVlNmNiZWYwN2IyZmIwYTUyM2Y5NS4uMjViNGZkNWY2OGUyZGZlYmVmODU4ZjQ4MTRiMThh
NDQwZWYzNWEzYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTExLTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBDYWNoZSBJ
bmxpbnRlVGV4dEl0ZW0gd2lkdGggd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzM1OTM2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBUaGlzIGhlbHBzIHdoZW4gc3Vic2VxdWVudCBpbmxpbmUgbGF5b3V0cyB1c2UgdGhlIHNh
bWUgc2V0IG9mIElubGluZVRleHRJdGVtcyBhbmQgdGhleSB3b3VsZAorICAgICAgICBrZWVwIHJl
LW1lYXN1cmluZyB0aGVtIG9uIGVhY2ggbGF5b3V0IGZyYW1lIChlLmcuIHZpZXcgcmVzaXplKS4K
KworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjppbmxpbmVJdGVtV2lkdGgpOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNw
YWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVh
dGVOb25XaGl0ZXNwYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRl
eHRJdGVtOjpjcmVhdGVTZWdtZW50QnJlYWtJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lVGV4dEl0ZW06OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6cmlnaHQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZVRleHRJdGVtOjp3aWR0aCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0
VXRpbDo6d2lkdGgpOgorCiAyMDE5LTExLTE5ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBUZXh0VXRpbDo6d2lkdGggc2hvdWxkIHVzZSBGb250
Q2FzY2FkZTo6d2lkdGhGb3JTaW1wbGVUZXh0IHdoZW4gYXBwbGljYWJsZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUxheW91dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5
b3V0LmNwcAppbmRleCBjN2RkMDQ5ZDA4NmM0MGNkYTlkNTBiM2U1NDc0NjE2OGI1Njk0NzNiLi43
YWZjYTNjMzQ4ZTI4MTJkMjY5OTkwMWM2Zjc5ZGI5ZWI1YTFmMTZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5
b3V0LmNwcApAQCAtNDIsNiArNDIsOCBAQCBzdGF0aWMgTGF5b3V0VW5pdCBpbmxpbmVJdGVtV2lk
dGgoY29uc3QgRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjbwogCiAgICAg
aWYgKGlzPElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKSkgewogICAgICAgICBhdXRvJiBpbmxp
bmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihpbmxpbmVJdGVtKTsKKyAgICAg
ICAgaWYgKGF1dG8gY29udGVudFdpZHRoID0gaW5saW5lVGV4dEl0ZW0ud2lkdGgoKSkKKyAgICAg
ICAgICAgIHJldHVybiAqY29udGVudFdpZHRoOwogICAgICAgICBhdXRvIGVuZCA9IGlubGluZVRl
eHRJdGVtLmlzQ29sbGFwc2libGUoKSA/IGlubGluZVRleHRJdGVtLnN0YXJ0KCkgKyAxIDogaW5s
aW5lVGV4dEl0ZW0uZW5kKCk7CiAgICAgICAgIHJldHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5l
VGV4dEl0ZW0ubGF5b3V0Qm94KCksIGlubGluZVRleHRJdGVtLnN0YXJ0KCksIGVuZCwgY29udGVu
dExvZ2ljYWxMZWZ0KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
aW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAKaW5kZXggNjE1ZDY5ODg5NWIz
MTA3ZWZjN2E2Njc3ZjBkZTcyYzNhZGM2N2RlYi4uYmMxNmUxODg1ZDZhNDAyZTU1ZDdmNTA5ZmFl
MWM4NGRmZjFkNGQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcApAQCAtODksNiArODksMTMgQEAgdm9p
ZCBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlQW5kQXBwZW5kVGV4dEl0ZW1zKElubGluZUl0ZW1zJiBp
bmxpbmVDb250ZW50LCBjb25zdAogICAgIGF1dG8mIHN0eWxlID0gaW5saW5lQm94LnN0eWxlKCk7
CiAgICAgTGF6eUxpbmVCcmVha0l0ZXJhdG9yIGxpbmVCcmVha0l0ZXJhdG9yKHRleHQpOwogICAg
IHVuc2lnbmVkIGN1cnJlbnRQb3NpdGlvbiA9IDA7CisKKyAgICBhdXRvIGlubGluZUl0ZW1XaWR0
aCA9IFsmXSAoYXV0byBzdGFydFBvc2l0aW9uLCBhdXRvIGxlbmd0aCkgLT4gT3B0aW9uYWw8TGF5
b3V0VW5pdD4geworICAgICAgICBpZiAoIWlubGluZUJveC50ZXh0Q29udGV4dCgpLmNhblVzZVNp
bXBsaWZpZWRDb250ZW50TWVhc3VyaW5nKQorICAgICAgICAgICAgcmV0dXJuIHsgfTsKKyAgICAg
ICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVCb3gsIHN0YXJ0UG9zaXRpb24sIHN0YXJ0
UG9zaXRpb24gKyBsZW5ndGgpOworICAgIH07CisKICAgICB3aGlsZSAoY3VycmVudFBvc2l0aW9u
IDwgdGV4dC5sZW5ndGgoKSkgewogICAgICAgICBhdXRvIGlzU2VnbWVudEJyZWFrQ2FuZGlkYXRl
ID0gW10oYXV0byBjaGFyYWN0ZXIpIHsKICAgICAgICAgICAgIHJldHVybiBjaGFyYWN0ZXIgPT0g
J1xuJzsKQEAgLTEwMSwzMiArMTA4LDMzIEBAIHZvaWQgSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFu
ZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYgaW5saW5lQ29udGVudCwgY29uc3QKICAgICAg
ICAgICAgICsrY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IH0KKwogICAgICAgICBpZiAoaXNXaGl0ZXNwYWNlQ2hhcmFjdGVyKHRleHRbY3VycmVudFBvc2l0
aW9uXSkpIHsKICAgICAgICAgICAgIGF1dG8gbGVuZ3RoID0gbW92ZVRvTmV4dE5vbldoaXRlc3Bh
Y2VQb3NpdGlvbih0ZXh0LCBjdXJyZW50UG9zaXRpb24pOwotICAgICAgICAgICAgaW5saW5lQ29u
dGVudC5hcHBlbmQoSW5saW5lVGV4dEl0ZW06OmNyZWF0ZVdoaXRlc3BhY2VJdGVtKGlubGluZUJv
eCwgY3VycmVudFBvc2l0aW9uLCBsZW5ndGgpKTsKKyAgICAgICAgICAgIGlubGluZUNvbnRlbnQu
YXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIGN1
cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCBpbmxpbmVJdGVtV2lkdGgoY3VycmVudFBvc2l0aW9uLCBs
ZW5ndGgpKSk7CiAgICAgICAgICAgICBjdXJyZW50UG9zaXRpb24gKz0gbGVuZ3RoOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KIAogICAgICAgICBhdXRvIGxlbmd0aCA9IG1vdmVU
b05leHRCcmVha2FibGVQb3NpdGlvbihjdXJyZW50UG9zaXRpb24sIGxpbmVCcmVha0l0ZXJhdG9y
LCBzdHlsZSk7Ci0gICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpj
cmVhdGVOb25XaGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3Ro
KSk7CisgICAgICAgIGlubGluZUNvbnRlbnQuYXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVO
b25XaGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoLCBpbmxp
bmVJdGVtV2lkdGgoY3VycmVudFBvc2l0aW9uLCBsZW5ndGgpKSk7CiAgICAgICAgIGN1cnJlbnRQ
b3NpdGlvbiArPSBsZW5ndGg7CiAgICAgfQogfQogCi1zdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4
dEl0ZW0+IElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gmIGlu
bGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCkKK3N0ZDo6dW5pcXVlX3B0
cjxJbmxpbmVUZXh0SXRlbT4gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZVdoaXRlc3BhY2VJdGVtKGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRp
b25hbDxMYXlvdXRVbml0PiB3aWR0aCkKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVU
ZXh0SXRlbT4oaW5saW5lQm94LCBzdGFydCwgbGVuZ3RoLCBUZXh0SXRlbVR5cGU6OldoaXRlc3Bh
Y2UpOworICAgIHJldHVybiBtYWtlVW5pcXVlPElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIHN0
YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UpOwogfQogCi1zdGQ6
OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IElubGluZVRleHRJdGVtOjpjcmVhdGVOb25XaGl0
ZXNwYWNlSXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVk
IGxlbmd0aCkKK3N0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gSW5saW5lVGV4dEl0ZW06
OmNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBz
dGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aCkKIHsKLSAg
ICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBzdGFydCwgbGVu
Z3RoLCBUZXh0SXRlbVR5cGU6Ok5vbldoaXRlc3BhY2UpOworICAgIHJldHVybiBtYWtlVW5pcXVl
PElubGluZVRleHRJdGVtPihpbmxpbmVCb3gsIHN0YXJ0LCBsZW5ndGgsIHdpZHRoLCBUZXh0SXRl
bVR5cGU6Ok5vbldoaXRlc3BhY2UpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0
ZW0+IElubGluZVRleHRJdGVtOjpjcmVhdGVTZWdtZW50QnJlYWtJdGVtKGNvbnN0IEJveCYgaW5s
aW5lQm94LCB1bnNpZ25lZCBwb3NpdGlvbikKIHsKLSAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxp
bmVUZXh0SXRlbT4oaW5saW5lQm94LCBwb3NpdGlvbiwgMSwgVGV4dEl0ZW1UeXBlOjpTZWdtZW50
QnJlYWspOworICAgIHJldHVybiBtYWtlVW5pcXVlPElubGluZVRleHRJdGVtPihpbmxpbmVCb3gs
IHBvc2l0aW9uLCAxLCBXVEY6Om51bGxvcHQsIFRleHRJdGVtVHlwZTo6U2VnbWVudEJyZWFrKTsK
IH0KIAogc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBJbmxpbmVUZXh0SXRlbTo6Y3Jl
YXRlRW1wdHlJdGVtKGNvbnN0IEJveCYgaW5saW5lQm94KQpAQCAtMTM0LDEwICsxNDIsMTEgQEAg
c3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlRW1w
dHlJdGVtKGNvbnN0IEJveCYgaW5saW4KICAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVUZXh0
SXRlbT4oaW5saW5lQm94KTsKIH0KIAotSW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBUZXh0
SXRlbVR5cGUgdGV4dEl0ZW1UeXBlKQorSW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKGNv
bnN0IEJveCYgaW5saW5lQm94LCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRp
b25hbDxMYXlvdXRVbml0PiB3aWR0aCwgVGV4dEl0ZW1UeXBlIHRleHRJdGVtVHlwZSkKICAgICA6
IElubGluZUl0ZW0oaW5saW5lQm94LCBUeXBlOjpUZXh0KQogICAgICwgbV9zdGFydChzdGFydCkK
ICAgICAsIG1fbGVuZ3RoKGxlbmd0aCkKKyAgICAsIG1fd2lkdGgod2lkdGgpCiAgICAgLCBtX3Rl
eHRJdGVtVHlwZSh0ZXh0SXRlbVR5cGUpCiB7CiB9CkBAIC0xNTEsMTQgKzE2MCwxNCBAQCBzdGQ6
OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IElubGluZVRleHRJdGVtOjpsZWZ0KHVuc2lnbmVk
IGxlbmd0aCkgY29uc3QKIHsKICAgICBSRUxFQVNFX0FTU0VSVChsZW5ndGggPD0gdGhpcy0+bGVu
Z3RoKCkpOwogICAgIEFTU0VSVChtX3RleHRJdGVtVHlwZSAhPSBUZXh0SXRlbVR5cGU6OlVuZGVm
aW5lZCk7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4dEl0ZW0+KGxheW91dEJveCgp
LCBzdGFydCgpLCBsZW5ndGgsIG1fdGV4dEl0ZW1UeXBlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1
ZTxJbmxpbmVUZXh0SXRlbT4obGF5b3V0Qm94KCksIHN0YXJ0KCksIGxlbmd0aCwgV1RGOjpudWxs
b3B0LCBtX3RleHRJdGVtVHlwZSk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRl
bT4gSW5saW5lVGV4dEl0ZW06OnJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3QKIHsKICAgICBS
RUxFQVNFX0FTU0VSVChsZW5ndGggPD0gdGhpcy0+bGVuZ3RoKCkpOwogICAgIEFTU0VSVChtX3Rl
eHRJdGVtVHlwZSAhPSBUZXh0SXRlbVR5cGU6OlVuZGVmaW5lZCk7Ci0gICAgcmV0dXJuIG1ha2VV
bmlxdWU8SW5saW5lVGV4dEl0ZW0+KGxheW91dEJveCgpLCBlbmQoKSAtIGxlbmd0aCwgbGVuZ3Ro
LCBtX3RleHRJdGVtVHlwZSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4dEl0ZW0+
KGxheW91dEJveCgpLCBlbmQoKSAtIGxlbmd0aCwgbGVuZ3RoLCBXVEY6Om51bGxvcHQsIG1fdGV4
dEl0ZW1UeXBlKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lu
bGluZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmgKaW5kZXggMDBiNzVmZWQxZTk1ODFiOWQx
NDdkODAyNmUwNDUzZGRjYmQ5MzI2OS4uNDI1YWFlMWI0ZmIxNTdiNmQ1NzEwOGZlODFhZDRjYjY2
NzljZWU3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lVGV4dEl0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCkBAIC0zNyw4ICszNyw4IEBAIGNsYXNzIElubGluZVRl
eHRJdGVtIDogcHVibGljIElubGluZUl0ZW0gewogcHVibGljOgogICAgIHN0YXRpYyB2b2lkIGNy
ZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyhJbmxpbmVJdGVtcyYsIGNvbnN0IEJveCYpOwogCi0gICAg
c3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gY3JlYXRlV2hpdGVzcGFjZUl0
ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCk7Ci0gICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gY3JlYXRlTm9uV2hpdGVzcGFjZUl0
ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCk7CisgICAgc3Rh
dGljIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gY3JlYXRlV2hpdGVzcGFjZUl0ZW0o
Y29uc3QgQm94JiwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8TGF5
b3V0VW5pdD4gd2lkdGgpOworICAgIHN0YXRpYyBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0
ZW0+IGNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1
bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoKTsKICAgICBzdGF0aWMg
c3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBjcmVhdGVTZWdtZW50QnJlYWtJdGVtKGNv
bnN0IEJveCYsIHVuc2lnbmVkIHBvc2l0aW9uKTsKICAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRy
PElubGluZVRleHRJdGVtPiBjcmVhdGVFbXB0eUl0ZW0oY29uc3QgQm94Jik7CiAKQEAgLTQ5LDE3
ICs0OSwxOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1doaXRlc3BhY2UoKSBjb25zdCB7IHJldHVy
biBtX3RleHRJdGVtVHlwZSA9PSBUZXh0SXRlbVR5cGU6OldoaXRlc3BhY2UgfHwgaXNTZWdtZW50
QnJlYWsoKTsgfQogICAgIGJvb2wgaXNDb2xsYXBzaWJsZSgpIGNvbnN0IHsgcmV0dXJuIGlzV2hp
dGVzcGFjZSgpICYmIHN0eWxlKCkuY29sbGFwc2VXaGl0ZVNwYWNlKCk7IH0KICAgICBib29sIGlz
U2VnbWVudEJyZWFrKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0SXRlbVR5cGUgPT0gVGV4dEl0ZW1U
eXBlOjpTZWdtZW50QnJlYWs7IH0KKyAgICBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0
SXRlbT4gbGVmdCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0OwogICAgIHN0ZDo6dW5pcXVlX3B0cjxJ
bmxpbmVUZXh0SXRlbT4gcmlnaHQodW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKIAogICAgIGVudW0g
Y2xhc3MgVGV4dEl0ZW1UeXBlIHsgVW5kZWZpbmVkLCBXaGl0ZXNwYWNlLCBOb25XaGl0ZXNwYWNl
LCBTZWdtZW50QnJlYWsgfTsKLSAgICBJbmxpbmVUZXh0SXRlbShjb25zdCBCb3gmLCB1bnNpZ25l
ZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBUZXh0SXRlbVR5cGUpOworICAgIElubGluZVRleHRJ
dGVtKGNvbnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFs
PExheW91dFVuaXQ+IHdpZHRoLCBUZXh0SXRlbVR5cGUpOwogICAgIElubGluZVRleHRJdGVtKGNv
bnN0IEJveCYpOwogCiBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fc3RhcnQgeyAwIH07CiAgICAg
dW5zaWduZWQgbV9sZW5ndGggeyAwIH07CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gbV93aWR0
aDsKICAgICBUZXh0SXRlbVR5cGUgbV90ZXh0SXRlbVR5cGUgeyBUZXh0SXRlbVR5cGU6OlVuZGVm
aW5lZCB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oCmluZGV4IGE2YzkwYzIyMGNjOTQ5ODkyNjc2MDZmZjJj
MTYxZGQ3NTdiYTEyNDQuLjdlOGFhZTg2NGVjMzUwZGZmNmNkNjlkN2YxMzJjZWMxODZmNTcwN2Yg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL3RleHQv
VGV4dFV0aWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90
ZXh0L1RleHRVdGlsLmgKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiAKIGNs
YXNzIFRleHRVdGlsIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgTGF5b3V0VW5pdCB3aWR0aChjb25z
dCBCb3gmLCB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCB0bywgTGF5b3V0VW5pdCBjb250ZW50TG9n
aWNhbExlZnQpOworICAgIHN0YXRpYyBMYXlvdXRVbml0IHdpZHRoKGNvbnN0IEJveCYsIHVuc2ln
bmVkIGZyb20sIHVuc2lnbmVkIHRvLCBMYXlvdXRVbml0IGNvbnRlbnRMb2dpY2FsTGVmdCA9IHsg
fSk7CiAgICAgc3RhdGljIE9wdGlvbmFsPHVuc2lnbmVkPiBoeXBoZW5Qb3NpdGlvbkJlZm9yZShj
b25zdCBJbmxpbmVJdGVtJiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgbGVuZ3RoKTsKICAgICBz
dHJ1Y3QgU3BsaXREYXRhIHsKICAgICAgICAgdW5zaWduZWQgc3RhcnQgeyAwIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383970</attachid>
            <date>2019-11-20 10:13:58 -0800</date>
            <delta_ts>2019-11-20 10:57:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204412-20191120101358.patch</filename>
            <type>text/plain</type>
            <size>10247</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNjkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjFlODk3ODhlZWQwMzEz
YTY4MzMzNzAyMzBiNTk2MjZmOGE3ZWY2NC4uZGU4YzM2YzRjMDQ3ZTYyMjAxY2QxNWU2YzZkOWFh
M2Y2YzU5MmEzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDE5LTExLTIwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBDYWNoZSBJ
bmxpbnRlVGV4dEl0ZW0gd2lkdGggd2hlbiBwb3NzaWJsZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NDEyCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS81NzM1OTM2Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBBbnR0aSBLb2l2aXN0by4KKworICAg
ICAgICBUaGlzIGhlbHBzIHdoZW4gc3Vic2VxdWVudCBpbmxpbmUgbGF5b3V0cyB1c2UgdGhlIHNh
bWUgc2V0IG9mIElubGluZVRleHRJdGVtcyBhbmQgdGhleSB3b3VsZAorICAgICAgICBrZWVwIHJl
LW1lYXN1cmluZyB0aGVtIG9uIGVhY2ggbGF5b3V0IGZyYW1lIChlLmcuIHZpZXcgcmVzaXplKS4K
KworICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjppbmxpbmVJdGVtV2lkdGgpOgorICAgICAgICAq
IGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6SW5saW5lVGV4dEl0ZW06OmNyZWF0ZUFuZEFwcGVuZFRleHRJdGVtcyk6
CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNw
YWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRleHRJdGVtOjpjcmVh
dGVOb25XaGl0ZXNwYWNlSXRlbSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZVRl
eHRJdGVtOjpjcmVhdGVTZWdtZW50QnJlYWtJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lVGV4dEl0ZW06OklubGluZVRleHRJdGVtKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6SW5saW5lVGV4dEl0ZW06OmxlZnQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpJbmxpbmVUZXh0SXRlbTo6cmlnaHQgY29uc3QpOgorICAgICAgICAqIGxheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmg6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OklubGluZVRleHRJdGVtOjp3aWR0aCBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvdGV4dC9UZXh0VXRpbC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpUZXh0
VXRpbDo6d2lkdGgpOgorCiAyMDE5LTExLTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTIxNjEpOiBib3gtc2hhZG93IHdp
dGggaW5zZXQgYW5kIHJvdW5kZWQgYm9yZGVycyBpcyBjbGlwcGVkCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lTGF5b3V0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQu
Y3BwCmluZGV4IGM3ZGQwNDlkMDg2YzQwY2RhOWQ1MGIzZTU0NzQ2MTY4YjU2OTQ3M2IuLjdhZmNh
M2MzNDhlMjgxMmQyNjk5OTAxYzZmNzlkYjllYjVhMWYxNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVMYXlvdXQu
Y3BwCkBAIC00Miw2ICs0Miw4IEBAIHN0YXRpYyBMYXlvdXRVbml0IGlubGluZUl0ZW1XaWR0aChj
b25zdCBGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQsIGNvCiAKICAgICBpZiAo
aXM8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pKSB7CiAgICAgICAgIGF1dG8mIGlubGluZVRl
eHRJdGVtID0gZG93bmNhc3Q8SW5saW5lVGV4dEl0ZW0+KGlubGluZUl0ZW0pOworICAgICAgICBp
ZiAoYXV0byBjb250ZW50V2lkdGggPSBpbmxpbmVUZXh0SXRlbS53aWR0aCgpKQorICAgICAgICAg
ICAgcmV0dXJuICpjb250ZW50V2lkdGg7CiAgICAgICAgIGF1dG8gZW5kID0gaW5saW5lVGV4dEl0
ZW0uaXNDb2xsYXBzaWJsZSgpID8gaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSArIDEgOiBpbmxpbmVU
ZXh0SXRlbS5lbmQoKTsKICAgICAgICAgcmV0dXJuIFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0
SXRlbS5sYXlvdXRCb3goKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgZW5kLCBjb250ZW50TG9n
aWNhbExlZnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxp
bmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9p
bmxpbmVmb3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmNwcAppbmRleCA2MTVkNjk4ODk1YjMxMDdl
ZmM3YTY2NzdmMGRlNzJjM2FkYzY3ZGViLi40YzBkNTFjNThlY2Q4MjM3NTYyZGNjZTkxN2Y3Mjc0
OTcxM2FiZWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9JbmxpbmVUZXh0SXRlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lVGV4dEl0ZW0uY3BwCkBAIC04OSw2ICs4OSwxMyBAQCB2b2lkIElu
bGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGlu
ZUNvbnRlbnQsIGNvbnN0CiAgICAgYXV0byYgc3R5bGUgPSBpbmxpbmVCb3guc3R5bGUoKTsKICAg
ICBMYXp5TGluZUJyZWFrSXRlcmF0b3IgbGluZUJyZWFrSXRlcmF0b3IodGV4dCk7CiAgICAgdW5z
aWduZWQgY3VycmVudFBvc2l0aW9uID0gMDsKKworICAgIGF1dG8gaW5saW5lSXRlbVdpZHRoID0g
WyZdKGF1dG8gc3RhcnRQb3NpdGlvbiwgYXV0byBsZW5ndGgpIC0+IE9wdGlvbmFsPExheW91dFVu
aXQ+IHsKKyAgICAgICAgaWYgKCFpbmxpbmVCb3gudGV4dENvbnRleHQoKS5jYW5Vc2VTaW1wbGlm
aWVkQ29udGVudE1lYXN1cmluZykKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJl
dHVybiBUZXh0VXRpbDo6d2lkdGgoaW5saW5lQm94LCBzdGFydFBvc2l0aW9uLCBzdGFydFBvc2l0
aW9uICsgbGVuZ3RoKTsKKyAgICB9OworCiAgICAgd2hpbGUgKGN1cnJlbnRQb3NpdGlvbiA8IHRl
eHQubGVuZ3RoKCkpIHsKICAgICAgICAgYXV0byBpc1NlZ21lbnRCcmVha0NhbmRpZGF0ZSA9IFtd
KGF1dG8gY2hhcmFjdGVyKSB7CiAgICAgICAgICAgICByZXR1cm4gY2hhcmFjdGVyID09ICdcbic7
CkBAIC0xMDEsMzIgKzEwOCwzMyBAQCB2b2lkIElubGluZVRleHRJdGVtOjpjcmVhdGVBbmRBcHBl
bmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmIGlubGluZUNvbnRlbnQsIGNvbnN0CiAgICAgICAgICAg
ICArK2N1cnJlbnRQb3NpdGlvbjsKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisK
ICAgICAgICAgaWYgKGlzV2hpdGVzcGFjZUNoYXJhY3Rlcih0ZXh0W2N1cnJlbnRQb3NpdGlvbl0p
KSB7CiAgICAgICAgICAgICBhdXRvIGxlbmd0aCA9IG1vdmVUb05leHROb25XaGl0ZXNwYWNlUG9z
aXRpb24odGV4dCwgY3VycmVudFBvc2l0aW9uKTsKLSAgICAgICAgICAgIGlubGluZUNvbnRlbnQu
YXBwZW5kKElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShpbmxpbmVCb3gsIGN1
cnJlbnRQb3NpdGlvbiwgbGVuZ3RoKSk7CisgICAgICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVu
ZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oaW5saW5lQm94LCBjdXJyZW50
UG9zaXRpb24sIGxlbmd0aCwgaW5saW5lSXRlbVdpZHRoKGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3Ro
KSkpOwogICAgICAgICAgICAgY3VycmVudFBvc2l0aW9uICs9IGxlbmd0aDsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAKICAgICAgICAgYXV0byBsZW5ndGggPSBtb3ZlVG9OZXh0
QnJlYWthYmxlUG9zaXRpb24oY3VycmVudFBvc2l0aW9uLCBsaW5lQnJlYWtJdGVyYXRvciwgc3R5
bGUpOwotICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRl
Tm9uV2hpdGVzcGFjZUl0ZW0oaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCkpOwor
ICAgICAgICBpbmxpbmVDb250ZW50LmFwcGVuZChJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlTm9uV2hp
dGVzcGFjZUl0ZW0oaW5saW5lQm94LCBjdXJyZW50UG9zaXRpb24sIGxlbmd0aCwgaW5saW5lSXRl
bVdpZHRoKGN1cnJlbnRQb3NpdGlvbiwgbGVuZ3RoKSkpOwogICAgICAgICBjdXJyZW50UG9zaXRp
b24gKz0gbGVuZ3RoOwogICAgIH0KIH0KIAotc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVt
PiBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlV2hpdGVzcGFjZUl0ZW0oY29uc3QgQm94JiBpbmxpbmVC
b3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgpCitzdGQ6OnVuaXF1ZV9wdHI8SW5s
aW5lVGV4dEl0ZW0+IElubGluZVRleHRJdGVtOjpjcmVhdGVXaGl0ZXNwYWNlSXRlbShjb25zdCBC
b3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8
TGF5b3V0VW5pdD4gd2lkdGgpCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4dEl0
ZW0+KGlubGluZUJveCwgc3RhcnQsIGxlbmd0aCwgVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlKTsK
KyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBzdGFydCwg
bGVuZ3RoLCB3aWR0aCwgVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlKTsKIH0KIAotc3RkOjp1bmlx
dWVfcHRyPElubGluZVRleHRJdGVtPiBJbmxpbmVUZXh0SXRlbTo6Y3JlYXRlTm9uV2hpdGVzcGFj
ZUl0ZW0oY29uc3QgQm94JiBpbmxpbmVCb3gsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5n
dGgpCitzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IElubGluZVRleHRJdGVtOjpjcmVh
dGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQs
IHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgpCiB7Ci0gICAgcmV0
dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4dEl0ZW0+KGlubGluZUJveCwgc3RhcnQsIGxlbmd0aCwg
VGV4dEl0ZW1UeXBlOjpOb25XaGl0ZXNwYWNlKTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxp
bmVUZXh0SXRlbT4oaW5saW5lQm94LCBzdGFydCwgbGVuZ3RoLCB3aWR0aCwgVGV4dEl0ZW1UeXBl
OjpOb25XaGl0ZXNwYWNlKTsKIH0KIAogc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBJ
bmxpbmVUZXh0SXRlbTo6Y3JlYXRlU2VnbWVudEJyZWFrSXRlbShjb25zdCBCb3gmIGlubGluZUJv
eCwgdW5zaWduZWQgcG9zaXRpb24pCiB7Ci0gICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4
dEl0ZW0+KGlubGluZUJveCwgcG9zaXRpb24sIDEsIFRleHRJdGVtVHlwZTo6U2VnbWVudEJyZWFr
KTsKKyAgICByZXR1cm4gbWFrZVVuaXF1ZTxJbmxpbmVUZXh0SXRlbT4oaW5saW5lQm94LCBwb3Np
dGlvbiwgMSwgV1RGOjpudWxsb3B0LCBUZXh0SXRlbVR5cGU6OlNlZ21lbnRCcmVhayk7CiB9CiAK
IHN0ZDo6dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUVt
cHR5SXRlbShjb25zdCBCb3gmIGlubGluZUJveCkKQEAgLTEzNCwxMCArMTQyLDExIEBAIHN0ZDo6
dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gSW5saW5lVGV4dEl0ZW06OmNyZWF0ZUVtcHR5SXRl
bShjb25zdCBCb3gmIGlubGluCiAgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5saW5lVGV4dEl0ZW0+
KGlubGluZUJveCk7CiB9CiAKLUlubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBC
b3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgVGV4dEl0ZW1U
eXBlIHRleHRJdGVtVHlwZSkKK0lubGluZVRleHRJdGVtOjpJbmxpbmVUZXh0SXRlbShjb25zdCBC
b3gmIGlubGluZUJveCwgdW5zaWduZWQgc3RhcnQsIHVuc2lnbmVkIGxlbmd0aCwgT3B0aW9uYWw8
TGF5b3V0VW5pdD4gd2lkdGgsIFRleHRJdGVtVHlwZSB0ZXh0SXRlbVR5cGUpCiAgICAgOiBJbmxp
bmVJdGVtKGlubGluZUJveCwgVHlwZTo6VGV4dCkKICAgICAsIG1fc3RhcnQoc3RhcnQpCiAgICAg
LCBtX2xlbmd0aChsZW5ndGgpCisgICAgLCBtX3dpZHRoKHdpZHRoKQogICAgICwgbV90ZXh0SXRl
bVR5cGUodGV4dEl0ZW1UeXBlKQogewogfQpAQCAtMTUxLDE0ICsxNjAsMTQgQEAgc3RkOjp1bmlx
dWVfcHRyPElubGluZVRleHRJdGVtPiBJbmxpbmVUZXh0SXRlbTo6bGVmdCh1bnNpZ25lZCBsZW5n
dGgpIGNvbnN0CiB7CiAgICAgUkVMRUFTRV9BU1NFUlQobGVuZ3RoIDw9IHRoaXMtPmxlbmd0aCgp
KTsKICAgICBBU1NFUlQobV90ZXh0SXRlbVR5cGUgIT0gVGV4dEl0ZW1UeXBlOjpVbmRlZmluZWQp
OwotICAgIHJldHVybiBtYWtlVW5pcXVlPElubGluZVRleHRJdGVtPihsYXlvdXRCb3goKSwgc3Rh
cnQoKSwgbGVuZ3RoLCBtX3RleHRJdGVtVHlwZSk7CisgICAgcmV0dXJuIG1ha2VVbmlxdWU8SW5s
aW5lVGV4dEl0ZW0+KGxheW91dEJveCgpLCBzdGFydCgpLCBsZW5ndGgsIFdURjo6bnVsbG9wdCwg
bV90ZXh0SXRlbVR5cGUpOwogfQogCiBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IElu
bGluZVRleHRJdGVtOjpyaWdodCh1bnNpZ25lZCBsZW5ndGgpIGNvbnN0CiB7CiAgICAgUkVMRUFT
RV9BU1NFUlQobGVuZ3RoIDw9IHRoaXMtPmxlbmd0aCgpKTsKICAgICBBU1NFUlQobV90ZXh0SXRl
bVR5cGUgIT0gVGV4dEl0ZW1UeXBlOjpVbmRlZmluZWQpOwotICAgIHJldHVybiBtYWtlVW5pcXVl
PElubGluZVRleHRJdGVtPihsYXlvdXRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwgbV90
ZXh0SXRlbVR5cGUpOworICAgIHJldHVybiBtYWtlVW5pcXVlPElubGluZVRleHRJdGVtPihsYXlv
dXRCb3goKSwgZW5kKCkgLSBsZW5ndGgsIGxlbmd0aCwgV1RGOjpudWxsb3B0LCBtX3RleHRJdGVt
VHlwZSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZVRleHRJdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5l
Zm9ybWF0dGluZy9JbmxpbmVUZXh0SXRlbS5oCmluZGV4IDAwYjc1ZmVkMWU5NTgxYjlkMTQ3ZDgw
MjZlMDQ1M2RkY2JkOTMyNjkuLjQyNWFhZTFiNGZiMTU3YjZkNTcxMDhmZTgxYWQ0Y2I2Njc5Y2Vl
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lu
bGluZVRleHRJdGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvSW5saW5lVGV4dEl0ZW0uaApAQCAtMzcsOCArMzcsOCBAQCBjbGFzcyBJbmxpbmVUZXh0SXRl
bSA6IHB1YmxpYyBJbmxpbmVJdGVtIHsKIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBjcmVhdGVB
bmRBcHBlbmRUZXh0SXRlbXMoSW5saW5lSXRlbXMmLCBjb25zdCBCb3gmKTsKIAotICAgIHN0YXRp
YyBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IGNyZWF0ZVdoaXRlc3BhY2VJdGVtKGNv
bnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgpOwotICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IGNyZWF0ZU5vbldoaXRlc3BhY2VJdGVtKGNv
bnN0IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgpOworICAgIHN0YXRpYyBz
dGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+IGNyZWF0ZVdoaXRlc3BhY2VJdGVtKGNvbnN0
IEJveCYsIHVuc2lnbmVkIHN0YXJ0LCB1bnNpZ25lZCBsZW5ndGgsIE9wdGlvbmFsPExheW91dFVu
aXQ+IHdpZHRoKTsKKyAgICBzdGF0aWMgc3RkOjp1bmlxdWVfcHRyPElubGluZVRleHRJdGVtPiBj
cmVhdGVOb25XaGl0ZXNwYWNlSXRlbShjb25zdCBCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWdu
ZWQgbGVuZ3RoLCBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aCk7CiAgICAgc3RhdGljIHN0ZDo6
dW5pcXVlX3B0cjxJbmxpbmVUZXh0SXRlbT4gY3JlYXRlU2VnbWVudEJyZWFrSXRlbShjb25zdCBC
b3gmLCB1bnNpZ25lZCBwb3NpdGlvbik7CiAgICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxJbmxp
bmVUZXh0SXRlbT4gY3JlYXRlRW1wdHlJdGVtKGNvbnN0IEJveCYpOwogCkBAIC00OSwxNyArNDks
MTkgQEAgcHVibGljOgogICAgIGJvb2wgaXNXaGl0ZXNwYWNlKCkgY29uc3QgeyByZXR1cm4gbV90
ZXh0SXRlbVR5cGUgPT0gVGV4dEl0ZW1UeXBlOjpXaGl0ZXNwYWNlIHx8IGlzU2VnbWVudEJyZWFr
KCk7IH0KICAgICBib29sIGlzQ29sbGFwc2libGUoKSBjb25zdCB7IHJldHVybiBpc1doaXRlc3Bh
Y2UoKSAmJiBzdHlsZSgpLmNvbGxhcHNlV2hpdGVTcGFjZSgpOyB9CiAgICAgYm9vbCBpc1NlZ21l
bnRCcmVhaygpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dEl0ZW1UeXBlID09IFRleHRJdGVtVHlwZTo6
U2VnbWVudEJyZWFrOyB9CisgICAgT3B0aW9uYWw8TGF5b3V0VW5pdD4gd2lkdGgoKSBjb25zdCB7
IHJldHVybiBtX3dpZHRoOyB9CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5lVGV4dEl0ZW0+
IGxlZnQodW5zaWduZWQgbGVuZ3RoKSBjb25zdDsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SW5saW5l
VGV4dEl0ZW0+IHJpZ2h0KHVuc2lnbmVkIGxlbmd0aCkgY29uc3Q7CiAKICAgICBlbnVtIGNsYXNz
IFRleHRJdGVtVHlwZSB7IFVuZGVmaW5lZCwgV2hpdGVzcGFjZSwgTm9uV2hpdGVzcGFjZSwgU2Vn
bWVudEJyZWFrIH07Ci0gICAgSW5saW5lVGV4dEl0ZW0oY29uc3QgQm94JiwgdW5zaWduZWQgc3Rh
cnQsIHVuc2lnbmVkIGxlbmd0aCwgVGV4dEl0ZW1UeXBlKTsKKyAgICBJbmxpbmVUZXh0SXRlbShj
b25zdCBCb3gmLCB1bnNpZ25lZCBzdGFydCwgdW5zaWduZWQgbGVuZ3RoLCBPcHRpb25hbDxMYXlv
dXRVbml0PiB3aWR0aCwgVGV4dEl0ZW1UeXBlKTsKICAgICBJbmxpbmVUZXh0SXRlbShjb25zdCBC
b3gmKTsKIAogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3N0YXJ0IHsgMCB9OwogICAgIHVuc2ln
bmVkIG1fbGVuZ3RoIHsgMCB9OworICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG1fd2lkdGg7CiAg
ICAgVGV4dEl0ZW1UeXBlIG1fdGV4dEl0ZW1UeXBlIHsgVGV4dEl0ZW1UeXBlOjpVbmRlZmluZWQg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL3RleHQvVGV4dFV0aWwuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0
aW5nL3RleHQvVGV4dFV0aWwuaAppbmRleCBhNmM5MGMyMjBjYzk0OTg5MjY3NjA2ZmYyYzE2MWRk
NzU3YmExMjQ0Li43ZThhYWU4NjRlYzM1MGRmZjZjZDY5ZDdmMTMyY2VjMTg2ZjU3MDdmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy90ZXh0L1RleHRV
dGlsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvdGV4dC9U
ZXh0VXRpbC5oCkBAIC0zNCw3ICszNCw3IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogCiBjbGFzcyBU
ZXh0VXRpbCB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIExheW91dFVuaXQgd2lkdGgoY29uc3QgQm94
JiwgdW5zaWduZWQgZnJvbSwgdW5zaWduZWQgdG8sIExheW91dFVuaXQgY29udGVudExvZ2ljYWxM
ZWZ0KTsKKyAgICBzdGF0aWMgTGF5b3V0VW5pdCB3aWR0aChjb25zdCBCb3gmLCB1bnNpZ25lZCBm
cm9tLCB1bnNpZ25lZCB0bywgTGF5b3V0VW5pdCBjb250ZW50TG9naWNhbExlZnQgPSB7IH0pOwog
ICAgIHN0YXRpYyBPcHRpb25hbDx1bnNpZ25lZD4gaHlwaGVuUG9zaXRpb25CZWZvcmUoY29uc3Qg
SW5saW5lSXRlbSYsIHVuc2lnbmVkIGZyb20sIHVuc2lnbmVkIGxlbmd0aCk7CiAgICAgc3RydWN0
IFNwbGl0RGF0YSB7CiAgICAgICAgIHVuc2lnbmVkIHN0YXJ0IHsgMCB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>