<?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>202043</bug_id>
          
          <creation_ts>2019-09-20 05:30:19 -0700</creation_ts>
          <short_desc>Implement Position::upstream and Position::downstream with line layout iterator</short_desc>
          <delta_ts>2019-09-20 08:42:21 -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>DOM</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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1572725</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-20 05:30:19 -0700</bug_when>
    <thetext>These can eventually work without switching to lineboxes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572730</commentid>
    <comment_count>1</comment_count>
      <attachid>379233</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-09-20 05:58:18 -0700</bug_when>
    <thetext>Created attachment 379233
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572763</commentid>
    <comment_count>2</comment_count>
      <attachid>379233</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-20 08:41:49 -0700</bug_when>
    <thetext>Comment on attachment 379233
patch

Clearing flags on attachment: 379233

Committed r250132: &lt;https://trac.webkit.org/changeset/250132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572764</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-09-20 08:41:51 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1572765</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-09-20 08:42:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/55560673&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>379233</attachid>
            <date>2019-09-20 05:58:18 -0700</date>
            <delta_ts>2019-09-20 08:41:49 -0700</delta_ts>
            <desc>patch</desc>
            <filename>upstream-downstream-lli.patch</filename>
            <type>text/plain</type>
            <size>13446</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwYWVhM2U1OTNjMy4uNjA0NDA1ZWExNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxOS0wOS0yMCAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IFBvc2l0aW9uOjp1cHN0cmVhbSBhbmQgUG9zaXRpb246OmRv
d25zdHJlYW0gd2l0aCBsaW5lIGxheW91dCBpdGVyYXRvcgorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAyMDQzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2UgY2FuIGV2ZW50dWFsbHkgd29yayB3aXRo
b3V0IHN3aXRjaGluZyB0byBsaW5lYm94ZXMuCisKKyAgICAgICAgKiBkb20vUG9zaXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UG9zaXRpb246OnVwc3RyZWFtIGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OlBvc2l0aW9uOjpkb3duc3RyZWFtIGNvbnN0KToKKworICAgICAgICBGYWN0b3Ig
dGhlIGxvb3BzIGludG8gVGV4dEJveDo6aXNMYXN0T25MaW5lIGZ1bmN0aW9uLgorCisgICAgICAg
ICogcmVuZGVyaW5nL2xpbmUvTGluZUxheW91dEludGVyZmFjZVRleHRCb3hlcy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMaW5lTGF5b3V0SW50ZXJmYWNlOjpUZXh0Qm94Ojppc0xhc3RPbkxpbmUg
Y29uc3QpOgorCisgICAgICAgIExvb2tpbmcgaW50byByb290IGJveGVzIGlzIGEgbXVjaCBtb3Jl
IGVmZmljaWVudCB3YXkgdG8gZmlndXJlIHRoaXMgb3V0LgorCisgICAgICAgIChXZWJDb3JlOjpM
aW5lTGF5b3V0SW50ZXJmYWNlOjpUZXh0Qm94Ojppc0xhc3QgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TGluZUxheW91dEludGVyZmFjZTo6VGV4dEJveEl0ZXJhdG9yOjpDb21wbGV4UGF0aDo6
bmV4dElubGluZVRleHRCb3hJblRleHRPcmRlciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
aW5lTGF5b3V0SW50ZXJmYWNlOjpUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dEluVGV4dE9y
ZGVyKToKKyAgICAgICAgKiByZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0SW50ZXJmYWNlVGV4dEJv
eGVzLmg6CisKIDIwMTktMDktMTkgIEpvb25naHVuIFBhcmsgIDxwamgwNzE4QGdtYWlsLmNvbT4K
IAogICAgICAgICBVbnJldmlld2VkLiBGaXggQnVpbGQgZXJyb3IgYmVsb3cgc2luY2UgcjI0ODg3
OS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Qb3NpdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCmluZGV4IDZkNTg0ZWRhZTg4Li40YWU3ZTU3ZjUxYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL1Bvc2l0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vUG9zaXRpb24uY3BwCkBAIC0zNyw2ICszNyw3IEBACiAjaW5jbHVkZSAiSW5s
aW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIklubGluZUl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAi
SW5saW5lVGV4dEJveC5oIgorI2luY2x1ZGUgIkxpbmVMYXlvdXRJbnRlcmZhY2VUZXh0Qm94ZXMu
aCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTm9kZVRyYXZlcnNhbC5oIgogI2lu
Y2x1ZGUgIlBvc2l0aW9uSXRlcmF0b3IuaCIKQEAgLTcwOCw3ICs3MDksMTAgQEAgUG9zaXRpb24g
UG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25z
dAogICAgICAgICBSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0gY3VycmVudE5vZGUucmVuZGVyZXIo
KTsKICAgICAgICAgaWYgKCFyZW5kZXJlciB8fCByZW5kZXJlci0+c3R5bGUoKS52aXNpYmlsaXR5
KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkKICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgIC8vIEZJWE1FOiBUaGUgY29kZSBiZWxvdyBkb2Vzbid0IG5lZWQgbGluZSBib3hlcy4KICAg
ICAgICAgZW5zdXJlTGluZUJveGVzSWZOZWVkZWQoKnJlbmRlcmVyKTsKKwogICAgICAgICBpZiAo
cnVsZSA9PSBDYW5Dcm9zc0VkaXRpbmdCb3VuZGFyeSAmJiBib3VuZGFyeUNyb3NzZWQpIHsKICAg
ICAgICAgICAgIGxhc3RWaXNpYmxlID0gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgYnJl
YWs7CkBAIC03MzMsOCArNzM3LDEyIEBAIFBvc2l0aW9uIFBvc2l0aW9uOjp1cHN0cmVhbShFZGl0
aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKICAgICAgICAgLy8gcmV0dXJuIGN1
cnJlbnQgcG9zaXRpb24gaWYgaXQgaXMgaW4gcmVuZGVyZWQgdGV4dAogICAgICAgICBpZiAoaXM8
UmVuZGVyVGV4dD4oKnJlbmRlcmVyKSkgewogICAgICAgICAgICAgYXV0byYgdGV4dFJlbmRlcmVy
ID0gZG93bmNhc3Q8UmVuZGVyVGV4dD4oKnJlbmRlcmVyKTsKLSAgICAgICAgICAgIGlmICghdGV4
dFJlbmRlcmVyLmZpcnN0VGV4dEJveCgpKQorCisgICAgICAgICAgICBMaW5lTGF5b3V0SW50ZXJm
YWNlOjpQcm92aWRlciBsaW5lTGF5b3V0UHJvdmlkZXI7CisgICAgICAgICAgICBhdXRvIGZpcnN0
VGV4dEJveCA9IGxpbmVMYXlvdXRQcm92aWRlci5maXJzdFRleHRCb3hJblRleHRPcmRlckZvcih0
ZXh0UmVuZGVyZXIpOworICAgICAgICAgICAgaWYgKCFmaXJzdFRleHRCb3gpCiAgICAgICAgICAg
ICAgICAgY29udGludWU7CisKICAgICAgICAgICAgIGlmICgmY3VycmVudE5vZGUgIT0gc3RhcnRO
b2RlKSB7CiAgICAgICAgICAgICAgICAgLy8gVGhpcyBhc3NlcnRpb24gZmlyZXMgaW4gbGF5b3V0
IHRlc3RzIGluIHRoZSBjYXNlLXRyYW5zZm9ybS5odG1sIHRlc3QgYmVjYXVzZQogICAgICAgICAg
ICAgICAgIC8vIG9mIGEgbWl4LXVwIGJldHdlZW4gb2Zmc2V0cyBpbiB0aGUgdGV4dCBpbiB0aGUg
RE9NIHRyZWUgd2l0aCB0ZXh0IGluIHRoZQpAQCAtNzQ1LDQwICs3NTMsMTQgQEAgUG9zaXRpb24g
UG9zaXRpb246OnVwc3RyZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25z
dAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICB1bnNpZ25lZCB0ZXh0T2Zmc2V0ID0gY3Vy
cmVudFBvc2l0aW9uLm9mZnNldEluTGVhZk5vZGUoKTsKLSAgICAgICAgICAgIGF1dG8gbGFzdFRl
eHRCb3ggPSB0ZXh0UmVuZGVyZXIubGFzdFRleHRCb3goKTsKLSAgICAgICAgICAgIGZvciAoYXV0
byogYm94ID0gdGV4dFJlbmRlcmVyLmZpcnN0VGV4dEJveCgpOyBib3g7IGJveCA9IGJveC0+bmV4
dFRleHRCb3goKSkgewotICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0IDw9IGJveC0+c3Rh
cnQoKSArIGJveC0+bGVuKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQg
PiBib3gtPnN0YXJ0KCkpCisgICAgICAgICAgICBmb3IgKGF1dG8gYm94ID0gZmlyc3RUZXh0Qm94
OyBib3g7IGJveC50cmF2ZXJzZU5leHRJblRleHRPcmRlcigpKSB7CisgICAgICAgICAgICAgICAg
aWYgKHRleHRPZmZzZXQgPD0gYm94LT5sb2NhbEVuZE9mZnNldCgpKSB7CisgICAgICAgICAgICAg
ICAgICAgIGlmICh0ZXh0T2Zmc2V0ID4gYm94LT5sb2NhbFN0YXJ0T2Zmc2V0KCkpCiAgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVudFBvc2l0aW9uOwogICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICB9CiAKLSAgICAgICAgICAgICAgICBpZiAo
Ym94ID09IGxhc3RUZXh0Qm94IHx8IHRleHRPZmZzZXQgIT0gYm94LT5zdGFydCgpICsgYm94LT5s
ZW4oKSArIDEpCi0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotCi0gICAgICAgICAgICAg
ICAgLy8gVGhlIHRleHQgY29udGludWVzIG9uIHRoZSBuZXh0IGxpbmUgb25seSBpZiB0aGUgbGFz
dCB0ZXh0IGJveCBpcyBub3Qgb24gdGhpcyBsaW5lIGFuZAotICAgICAgICAgICAgICAgIC8vIG5v
bmUgb2YgdGhlIGJveGVzIG9uIHRoaXMgbGluZSBoYXZlIGEgbGFyZ2VyIHN0YXJ0IG9mZnNldC4K
LQotICAgICAgICAgICAgICAgIGJvb2wgY29udGludWVzT25OZXh0TGluZSA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgSW5saW5lQm94KiBvdGhlckJveCA9IGJveDsKLSAgICAgICAgICAgICAgICB3
aGlsZSAoY29udGludWVzT25OZXh0TGluZSkgewotICAgICAgICAgICAgICAgICAgICBvdGhlckJv
eCA9IG90aGVyQm94LT5uZXh0TGVhZkNoaWxkKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICgh
b3RoZXJCb3gpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAg
ICAgICAgaWYgKG90aGVyQm94ID09IGxhc3RUZXh0Qm94IHx8ICgmb3RoZXJCb3gtPnJlbmRlcmVy
KCkgPT0gJnRleHRSZW5kZXJlciAmJiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pigqb3RoZXJCb3gp
LnN0YXJ0KCkgPiB0ZXh0T2Zmc2V0KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVl
c09uTmV4dExpbmUgPSBmYWxzZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAg
ICBvdGhlckJveCA9IGJveDsKLSAgICAgICAgICAgICAgICB3aGlsZSAoY29udGludWVzT25OZXh0
TGluZSkgewotICAgICAgICAgICAgICAgICAgICBvdGhlckJveCA9IG90aGVyQm94LT5wcmV2TGVh
ZkNoaWxkKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb3RoZXJCb3gpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAgICAgaWYgKG90aGVyQm94ID09
IGxhc3RUZXh0Qm94IHx8ICgmb3RoZXJCb3gtPnJlbmRlcmVyKCkgPT0gJnRleHRSZW5kZXJlciAm
JiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pigqb3RoZXJCb3gpLnN0YXJ0KCkgPiB0ZXh0T2Zmc2V0
KSkKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlc09uTmV4dExpbmUgPSBmYWxzZTsK
LSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBpZiAoY29udGludWVzT25OZXh0
TGluZSkKKyAgICAgICAgICAgICAgICBpZiAodGV4dE9mZnNldCA9PSBib3gtPmxvY2FsRW5kT2Zm
c2V0KCkgKyAxICYmIGJveC0+aXNMYXN0T25MaW5lKCkgJiYgIWJveC0+aXNMYXN0KCkpCiAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247CiAgICAgICAgICAgICB9CiAg
ICAgICAgIH0KQEAgLTgxMCw3ICs3OTIsNyBAQCBQb3NpdGlvbiBQb3NpdGlvbjo6ZG93bnN0cmVh
bShFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkgY29uc3QKICAgICBib29sIGJvdW5k
YXJ5Q3Jvc3NlZCA9IGZhbHNlOwogICAgIGZvciAoOyAhY3VycmVudFBvc2l0aW9uLmF0RW5kKCk7
IGN1cnJlbnRQb3NpdGlvbi5pbmNyZW1lbnQoKSkgewogICAgICAgICBhdXRvJiBjdXJyZW50Tm9k
ZSA9ICpjdXJyZW50UG9zaXRpb24ubm9kZSgpOwotICAgICAgICAKKwogICAgICAgICAvLyBEb24n
dCBjaGVjayBmb3IgYW4gZWRpdGFiaWxpdHkgY2hhbmdlIGlmIHdlIGhhdmVuJ3QgbW92ZWQgdG8g
YSBkaWZmZXJlbnQgbm9kZSwKICAgICAgICAgLy8gdG8gYXZvaWQgdGhlIGV4cGVuc2Ugb2YgY29t
cHV0aW5nIGhhc0VkaXRhYmxlU3R5bGUoKS4KICAgICAgICAgaWYgKCZjdXJyZW50Tm9kZSAhPSBs
YXN0Tm9kZSkgewpAQCAtODIxLDcgKzgwMyw3IEBAIFBvc2l0aW9uIFBvc2l0aW9uOjpkb3duc3Ry
ZWFtKEVkaXRpbmdCb3VuZGFyeUNyb3NzaW5nUnVsZSBydWxlKSBjb25zdAogICAgICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICBib3VuZGFyeUNyb3NzZWQgPSB0cnVlOwog
ICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIAorCiAgICAgICAgICAgICBsYXN0Tm9kZSA9
ICZjdXJyZW50Tm9kZTsKICAgICAgICAgfQogCkBAIC04NDMsMTIgKzgyNSwxNSBAQCBQb3NpdGlv
biBQb3NpdGlvbjo6ZG93bnN0cmVhbShFZGl0aW5nQm91bmRhcnlDcm9zc2luZ1J1bGUgcnVsZSkg
Y29uc3QKICAgICAgICAgYXV0byogcmVuZGVyZXIgPSBjdXJyZW50Tm9kZS5yZW5kZXJlcigpOwog
ICAgICAgICBpZiAoIXJlbmRlcmVyIHx8IHJlbmRlcmVyLT5zdHlsZSgpLnZpc2liaWxpdHkoKSAh
PSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
Ly8gRklYTUU6IFRoZSBjb2RlIGJlbG93IGRvZXNuJ3QgbmVlZCBsaW5lIGJveGVzLgogICAgICAg
ICBlbnN1cmVMaW5lQm94ZXNJZk5lZWRlZCgqcmVuZGVyZXIpOworCiAgICAgICAgIGlmIChydWxl
ID09IENhbkNyb3NzRWRpdGluZ0JvdW5kYXJ5ICYmIGJvdW5kYXJ5Q3Jvc3NlZCkgewogICAgICAg
ICAgICAgbGFzdFZpc2libGUgPSBjdXJyZW50UG9zaXRpb247CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICAvLyB0cmFjayBsYXN0IHZpc2libGUgc3Ry
ZWFtZXIgcG9zaXRpb24KICAgICAgICAgaWYgKGlzU3RyZWFtZXIoY3VycmVudFBvc2l0aW9uKSkK
ICAgICAgICAgICAgIGxhc3RWaXNpYmxlID0gY3VycmVudFBvc2l0aW9uOwpAQCAtODYzLDU2ICs4
NDgsMzQgQEAgUG9zaXRpb24gUG9zaXRpb246OmRvd25zdHJlYW0oRWRpdGluZ0JvdW5kYXJ5Q3Jv
c3NpbmdSdWxlIHJ1bGUpIGNvbnN0CiAgICAgICAgIC8vIHJldHVybiBjdXJyZW50IHBvc2l0aW9u
IGlmIGl0IGlzIGluIHJlbmRlcmVkIHRleHQKICAgICAgICAgaWYgKGlzPFJlbmRlclRleHQ+KCpy
ZW5kZXJlcikpIHsKICAgICAgICAgICAgIGF1dG8mIHRleHRSZW5kZXJlciA9IGRvd25jYXN0PFJl
bmRlclRleHQ+KCpyZW5kZXJlcik7Ci0gICAgICAgICAgICBpZiAoIXRleHRSZW5kZXJlci5maXJz
dFRleHRCb3goKSkKKworICAgICAgICAgICAgTGluZUxheW91dEludGVyZmFjZTo6UHJvdmlkZXIg
bGluZUxheW91dFByb3ZpZGVyOworICAgICAgICAgICAgYXV0byBmaXJzdFRleHRCb3ggPSBsaW5l
TGF5b3V0UHJvdmlkZXIuZmlyc3RUZXh0Qm94SW5UZXh0T3JkZXJGb3IodGV4dFJlbmRlcmVyKTsK
KyAgICAgICAgICAgIGlmICghZmlyc3RUZXh0Qm94KQogICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCiAgICAgICAgICAgICBpZiAoJmN1cnJlbnROb2RlICE9IHN0YXJ0Tm9kZSkgewogICAgICAg
ICAgICAgICAgIEFTU0VSVChjdXJyZW50UG9zaXRpb24uYXRTdGFydE9mTm9kZSgpKTsKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY3JlYXRlTGVnYWN5RWRpdGluZ1Bvc2l0aW9uKCZjdXJyZW50Tm9k
ZSwgcmVuZGVyZXItPmNhcmV0TWluT2Zmc2V0KCkpOworICAgICAgICAgICAgICAgIHJldHVybiBj
cmVhdGVMZWdhY3lFZGl0aW5nUG9zaXRpb24oJmN1cnJlbnROb2RlLCB0ZXh0UmVuZGVyZXIuY2Fy
ZXRNaW5PZmZzZXQoKSk7CiAgICAgICAgICAgICB9CiAKICAgICAgICAgICAgIHVuc2lnbmVkIHRl
eHRPZmZzZXQgPSBjdXJyZW50UG9zaXRpb24ub2Zmc2V0SW5MZWFmTm9kZSgpOwotICAgICAgICAg
ICAgYXV0byBsYXN0VGV4dEJveCA9IHRleHRSZW5kZXJlci5sYXN0VGV4dEJveCgpOwotICAgICAg
ICAgICAgZm9yIChhdXRvKiBib3ggPSB0ZXh0UmVuZGVyZXIuZmlyc3RUZXh0Qm94KCk7IGJveDsg
Ym94ID0gYm94LT5uZXh0VGV4dEJveCgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKCFib3gtPmxl
bigpICYmIHRleHRPZmZzZXQgPT0gYm94LT5zdGFydCgpKQorICAgICAgICAgICAgZm9yIChhdXRv
IGJveCA9IGZpcnN0VGV4dEJveDsgYm94OyBib3gudHJhdmVyc2VOZXh0SW5UZXh0T3JkZXIoKSkg
eworICAgICAgICAgICAgICAgIGlmICghYm94LT5sZW5ndGgoKSAmJiB0ZXh0T2Zmc2V0ID09IGJv
eC0+bG9jYWxTdGFydE9mZnNldCgpKQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gY3VycmVu
dFBvc2l0aW9uOwotICAgICAgICAgICAgCi0gICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQg
PCBib3gtPmVuZCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0ID49IGJv
eC0+c3RhcnQoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRp
b247Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGlmIChib3ggPT0gbGFzdFRleHRCb3ggfHwgdGV4dE9mZnNldCAhPSBi
b3gtPnN0YXJ0KCkgKyBib3gtPmxlbigpKQorICAgICAgICAgICAgICAgIGlmICh0ZXh0T2Zmc2V0
IDwgYm94LT5sb2NhbEVuZE9mZnNldCgpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0
T2Zmc2V0ID49IGJveC0+bG9jYWxTdGFydE9mZnNldCgpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIGN1cnJlbnRQb3NpdGlvbjsKICAgICAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0KLSAgICAgICAgICAgICAgICAvLyBUaGUgdGV4dCBjb250aW51ZXMgb24gdGhlIG5leHQgbGlu
ZSBvbmx5IGlmIHRoZSBsYXN0IHRleHQgYm94IGlzIG5vdCBvbiB0aGlzIGxpbmUgYW5kCi0gICAg
ICAgICAgICAgICAgLy8gbm9uZSBvZiB0aGUgYm94ZXMgb24gdGhpcyBsaW5lIGhhdmUgYSBsYXJn
ZXIgc3RhcnQgb2Zmc2V0LgotCi0gICAgICAgICAgICAgICAgYm9vbCBjb250aW51ZXNPbk5leHRM
aW5lID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICBJbmxpbmVCb3gqIG90aGVyQm94ID0gYm94Owot
ICAgICAgICAgICAgICAgIHdoaWxlIChjb250aW51ZXNPbk5leHRMaW5lKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIG90aGVyQm94ID0gb3RoZXJCb3gtPm5leHRMZWFmQ2hpbGQoKTsKLSAgICAgICAg
ICAgICAgICAgICAgaWYgKCFvdGhlckJveCkKLSAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICBpZiAob3RoZXJCb3ggPT0gbGFzdFRleHRCb3ggfHwgKCZv
dGhlckJveC0+cmVuZGVyZXIoKSA9PSAmdGV4dFJlbmRlcmVyICYmIGRvd25jYXN0PElubGluZVRl
eHRCb3g+KCpvdGhlckJveCkuc3RhcnQoKSA+PSB0ZXh0T2Zmc2V0KSkKLSAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlc09uTmV4dExpbmUgPSBmYWxzZTsKICAgICAgICAgICAgICAgICB9
CiAKLSAgICAgICAgICAgICAgICBvdGhlckJveCA9IGJveDsKLSAgICAgICAgICAgICAgICB3aGls
ZSAoY29udGludWVzT25OZXh0TGluZSkgewotICAgICAgICAgICAgICAgICAgICBvdGhlckJveCA9
IG90aGVyQm94LT5wcmV2TGVhZkNoaWxkKCk7Ci0gICAgICAgICAgICAgICAgICAgIGlmICghb3Ro
ZXJCb3gpCi0gICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICAg
ICAgaWYgKG90aGVyQm94ID09IGxhc3RUZXh0Qm94IHx8ICgmb3RoZXJCb3gtPnJlbmRlcmVyKCkg
PT0gJnRleHRSZW5kZXJlciAmJiBkb3duY2FzdDxJbmxpbmVUZXh0Qm94Pigqb3RoZXJCb3gpLnN0
YXJ0KCkgPj0gdGV4dE9mZnNldCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZXNP
bk5leHRMaW5lID0gZmFsc2U7Ci0gICAgICAgICAgICAgICAgfQotCi0gICAgICAgICAgICAgICAg
aWYgKGNvbnRpbnVlc09uTmV4dExpbmUpCisgICAgICAgICAgICAgICAgaWYgKHRleHRPZmZzZXQg
PT0gYm94LT5sb2NhbEVuZE9mZnNldCgpICYmIGJveC0+aXNMYXN0T25MaW5lKCkgJiYgIWJveC0+
aXNMYXN0KCkpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjdXJyZW50UG9zaXRpb247CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9Ci0gICAgCisKICAgICByZXR1cm4gbGFzdFZp
c2libGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xp
bmVMYXlvdXRJbnRlcmZhY2VUZXh0Qm94ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L2xpbmUvTGluZUxheW91dEludGVyZmFjZVRleHRCb3hlcy5jcHAKaW5kZXggMzQ1ZWQ1MTE5MTQu
LjM5OTk0NWNhMWZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9M
aW5lTGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvbGluZS9MaW5lTGF5b3V0SW50ZXJmYWNlVGV4dEJveGVzLmNwcApAQCAtMTUwLDYgKzE1
MCwzOCBAQCB1bnNpZ25lZCBUZXh0Qm94OjpsZW5ndGgoKSBjb25zdAogICAgIHJldHVybiBXVEY6
OnN3aXRjaE9uKGl0ZXJhdG9yKCkubV9wYXRoVmFyaWFudCwgc2ltcGxlLCBjb21wbGV4KTsKIH0K
IAorYm9vbCBUZXh0Qm94Ojppc0xhc3RPbkxpbmUoKSBjb25zdAoreworICAgIGF1dG8gc2ltcGxl
ID0gW10oY29uc3QgVGV4dEJveEl0ZXJhdG9yOjpTaW1wbGVQYXRoJiBwYXRoKSB7CisgICAgICAg
IGF1dG8gbmV4dCA9IHBhdGguaXRlcmF0b3I7CisgICAgICAgICsrbmV4dDsKKyAgICAgICAgcmV0
dXJuIG5leHQgPT0gcGF0aC5lbmQgfHwgKCpwYXRoLml0ZXJhdG9yKS5saW5lSW5kZXgoKSAhPSAo
Km5leHQpLmxpbmVJbmRleCgpOworICAgIH07CisKKyAgICBhdXRvIGNvbXBsZXggPSBbXShjb25z
dCBUZXh0Qm94SXRlcmF0b3I6OkNvbXBsZXhQYXRoJiBwYXRoKSB7CisgICAgICAgIGF1dG8qIG5l
eHQgPSBwYXRoLm5leHRJbmxpbmVUZXh0Qm94SW5UZXh0T3JkZXIoKTsKKyAgICAgICAgcmV0dXJu
ICFuZXh0IHx8ICZwYXRoLmlubGluZVRleHRCb3gtPnJvb3QoKSAhPSAmbmV4dC0+cm9vdCgpOwor
ICAgIH07CisKKyAgICByZXR1cm4gV1RGOjpzd2l0Y2hPbihpdGVyYXRvcigpLm1fcGF0aFZhcmlh
bnQsIHNpbXBsZSwgY29tcGxleCk7Cit9CisKK2Jvb2wgVGV4dEJveDo6aXNMYXN0KCkgY29uc3QK
K3sKKyAgICBhdXRvIHNpbXBsZSA9IFtdKGNvbnN0IFRleHRCb3hJdGVyYXRvcjo6U2ltcGxlUGF0
aCYgcGF0aCkgeworICAgICAgICBhdXRvIG5leHQgPSBwYXRoLml0ZXJhdG9yOworICAgICAgICAr
K25leHQ7CisgICAgICAgIHJldHVybiBuZXh0ID09IHBhdGguZW5kOworICAgIH07CisKKyAgICBh
dXRvIGNvbXBsZXggPSBbXShjb25zdCBUZXh0Qm94SXRlcmF0b3I6OkNvbXBsZXhQYXRoJiBwYXRo
KSB7CisgICAgICAgIHJldHVybiAhcGF0aC5uZXh0SW5saW5lVGV4dEJveEluVGV4dE9yZGVyKCk7
CisgICAgfTsKKworICAgIHJldHVybiBXVEY6OnN3aXRjaE9uKGl0ZXJhdG9yKCkubV9wYXRoVmFy
aWFudCwgc2ltcGxlLCBjb21wbGV4KTsKK30KKworCiBpbmxpbmUgY29uc3QgVGV4dEJveEl0ZXJh
dG9yJiBUZXh0Qm94OjppdGVyYXRvcigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGNvbnN0IFRleHRCb3hJdGVyYXRvciY+KCp0aGlzKTsKQEAgLTE4NCw2ICsyMTYsMTYgQEAgVGV4
dEJveEl0ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dEluVmlzdWFsT3JkZXIo
KQogICAgIHJldHVybiAqdGhpczsKIH0KIAorY29uc3QgSW5saW5lVGV4dEJveCogVGV4dEJveEl0
ZXJhdG9yOjpDb21wbGV4UGF0aDo6bmV4dElubGluZVRleHRCb3hJblRleHRPcmRlcigpIGNvbnN0
Cit7CisgICAgaWYgKCFzb3J0ZWRJbmxpbmVUZXh0Qm94ZXMuaXNFbXB0eSgpKSB7CisgICAgICAg
IGlmIChzb3J0ZWRJbmxpbmVUZXh0Qm94SW5kZXggKyAxIDwgc29ydGVkSW5saW5lVGV4dEJveGVz
LnNpemUoKSkKKyAgICAgICAgICAgIHJldHVybiBzb3J0ZWRJbmxpbmVUZXh0Qm94ZXNbc29ydGVk
SW5saW5lVGV4dEJveEluZGV4ICsgMV07CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KyAgICByZXR1cm4gaW5saW5lVGV4dEJveC0+bmV4dFRleHRCb3goKTsKK30KKwogVGV4dEJveEl0
ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dEluVGV4dE9yZGVyKCkKIHsKICAg
ICBhdXRvIHNpbXBsZSA9IFtdKFNpbXBsZVBhdGgmIHBhdGgpIHsKQEAgLTE5MSwxNCArMjMzLDkg
QEAgVGV4dEJveEl0ZXJhdG9yJiBUZXh0Qm94SXRlcmF0b3I6OnRyYXZlcnNlTmV4dEluVGV4dE9y
ZGVyKCkKICAgICB9OwogCiAgICAgYXV0byBjb21wbGV4ID0gW10oQ29tcGxleFBhdGgmIHBhdGgp
IHsKLSAgICAgICAgaWYgKCFwYXRoLnNvcnRlZElubGluZVRleHRCb3hlcy5pc0VtcHR5KCkpIHsK
KyAgICAgICAgcGF0aC5pbmxpbmVUZXh0Qm94ID0gcGF0aC5uZXh0SW5saW5lVGV4dEJveEluVGV4
dE9yZGVyKCk7CisgICAgICAgIGlmICghcGF0aC5zb3J0ZWRJbmxpbmVUZXh0Qm94ZXMuaXNFbXB0
eSgpKQogICAgICAgICAgICAgKytwYXRoLnNvcnRlZElubGluZVRleHRCb3hJbmRleDsKLSAgICAg
ICAgICAgIGlmIChwYXRoLnNvcnRlZElubGluZVRleHRCb3hJbmRleCA8IHBhdGguc29ydGVkSW5s
aW5lVGV4dEJveGVzLnNpemUoKSkKLSAgICAgICAgICAgICAgICBwYXRoLmlubGluZVRleHRCb3gg
PSBwYXRoLnNvcnRlZElubGluZVRleHRCb3hlc1twYXRoLnNvcnRlZElubGluZVRleHRCb3hJbmRl
eF07Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgcGF0aC5pbmxpbmVUZXh0Qm94
ID0gbnVsbHB0cjsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICBwYXRoLmlubGluZVRleHRC
b3ggPSBwYXRoLmlubGluZVRleHRCb3gtPm5leHRUZXh0Qm94KCk7CiAgICAgfTsKIAogICAgIFdU
Rjo6c3dpdGNoT24obV9wYXRoVmFyaWFudCwgc2ltcGxlLCBjb21wbGV4KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVMYXlvdXRJbnRlcmZhY2VUZXh0Qm94
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVMYXlvdXRJbnRlcmZhY2VU
ZXh0Qm94ZXMuaAppbmRleCBkYThiMDI5ZjNhZi4uY2U4ZjYxZDM4MzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9saW5lL0xpbmVMYXlvdXRJbnRlcmZhY2VUZXh0Qm94ZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvbGluZS9MaW5lTGF5b3V0SW50ZXJmYWNl
VGV4dEJveGVzLmgKQEAgLTYxLDYgKzYxLDkgQEAgcHVibGljOgogICAgIHVuc2lnbmVkIGxvY2Fs
RW5kT2Zmc2V0KCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3Q7CiAKKyAgICBi
b29sIGlzTGFzdE9uTGluZSgpIGNvbnN0OworICAgIGJvb2wgaXNMYXN0KCkgY29uc3Q7CisKIHBy
b3RlY3RlZDoKICAgICBUZXh0Qm94KCkgPSBkZWZhdWx0OwogICAgIFRleHRCb3goY29uc3QgVGV4
dEJveCYpID0gZGVmYXVsdDsKQEAgLTEwOCw2ICsxMTEsOCBAQCBwcml2YXRlOgogICAgICAgICBj
b25zdCBJbmxpbmVUZXh0Qm94KiBpbmxpbmVUZXh0Qm94OwogICAgICAgICBWZWN0b3I8Y29uc3Qg
SW5saW5lVGV4dEJveCo+IHNvcnRlZElubGluZVRleHRCb3hlczsKICAgICAgICAgc2l6ZV90IHNv
cnRlZElubGluZVRleHRCb3hJbmRleCB7IDAgfTsKKworICAgICAgICBjb25zdCBJbmxpbmVUZXh0
Qm94KiBuZXh0SW5saW5lVGV4dEJveEluVGV4dE9yZGVyKCkgY29uc3Q7CiAgICAgfTsKICAgICBW
YXJpYW50PFNpbXBsZVBhdGgsIENvbXBsZXhQYXRoPiBtX3BhdGhWYXJpYW50OwogfTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>