<?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>198165</bug_id>
          
          <creation_ts>2019-05-22 22:32:39 -0700</creation_ts>
          <short_desc>Web Inspector: Overlay: rulers should switch sides if they intersect the highlighted node(s) so they don&apos;t obstruct any content</short_desc>
          <delta_ts>2019-05-23 17:11: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>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Devin Rousso">hi</reporter>
          <assigned_to name="Devin Rousso">hi</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>joepeck</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1538565</commentid>
    <comment_count>0</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-22 22:32:39 -0700</bug_when>
    <thetext>If the node being highlighted is against the top edge of the screen, the top ruler should shift to the bottom.

If the node being highlighted is against the left edge of the screen, the left ruler should shift to the right.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538610</commentid>
    <comment_count>1</comment_count>
      <attachid>370495</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-23 01:20:33 -0700</bug_when>
    <thetext>Created attachment 370495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538611</commentid>
    <comment_count>2</comment_count>
    <who name="Devin Rousso">hi</who>
    <bug_when>2019-05-23 01:20:45 -0700</bug_when>
    <thetext>I tested this using &lt;https://devinrousso.com/demo/WebKit/bounds.html&gt; :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538849</commentid>
    <comment_count>3</comment_count>
      <attachid>370495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-23 17:10:15 -0700</bug_when>
    <thetext>Comment on attachment 370495
Patch

Clearing flags on attachment: 370495

Committed r245728: &lt;https://trac.webkit.org/changeset/245728&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538850</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-23 17:10:17 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538851</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-23 17:11:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/51089099&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370495</attachid>
            <date>2019-05-23 01:20:33 -0700</date>
            <delta_ts>2019-05-23 17:10:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198165-20190523012032.patch</filename>
            <type>text/plain</type>
            <size>17677</size>
            <attacher name="Devin Rousso">hi</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxODk1NWNmNTdkOWUyMjQwMzVjNTY1OGMwMjBiMTM1NmU0YjZhMGM2Li44
ZDBmNDk3NGJlNDlhZDVmZjE0MGQxN2RjNjg2N2FkN2Q4YTIyZmE3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjkgQEAKKzIwMTktMDUtMjMgIERldmluIFJvdXNzbyAgPGRyb3Vzc29AYXBwbGUuY29t
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IE92ZXJsYXk6IHJ1bGVycyBzaG91bGQgc3dpdGNo
IHNpZGVzIGlmIHRoZXkgaW50ZXJzZWN0IHRoZSBoaWdobGlnaHRlZCBub2RlKHMpIHNvIHRoZXkg
ZG9uJ3Qgb2JzdHJ1Y3QgYW55IGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE5ODE2NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIElmIHRoZSBoaWdobGlnaHRlZCBub2RlIGlzIGFnYWluc3QgdGhl
IHRvcCBlZGdlIG9mIHRoZSBzY3JlZW4sIHRoZSB0b3AgcnVsZXIgc2hvdWxkIHNoaWZ0IHRvCisg
ICAgICAgIHRoZSBib3R0b20sIHVubGVzcyB0aGUgaGlnaGxpZ2h0ZWQgbm9kZSBpcyBhbHNvIGFn
YWluc3QgdGhlIGJvdHRvbSBlZGdlIG9mIHRoZSBzY3JlZW4uCisKKyAgICAgICAgSWYgdGhlIGhp
Z2hsaWdodGVkIG5vZGUgaXMgYWdhaW5zdCB0aGUgbGVmdCBlZGdlIG9mIHRoZSBzY3JlZW4sIHRo
ZSBsZWZ0IHJ1bGVyIHNob3VsZCBzaGlmdAorICAgICAgICB0byB0aGUgcmlnaHQsIHVubGVzcyB0
aGUgaGlnaGxpZ2h0ZWQgbm9kZSBpcyBhbHNvIGFnYWluc3QgdGhlIHJpZ2h0IGVkZ2Ugb2YgdGhl
IHNjcmVlbi4KKworICAgICAgICBUaGlzIHdheSwgdW5sZXNzIHRoZSBub2RlIGlzIHZlcnkgd2lk
ZS90YWxsLCB0aGUgcnVsZXJzIHdvbid0IGJlIGRyYXduIG9uIHRvcCBvZiBhbnl0aGluZworICAg
ICAgICBiZWluZyBoaWdobGlnaHRlZC4KKworICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JP
dmVybGF5Lmg6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yT3ZlcmxheTo6cGFpbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yT3ZlcmxheTo6ZHJhd05vZGVIaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yT3ZlcmxheTo6ZHJhd1F1YWRIaWdobGlnaHQpOgorICAgICAgICAoV2ViQ29y
ZTo6SW5zcGVjdG9yT3ZlcmxheTo6ZHJhd0JvdW5kcyk6CisgICAgICAgIChXZWJDb3JlOjpJbnNw
ZWN0b3JPdmVybGF5OjpkcmF3UnVsZXJzKToKKyAgICAgICAgRHJpdmUtYnk6IGNyZWF0ZSBhbiBh
bGlhcyBmb3IgdGhlIHR5cGUgKGBGbG9hdFJlY3RgKSB1c2VkIHdoZW4gY2FsY3VsYXRpbmcgdGhl
IGJvdW5kcyBvZgorICAgICAgICAgICAgICAgICAgZXZlcnl0aGluZyB0aGF0J3MgaGlnaGxpZ2h0
ZWQuCisKIDIwMTktMDUtMjIgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAg
ICAgICAgIFN1YnNlbGVjdG9ycyBub3Qgc2VhcmNoZWQgd2hlbiBkZXRlcm1pbmluZyBwcm9wZXJ0
eSB3aGl0ZWxpc3QgZm9yIHNlbGVjdG9yCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yT3ZlcmxheS5jcHAKaW5kZXggYzFiYjU1YWIzZTdiMTQ4ZTI3MjEyMDU4YzZlNjkxYjg3
ZTQ4ZGI5ZS4uMDA3YjYxNzg5MzY4ZTk0YjNkOTRlMGM0NDNkZDQ1MGVmYjJkZTQyOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92ZXJsYXkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmNwcApAQCAtMTk4LDcg
KzE5OCw3IEBAIHN0YXRpYyB2b2lkIGJ1aWxkUXVhZEhpZ2hsaWdodChjb25zdCBGbG9hdFF1YWQm
IHF1YWQsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnCiAgICAgaGlnaGxpZ2h0LnF1YWRzLmFw
cGVuZChxdWFkKTsKIH0KIAotc3RhdGljIFBhdGggcXVhZFRvUGF0aChjb25zdCBGbG9hdFF1YWQm
IHF1YWQsIEZsb2F0UmVjdCYgYm91bmRzKQorc3RhdGljIFBhdGggcXVhZFRvUGF0aChjb25zdCBG
bG9hdFF1YWQmIHF1YWQsIEhpZ2hsaWdodDo6Qm91bmRzJiBib3VuZHMpCiB7CiAgICAgUGF0aCBw
YXRoOwogICAgIHBhdGgubW92ZVRvKHF1YWQucDEoKSk7CkBAIC0yMTIsNyArMjEyLDcgQEAgc3Rh
dGljIFBhdGggcXVhZFRvUGF0aChjb25zdCBGbG9hdFF1YWQmIHF1YWQsIEZsb2F0UmVjdCYgYm91
bmRzKQogICAgIHJldHVybiBwYXRoOwogfQogCi1zdGF0aWMgdm9pZCBkcmF3T3V0bGluZWRRdWFk
V2l0aENsaXAoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQs
IGNvbnN0IEZsb2F0UXVhZCYgY2xpcFF1YWQsIGNvbnN0IENvbG9yJiBmaWxsQ29sb3IsIEZsb2F0
UmVjdCYgYm91bmRzKQorc3RhdGljIHZvaWQgZHJhd091dGxpbmVkUXVhZFdpdGhDbGlwKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRRdWFkJiBxdWFkLCBjb25zdCBGbG9hdFF1
YWQmIGNsaXBRdWFkLCBjb25zdCBDb2xvciYgZmlsbENvbG9yLCBIaWdobGlnaHQ6OkJvdW5kcyYg
Ym91bmRzKQogewogICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgc3RhdGVTYXZlcihjb250
ZXh0KTsKIApAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdPdXRsaW5lZFF1YWRX
aXRoQ2xpcChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYKICAgICBj
b250ZXh0LmZpbGxQYXRoKHF1YWRUb1BhdGgoY2xpcFF1YWQsIGJvdW5kcykpOwogfQogCi1zdGF0
aWMgdm9pZCBkcmF3T3V0bGluZWRRdWFkKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgY29uc3Qg
RmxvYXRRdWFkJiBxdWFkLCBjb25zdCBDb2xvciYgZmlsbENvbG9yLCBjb25zdCBDb2xvciYgb3V0
bGluZUNvbG9yLCBGbG9hdFJlY3QmIGJvdW5kcykKK3N0YXRpYyB2b2lkIGRyYXdPdXRsaW5lZFF1
YWQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBGbG9hdFF1YWQmIHF1YWQsIGNvbnN0
IENvbG9yJiBmaWxsQ29sb3IsIGNvbnN0IENvbG9yJiBvdXRsaW5lQ29sb3IsIEhpZ2hsaWdodDo6
Qm91bmRzJiBib3VuZHMpCiB7CiAgICAgUGF0aCBwYXRoID0gcXVhZFRvUGF0aChxdWFkLCBib3Vu
ZHMpOwogCkBAIC0yNDIsNyArMjQyLDcgQEAgc3RhdGljIHZvaWQgZHJhd091dGxpbmVkUXVhZChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCwgY28KICAgICBj
b250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiB9CiAKLXN0YXRpYyB2b2lkIGRyYXdGcmFnbWVudEhp
Z2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUmIG5vZGUsIGNvbnN0IEhpZ2hs
aWdodENvbmZpZyYgaGlnaGxpZ2h0Q29uZmlnLCBGbG9hdFJlY3QmIGJvdW5kcykKK3N0YXRpYyB2
b2lkIGRyYXdGcmFnbWVudEhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUm
IG5vZGUsIGNvbnN0IEhpZ2hsaWdodENvbmZpZyYgaGlnaGxpZ2h0Q29uZmlnLCBIaWdobGlnaHQ6
OkJvdW5kcyYgYm91bmRzKQogewogICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7CiAgICAgYnVpbGRO
b2RlSGlnaGxpZ2h0KG5vZGUsIGhpZ2hsaWdodENvbmZpZywgaGlnaGxpZ2h0LCBJbnNwZWN0b3JP
dmVybGF5OjpDb29yZGluYXRlU3lzdGVtOjpEb2N1bWVudCk7CkBAIC0yNzUsNyArMjc1LDcgQEAg
c3RhdGljIHZvaWQgZHJhd0ZyYWdtZW50SGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgTm9kZSYgbm9kZSwgY29uc3QgSGkKICAgICAgICAgZHJhd091dGxpbmVkUXVhZChjb250ZXh0
LCBjb250ZW50UXVhZCwgaGlnaGxpZ2h0LmNvbnRlbnRDb2xvciwgaGlnaGxpZ2h0LmNvbnRlbnRP
dXRsaW5lQ29sb3IsIGJvdW5kcyk7CiB9CiAKLXN0YXRpYyB2b2lkIGRyYXdTaGFwZUhpZ2hsaWdo
dChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUmIG5vZGUsIEZsb2F0UmVjdCYgYm91bmRz
KQorc3RhdGljIHZvaWQgZHJhd1NoYXBlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgTm9kZSYgbm9kZSwgSGlnaGxpZ2h0OjpCb3VuZHMmIGJvdW5kcykKIHsKICAgICBFbGVtZW50
KiBlbGVtZW50ID0gZWZmZWN0aXZlRWxlbWVudEZvck5vZGUobm9kZSk7CiAgICAgaWYgKCFlbGVt
ZW50KQpAQCAtMzg3LDI0ICszODcsMzIgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpwYWludChH
cmFwaGljc0NvbnRleHQmIGNvbnRleHQpCiAgICAgICAgIGNvbnRleHQuZmlsbFJlY3QoeyBGbG9h
dFBvaW50Ojp6ZXJvKCksIHZpZXdwb3J0U2l6ZSB9KTsKICAgICB9CiAKLSAgICBpZiAobV9oaWdo
bGlnaHRRdWFkKQotICAgICAgICBkcmF3UXVhZEhpZ2hsaWdodChjb250ZXh0LCAqbV9oaWdobGln
aHRRdWFkKTsKKyAgICBIaWdobGlnaHQ6OkJvdW5kcyBib3VuZHM7CisKKyAgICBpZiAobV9oaWdo
bGlnaHRRdWFkKSB7CisgICAgICAgIGF1dG8gcXVhZEJvdW5kcyA9IGRyYXdRdWFkSGlnaGxpZ2h0
KGNvbnRleHQsICptX2hpZ2hsaWdodFF1YWQpOworICAgICAgICBib3VuZHMudW5pdGUocXVhZEJv
dW5kcyk7CisgICAgfQogCiAgICAgaWYgKG1faGlnaGxpZ2h0Tm9kZUxpc3QpIHsKICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1faGlnaGxpZ2h0Tm9kZUxpc3QtPmxlbmd0aCgpOyAr
K2kpIHsKLSAgICAgICAgICAgIGlmIChOb2RlKiBub2RlID0gbV9oaWdobGlnaHROb2RlTGlzdC0+
aXRlbShpKSkKLSAgICAgICAgICAgICAgICBkcmF3Tm9kZUhpZ2hsaWdodChjb250ZXh0LCAqbm9k
ZSk7CisgICAgICAgICAgICBpZiAoTm9kZSogbm9kZSA9IG1faGlnaGxpZ2h0Tm9kZUxpc3QtPml0
ZW0oaSkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIG5vZGVCb3VuZHMgPSBkcmF3Tm9kZUhpZ2hs
aWdodChjb250ZXh0LCAqbm9kZSk7CisgICAgICAgICAgICAgICAgYm91bmRzLnVuaXRlKG5vZGVC
b3VuZHMpOworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKG1faGln
aGxpZ2h0Tm9kZSkKLSAgICAgICAgZHJhd05vZGVIaWdobGlnaHQoY29udGV4dCwgKm1faGlnaGxp
Z2h0Tm9kZSk7CisgICAgaWYgKG1faGlnaGxpZ2h0Tm9kZSkgeworICAgICAgICBhdXRvIG5vZGVC
b3VuZHMgPSBkcmF3Tm9kZUhpZ2hsaWdodChjb250ZXh0LCAqbV9oaWdobGlnaHROb2RlKTsKKyAg
ICAgICAgYm91bmRzLnVuaXRlKG5vZGVCb3VuZHMpOworICAgIH0KIAogICAgIGlmICghbV9wYWlu
dFJlY3RzLmlzRW1wdHkoKSkKICAgICAgICAgZHJhd1BhaW50UmVjdHMoY29udGV4dCwgbV9wYWlu
dFJlY3RzKTsKIAogICAgIGlmIChtX3Nob3dSdWxlcnMpCi0gICAgICAgIGRyYXdSdWxlcnMoY29u
dGV4dCk7CisgICAgICAgIGRyYXdSdWxlcnMoY29udGV4dCwgYm91bmRzKTsKIH0KIAogdm9pZCBJ
bnNwZWN0b3JPdmVybGF5OjpnZXRIaWdobGlnaHQoSGlnaGxpZ2h0JiBoaWdobGlnaHQsIEluc3Bl
Y3Rvck92ZXJsYXk6OkNvb3JkaW5hdGVTeXN0ZW0gY29vcmRpbmF0ZVN5c3RlbSkgY29uc3QKQEAg
LTU2MCw5ICs1NjgsOSBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OnVwZGF0ZVBhaW50UmVjdHNU
aW1lckZpcmVkKCkKICAgICAgICAgdXBkYXRlKCk7CiB9CiAKLXZvaWQgSW5zcGVjdG9yT3Zlcmxh
eTo6ZHJhd05vZGVIaWdobGlnaHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlJiBub2Rl
KQorSGlnaGxpZ2h0OjpCb3VuZHMgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd05vZGVIaWdobGlnaHQo
R3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlJiBub2RlKQogewotICAgIEZsb2F0UmVjdCBi
b3VuZHM7CisgICAgSGlnaGxpZ2h0OjpCb3VuZHMgYm91bmRzOwogCiAgICAgZHJhd0ZyYWdtZW50
SGlnaGxpZ2h0KGNvbnRleHQsIG5vZGUsIG1fbm9kZUhpZ2hsaWdodENvbmZpZywgYm91bmRzKTsK
IApAQCAtNTc1LDIxICs1ODMsMjUgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3Tm9kZUhp
Z2hsaWdodChHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIE5vZGUmIG5vZGUpCiAgICAgLy8gRW5z
dXJlIHRoYXQgdGhlIHRpdGxlIGluZm9ybWF0aW9uIGlzIGRyYXduIGFmdGVyIHRoZSBib3VuZHMu
CiAgICAgaWYgKG1fbm9kZUhpZ2hsaWdodENvbmZpZy5zaG93SW5mbykKICAgICAgICAgZHJhd0Vs
ZW1lbnRUaXRsZShjb250ZXh0LCBub2RlLCBib3VuZHMpOworCisgICAgcmV0dXJuIGJvdW5kczsK
IH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3UXVhZEhpZ2hsaWdodChHcmFwaGljc0Nv
bnRleHQmIGNvbnRleHQsIGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkKK0hpZ2hsaWdodDo6Qm91bmRz
IEluc3BlY3Rvck92ZXJsYXk6OmRyYXdRdWFkSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgRmxvYXRRdWFkJiBxdWFkKQogeworICAgIEhpZ2hsaWdodDo6Qm91bmRzIGJv
dW5kczsKKwogICAgIEhpZ2hsaWdodCBoaWdobGlnaHQ7CiAgICAgYnVpbGRRdWFkSGlnaGxpZ2h0
KHF1YWQsIG1fcXVhZEhpZ2hsaWdodENvbmZpZywgaGlnaGxpZ2h0KTsKIAogICAgIGlmIChoaWdo
bGlnaHQucXVhZHMuc2l6ZSgpID49IDEpIHsKLSAgICAgICAgRmxvYXRSZWN0IGJvdW5kczsKLQog
ICAgICAgICBkcmF3T3V0bGluZWRRdWFkKGNvbnRleHQsIGhpZ2hsaWdodC5xdWFkc1swXSwgaGln
aGxpZ2h0LmNvbnRlbnRDb2xvciwgaGlnaGxpZ2h0LmNvbnRlbnRPdXRsaW5lQ29sb3IsIGJvdW5k
cyk7CiAKICAgICAgICAgaWYgKG1fc2hvd1J1bGVycykKICAgICAgICAgICAgIGRyYXdCb3VuZHMo
Y29udGV4dCwgYm91bmRzKTsKICAgICB9CisKKyAgICByZXR1cm4gYm91bmRzOwogfQogCiB2b2lk
IEluc3BlY3Rvck92ZXJsYXk6OmRyYXdQYWludFJlY3RzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRGVxdWU8VGltZVJlY3RQYWlyPiYgcGFpbnRSZWN0cykKQEAgLTYwMyw3ICs2MTUs
NyBAQCB2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdQYWludFJlY3RzKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCwgY29uc3QgRGVxdWU8VGltZQogICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHBh
aXIuc2Vjb25kKTsKIH0KIAotdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3Qm91bmRzKEdyYXBo
aWNzQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmxvYXRSZWN0JiBib3VuZHMpCit2b2lkIEluc3Bl
Y3Rvck92ZXJsYXk6OmRyYXdCb3VuZHMoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjb25zdCBI
aWdobGlnaHQ6OkJvdW5kcyYgYm91bmRzKQogewogICAgIEZyYW1lVmlldyogcGFnZVZpZXcgPSBt
X3BhZ2UubWFpbkZyYW1lKCkudmlldygpOwogICAgIEZsb2F0U2l6ZSB2aWV3cG9ydFNpemUgPSBw
YWdlVmlldy0+c2l6ZUZvclZpc2libGVDb250ZW50KCk7CkBAIC02NTMsNyArNjY1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3Qm91bmRzKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgRmxvYXRSZWN0JiBib3UKICAgICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiB9CiAK
LXZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd1J1bGVycyhHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRyYXdSdWxlcnMoR3JhcGhpY3NDb250ZXh0JiBj
b250ZXh0LCBjb25zdCBIaWdobGlnaHQ6OkJvdW5kcyYgYm91bmRzKQogewogICAgIGNvbnN0IENv
bG9yIHJ1bGVyQmFja2dyb3VuZENvbG9yKDEuMGYsIDEuMGYsIDEuMGYsIDAuNmYpOwogICAgIGNv
bnN0IENvbG9yIGxpZ2h0UnVsZXJDb2xvcigwLjBmLCAwLjBmLCAwLjBmLCAwLjJmKTsKQEAgLTY5
MywyMSArNzA1LDUxIEBAIHZvaWQgSW5zcGVjdG9yT3ZlcmxheTo6ZHJhd1J1bGVycyhHcmFwaGlj
c0NvbnRleHQmIGNvbnRleHQpCiAgICAgZmxvYXQgbWF4WCA9IG1pblggKyB3aWR0aDsKICAgICBm
bG9hdCBtYXhZID0gbWluWSArIGhlaWdodDsKIAorICAgIGJvb2wgZHJhd1RvcEVkZ2UgPSB0cnVl
OworICAgIGJvb2wgZHJhd0xlZnRFZGdlID0gdHJ1ZTsKKworICAgIC8vIERldGVybWluZSB3aGlj
aCBzaWRlICh0b3AvYm90dG9tIGFuZCBsZWZ0L3JpZ2h0KSB0byBkcmF3IHRoZSBydWxlcnMuCisg
ICAgeworICAgICAgICBGbG9hdFJlY3QgdG9wRWRnZShjb250ZW50SW5zZXQud2lkdGgoKSwgY29u
dGVudEluc2V0LmhlaWdodCgpLCB6b29tKHdpZHRoKSAtIGNvbnRlbnRJbnNldC53aWR0aCgpLCBy
dWxlclNpemUpOworICAgICAgICBGbG9hdFJlY3QgYm90dG9tRWRnZShjb250ZW50SW5zZXQud2lk
dGgoKSwgem9vbShoZWlnaHQpIC0gcnVsZXJTaXplLCB6b29tKHdpZHRoKSAtIGNvbnRlbnRJbnNl
dC53aWR0aCgpLCBydWxlclNpemUpOworICAgICAgICBkcmF3VG9wRWRnZSA9ICFib3VuZHMuaW50
ZXJzZWN0cyh0b3BFZGdlKSB8fCBib3VuZHMuaW50ZXJzZWN0cyhib3R0b21FZGdlKTsKKworICAg
ICAgICBGbG9hdFJlY3QgcmlnaHRFZGdlKHpvb20od2lkdGgpIC0gcnVsZXJTaXplLCBjb250ZW50
SW5zZXQuaGVpZ2h0KCksIHJ1bGVyU2l6ZSwgem9vbShoZWlnaHQpIC0gY29udGVudEluc2V0Lmhl
aWdodCgpKTsKKyAgICAgICAgRmxvYXRSZWN0IGxlZnRFZGdlKGNvbnRlbnRJbnNldC53aWR0aCgp
LCBjb250ZW50SW5zZXQuaGVpZ2h0KCksIHJ1bGVyU2l6ZSwgem9vbShoZWlnaHQpIC0gY29udGVu
dEluc2V0LmhlaWdodCgpKTsKKyAgICAgICAgZHJhd0xlZnRFZGdlID0gIWJvdW5kcy5pbnRlcnNl
Y3RzKGxlZnRFZGdlKSB8fCBib3VuZHMuaW50ZXJzZWN0cyhyaWdodEVkZ2UpOworICAgIH0KKwor
ICAgIGZsb2F0IGNvcm5lclggPSBkcmF3TGVmdEVkZ2UgPyBjb250ZW50SW5zZXQud2lkdGgoKSA6
IHpvb20od2lkdGgpIC0gcnVsZXJTaXplOworICAgIGZsb2F0IGNvcm5lclkgPSBkcmF3VG9wRWRn
ZSA/IGNvbnRlbnRJbnNldC5oZWlnaHQoKSA6IHpvb20oaGVpZ2h0KSAtIHJ1bGVyU2l6ZTsKKwog
ICAgIC8vIERyYXcgYmFja2dyb3VuZHMuCiAgICAgewogICAgICAgICBHcmFwaGljc0NvbnRleHRT
dGF0ZVNhdmVyIGJhY2tncm91bmRTdGF0ZVNhdmVyKGNvbnRleHQpOwogCi0gICAgICAgIGZsb2F0
IG9mZnNldFggPSBjb250ZW50SW5zZXQud2lkdGgoKSArIHJ1bGVyU2l6ZTsKLSAgICAgICAgZmxv
YXQgb2Zmc2V0WSA9IGNvbnRlbnRJbnNldC5oZWlnaHQoKSArIHJ1bGVyU2l6ZTsKLQogICAgICAg
ICBjb250ZXh0LnNldEZpbGxDb2xvcihydWxlckJhY2tncm91bmRDb2xvcik7Ci0gICAgICAgIGNv
bnRleHQuZmlsbFJlY3QoeyBjb250ZW50SW5zZXQud2lkdGgoKSwgY29udGVudEluc2V0LmhlaWdo
dCgpLCBydWxlclNpemUsIHJ1bGVyU2l6ZSB9KTsKLSAgICAgICAgY29udGV4dC5maWxsUmVjdCh7
IG9mZnNldFgsIGNvbnRlbnRJbnNldC5oZWlnaHQoKSwgem9vbSh3aWR0aCkgLSBvZmZzZXRYLCBy
dWxlclNpemUgfSk7Ci0gICAgICAgIGNvbnRleHQuZmlsbFJlY3QoeyBjb250ZW50SW5zZXQud2lk
dGgoKSwgb2Zmc2V0WSwgcnVsZXJTaXplLCB6b29tKGhlaWdodCkgLSBvZmZzZXRZIH0pOworCisg
ICAgICAgIGNvbnRleHQuZmlsbFJlY3QoeyBjb3JuZXJYLCBjb3JuZXJZLCBydWxlclNpemUsIHJ1
bGVyU2l6ZSB9KTsKKworICAgICAgICBpZiAoZHJhd0xlZnRFZGdlKQorICAgICAgICAgICAgY29u
dGV4dC5maWxsUmVjdCh7IGNvcm5lclggKyBydWxlclNpemUsIGNvcm5lclksIHpvb20od2lkdGgp
IC0gY29ybmVyWCAtIHJ1bGVyU2l6ZSwgcnVsZXJTaXplIH0pOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBjb250ZXh0LmZpbGxSZWN0KHsgY29udGVudEluc2V0LndpZHRoKCksIGNvcm5lclks
IGNvcm5lclggLSBjb250ZW50SW5zZXQud2lkdGgoKSwgcnVsZXJTaXplIH0pOworCisgICAgICAg
IGlmIChkcmF3VG9wRWRnZSkKKyAgICAgICAgICAgIGNvbnRleHQuZmlsbFJlY3QoeyBjb3JuZXJY
LCBjb3JuZXJZICsgcnVsZXJTaXplLCBydWxlclNpemUsIHpvb20oaGVpZ2h0KSAtIGNvcm5lclkg
LSBydWxlclNpemUgfSk7ICAKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgY29udGV4dC5maWxs
UmVjdCh7IGNvcm5lclgsIGNvbnRlbnRJbnNldC5oZWlnaHQoKSwgcnVsZXJTaXplLCBjb3JuZXJZ
IC0gY29udGVudEluc2V0LmhlaWdodCgpIH0pOwogICAgIH0KIAogICAgIC8vIERyYXcgbGluZXMu
CiAgICAgeworICAgICAgICBGb250Q2FzY2FkZURlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsK
KyAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShtX3BhZ2Uuc2V0dGluZ3MoKS5z
YW5zU2VyaWZGb250RmFtaWx5KCkpOworICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0
ZWRTaXplKDEwKTsKKworICAgICAgICBGb250Q2FzY2FkZSBmb250KFdURk1vdmUoZm9udERlc2Ny
aXB0aW9uKSwgMCwgMCk7CisgICAgICAgIGZvbnQudXBkYXRlKG51bGxwdHIpOworCiAgICAgICAg
IEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgbGluZVN0YXRlU2F2ZXIoY29udGV4dCk7CiAKICAg
ICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoZGFya1J1bGVyQ29sb3IpOwpAQCAtNzE3LDg4ICs3
NTksODAgQEAgdm9pZCBJbnNwZWN0b3JPdmVybGF5OjpkcmF3UnVsZXJzKEdyYXBoaWNzQ29udGV4
dCYgY29udGV4dCkKICAgICAgICAgewogICAgICAgICAgICAgR3JhcGhpY3NDb250ZXh0U3RhdGVT
YXZlciBob3Jpem9udGFsUnVsZXJTdGF0ZVNhdmVyKGNvbnRleHQpOwogCi0gICAgICAgICAgICBj
b250ZXh0LnRyYW5zbGF0ZShjb250ZW50SW5zZXQud2lkdGgoKSAtIHNjcm9sbFggKyAwLjVmLCBj
b250ZW50SW5zZXQuaGVpZ2h0KCkgLSBzY3JvbGxZKTsKKyAgICAgICAgICAgIGNvbnRleHQudHJh
bnNsYXRlKGNvbnRlbnRJbnNldC53aWR0aCgpIC0gc2Nyb2xsWCArIDAuNWYsIGNvcm5lclkgLSBz
Y3JvbGxZKTsKIAogICAgICAgICAgICAgZm9yIChmbG9hdCB4ID0gbXVsdGlwbGVCZWxvdyhtaW5Y
LCBydWxlclN1YlN0ZXBJbmNyZW1lbnQpOyB4IDwgbWF4WDsgeCArPSBydWxlclN1YlN0ZXBJbmNy
ZW1lbnQpIHsKICAgICAgICAgICAgICAgICBpZiAoIXggJiYgIXNjcm9sbFgpCiAgICAgICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICAgICAgUGF0aCBwYXRoOwotICAgICAg
ICAgICAgICAgIHBhdGgubW92ZVRvKHsgem9vbSh4KSwgc2Nyb2xsWSB9KTsKKyAgICAgICAgICAg
ICAgICBwYXRoLm1vdmVUbyh7IHpvb20oeCksIGRyYXdUb3BFZGdlID8gc2Nyb2xsWSA6IHNjcm9s
bFkgKyBydWxlclNpemUgfSk7CiAKKyAgICAgICAgICAgICAgICBmbG9hdCBsaW5lTGVuZ3RoID0g
MC4wZjsKICAgICAgICAgICAgICAgICBpZiAoc3RkOjpmbW9kKHgsIHJ1bGVyU3RlcEluY3JlbWVu
dCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZUxlbmd0aCA9IHJ1bGVyU3ViU3RlcExlbmd0
aDsKICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihsaWdodFJ1bGVy
Q29sb3IpOwotICAgICAgICAgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh7IHpvb20oeCksIHNj
cm9sbFkgKyBydWxlclN1YlN0ZXBMZW5ndGggfSk7CiAgICAgICAgICAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgICAgICAgICAgbGluZUxlbmd0aCA9IHN0ZDo6Zm1vZCh4LCBydWxlclN0ZXBJ
bmNyZW1lbnQgKiAyKSA/IHJ1bGVyU3ViU3RlcExlbmd0aCA6IHJ1bGVyU3RlcExlbmd0aDsKICAg
ICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihkYXJrUnVsZXJDb2xvcik7
Ci0gICAgICAgICAgICAgICAgICAgIHBhdGguYWRkTGluZVRvKHsgem9vbSh4KSwgc2Nyb2xsWSAr
IChzdGQ6OmZtb2QoeCwgcnVsZXJTdGVwSW5jcmVtZW50ICogMikgPyBydWxlclN1YlN0ZXBMZW5n
dGggOiBydWxlclN0ZXBMZW5ndGgpIH0pOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBwYXRoLmFkZExpbmVUbyh7IHpvb20oeCksIHNjcm9sbFkgKyAoZHJhd1RvcEVkZ2UgPyBs
aW5lTGVuZ3RoIDogcnVsZXJTaXplIC0gbGluZUxlbmd0aCkgfSk7CiAKICAgICAgICAgICAgICAg
ICBjb250ZXh0LnN0cm9rZVBhdGgocGF0aCk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IC8vIERyYXcgbGFiZWxzLgorICAgICAgICAgICAgZm9yIChmbG9hdCB4ID0gbXVsdGlwbGVCZWxv
dyhtaW5YLCBydWxlclN0ZXBJbmNyZW1lbnQgKiAyKTsgeCA8IG1heFg7IHggKz0gcnVsZXJTdGVw
SW5jcmVtZW50ICogMikgeworICAgICAgICAgICAgICAgIGlmICgheCAmJiAhc2Nyb2xsWCkKKyAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgICAgICBHcmFwaGljc0Nv
bnRleHRTdGF0ZVNhdmVyIHZlcnRpY2FsTGFiZWxTdGF0ZVNhdmVyKGNvbnRleHQpOworICAgICAg
ICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRlKHpvb20oeCkgKyAwLjVmLCBzY3JvbGxZKTsKKyAg
ICAgICAgICAgICAgICBjb250ZXh0LmRyYXdUZXh0KGZvbnQsIFRleHRSdW4oU3RyaW5nOjpudW1i
ZXJUb1N0cmluZ0ZpeGVkUHJlY2lzaW9uKHgpKSwgeyAyLCBkcmF3VG9wRWRnZSA/IHJ1bGVyTGFi
ZWxTaXplIDogcnVsZXJMYWJlbFNpemUgLSBydWxlclNpemUgKyBmb250LmZvbnRNZXRyaWNzKCku
aGVpZ2h0KCkgLSAxLjBmIH0pOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAgICAg
Ly8gRHJhdyB2ZXJ0aWNhbCBydWxlci4KICAgICAgICAgewogICAgICAgICAgICAgR3JhcGhpY3ND
b250ZXh0U3RhdGVTYXZlciB2ZXJpdGNhbFJ1bGVyU3RhdGVTYXZlcihjb250ZXh0KTsKIAotICAg
ICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoY29udGVudEluc2V0LndpZHRoKCkgLSBzY3JvbGxY
LCBjb250ZW50SW5zZXQuaGVpZ2h0KCkgLSBzY3JvbGxZICsgMC41Zik7CisgICAgICAgICAgICBj
b250ZXh0LnRyYW5zbGF0ZShjb3JuZXJYIC0gc2Nyb2xsWCwgY29udGVudEluc2V0LmhlaWdodCgp
IC0gc2Nyb2xsWSArIDAuNWYpOwogCiAgICAgICAgICAgICBmb3IgKGZsb2F0IHkgPSBtdWx0aXBs
ZUJlbG93KG1pblksIHJ1bGVyU3ViU3RlcEluY3JlbWVudCk7IHkgPCBtYXhZOyB5ICs9IHJ1bGVy
U3ViU3RlcEluY3JlbWVudCkgewogICAgICAgICAgICAgICAgIGlmICgheSAmJiAhc2Nyb2xsWSkK
ICAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgICAgICBQYXRoIHBh
dGg7Ci0gICAgICAgICAgICAgICAgcGF0aC5tb3ZlVG8oeyBzY3JvbGxYLCB6b29tKHkpIH0pOwor
ICAgICAgICAgICAgICAgIHBhdGgubW92ZVRvKHsgZHJhd0xlZnRFZGdlID8gc2Nyb2xsWCA6IHNj
cm9sbFggKyBydWxlclNpemUsIHpvb20oeSkgfSk7CiAKKyAgICAgICAgICAgICAgICBmbG9hdCBs
aW5lTGVuZ3RoID0gMC4wZjsKICAgICAgICAgICAgICAgICBpZiAoc3RkOjpmbW9kKHksIHJ1bGVy
U3RlcEluY3JlbWVudCkpIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZUxlbmd0aCA9IHJ1bGVy
U3ViU3RlcExlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xv
cihsaWdodFJ1bGVyQ29sb3IpOwotICAgICAgICAgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh7
IHNjcm9sbFggKyBydWxlclN1YlN0ZXBMZW5ndGgsIHpvb20oeSkgfSk7CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgbGluZUxlbmd0aCA9IHN0ZDo6Zm1vZCh5
LCBydWxlclN0ZXBJbmNyZW1lbnQgKiAyKSA/IHJ1bGVyU3ViU3RlcExlbmd0aCA6IHJ1bGVyU3Rl
cExlbmd0aDsKICAgICAgICAgICAgICAgICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihkYXJr
UnVsZXJDb2xvcik7Ci0gICAgICAgICAgICAgICAgICAgIHBhdGguYWRkTGluZVRvKHsgc2Nyb2xs
WCArIChzdGQ6OmZtb2QoeSwgcnVsZXJTdGVwSW5jcmVtZW50ICogMikgPyBydWxlclN1YlN0ZXBM
ZW5ndGggOiBydWxlclN0ZXBMZW5ndGgpLCB6b29tKHkpIH0pOwogICAgICAgICAgICAgICAgIH0K
KyAgICAgICAgICAgICAgICBwYXRoLmFkZExpbmVUbyh7IHNjcm9sbFggKyAoZHJhd0xlZnRFZGdl
ID8gbGluZUxlbmd0aCA6IHJ1bGVyU2l6ZSAtIGxpbmVMZW5ndGgpLCB6b29tKHkpIH0pOwogCiAg
ICAgICAgICAgICAgICAgY29udGV4dC5zdHJva2VQYXRoKHBhdGgpOwogICAgICAgICAgICAgfQot
ICAgICAgICB9Ci0KLSAgICAgICAgLy8gRHJhdyBsYWJlbHMuCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIEdyYXBoaWNzQ29udGV4dFN0YXRlU2F2ZXIgbGFiZWxTdGF0ZVNhdmVyKGNvbnRleHQpOwot
Ci0gICAgICAgICAgICBGb250Q2FzY2FkZURlc2NyaXB0aW9uIGZvbnREZXNjcmlwdGlvbjsKLSAg
ICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkobV9wYWdlLnNldHRpbmdzKCku
c2Fuc1NlcmlmRm9udEZhbWlseSgpKTsKLSAgICAgICAgICAgIGZvbnREZXNjcmlwdGlvbi5zZXRD
b21wdXRlZFNpemUoMTApOwotCi0gICAgICAgICAgICBGb250Q2FzY2FkZSBmb250KFdURk1vdmUo
Zm9udERlc2NyaXB0aW9uKSwgMCwgMCk7Ci0gICAgICAgICAgICBmb250LnVwZGF0ZShudWxscHRy
KTsKLQotICAgICAgICAgICAgY29udGV4dC50cmFuc2xhdGUoY29udGVudEluc2V0LndpZHRoKCkg
LSBzY3JvbGxYLCBjb250ZW50SW5zZXQuaGVpZ2h0KCkgLSBzY3JvbGxZKTsKLQotICAgICAgICAg
ICAgZm9yIChmbG9hdCB4ID0gbXVsdGlwbGVCZWxvdyhtaW5YLCBydWxlclN0ZXBJbmNyZW1lbnQg
KiAyKTsgeCA8IG1heFg7IHggKz0gcnVsZXJTdGVwSW5jcmVtZW50ICogMikgewotICAgICAgICAg
ICAgICAgIGlmICgheCAmJiAhc2Nyb2xsWCkKLSAgICAgICAgICAgICAgICAgICAgY29udGludWU7
Ci0KLSAgICAgICAgICAgICAgICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHZlcnRpY2FsTGFi
ZWxTdGF0ZVNhdmVyKGNvbnRleHQpOwotICAgICAgICAgICAgICAgIGNvbnRleHQudHJhbnNsYXRl
KHpvb20oeCkgKyAwLjVmLCBzY3JvbGxZKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LmRyYXdU
ZXh0KGZvbnQsIFRleHRSdW4oU3RyaW5nOjpudW1iZXJUb1N0cmluZ0ZpeGVkUHJlY2lzaW9uKHgp
KSwgeyAyLCBydWxlckxhYmVsU2l6ZSB9KTsKLSAgICAgICAgICAgIH0KIAorICAgICAgICAgICAg
Ly8gRHJhdyBsYWJlbHMuCiAgICAgICAgICAgICBmb3IgKGZsb2F0IHkgPSBtdWx0aXBsZUJlbG93
KG1pblksIHJ1bGVyU3RlcEluY3JlbWVudCAqIDIpOyB5IDwgbWF4WTsgeSArPSBydWxlclN0ZXBJ
bmNyZW1lbnQgKiAyKSB7CiAgICAgICAgICAgICAgICAgaWYgKCF5ICYmICFzY3JvbGxZKQogICAg
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAgICAgICAgIEdyYXBoaWNzQ29u
dGV4dFN0YXRlU2F2ZXIgaG9yaXpvbnRhbExhYmVsU3RhdGVTYXZlcihjb250ZXh0KTsKICAgICAg
ICAgICAgICAgICBjb250ZXh0LnRyYW5zbGF0ZShzY3JvbGxYLCB6b29tKHkpICsgMC41Zik7Ci0g
ICAgICAgICAgICAgICAgY29udGV4dC5yb3RhdGUoLXBpT3ZlclR3b0Zsb2F0KTsKLSAgICAgICAg
ICAgICAgICBjb250ZXh0LmRyYXdUZXh0KGZvbnQsIFRleHRSdW4oU3RyaW5nOjpudW1iZXJUb1N0
cmluZ0ZpeGVkUHJlY2lzaW9uKHkpKSwgeyAyLCBydWxlckxhYmVsU2l6ZSB9KTsKKyAgICAgICAg
ICAgICAgICBjb250ZXh0LnJvdGF0ZShkcmF3TGVmdEVkZ2UgPyAtcGlPdmVyVHdvRmxvYXQgOiBw
aU92ZXJUd29GbG9hdCk7CisgICAgICAgICAgICAgICAgY29udGV4dC5kcmF3VGV4dChmb250LCBU
ZXh0UnVuKFN0cmluZzo6bnVtYmVyVG9TdHJpbmdGaXhlZFByZWNpc2lvbih5KSksIHsgMiwgZHJh
d0xlZnRFZGdlID8gcnVsZXJMYWJlbFNpemUgOiBydWxlckxhYmVsU2l6ZSAtIHJ1bGVyU2l6ZSB9
KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JP
dmVybGF5OjpkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYgY29udGV4dCwgTm9kZSYg
bm9kZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZHMpCit2b2lkIEluc3BlY3Rvck92ZXJsYXk6OmRy
YXdFbGVtZW50VGl0bGUoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBOb2RlJiBub2RlLCBjb25z
dCBIaWdobGlnaHQ6OkJvdW5kcyYgYm91bmRzKQogewogICAgIGlmIChib3VuZHMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yT3ZlcmxheS5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvck92
ZXJsYXkuaAppbmRleCBlNWNlYTExOGU4NWQwZGJkZWUyYmY5YjcyZDU1M2JkOTIzZjc2OTZkLi44
MjgwMGYwNjQxMjhhMDcwOGQ0ZTNmYmJlMmQzMmU1YzYzMGFmNTQwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yT3ZlcmxheS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JPdmVybGF5LmgKQEAgLTg3LDYgKzg3LDggQEAgc3RydWN0
IEhpZ2hsaWdodCB7CiAgICAgSGlnaGxpZ2h0VHlwZSB0eXBlIHtIaWdobGlnaHRUeXBlOjpOb2Rl
fTsKICAgICBWZWN0b3I8RmxvYXRRdWFkPiBxdWFkczsKICAgICBib29sIHVzZVBhZ2VDb29yZGlu
YXRlcyB7dHJ1ZX07CisKKyAgICB1c2luZyBCb3VuZHMgPSBGbG9hdFJlY3Q7CiB9OwogCiBjbGFz
cyBJbnNwZWN0b3JPdmVybGF5IHsKQEAgLTEyNSwxMyArMTI3LDEzIEBAIHByaXZhdGU6CiAKICAg
ICBib29sIHNob3VsZFNob3dPdmVybGF5KCkgY29uc3Q7CiAKLSAgICB2b2lkIGRyYXdOb2RlSGln
aGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYsIE5vZGUmKTsKLSAgICB2b2lkIGRyYXdRdWFkSGlnaGxp
Z2h0KEdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IEZsb2F0UXVhZCYpOworICAgIEhpZ2hsaWdodDo6
Qm91bmRzIGRyYXdOb2RlSGlnaGxpZ2h0KEdyYXBoaWNzQ29udGV4dCYsIE5vZGUmKTsKKyAgICBI
aWdobGlnaHQ6OkJvdW5kcyBkcmF3UXVhZEhpZ2hsaWdodChHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBGbG9hdFF1YWQmKTsKICAgICB2b2lkIGRyYXdQYWludFJlY3RzKEdyYXBoaWNzQ29udGV4dCYs
IGNvbnN0IERlcXVlPFRpbWVSZWN0UGFpcj4mKTsKLSAgICB2b2lkIGRyYXdCb3VuZHMoR3JhcGhp
Y3NDb250ZXh0JiwgY29uc3QgRmxvYXRSZWN0Jik7Ci0gICAgdm9pZCBkcmF3UnVsZXJzKEdyYXBo
aWNzQ29udGV4dCYpOworICAgIHZvaWQgZHJhd0JvdW5kcyhHcmFwaGljc0NvbnRleHQmLCBjb25z
dCBIaWdobGlnaHQ6OkJvdW5kcyYpOworICAgIHZvaWQgZHJhd1J1bGVycyhHcmFwaGljc0NvbnRl
eHQmLCBjb25zdCBIaWdobGlnaHQ6OkJvdW5kcyYpOwogCi0gICAgdm9pZCBkcmF3RWxlbWVudFRp
dGxlKEdyYXBoaWNzQ29udGV4dCYsIE5vZGUmLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5kcyk7Cisg
ICAgdm9pZCBkcmF3RWxlbWVudFRpdGxlKEdyYXBoaWNzQ29udGV4dCYsIE5vZGUmLCBjb25zdCBI
aWdobGlnaHQ6OkJvdW5kcyYpOwogCiAgICAgdm9pZCB1cGRhdGVQYWludFJlY3RzVGltZXJGaXJl
ZCgpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>