<?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>205623</bug_id>
          
          <creation_ts>2019-12-28 19:58:31 -0800</creation_ts>
          <short_desc>[LFC][IFC] Add LineBreaker::Result::Revert to indicate an earlier line wrap opportunity</short_desc>
          <delta_ts>2019-12-29 10:28:33 -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>1601727</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-28 19:58:31 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601728</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-28 19:58:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/58228339&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601729</commentid>
    <comment_count>2</comment_count>
      <attachid>386480</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-28 20:07:29 -0800</bug_when>
    <thetext>Created attachment 386480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601753</commentid>
    <comment_count>3</comment_count>
      <attachid>386480</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-12-29 02:31:59 -0800</bug_when>
    <thetext>Comment on attachment 386480
Patch

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

&gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp:140
&gt; -        return { Result::Action::Keep, IsEndOfLine::No, { } };
&gt; +        return Result { Result::Action::Keep };

Why name the type here and elsewhere?

&gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.h:66
&gt; +        Result(Action, IsEndOfLine = IsEndOfLine::No, Optional&lt;PartialTrailingContent&gt; = WTF::nullopt, const InlineItem* revertTo = nullptr);
&gt; +
&gt; +        Action action { Action::Keep };
&gt; +        IsEndOfLine isEndOfLine { IsEndOfLine::No };
&gt;          Optional&lt;PartialTrailingContent&gt; partialTrailingContent;
&gt; +        const InlineItem* revertTo { nullptr };
&gt;      };

I don&apos;t think you need a constructor if you make it

Optional&lt;PartialTrailingContent&gt; partialTrailingContent { };</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601763</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-12-29 08:54:03 -0800</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 386480 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=386480&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.cpp:140
&gt; &gt; -        return { Result::Action::Keep, IsEndOfLine::No, { } };
&gt; &gt; +        return Result { Result::Action::Keep };
&gt; 
&gt; Why name the type here and elsewhere?
Because I did not pay attention?

&gt; 
&gt; &gt; Source/WebCore/layout/inlineformatting/InlineLineBreaker.h:66
&gt; &gt; +        Result(Action, IsEndOfLine = IsEndOfLine::No, Optional&lt;PartialTrailingContent&gt; = WTF::nullopt, const InlineItem* revertTo = nullptr);
&gt; &gt; +
&gt; &gt; +        Action action { Action::Keep };
&gt; &gt; +        IsEndOfLine isEndOfLine { IsEndOfLine::No };
&gt; &gt;          Optional&lt;PartialTrailingContent&gt; partialTrailingContent;
&gt; &gt; +        const InlineItem* revertTo { nullptr };
&gt; &gt;      };
&gt; 
&gt; I don&apos;t think you need a constructor if you make it
&gt; 
&gt; Optional&lt;PartialTrailingContent&gt; partialTrailingContent { };
oh cool</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601768</commentid>
    <comment_count>5</comment_count>
      <attachid>386492</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-12-29 09:29:20 -0800</bug_when>
    <thetext>Created attachment 386492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601777</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-29 10:27:41 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 386492:

imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html bug 203433
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601778</commentid>
    <comment_count>7</comment_count>
      <attachid>386492</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-29 10:28:31 -0800</bug_when>
    <thetext>Comment on attachment 386492
Patch

Clearing flags on attachment: 386492

Committed r253937: &lt;https://trac.webkit.org/changeset/253937&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1601779</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-29 10:28:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386480</attachid>
            <date>2019-12-28 20:07:29 -0800</date>
            <delta_ts>2019-12-29 09:29:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205623-20191228200728.patch</filename>
            <type>text/plain</type>
            <size>9233</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmI3YmMwOWQ2MTYxYTNj
NzRhM2M5ZjM0MzI0N2MyZDkyYmNiNTE0ZS4uYjgzNTM4YzZlMjY5MjQ4ZDkxNWY2MmJlYzJmNTM2
ZjRhZGE0ZTdkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTI4ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgTGlu
ZUJyZWFrZXI6OlJlc3VsdDo6UmV2ZXJ0IHRvIGluZGljYXRlIGFuIGVhcmxpZXIgbGluZSB3cmFw
IG9wcG9ydHVuaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU2MjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MjI4MzM5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlZSB3ZWJraXQub3JnL2Iv
MjA1NjEzIGZvciBtb3JlIGluZm8uCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
cmVha2VyOjpSZXN1bHQ6OlJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
cmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmg6CisgICAgICAgICogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6Y2hlY2tGb3JMaW5lV3JhcEFuZENvbW1pdCk6
CisKIDIwMTktMTItMjggIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIE1vdmUgc29mdCB3cmFwIG9wcG9ydHVuaXR5IGNvZGUgb3V0IG9mIExpbmVC
cmVha2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggNThkZTUxY2YwMTRiN2QzMjY3MTll
ZjQ4MTkwNDdhYTMwNzRjZWVmOC4uYzJkM2E1OWJlNjFhZjlmODU1Y2RjZjU1OWFlODYwOGQzM2Q1
YmFkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcApAQCAtODYsNiArODYsMTQgQEAgc3RydWN0
IFdyYXBwZWRUZXh0Q29udGVudCB7CiAgICAgT3B0aW9uYWw8TGluZUJyZWFrZXI6OlBhcnRpYWxS
dW4+IHBhcnRpYWxUcmFpbGluZ1J1bjsKIH07CiAKK0xpbmVCcmVha2VyOjpSZXN1bHQ6OlJlc3Vs
dChBY3Rpb24gYWN0aW9uLCBJc0VuZE9mTGluZSBpc0VuZE9mTGluZSwgT3B0aW9uYWw8UGFydGlh
bFRyYWlsaW5nQ29udGVudD4gcGFydGlhbFRyYWlsaW5nQ29udGVudCwgY29uc3QgSW5saW5lSXRl
bSogcmV2ZXJ0VG8pCisgICAgOiBhY3Rpb24oYWN0aW9uKQorICAgICwgaXNFbmRPZkxpbmUoaXNF
bmRPZkxpbmUpCisgICAgLCBwYXJ0aWFsVHJhaWxpbmdDb250ZW50KHBhcnRpYWxUcmFpbGluZ0Nv
bnRlbnQpCisgICAgLCByZXZlcnRUbyhyZXZlcnRUbykKK3sKK30KKwogYm9vbCBMaW5lQnJlYWtl
cjo6aXNDb250ZW50V3JhcHBpbmdBbGxvd2VkKGNvbnN0IENvbnRpbm91c0NvbnRlbnQmIGNhbmRp
ZGF0ZVJ1bnMpIGNvbnN0CiB7CiAgICAgLy8gVXNlIHRoZSBsYXN0IGlubGluZSBpdGVtIHdpdGgg
Y29udGVudCAod2hlcmUgd2Ugd291bGQgYmUgd3JhcHBpbmcpIHRvIGRlY2lkZSBpZiBjb250ZW50
IHdyYXBwaW5nIGlzIGFsbG93ZWQuCkBAIC0xMjksMjggKzEzNywyOCBAQCBMaW5lQnJlYWtlcjo6
UmVzdWx0IExpbmVCcmVha2VyOjpzaG91bGRXcmFwSW5saW5lQ29udGVudChjb25zdCBSdW5MaXN0
JiBjYW5kaWRhdAogTGluZUJyZWFrZXI6OlJlc3VsdCBMaW5lQnJlYWtlcjo6dHJ5V3JhcHBpbmdJ
bmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRlbnQmIGNhbmRpZGF0ZUNvbnRlbnQsIGNv
bnN0IExpbmVTdGF0dXMmIGxpbmVTdGF0dXMpIGNvbnN0CiB7CiAgICAgaWYgKGNhbmRpZGF0ZUNv
bnRlbnQud2lkdGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQotICAgICAgICByZXR1
cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6Ok5vLCB7IH0gfTsKKyAgICAg
ICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwIH07CiAgICAgaWYgKGNhbmRp
ZGF0ZUNvbnRlbnQuaGFzVHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQoKSkgewogICAgICAgICBB
U1NFUlQoY2FuZGlkYXRlQ29udGVudC5oYXNUZXh0Q29udGVudE9ubHkoKSk7CiAgICAgICAgIGF1
dG8gSXNFbmRPZkxpbmUgPSBpc0NvbnRlbnRXcmFwcGluZ0FsbG93ZWQoY2FuZGlkYXRlQ29udGVu
dCkgPyBJc0VuZE9mTGluZTo6WWVzIDogSXNFbmRPZkxpbmU6Ok5vOwogICAgICAgICAvLyBGaXJz
dCBjaGVjayBpZiB0aGUgY29udGVudCBmaXRzIHdpdGhvdXQgdGhlIHRyYWlsaW5nIGNvbGxhcHNp
YmxlIHBhcnQuCiAgICAgICAgIGlmIChjYW5kaWRhdGVDb250ZW50Lm5vbkNvbGxhcHNpYmxlV2lk
dGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQotICAgICAgICAgICAgcmV0dXJuIHsg
UmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lLCB7IH0gfTsKKyAgICAgICAgICAgIHJl
dHVybiBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmUgfTsKICAgICAg
ICAgLy8gTm93IGNoZWNrIGlmIHdlIGNhbiB0cmltIHRoZSBsaW5lIHRvby4KICAgICAgICAgaWYg
KGxpbmVTdGF0dXMubGluZUhhc0Z1bGx5Q29sbGFwc2libGVUcmFpbGluZ1J1biAmJiBjYW5kaWRh
dGVDb250ZW50LmlzVHJhaWxpbmdDb250ZW50RnVsbHlDb2xsYXBzaWJsZSgpKSB7CiAgICAgICAg
ICAgICAvLyBJZiB0aGlzIG5ldyBjb250ZW50IGlzIGZ1bGx5IGNvbGxhcHNpYmxlLCBpdCBzaG91
ZCBzdXJlbHkgZml0LgotICAgICAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAs
IElzRW5kT2ZMaW5lLCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiBSZXN1bHQgeyBSZXN1bHQ6
OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmUgfTsKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAo
bGluZVN0YXR1cy5jb2xsYXBzaWJsZVdpZHRoICYmIGNhbmRpZGF0ZUNvbnRlbnQuaGFzTm9uQ29u
dGVudFJ1bnNPbmx5KCkpIHsKICAgICAgICAgLy8gTGV0J3Mgc2VlIGlmIHRoZSBub24tY29udGVu
dCBydW5zIGZpdCB3aGVuIHRoZSBsaW5lIGhhcyB0cmFpbGluZyBjb2xsYXBzaWJsZSBjb250ZW50
LgogICAgICAgICAvLyAidGV4dCBjb250ZW50IDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAxcHgiPjwv
c3Bhbj4iIDwtIHRoZSA8c3Bhbj48L3NwYW4+IHJ1bnMgY291bGQgZml0IGFmdGVyIGNvbGxhcHNp
bmcgdGhlIHRyYWlsaW5nIHdoaXRlc3BhY2UuCiAgICAgICAgIGlmIChjYW5kaWRhdGVDb250ZW50
LndpZHRoKCkgPD0gbGluZVN0YXR1cy5hdmFpbGFibGVXaWR0aCArIGxpbmVTdGF0dXMuY29sbGFw
c2libGVXaWR0aCkKLSAgICAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJ
c0VuZE9mTGluZTo6Tm8sIHsgfSB9OworICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3Vs
dDo6QWN0aW9uOjpLZWVwIH07CiAgICAgfQogICAgIGlmIChjYW5kaWRhdGVDb250ZW50LmlzVmlz
dWFsbHlFbXB0eVdoaXRlc3BhY2VDb250ZW50T25seSgpICYmIHNob3VsZEtlZXBFbmRPZkxpbmVX
aGl0ZXNwYWNlKGNhbmRpZGF0ZUNvbnRlbnQpKSB7CiAgICAgICAgIC8vIFRoaXMgb3ZlcmZsb3dp
bmcgY29udGVudCBhcHBhcmVudGx5IGZhbGxzIGludG8gdGhlIHJlbW92ZS9oYW5nIGVuZC1vZi1s
aW5lLXNwYWNlcyBjYXRlcmdvcnkuCiAgICAgICAgIC8vIHNlZSBodHRwczovL3d3dy53My5vcmcv
VFIvY3NzLXRleHQtMy8jd2hpdGUtc3BhY2UtcHJvcGVydHkgbWF0cml4Ci0gICAgICAgIHJldHVy
biB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZTo6Tm8sIHsgfSB9OworICAgICAg
ICByZXR1cm4gUmVzdWx0IHsgUmVzdWx0OjpBY3Rpb246OktlZXAgfTsKICAgICB9CiAKICAgICBp
ZiAoY2FuZGlkYXRlQ29udGVudC5oYXNUZXh0Q29udGVudE9ubHkoKSkgewpAQCAtMTY2LDIxICsx
NzQsMjMgQEAgTGluZUJyZWFrZXI6OlJlc3VsdCBMaW5lQnJlYWtlcjo6dHJ5V3JhcHBpbmdJbmxp
bmVDb250ZW50KGNvbnN0IENvbnRpbm91c0NvbnRlbnQKICAgICAgICAgICAgICAgICBhdXRvJiBp
bmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElubGluZVRleHRJdGVtPihydW5zW2ZpcnN0VGV4dFJ1
bkluZGV4XS5pbmxpbmVJdGVtKTsKICAgICAgICAgICAgICAgICBBU1NFUlQoaW5saW5lVGV4dEl0
ZW0ubGVuZ3RoKCkpOwogICAgICAgICAgICAgICAgIGlmIChpbmxpbmVUZXh0SXRlbS5sZW5ndGgo
KSA9PSAxKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2Vl
cCwgSXNFbmRPZkxpbmU6OlllcywgeyB9IH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBS
ZXN1bHQgeyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6OlllcyB9OwogICAgICAg
ICAgICAgICAgIGF1dG8gZmlyc3RDaGFyYWN0ZXJXaWR0aCA9IFRleHRVdGlsOjp3aWR0aChpbmxp
bmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQo
KSArIDEpOwogICAgICAgICAgICAgICAgIGF1dG8gZmlyc3RDaGFyYWN0ZXJSdW4gPSBQYXJ0aWFs
UnVuIHsgMSwgZmlyc3RDaGFyYWN0ZXJXaWR0aCwgZmFsc2UgfTsKLSAgICAgICAgICAgICAgICBy
ZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6U3BsaXQsIElzRW5kT2ZMaW5lOjpZZXMsIFJlc3VsdDo6
UGFydGlhbFRyYWlsaW5nQ29udGVudCB7IGZpcnN0VGV4dFJ1bkluZGV4LCBmaXJzdENoYXJhY3Rl
clJ1biB9IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9u
OjpTcGxpdCwgSXNFbmRPZkxpbmU6OlllcywgUmVzdWx0OjpQYXJ0aWFsVHJhaWxpbmdDb250ZW50
IHsgZmlyc3RUZXh0UnVuSW5kZXgsIGZpcnN0Q2hhcmFjdGVyUnVuIH0gfTsKICAgICAgICAgICAg
IH0KICAgICAgICAgICAgIGF1dG8gc3BsaXRDb250ZW50ID0gUmVzdWx0OjpQYXJ0aWFsVHJhaWxp
bmdDb250ZW50IHsgd3JhcHBlZFRleHRDb250ZW50LT50cmFpbGluZ1J1bkluZGV4LCB3cmFwcGVk
VGV4dENvbnRlbnQtPnBhcnRpYWxUcmFpbGluZ1J1biB9OwotICAgICAgICAgICAgcmV0dXJuIHsg
UmVzdWx0OjpBY3Rpb246OlNwbGl0LCBJc0VuZE9mTGluZTo6WWVzLCBzcGxpdENvbnRlbnQgfTsK
KyAgICAgICAgICAgIHJldHVybiBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlvbjo6U3BsaXQsIElzRW5k
T2ZMaW5lOjpZZXMsIHNwbGl0Q29udGVudCB9OwogICAgICAgICB9CiAgICAgfQogICAgIC8vIElm
IHdlIGFyZSBub3QgYWxsb3dlZCB0byBicmVhayB0aGlzIGNvbnRlbnQsIHdlIHN0aWxsIG5lZWQg
dG8gZGVjaWRlIHdoZXRoZXIga2VlcCBpdCBvciBwdXNoIGl0IHRvIHRoZSBuZXh0IGxpbmUuCi0g
ICAgYXV0byBpc1dyYXBwaW5nQWxsb3dlZCA9IGlzQ29udGVudFdyYXBwaW5nQWxsb3dlZChjYW5k
aWRhdGVDb250ZW50KTsKLSAgICBhdXRvIGxldENvbnRlbnRPdmVyZmxvdyA9IGxpbmVTdGF0dXMu
bGluZUlzRW1wdHkgfHwgIWlzV3JhcHBpbmdBbGxvd2VkOwotICAgIGlmICghbGV0Q29udGVudE92
ZXJmbG93KQotICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6UHVzaCwgSXNFbmRPZkxp
bmU6OlllcywgeyB9IH07Ci0gICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIGlzV3Jh
cHBpbmdBbGxvd2VkID8gSXNFbmRPZkxpbmU6OlllcyA6IElzRW5kT2ZMaW5lOjpObywgeyB9IH07
CisgICAgaWYgKGxpbmVTdGF0dXMubGluZUlzRW1wdHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2xh
c3RXcmFwT3Bwb3J0dW5pdHkpOworICAgICAgICByZXR1cm4gUmVzdWx0IHsgUmVzdWx0OjpBY3Rp
b246OktlZXAsIElzRW5kT2ZMaW5lOjpZZXMgfTsKKyAgICB9CisgICAgaWYgKG1fbGFzdFdyYXBP
cHBvcnR1bml0eSkKKyAgICAgICAgcmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpSZXZl
cnQsIElzRW5kT2ZMaW5lOjpZZXMsIHsgfSwgbV9sYXN0V3JhcE9wcG9ydHVuaXR5IH07CisgICAg
cmV0dXJuIFJlc3VsdCB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBpc0NvbnRlbnRXcmFwcGluZ0Fs
bG93ZWQoY2FuZGlkYXRlQ29udGVudCkgPyBJc0VuZE9mTGluZTo6WWVzIDogSXNFbmRPZkxpbmU6
Ok5vIH07CiB9CiAKIGJvb2wgTGluZUJyZWFrZXI6OnNob3VsZFdyYXBGbG9hdEJveChJbmxpbmVM
YXlvdXRVbml0IGZsb2F0TG9naWNhbFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdp
ZHRoLCBib29sIGxpbmVJc0VtcHR5KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmgKaW5kZXggZjcxNDk1MGMw
ODcxN2RkN2IyYzdlYmY0MDJkMDk1ZjlkNTg1MjAzYS4uNGJjYjEyZDFhYTExM2FkNTFkMzliMWVk
ZTM5OTg2MWNmOTM5NDAyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGlu
ZWZvcm1hdHRpbmcvSW5saW5lTGluZUJyZWFrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5oCkBAIC00OSwxNSArNDksMjAg
QEAgcHVibGljOgogICAgICAgICBlbnVtIGNsYXNzIEFjdGlvbiB7CiAgICAgICAgICAgICBLZWVw
LCAvLyBLZWVwIGNvbnRlbnQgb24gdGhlIGN1cnJlbnQgbGluZS4KICAgICAgICAgICAgIFNwbGl0
LCAvLyBQYXJ0aWFsIGNvbnRlbnQgaXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICAgICAgICAg
IFB1c2ggLy8gQ29udGVudCBpcyBwdXNoZWQgdG8gdGhlIG5leHQgbGluZS4KKyAgICAgICAgICAg
IFB1c2gsIC8vIENvbnRlbnQgaXMgcHVzaGVkIHRvIHRoZSBuZXh0IGxpbmUuCisgICAgICAgICAg
ICBSZXZlcnQgLy8gVGhlIGN1cnJlbnQgY29udGVudCBvdmVyZmxvd3MgYW5kIGNhbid0IGdldCB3
cmFwcGVkLiBUaGUgbGluZSBuZWVkcyB0byBiZSByZXZlcnRlZCBiYWNrIHRvIHRoZSBsYXN0IGxp
bmUgd3JhcHBpbmcgb3Bwb3J0dW5pdHkuCiAgICAgICAgIH07Ci0gICAgICAgIEFjdGlvbiBhY3Rp
b24geyBBY3Rpb246OktlZXAgfTsKLSAgICAgICAgSXNFbmRPZkxpbmUgaXNFbmRPZkxpbmUgeyBJ
c0VuZE9mTGluZTo6Tm8gfTsKICAgICAgICAgc3RydWN0IFBhcnRpYWxUcmFpbGluZ0NvbnRlbnQg
ewogICAgICAgICAgICAgc2l6ZV90IHRyYWlsaW5nUnVuSW5kZXggeyAwIH07CiAgICAgICAgICAg
ICBPcHRpb25hbDxQYXJ0aWFsUnVuPiBwYXJ0aWFsUnVuOyAvLyBudWxsb3B0IHBhcnRpYWwgcnVu
IG1lYW5zIHRoZSB0cmFpbGluZyBydW4gaXMgYSBjb21wbGV0ZSBydW4uCiAgICAgICAgIH07CisK
KyAgICAgICAgUmVzdWx0KEFjdGlvbiwgSXNFbmRPZkxpbmUgPSBJc0VuZE9mTGluZTo6Tm8sIE9w
dGlvbmFsPFBhcnRpYWxUcmFpbGluZ0NvbnRlbnQ+ID0gV1RGOjpudWxsb3B0LCBjb25zdCBJbmxp
bmVJdGVtKiByZXZlcnRUbyA9IG51bGxwdHIpOworCisgICAgICAgIEFjdGlvbiBhY3Rpb24geyBB
Y3Rpb246OktlZXAgfTsKKyAgICAgICAgSXNFbmRPZkxpbmUgaXNFbmRPZkxpbmUgeyBJc0VuZE9m
TGluZTo6Tm8gfTsKICAgICAgICAgT3B0aW9uYWw8UGFydGlhbFRyYWlsaW5nQ29udGVudD4gcGFy
dGlhbFRyYWlsaW5nQ29udGVudDsKKyAgICAgICAgY29uc3QgSW5saW5lSXRlbSogcmV2ZXJ0VG8g
eyBudWxscHRyIH07CiAgICAgfTsKIAogICAgIHN0cnVjdCBSdW4gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRl
eHQuY3BwCmluZGV4IGZkZTQ5YzMzYjc3MzNlYTIwNDJlYWViZDRmMmE5NzBlMGM1YWNjY2UuLjIw
ZmJhMThhZGRhYjEzMjZlMGYwMDJhMDc1NWU0OWU5YzEyM2U1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVMYXlvdXRDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9MaW5lTGF5b3V0Q29u
dGV4dC5jcHAKQEAgLTQxMiw2ICs0MTIsMTAgQEAgTGluZUxheW91dENvbnRleHQ6OkNvbW1pdHRl
ZENvbnRlbnQgTGluZUxheW91dENvbnRleHQ6OmNoZWNrRm9yTGluZVdyYXBBbmRDb21taXQKICAg
ICAgICAgLy8gVGhpcyBjb250aW51b3VzIGNvbnRlbnQgY2FuJ3QgYmUgcGxhY2VkIG9uIHRoZSBj
dXJyZW50IGxpbmUuIE5vdGhpbmcgdG8gY29tbWl0IGF0IHRoaXMgdGltZS4KICAgICAgICAgcmV0
dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCAwLCB7IH0gfTsKICAgICB9CisgICAgaWYgKHJlc3Vs
dC5hY3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpSZXZlcnQpIHsKKyAgICAg
ICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAgICAgICAgcmV0dXJuIHsgcmVzdWx0
LmlzRW5kT2ZMaW5lLCAwLCB7IH0gfTsKKyAgICB9CiAgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0g
TGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpTcGxpdCkgewogICAgICAgICAvLyBDb21taXQg
dGhlIGNvbWJpbmF0aW9uIG9mIGZ1bGwgYW5kIHBhcnRpYWwgY29udGVudCBvbiB0aGUgY3VycmVu
dCBsaW5lLgogICAgICAgICBBU1NFUlQocmVzdWx0LnBhcnRpYWxUcmFpbGluZ0NvbnRlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386492</attachid>
            <date>2019-12-29 09:29:20 -0800</date>
            <delta_ts>2019-12-29 10:28:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-205623-20191229092919.patch</filename>
            <type>text/plain</type>
            <size>8111</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUzOTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDcwYjA1YmNkNjA0Y2M0
YzRmOTY3MmU4YTRjZDZhZjJhZjY2NGI1Ny4uMzA1YjAzMWI3ZGMyZjg4MjNhMmVlOTAwYjk5YjE0
YTFlNGU3MzY0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDE5LTEyLTI5ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bSUZDXSBBZGQgTGlu
ZUJyZWFrZXI6OlJlc3VsdDo6UmV2ZXJ0IHRvIGluZGljYXRlIGFuIGVhcmxpZXIgbGluZSB3cmFw
IG9wcG9ydHVuaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMDU2MjMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MjI4MzM5PgorCisgICAgICAg
IFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgIFNlZSB3ZWJraXQub3JnL2Iv
MjA1NjEzIGZvciBtb3JlIGluZm8uCisKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
cmVha2VyOjpSZXN1bHQ6OlJlc3VsdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxpbmVC
cmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNvbnRlbnQgY29uc3QpOgorICAgICAgICAqIGxheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmg6CisgICAgICAgICogbGF5b3V0
L2lubGluZWZvcm1hdHRpbmcvTGluZUxheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpMaW5lTGF5b3V0Q29udGV4dDo6Y2hlY2tGb3JMaW5lV3JhcEFuZENvbW1pdCk6
CisKIDIwMTktMTItMjkgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbTEZDXVtJRkNdIE1vdmUgc29mdCB3cmFwIG9wcG9ydHVuaXR5IGNvZGUgb3V0IG9mIExpbmVC
cmVha2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGlu
Zy9JbmxpbmVMaW5lQnJlYWtlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9y
bWF0dGluZy9JbmxpbmVMaW5lQnJlYWtlci5jcHAKaW5kZXggNThkZTUxY2YwMTRiN2QzMjY3MTll
ZjQ4MTkwNDdhYTMwNzRjZWVmOC4uNGZiNTY0YzU2NDEzOThlNzY1MWZiNzIxYTM0ZDljNTc3Mzkx
ZjdhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcv
SW5saW5lTGluZUJyZWFrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVm
b3JtYXR0aW5nL0lubGluZUxpbmVCcmVha2VyLmNwcApAQCAtMTI5LDI4ICsxMjksMjggQEAgTGlu
ZUJyZWFrZXI6OlJlc3VsdCBMaW5lQnJlYWtlcjo6c2hvdWxkV3JhcElubGluZUNvbnRlbnQoY29u
c3QgUnVuTGlzdCYgY2FuZGlkYXQKIExpbmVCcmVha2VyOjpSZXN1bHQgTGluZUJyZWFrZXI6OnRy
eVdyYXBwaW5nSW5saW5lQ29udGVudChjb25zdCBDb250aW5vdXNDb250ZW50JiBjYW5kaWRhdGVD
b250ZW50LCBjb25zdCBMaW5lU3RhdHVzJiBsaW5lU3RhdHVzKSBjb25zdAogewogICAgIGlmIChj
YW5kaWRhdGVDb250ZW50LndpZHRoKCkgPD0gbGluZVN0YXR1cy5hdmFpbGFibGVXaWR0aCkKLSAg
ICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lOjpObywgeyB9
IH07CisgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwIH07CiAgICAgaWYgKGNh
bmRpZGF0ZUNvbnRlbnQuaGFzVHJhaWxpbmdDb2xsYXBzaWJsZUNvbnRlbnQoKSkgewogICAgICAg
ICBBU1NFUlQoY2FuZGlkYXRlQ29udGVudC5oYXNUZXh0Q29udGVudE9ubHkoKSk7CiAgICAgICAg
IGF1dG8gSXNFbmRPZkxpbmUgPSBpc0NvbnRlbnRXcmFwcGluZ0FsbG93ZWQoY2FuZGlkYXRlQ29u
dGVudCkgPyBJc0VuZE9mTGluZTo6WWVzIDogSXNFbmRPZkxpbmU6Ok5vOwogICAgICAgICAvLyBG
aXJzdCBjaGVjayBpZiB0aGUgY29udGVudCBmaXRzIHdpdGhvdXQgdGhlIHRyYWlsaW5nIGNvbGxh
cHNpYmxlIHBhcnQuCiAgICAgICAgIGlmIChjYW5kaWRhdGVDb250ZW50Lm5vbkNvbGxhcHNpYmxl
V2lkdGgoKSA8PSBsaW5lU3RhdHVzLmF2YWlsYWJsZVdpZHRoKQotICAgICAgICAgICAgcmV0dXJu
IHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIElzRW5kT2ZMaW5lLCB7IH0gfTsKKyAgICAgICAgICAg
IHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwLCBJc0VuZE9mTGluZSB9OwogICAgICAgICAv
LyBOb3cgY2hlY2sgaWYgd2UgY2FuIHRyaW0gdGhlIGxpbmUgdG9vLgogICAgICAgICBpZiAobGlu
ZVN0YXR1cy5saW5lSGFzRnVsbHlDb2xsYXBzaWJsZVRyYWlsaW5nUnVuICYmIGNhbmRpZGF0ZUNv
bnRlbnQuaXNUcmFpbGluZ0NvbnRlbnRGdWxseUNvbGxhcHNpYmxlKCkpIHsKICAgICAgICAgICAg
IC8vIElmIHRoaXMgbmV3IGNvbnRlbnQgaXMgZnVsbHkgY29sbGFwc2libGUsIGl0IHNob3VkIHN1
cmVseSBmaXQuCi0gICAgICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNF
bmRPZkxpbmUsIHsgfSB9OworICAgICAgICAgICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246Oktl
ZXAsIElzRW5kT2ZMaW5lIH07CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKGxpbmVTdGF0dXMu
Y29sbGFwc2libGVXaWR0aCAmJiBjYW5kaWRhdGVDb250ZW50Lmhhc05vbkNvbnRlbnRSdW5zT25s
eSgpKSB7CiAgICAgICAgIC8vIExldCdzIHNlZSBpZiB0aGUgbm9uLWNvbnRlbnQgcnVucyBmaXQg
d2hlbiB0aGUgbGluZSBoYXMgdHJhaWxpbmcgY29sbGFwc2libGUgY29udGVudC4KICAgICAgICAg
Ly8gInRleHQgY29udGVudCA8c3BhbiBzdHlsZT0icGFkZGluZzogMXB4Ij48L3NwYW4+IiA8LSB0
aGUgPHNwYW4+PC9zcGFuPiBydW5zIGNvdWxkIGZpdCBhZnRlciBjb2xsYXBzaW5nIHRoZSB0cmFp
bGluZyB3aGl0ZXNwYWNlLgogICAgICAgICBpZiAoY2FuZGlkYXRlQ29udGVudC53aWR0aCgpIDw9
IGxpbmVTdGF0dXMuYXZhaWxhYmxlV2lkdGggKyBsaW5lU3RhdHVzLmNvbGxhcHNpYmxlV2lkdGgp
Ci0gICAgICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6
Ok5vLCB7IH0gfTsKKyAgICAgICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9uOjpLZWVwIH07
CiAgICAgfQogICAgIGlmIChjYW5kaWRhdGVDb250ZW50LmlzVmlzdWFsbHlFbXB0eVdoaXRlc3Bh
Y2VDb250ZW50T25seSgpICYmIHNob3VsZEtlZXBFbmRPZkxpbmVXaGl0ZXNwYWNlKGNhbmRpZGF0
ZUNvbnRlbnQpKSB7CiAgICAgICAgIC8vIFRoaXMgb3ZlcmZsb3dpbmcgY29udGVudCBhcHBhcmVu
dGx5IGZhbGxzIGludG8gdGhlIHJlbW92ZS9oYW5nIGVuZC1vZi1saW5lLXNwYWNlcyBjYXRlcmdv
cnkuCiAgICAgICAgIC8vIHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLXRleHQtMy8jd2hp
dGUtc3BhY2UtcHJvcGVydHkgbWF0cml4Ci0gICAgICAgIHJldHVybiB7IFJlc3VsdDo6QWN0aW9u
OjpLZWVwLCBJc0VuZE9mTGluZTo6Tm8sIHsgfSB9OworICAgICAgICByZXR1cm4geyBSZXN1bHQ6
OkFjdGlvbjo6S2VlcCB9OwogICAgIH0KIAogICAgIGlmIChjYW5kaWRhdGVDb250ZW50Lmhhc1Rl
eHRDb250ZW50T25seSgpKSB7CkBAIC0xNjYsNyArMTY2LDcgQEAgTGluZUJyZWFrZXI6OlJlc3Vs
dCBMaW5lQnJlYWtlcjo6dHJ5V3JhcHBpbmdJbmxpbmVDb250ZW50KGNvbnN0IENvbnRpbm91c0Nv
bnRlbnQKICAgICAgICAgICAgICAgICBhdXRvJiBpbmxpbmVUZXh0SXRlbSA9IGRvd25jYXN0PElu
bGluZVRleHRJdGVtPihydW5zW2ZpcnN0VGV4dFJ1bkluZGV4XS5pbmxpbmVJdGVtKTsKICAgICAg
ICAgICAgICAgICBBU1NFUlQoaW5saW5lVGV4dEl0ZW0ubGVuZ3RoKCkpOwogICAgICAgICAgICAg
ICAgIGlmIChpbmxpbmVUZXh0SXRlbS5sZW5ndGgoKSA9PSAxKQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2VlcCwgSXNFbmRPZkxpbmU6OlllcywgeyB9IH07
CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXN1bHQgeyBSZXN1bHQ6OkFjdGlvbjo6S2Vl
cCwgSXNFbmRPZkxpbmU6OlllcyB9OwogICAgICAgICAgICAgICAgIGF1dG8gZmlyc3RDaGFyYWN0
ZXJXaWR0aCA9IFRleHRVdGlsOjp3aWR0aChpbmxpbmVUZXh0SXRlbSwgaW5saW5lVGV4dEl0ZW0u
c3RhcnQoKSwgaW5saW5lVGV4dEl0ZW0uc3RhcnQoKSArIDEpOwogICAgICAgICAgICAgICAgIGF1
dG8gZmlyc3RDaGFyYWN0ZXJSdW4gPSBQYXJ0aWFsUnVuIHsgMSwgZmlyc3RDaGFyYWN0ZXJXaWR0
aCwgZmFsc2UgfTsKICAgICAgICAgICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6U3Bs
aXQsIElzRW5kT2ZMaW5lOjpZZXMsIFJlc3VsdDo6UGFydGlhbFRyYWlsaW5nQ29udGVudCB7IGZp
cnN0VGV4dFJ1bkluZGV4LCBmaXJzdENoYXJhY3RlclJ1biB9IH07CkBAIC0xNzYsMTEgKzE3Niwx
MyBAQCBMaW5lQnJlYWtlcjo6UmVzdWx0IExpbmVCcmVha2VyOjp0cnlXcmFwcGluZ0lubGluZUNv
bnRlbnQoY29uc3QgQ29udGlub3VzQ29udGVudAogICAgICAgICB9CiAgICAgfQogICAgIC8vIElm
IHdlIGFyZSBub3QgYWxsb3dlZCB0byBicmVhayB0aGlzIGNvbnRlbnQsIHdlIHN0aWxsIG5lZWQg
dG8gZGVjaWRlIHdoZXRoZXIga2VlcCBpdCBvciBwdXNoIGl0IHRvIHRoZSBuZXh0IGxpbmUuCi0g
ICAgYXV0byBpc1dyYXBwaW5nQWxsb3dlZCA9IGlzQ29udGVudFdyYXBwaW5nQWxsb3dlZChjYW5k
aWRhdGVDb250ZW50KTsKLSAgICBhdXRvIGxldENvbnRlbnRPdmVyZmxvdyA9IGxpbmVTdGF0dXMu
bGluZUlzRW1wdHkgfHwgIWlzV3JhcHBpbmdBbGxvd2VkOwotICAgIGlmICghbGV0Q29udGVudE92
ZXJmbG93KQotICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6UHVzaCwgSXNFbmRPZkxp
bmU6OlllcywgeyB9IH07Ci0gICAgcmV0dXJuIHsgUmVzdWx0OjpBY3Rpb246OktlZXAsIGlzV3Jh
cHBpbmdBbGxvd2VkID8gSXNFbmRPZkxpbmU6OlllcyA6IElzRW5kT2ZMaW5lOjpObywgeyB9IH07
CisgICAgaWYgKGxpbmVTdGF0dXMubGluZUlzRW1wdHkpIHsKKyAgICAgICAgQVNTRVJUKCFtX2xh
c3RXcmFwT3Bwb3J0dW5pdHkpOworICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6S2Vl
cCwgSXNFbmRPZkxpbmU6OlllcyB9OworICAgIH0KKyAgICBpZiAobV9sYXN0V3JhcE9wcG9ydHVu
aXR5KQorICAgICAgICByZXR1cm4geyBSZXN1bHQ6OkFjdGlvbjo6UmV2ZXJ0LCBJc0VuZE9mTGlu
ZTo6WWVzLCB7IH0sIG1fbGFzdFdyYXBPcHBvcnR1bml0eSB9OworICAgIHJldHVybiB7IFJlc3Vs
dDo6QWN0aW9uOjpLZWVwLCBpc0NvbnRlbnRXcmFwcGluZ0FsbG93ZWQoY2FuZGlkYXRlQ29udGVu
dCkgPyBJc0VuZE9mTGluZTo6WWVzIDogSXNFbmRPZkxpbmU6Ok5vIH07CiB9CiAKIGJvb2wgTGlu
ZUJyZWFrZXI6OnNob3VsZFdyYXBGbG9hdEJveChJbmxpbmVMYXlvdXRVbml0IGZsb2F0TG9naWNh
bFdpZHRoLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoLCBib29sIGxpbmVJc0VtcHR5
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lTGluZUJyZWFrZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUxpbmVCcmVha2VyLmgKaW5kZXggZjcxNDk1MGMwODcxN2RkN2IyYzdlYmY0MDJkMDk1
ZjlkNTg1MjAzYS4uZGM1ZDBmMWU1OTkxOTJiNmNlNTgwYTFiNzg5YjA0ODhhYWQ4NDRkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lTGlu
ZUJyZWFrZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVMaW5lQnJlYWtlci5oCkBAIC00OSwxNSArNDksMTggQEAgcHVibGljOgogICAgICAgICBl
bnVtIGNsYXNzIEFjdGlvbiB7CiAgICAgICAgICAgICBLZWVwLCAvLyBLZWVwIGNvbnRlbnQgb24g
dGhlIGN1cnJlbnQgbGluZS4KICAgICAgICAgICAgIFNwbGl0LCAvLyBQYXJ0aWFsIGNvbnRlbnQg
aXMgb24gdGhlIGN1cnJlbnQgbGluZS4KLSAgICAgICAgICAgIFB1c2ggLy8gQ29udGVudCBpcyBw
dXNoZWQgdG8gdGhlIG5leHQgbGluZS4KKyAgICAgICAgICAgIFB1c2gsIC8vIENvbnRlbnQgaXMg
cHVzaGVkIHRvIHRoZSBuZXh0IGxpbmUuCisgICAgICAgICAgICBSZXZlcnQgLy8gVGhlIGN1cnJl
bnQgY29udGVudCBvdmVyZmxvd3MgYW5kIGNhbid0IGdldCB3cmFwcGVkLiBUaGUgbGluZSBuZWVk
cyB0byBiZSByZXZlcnRlZCBiYWNrIHRvIHRoZSBsYXN0IGxpbmUgd3JhcHBpbmcgb3Bwb3J0dW5p
dHkuCiAgICAgICAgIH07Ci0gICAgICAgIEFjdGlvbiBhY3Rpb24geyBBY3Rpb246OktlZXAgfTsK
LSAgICAgICAgSXNFbmRPZkxpbmUgaXNFbmRPZkxpbmUgeyBJc0VuZE9mTGluZTo6Tm8gfTsKICAg
ICAgICAgc3RydWN0IFBhcnRpYWxUcmFpbGluZ0NvbnRlbnQgewogICAgICAgICAgICAgc2l6ZV90
IHRyYWlsaW5nUnVuSW5kZXggeyAwIH07CiAgICAgICAgICAgICBPcHRpb25hbDxQYXJ0aWFsUnVu
PiBwYXJ0aWFsUnVuOyAvLyBudWxsb3B0IHBhcnRpYWwgcnVuIG1lYW5zIHRoZSB0cmFpbGluZyBy
dW4gaXMgYSBjb21wbGV0ZSBydW4uCiAgICAgICAgIH07Ci0gICAgICAgIE9wdGlvbmFsPFBhcnRp
YWxUcmFpbGluZ0NvbnRlbnQ+IHBhcnRpYWxUcmFpbGluZ0NvbnRlbnQ7CisKKyAgICAgICAgQWN0
aW9uIGFjdGlvbiB7IEFjdGlvbjo6S2VlcCB9OworICAgICAgICBJc0VuZE9mTGluZSBpc0VuZE9m
TGluZSB7IElzRW5kT2ZMaW5lOjpObyB9OworICAgICAgICBPcHRpb25hbDxQYXJ0aWFsVHJhaWxp
bmdDb250ZW50PiBwYXJ0aWFsVHJhaWxpbmdDb250ZW50IHsgfTsKKyAgICAgICAgY29uc3QgSW5s
aW5lSXRlbSogcmV2ZXJ0VG8geyBudWxscHRyIH07CiAgICAgfTsKIAogICAgIHN0cnVjdCBSdW4g
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvTGlu
ZUxheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRp
bmcvTGluZUxheW91dENvbnRleHQuY3BwCmluZGV4IGZkZTQ5YzMzYjc3MzNlYTIwNDJlYWViZDRm
MmE5NzBlMGM1YWNjY2UuLjIwZmJhMThhZGRhYjEzMjZlMGYwMDJhMDc1NWU0OWU5YzEyM2U1NzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0xpbmVM
YXlvdXRDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0
dGluZy9MaW5lTGF5b3V0Q29udGV4dC5jcHAKQEAgLTQxMiw2ICs0MTIsMTAgQEAgTGluZUxheW91
dENvbnRleHQ6OkNvbW1pdHRlZENvbnRlbnQgTGluZUxheW91dENvbnRleHQ6OmNoZWNrRm9yTGlu
ZVdyYXBBbmRDb21taXQKICAgICAgICAgLy8gVGhpcyBjb250aW51b3VzIGNvbnRlbnQgY2FuJ3Qg
YmUgcGxhY2VkIG9uIHRoZSBjdXJyZW50IGxpbmUuIE5vdGhpbmcgdG8gY29tbWl0IGF0IHRoaXMg
dGltZS4KICAgICAgICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCAwLCB7IH0gfTsKICAg
ICB9CisgICAgaWYgKHJlc3VsdC5hY3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9u
OjpSZXZlcnQpIHsKKyAgICAgICAgQVNTRVJUX05PVF9JTVBMRU1FTlRFRF9ZRVQoKTsKKyAgICAg
ICAgcmV0dXJuIHsgcmVzdWx0LmlzRW5kT2ZMaW5lLCAwLCB7IH0gfTsKKyAgICB9CiAgICAgaWYg
KHJlc3VsdC5hY3Rpb24gPT0gTGluZUJyZWFrZXI6OlJlc3VsdDo6QWN0aW9uOjpTcGxpdCkgewog
ICAgICAgICAvLyBDb21taXQgdGhlIGNvbWJpbmF0aW9uIG9mIGZ1bGwgYW5kIHBhcnRpYWwgY29u
dGVudCBvbiB0aGUgY3VycmVudCBsaW5lLgogICAgICAgICBBU1NFUlQocmVzdWx0LnBhcnRpYWxU
cmFpbGluZ0NvbnRlbnQpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>