<?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>135683</bug_id>
          
          <creation_ts>2014-08-06 18:42:23 -0700</creation_ts>
          <short_desc>Services overlay flashes a lot; should have some hysteresis before showing overlay</short_desc>
          <delta_ts>2014-08-06 19:58:48 -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>WebKit2</component>
          <version>528+ (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="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>enrica</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1027386</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-06 18:42:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/16878039&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027394</commentid>
    <comment_count>1</comment_count>
      <attachid>236166</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-06 19:30:42 -0700</bug_when>
    <thetext>Created attachment 236166
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027395</commentid>
    <comment_count>2</comment_count>
      <attachid>236166</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-06 19:31:45 -0700</bug_when>
    <thetext>Comment on attachment 236166
patch

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

&gt; Source/WebCore/dom/Document.cpp:3523
&gt; +    /*ASSERT(m_inInvalidateNodeListAndCollectionCaches

err. ignore this part.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027399</commentid>
    <comment_count>3</comment_count>
      <attachid>236166</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2014-08-06 19:43:21 -0700</bug_when>
    <thetext>Comment on attachment 236166
patch

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

&gt; Source/WebKit2/WebProcess/WebPage/ServicesOverlayController.h:89
&gt; +    bool mouseIsOverHighlight(DDHighlightRef, bool&amp; mouseIsOverButton);

const method?

&gt; Source/WebKit2/WebProcess/WebPage/ServicesOverlayController.h:90
&gt; +    std::chrono::milliseconds remainingTimeUntilHighlightShouldBeShown();

const method?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027401</commentid>
    <comment_count>4</comment_count>
      <attachid>236168</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-06 19:55:30 -0700</bug_when>
    <thetext>Created attachment 236168
patch

Made Simon&apos;s changes; turned off hysteresis for telephone number highlights (they&apos;re already nice and stable); made it so that clicking where the highlight would be won&apos;t show the menu unless the timeout has passed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1027405</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-08-06 19:58:48 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/172200</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236166</attachid>
            <date>2014-08-06 19:30:42 -0700</date>
            <delta_ts>2014-08-06 19:55:30 -0700</delta_ts>
            <desc>patch</desc>
            <filename>highlight-hysteresis.diff</filename>
            <type>text/plain</type>
            <size>13102</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDkyMzA5NGQuLmVmOWM1OTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtMzUyMCw5ICszNTIwLDkgQEAgdm9pZCBEb2N1bWVudDo6dW5yZWdp
c3RlckNvbGxlY3Rpb24oSFRNTENvbGxlY3Rpb24mIGNvbGxlY3Rpb24pCiAgICAgaWYgKCFjb2xs
ZWN0aW9uLmlzUm9vdGVkQXREb2N1bWVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBBU1NF
UlQobV9pbkludmFsaWRhdGVOb2RlTGlzdEFuZENvbGxlY3Rpb25DYWNoZXMKKyAgICAvKkFTU0VS
VChtX2luSW52YWxpZGF0ZU5vZGVMaXN0QW5kQ29sbGVjdGlvbkNhY2hlcwogICAgICAgICA/IG1f
Y29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuaXNFbXB0eSgpCi0gICAgICAgIDogbV9j
b2xsZWN0aW9uc0ludmFsaWRhdGVkQXREb2N1bWVudC5jb250YWlucygmY29sbGVjdGlvbikpOwor
ICAgICAgICA6IG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQuY29udGFpbnMoJmNv
bGxlY3Rpb24pKTsqLwogICAgIG1fY29sbGVjdGlvbnNJbnZhbGlkYXRlZEF0RG9jdW1lbnQucmVt
b3ZlKCZjb2xsZWN0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDU2N2Y3MGUuLmVkM2QyNTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxNC0wOC0wNiAgVGltIEhvcnRvbiAgPHRpbW90
aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBTZXJ2aWNlcyBvdmVybGF5IGZsYXNoZXMg
YSBsb3Q7IHNob3VsZCBoYXZlIHNvbWUgaHlzdGVyZXNpcyBiZWZvcmUgc2hvd2luZyBvdmVybGF5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMzU2ODMK
KyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE2ODc4MDM5PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IHNob3cgdGhlIGhpZ2hsaWdodCB1bnRp
bCBpdCdzIGJlZW4gMjAwbXMgc2luY2UgdGhlIGxhc3QgY2hhbmdlCisgICAgICAgIGluIHNlbGVj
dGlvbiBvciBjaGFuZ2UgaW4gd2hpY2ggaGlnaGxpZ2h0IGlzIGhvdmVyZWQsIHdoaWNoZXZlciB3
YXMgbW9yZSByZWNlbnQuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvU2VydmljZXNP
dmVybGF5Q29udHJvbGxlci5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcik6CisgICAgICAgIChXZWJL
aXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnNlbGVjdGlvblJlY3RzRGlkQ2hhbmdlKToK
KyAgICAgICAgS2VlcCB0cmFjayBvZiB3aGVuIHRoZSBzZWxlY3Rpb24gbGFzdCBjaGFuZ2VkLgor
CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdUZWxlcGhv
bmVOdW1iZXJIaWdobGlnaHRJZlZpc2libGUpOgorICAgICAgICBNYWtlIGVzdGFibGlzaEhvdmVy
ZWRUZWxlcGhvbmVIaWdobGlnaHQgdGFrZSBhIGJvb2wgaW5zdGVhZCBvZiBCb29sZWFuLgorCisg
ICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNlSXNPdmVySGln
aGxpZ2h0KToKKyAgICAgICAgRmFjdG9yIG1vdXNlSXNPdmVySGlnaGxpZ2h0IG91dCBvZiBlc3Rh
Ymxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0IGFuZCBkcmF3SGlnaGxpZ2h0LgorCisgICAg
ICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJlbWFpbmluZ1RpbWVVbnRp
bEhpZ2hsaWdodFNob3VsZEJlU2hvd24pOgorICAgICAgICBSZXR1cm4gdGhlIGFtb3VudCBvZiB0
aW1lIHVudGlsIHRoZSBoaWdobGlnaHQgc2hvdWxkIGJlIHNob3duOyB0aGlzIGlzCisgICAgICAg
IHRoZSBtYXhpbXVtIG9mICh0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsYXN0IHNlbGVjdGlv
biBjaGFuZ2UgYW5kIHRoZSB0aW1lb3V0KQorICAgICAgICBhbmQgKHRoZSBkaWZmZXJlbmNlIGJl
dHdlZW4gdGhlIGxhc3QgY2hhbmdlIGluIHdoaWNoIGhpZ2hsaWdodCBpcyBob3ZlcmVkIGFuZCB0
aGUgdGltZW91dCkuCisKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6cmVwYWludEhpZ2hsaWdodFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOjpkcmF3SGlnaGxpZ2h0KToKKyAgICAgICAgSWYgdGhlIGhpZ2hs
aWdodCBzaG91bGRuJ3QgYmUgc2hvd24geWV0IChiZWNhdXNlIHdlIGhhdmVuJ3QgaGl0IHRoZSB0
d28gdGltZW91dHMpLAorICAgICAgICBzY2hlZHVsZSBhIHRpbWVyIHRvIHJlcGFpbnQgdXMgYXJv
dW5kIHdoZW4gd2Ugd2lsbCBoaXQgdGhlIHRpbWVvdXRzLgorCisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmVzdGFibGlzaEhvdmVyZWRUZWxlcGhvbmVIaWdobGln
aHQpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUV2
ZW50KToKKwogMjAxNC0wOC0wNiAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciB1c2VyIHNjcmlwdHMgdG8g
V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAppbmRleCA4
ZjMwYTlhLi4yYmI3OWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLmgKQEAgLTMwLDYgKzMw
LDcgQEAKIAogI2luY2x1ZGUgIlBhZ2VPdmVybGF5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9SYW5n
ZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvVGltZXIuaD4KIAogdHlwZWRlZiB2b2lkKiBEREhpZ2hs
aWdodFJlZjsKIApAQCAtNzksMTcgKzgwLDIzIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkcmF3U2Vs
ZWN0aW9uSGlnaGxpZ2h0KFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYsIGNvbnN0IFdlYkNvcmU6
OkludFJlY3QmIGRpcnR5UmVjdCk7CiAgICAgdm9pZCBkcmF3SGlnaGxpZ2h0KERESGlnaGxpZ2h0
UmVmLCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmKTsKIAotICAgIHZvaWQgZXN0YWJsaXNoSG92
ZXJlZFRlbGVwaG9uZUhpZ2hsaWdodChCb29sZWFuJiBvbkJ1dHRvbik7CisgICAgdm9pZCBlc3Rh
Ymxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KGJvb2wmIG1vdXNlSXNPdmVyQnV0dG9uKTsK
ICAgICB2b2lkIG1heWJlQ3JlYXRlU2VsZWN0aW9uSGlnaGxpZ2h0KCk7CiAKICAgICB2b2lkIGNs
ZWFyU2VsZWN0aW9uSGlnaGxpZ2h0KCk7CiAgICAgdm9pZCBjbGVhckhvdmVyZWRUZWxlcGhvbmVO
dW1iZXJIaWdobGlnaHQoKTsKIAorICAgIGJvb2wgbW91c2VJc092ZXJIaWdobGlnaHQoRERIaWdo
bGlnaHRSZWYsIGJvb2wmIG1vdXNlSXNPdmVyQnV0dG9uKTsKKyAgICBzdGQ6OmNocm9ubzo6bWls
bGlzZWNvbmRzIHJlbWFpbmluZ1RpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24oKTsKKyAg
ICB2b2lkIHJlcGFpbnRIaWdobGlnaHRUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI+Jik7CisKICAgICBXZWJQYWdlKiBtX3dlYlBhZ2U7CiAgICAgUGFn
ZU92ZXJsYXkqIG1fc2VydmljZXNPdmVybGF5OwogICAgIAogICAgIFZlY3RvcjxXZWJDb3JlOjpM
YXlvdXRSZWN0PiBtX2N1cnJlbnRTZWxlY3Rpb25SZWN0czsKICAgICBSZXRhaW5QdHI8RERIaWdo
bGlnaHRSZWY+IG1fc2VsZWN0aW9uSGlnaGxpZ2h0OworICAgIHN0ZDo6Y2hyb25vOjpzdGVhZHlf
Y2xvY2s6OnRpbWVfcG9pbnQgbV9sYXN0U2VsZWN0aW9uQ2hhbmdlVGltZTsKKyAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fbGFzdEhvdmVyZWRIaWdobGlnaHRDaGFu
Z2VUaW1lOwogCiAgICAgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpSYW5nZT4+IG1fY3VycmVudFRl
bGVwaG9uZU51bWJlclJhbmdlczsKICAgICBWZWN0b3I8UmV0YWluUHRyPERESGlnaGxpZ2h0UmVm
Pj4gbV90ZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRzOwpAQCAtOTgsNiArMTA1LDggQEAgcHJpdmF0
ZToKICAgICBSZXRhaW5QdHI8RERIaWdobGlnaHRSZWY+IG1fY3VycmVudEhvdmVyZWRIaWdobGln
aHQ7CiAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX2N1cnJlbnRNb3VzZURvd25PbkJ1
dHRvbkhpZ2hsaWdodDsKIAorICAgIFdlYkNvcmU6OlRpbWVyPFNlcnZpY2VzT3ZlcmxheUNvbnRy
b2xsZXI+IG1fcmVwYWludEhpZ2hsaWdodFRpbWVyOworCiAgICAgV2ViQ29yZTo6SW50UG9pbnQg
bV9tb3VzZVBvc2l0aW9uOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1t
CmluZGV4IDMyYzdkOTQuLmI4NzM2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9tYWMvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXIubW0KQEAgLTc2LDYgKzc2LDcgQEAgc3RhdGljIEludFJlY3QgdGV4dFF1YWRzVG9Cb3VuZGlu
Z1JlY3RGb3JSYW5nZShSYW5nZSYgcmFuZ2UpCiBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyKFdlYlBhZ2UmIHdlYlBhZ2UpCiAgICAgOiBtX3dlYlBh
Z2UoJndlYlBhZ2UpCiAgICAgLCBtX3NlcnZpY2VzT3ZlcmxheShudWxscHRyKQorICAgICwgbV9y
ZXBhaW50SGlnaGxpZ2h0VGltZXIodGhpcywgJlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJl
cGFpbnRIaWdobGlnaHRUaW1lckZpcmVkKQogewogfQogCkBAIC0yMTYsNiArMjE3LDggQEAgdm9p
ZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpzZWxlY3Rpb25SZWN0c0RpZENoYW5nZShjb25z
dCBWZWN0b3I8TGF5b3V0UmVjdD4KICAgICBjbGVhclNlbGVjdGlvbkhpZ2hsaWdodCgpOwogICAg
IG1fY3VycmVudFNlbGVjdGlvblJlY3RzID0gcmVjdHM7CiAKKyAgICBtX2xhc3RTZWxlY3Rpb25D
aGFuZ2VUaW1lID0gc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CisKICAgICBjb21w
YWN0UmVjdHNXaXRoR2FwUmVjdHMobV9jdXJyZW50U2VsZWN0aW9uUmVjdHMsIGdhcFJlY3RzKTsK
IAogICAgIC8vIERhdGFEZXRlY3RvcnMgbmVlZHMgdGhlc2UgcmV2ZXJzZWQgaW4gb3JkZXIgdG8g
cGxhY2UgdGhlIGFycm93IGluIHRoZSByaWdodCBsb2NhdGlvbi4KQEAgLTMwNiw4ICszMDksOCBA
QCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdUZWxlcGhvbmVOdW1iZXJIaWdo
bGlnaHRJZlZpc2libGUoV2ViQ29yZTo6RwogCiAgICAgLy8gRm91bmQgb3V0IHdoaWNoIC0gaWYg
YW55IC0gdGVsZXBob25lIG51bWJlciBpcyBob3ZlcmVkLgogICAgIGlmICghbV9ob3ZlcmVkVGVs
ZXBob25lTnVtYmVyRGF0YSkgewotICAgICAgICBCb29sZWFuIG9uQnV0dG9uOwotICAgICAgICBl
c3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KG9uQnV0dG9uKTsKKyAgICAgICAgYm9v
bCBtb3VzZUlzT3ZlckJ1dHRvbjsKKyAgICAgICAgZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhp
Z2hsaWdodChtb3VzZUlzT3ZlckJ1dHRvbik7CiAgICAgfQogCiAgICAgLy8gSWYgYSB0ZWxlcGhv
bmUgbnVtYmVyIGlzIGFjdHVhbGx5IGhvdmVyZWQsIGRyYXcgaXQuCkBAIC0zMTksMTggKzMyMiw0
NyBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdUZWxlcGhvbmVOdW1iZXJI
aWdobGlnaHRJZlZpc2libGUoV2ViQ29yZTo6RwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUlzT3ZlckhpZ2hsaWdodChEREhpZ2hs
aWdodFJlZiBoaWdobGlnaHQsIGJvb2wmIG1vdXNlSXNPdmVyQnV0dG9uKQoreworICAgIEJvb2xl
YW4gb25CdXR0b247CisgICAgYm9vbCBob3ZlcmVkID0gRERIaWdobGlnaHRQb2ludElzT25IaWdo
bGlnaHQoaGlnaGxpZ2h0LCAoQ0dQb2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1dHRvbik7Cisg
ICAgbW91c2VJc092ZXJCdXR0b24gPSBvbkJ1dHRvbjsKKyAgICByZXR1cm4gaG92ZXJlZDsKK30K
Kworc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpy
ZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duKCkKK3sKKyAgICBzdGQ6OmNo
cm9ubzo6c3RlYWR5X2Nsb2NrOjpkdXJhdGlvbiBtaW5pbXVtVGltZVVudGlsSGlnaGxpZ2h0U2hv
dWxkQmVTaG93biA9IDIwMF9tczsKKworICAgIGF1dG8gbm93ID0gc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6bm93KCk7CisgICAgYXV0byB0aW1lU2luY2VMYXN0U2VsZWN0aW9uQ2hhbmdlID0g
bm93IC0gbV9sYXN0U2VsZWN0aW9uQ2hhbmdlVGltZTsKKyAgICBhdXRvIHRpbWVTaW5jZU1vdXNl
T3ZlclNlbGVjdGlvbiA9IG5vdyAtIG1fbGFzdEhvdmVyZWRIaWdobGlnaHRDaGFuZ2VUaW1lOwor
CisgICAgcmV0dXJuIHN0ZDo6Y2hyb25vOjpkdXJhdGlvbl9jYXN0PHN0ZDo6Y2hyb25vOjptaWxs
aXNlY29uZHM+KHN0ZDo6bWF4KG1pbmltdW1UaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3du
IC0gdGltZVNpbmNlTGFzdFNlbGVjdGlvbkNoYW5nZSwgbWluaW11bVRpbWVVbnRpbEhpZ2hsaWdo
dFNob3VsZEJlU2hvd24gLSB0aW1lU2luY2VNb3VzZU92ZXJTZWxlY3Rpb24pKTsKK30KKwordm9p
ZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjpyZXBhaW50SGlnaGxpZ2h0VGltZXJGaXJlZChX
ZWJDb3JlOjpUaW1lcjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyPiYpCit7CisgICAgaWYgKG1f
c2VydmljZXNPdmVybGF5KQorICAgICAgICBtX3NlcnZpY2VzT3ZlcmxheS0+c2V0TmVlZHNEaXNw
bGF5KCk7Cit9CisKIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZHJhd0hpZ2hsaWdo
dChEREhpZ2hsaWdodFJlZiBoaWdobGlnaHQsIFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dCYgZ3Jh
cGhpY3NDb250ZXh0KQogewogICAgIEFTU0VSVChoaWdobGlnaHQpOwogCi0gICAgQm9vbGVhbiBv
bkJ1dHRvbjsKLSAgICBib29sIG1vdXNlSXNPdmVySGlnaGxpZ2h0ID0gRERIaWdobGlnaHRQb2lu
dElzT25IaWdobGlnaHQoaGlnaGxpZ2h0LCAoQ0dQb2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1
dHRvbik7Ci0KLSAgICBpZiAoIW1vdXNlSXNPdmVySGlnaGxpZ2h0KSB7CisgICAgYm9vbCBtb3Vz
ZUlzT3ZlckJ1dHRvbjsKKyAgICBpZiAoIW1vdXNlSXNPdmVySGlnaGxpZ2h0KGhpZ2hsaWdodCwg
bW91c2VJc092ZXJCdXR0b24pKSB7CiAgICAgICAgIExPRyhTZXJ2aWNlcywgIlNlcnZpY2VzT3Zl
cmxheUNvbnRyb2xsZXI6OmRyYXdIaWdobGlnaHQgLSBNb3VzZSBpcyBub3Qgb3ZlciBoaWdobGln
aHQsIHNvIGRyYXdpbmcgbm90aGluZyIpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAg
YXV0byByZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID0gdGhpcy0+cmVt
YWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bigpOworICAgIGlmIChyZW1haW5p
bmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duID4gc3RkOjpjaHJvbm86OnN0ZWFkeV9j
bG9jazo6ZHVyYXRpb246Onplcm8oKSkgeworICAgICAgICBtX3JlcGFpbnRIaWdobGlnaHRUaW1l
ci5zdGFydE9uZVNob3QocmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93bik7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBDR0NvbnRleHRSZWYgY2dDb250ZXh0ID0g
Z3JhcGhpY3NDb250ZXh0LnBsYXRmb3JtQ29udGV4dCgpOwogICAgIAogICAgIENHTGF5ZXJSZWYg
aGlnaGxpZ2h0TGF5ZXIgPSBEREhpZ2hsaWdodEdldExheWVyV2l0aENvbnRleHQoaGlnaGxpZ2h0
LCBjZ0NvbnRleHQpOwpAQCAtMzcxLDcgKzQwMyw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6Y2xlYXJIb3ZlcmVkVGVsZXBob25lTnVtYmVySGlnaGxpZ2h0KCkKICAgICBtX2hv
dmVyZWRUZWxlcGhvbmVOdW1iZXJEYXRhID0gbnVsbHB0cjsKIH0KIAotdm9pZCBTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjplc3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KEJvb2xl
YW4mIG9uQnV0dG9uKQordm9pZCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjplc3RhYmxpc2hI
b3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KGJvb2wmIG1vdXNlSXNPdmVyQnV0dG9uKQogewogICAg
IEFTU0VSVChtX2N1cnJlbnRUZWxlcGhvbmVOdW1iZXJSYW5nZXMuc2l6ZSgpID09IG1fdGVsZXBo
b25lTnVtYmVySGlnaGxpZ2h0cy5zaXplKCkpOwogCkBAIC0zOTUsNyArNDI3LDcgQEAgdm9pZCBT
ZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjplc3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxp
Z2h0KEJvb2xlYW4mIG9uQnUKICAgICAgICAgICAgIG1fdGVsZXBob25lTnVtYmVySGlnaGxpZ2h0
c1tpXSA9IGFkb3B0Q0YoRERIaWdobGlnaHRDcmVhdGVXaXRoUmVjdHNJblZpc2libGVSZWN0V2l0
aFN0eWxlQW5kRGlyZWN0aW9uKG51bGxwdHIsICZjZ1JlY3QsIDEsIHZpZXdGb3JSYW5nZS0+Ym91
bmRzUmVjdCgpLCBEREhpZ2hsaWdodE91dGxpbmVXaXRoQXJyb3csIFlFUywgTlNXcml0aW5nRGly
ZWN0aW9uTmF0dXJhbCwgTk8sIFlFUykpOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFEREhp
Z2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodChtX3RlbGVwaG9uZU51bWJlckhpZ2hsaWdodHNbaV0u
Z2V0KCksIChDR1BvaW50KW1fbW91c2VQb3NpdGlvbiwgJm9uQnV0dG9uKSkKKyAgICAgICAgaWYg
KCFtb3VzZUlzT3ZlckhpZ2hsaWdodChtX3RlbGVwaG9uZU51bWJlckhpZ2hsaWdodHNbaV0uZ2V0
KCksIG1vdXNlSXNPdmVyQnV0dG9uKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAg
IGlmICghbV9ob3ZlcmVkVGVsZXBob25lTnVtYmVyRGF0YSB8fCBtX2hvdmVyZWRUZWxlcGhvbmVO
dW1iZXJEYXRhLT5oaWdobGlnaHQgIT0gbV90ZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRzW2ldKQpA
QCAtNDA2LDcgKzQzOCw3IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZXN0YWJs
aXNoSG92ZXJlZFRlbGVwaG9uZUhpZ2hsaWdodChCb29sZWFuJiBvbkJ1CiAgICAgfQogCiAgICAg
Y2xlYXJIb3ZlcmVkVGVsZXBob25lTnVtYmVySGlnaGxpZ2h0KCk7Ci0gICAgb25CdXR0b24gPSBm
YWxzZTsKKyAgICBtb3VzZUlzT3ZlckJ1dHRvbiA9IGZhbHNlOwogfQogCiB2b2lkIFNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXI6Om1heWJlQ3JlYXRlU2VsZWN0aW9uSGlnaGxpZ2h0KCkKQEAgLTQz
NCw4ICs0NjYsOCBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNlRXZlbnQo
UGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldgogCiAgICAgRERIaWdobGlnaHRS
ZWYgb2xkSG92ZXJlZEhpZ2hsaWdodCA9IG1fY3VycmVudEhvdmVyZWRIaWdobGlnaHQuZ2V0KCk7
CiAKLSAgICBCb29sZWFuIG9uQnV0dG9uID0gZmFsc2U7Ci0gICAgZXN0YWJsaXNoSG92ZXJlZFRl
bGVwaG9uZUhpZ2hsaWdodChvbkJ1dHRvbik7CisgICAgYm9vbCBtb3VzZUlzT3ZlckJ1dHRvbiA9
IGZhbHNlOworICAgIGVzdGFibGlzaEhvdmVyZWRUZWxlcGhvbmVIaWdobGlnaHQobW91c2VJc092
ZXJCdXR0b24pOwogICAgIGlmIChtX2hvdmVyZWRUZWxlcGhvbmVOdW1iZXJEYXRhKSB7CiAgICAg
ICAgIEFTU0VSVChtX2hvdmVyZWRUZWxlcGhvbmVOdW1iZXJEYXRhLT5oaWdobGlnaHQpOwogICAg
ICAgICBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0ID0gbV9ob3ZlcmVkVGVsZXBob25lTnVtYmVy
RGF0YS0+aGlnaGxpZ2h0OwpAQCAtNDQzLDE0ICs0NzUsMTYgQEAgYm9vbCBTZXJ2aWNlc092ZXJs
YXlDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiwgY29uc3QgV2ViTW91c2VFdmVu
dCYgZXYKICAgICAgICAgaWYgKCFtX3NlbGVjdGlvbkhpZ2hsaWdodCkKICAgICAgICAgICAgIG1h
eWJlQ3JlYXRlU2VsZWN0aW9uSGlnaGxpZ2h0KCk7CiAKLSAgICAgICAgaWYgKG1fc2VsZWN0aW9u
SGlnaGxpZ2h0ICYmIERESGlnaGxpZ2h0UG9pbnRJc09uSGlnaGxpZ2h0KG1fc2VsZWN0aW9uSGln
aGxpZ2h0LmdldCgpLCAoQ0dQb2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1dHRvbikpCisgICAg
ICAgIGlmIChtX3NlbGVjdGlvbkhpZ2hsaWdodCAmJiBtb3VzZUlzT3ZlckhpZ2hsaWdodChtX3Nl
bGVjdGlvbkhpZ2hsaWdodC5nZXQoKSwgbW91c2VJc092ZXJCdXR0b24pKQogICAgICAgICAgICAg
bV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodCA9IG1fc2VsZWN0aW9uSGlnaGxpZ2h0OwogICAgICAg
ICBlbHNlCiAgICAgICAgICAgICBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0ID0gbnVsbHB0cjsK
ICAgICB9CiAKLSAgICBpZiAob2xkSG92ZXJlZEhpZ2hsaWdodCAhPSBtX2N1cnJlbnRIb3ZlcmVk
SGlnaGxpZ2h0KQorICAgIGlmIChvbGRIb3ZlcmVkSGlnaGxpZ2h0ICE9IG1fY3VycmVudEhvdmVy
ZWRIaWdobGlnaHQpIHsKKyAgICAgICAgbV9sYXN0SG92ZXJlZEhpZ2hsaWdodENoYW5nZVRpbWUg
PSBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjpub3coKTsKICAgICAgICAgbV9zZXJ2aWNlc092
ZXJsYXktPnNldE5lZWRzRGlzcGxheSgpOworICAgIH0KIAogICAgIC8vIElmIHRoaXMgZXZlbnQg
aGFzIG5vdGhpbmcgdG8gZG8gd2l0aCB0aGUgbGVmdCBidXR0b24sIGl0IGNsZWFycyB0aGUgY3Vy
cmVudCBtb3VzZSBkb3duIHRyYWNraW5nIGFuZCB3ZSdyZSBkb25lIHByb2Nlc3NpbmcgaXQuCiAg
ICAgaWYgKGV2ZW50LmJ1dHRvbigpICE9IFdlYk1vdXNlRXZlbnQ6OkxlZnRCdXR0b24pIHsKQEAg
LTQ2Myw3ICs0OTcsNyBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNlRXZl
bnQoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldgogICAgICAgICBSZXRhaW5Q
dHI8RERIaWdobGlnaHRSZWY+IG1vdXNlRG93bkhpZ2hsaWdodCA9IFdURjo6bW92ZShtX2N1cnJl
bnRNb3VzZURvd25PbkJ1dHRvbkhpZ2hsaWdodCk7CiAKICAgICAgICAgLy8gSWYgdGhlIG1vdXNl
IGxpZnRlZCB3aGlsZSBzdGlsbCBvdmVyIHRoZSBoaWdobGlnaHQgYnV0dG9uIHRoYXQgaXQgd2Vu
dCBkb3duIG9uLCB0aGVuIHRoYXQgaXMgYSBjbGljay4KLSAgICAgICAgaWYgKG9uQnV0dG9uICYm
IG1vdXNlRG93bkhpZ2hsaWdodCkgeworICAgICAgICBpZiAobW91c2VJc092ZXJCdXR0b24gJiYg
bW91c2VEb3duSGlnaGxpZ2h0KSB7CiAgICAgICAgICAgICBoYW5kbGVDbGljayhtX21vdXNlUG9z
aXRpb24sIG1vdXNlRG93bkhpZ2hsaWdodC5nZXQoKSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQpAQCAtNDc0LDcgKzUwOCw3IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29u
dHJvbGxlcjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSosIGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2
CiAgICAgLy8gQ2hlY2sgYW5kIHNlZSBpZiB0aGUgbW91c2UgbW92ZWQgd2l0aGluIHRoZSBjb25m
aW5lcyBvZiB0aGUgREQgaGlnaGxpZ2h0IGJ1dHRvbi4KICAgICBpZiAoZXZlbnQudHlwZSgpID09
IFdlYkV2ZW50OjpNb3VzZU1vdmUpIHsKICAgICAgICAgLy8gTW92aW5nIHdpdGggdGhlIG1vdXNl
IGJ1dHRvbiBkb3duIGlzIG9rYXkgYXMgbG9uZyBhcyB0aGUgbW91c2UgbmV2ZXIgbGVhdmVzIHRo
ZSBoaWdobGlnaHQgYnV0dG9uLgotICAgICAgICBpZiAobV9jdXJyZW50TW91c2VEb3duT25CdXR0
b25IaWdobGlnaHQgJiYgb25CdXR0b24pCisgICAgICAgIGlmIChtX2N1cnJlbnRNb3VzZURvd25P
bkJ1dHRvbkhpZ2hsaWdodCAmJiBtb3VzZUlzT3ZlckJ1dHRvbikKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgICAgIG1fY3VycmVudE1vdXNlRG93bk9uQnV0dG9uSGlnaGxpZ2h0ID0g
bnVsbHB0cjsKQEAgLTQ4Myw3ICs1MTcsNyBAQCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xs
ZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkqLCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldgogCiAg
ICAgLy8gQ2hlY2sgYW5kIHNlZSBpZiB0aGUgbW91c2Ugd2VudCBkb3duIG92ZXIgYSBERCBoaWdo
bGlnaHQgYnV0dG9uLgogICAgIGlmIChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93
bikgewotICAgICAgICBpZiAobV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodCAmJiBvbkJ1dHRvbikg
eworICAgICAgICBpZiAobV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodCAmJiBtb3VzZUlzT3ZlckJ1
dHRvbikgewogICAgICAgICAgICAgbV9jdXJyZW50TW91c2VEb3duT25CdXR0b25IaWdobGlnaHQg
PSBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0OwogICAgICAgICAgICAgbV9zZXJ2aWNlc092ZXJs
YXktPnNldE5lZWRzRGlzcGxheSgpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7Cg==
</data>
<flag name="review"
          id="260756"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>236168</attachid>
            <date>2014-08-06 19:55:30 -0700</date>
            <delta_ts>2014-08-06 19:57:56 -0700</delta_ts>
            <desc>patch</desc>
            <filename>highlight-hysteresis.diff</filename>
            <type>text/plain</type>
            <size>13070</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1NjdmNzBlLi42ZDE1MWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMg
QEAKKzIwMTQtMDgtMDYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgU2VydmljZXMgb3ZlcmxheSBmbGFzaGVzIGEgbG90OyBzaG91bGQgaGF2ZSBzb21l
IGh5c3RlcmVzaXMgYmVmb3JlIHNob3dpbmcgb3ZlcmxheQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM1NjgzCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8xNjg3ODAzOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBEb24ndCBzaG93IHRoZSBoaWdobGlnaHQgdW50aWwgaXQncyBiZWVuIDIwMG1zIHNpbmNl
IHRoZSBsYXN0IGNoYW5nZQorICAgICAgICBpbiBzZWxlY3Rpb24gb3IgY2hhbmdlIGluIHdoaWNo
IGhpZ2hsaWdodCBpcyBob3ZlcmVkLCB3aGljaGV2ZXIgd2FzIG1vcmUgcmVjZW50LgorCisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIu
bW06CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OlNlcnZpY2Vz
T3ZlcmxheUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjpzZWxlY3Rpb25SZWN0c0RpZENoYW5nZSk6CisgICAgICAgIEtlZXAgdHJhY2sgb2Yg
d2hlbiB0aGUgc2VsZWN0aW9uIGxhc3QgY2hhbmdlZC4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpkcmF3VGVsZXBob25lTnVtYmVySGlnaGxpZ2h0SWZWaXNp
YmxlKToKKyAgICAgICAgTWFrZSBlc3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0IHRh
a2UgYSBib29sIGluc3RlYWQgb2YgQm9vbGVhbi4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNl
c092ZXJsYXlDb250cm9sbGVyOjptb3VzZUlzT3ZlckhpZ2hsaWdodCk6CisgICAgICAgIEZhY3Rv
ciBtb3VzZUlzT3ZlckhpZ2hsaWdodCBvdXQgb2YgZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhp
Z2hsaWdodCBhbmQgZHJhd0hpZ2hsaWdodC4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092
ZXJsYXlDb250cm9sbGVyOjpyZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3du
KToKKyAgICAgICAgUmV0dXJuIHRoZSBhbW91bnQgb2YgdGltZSB1bnRpbCB0aGUgaGlnaGxpZ2h0
IHNob3VsZCBiZSBzaG93bjsgdGhpcyBpcworICAgICAgICB0aGUgbWF4aW11bSBvZiAodGhlIGRp
ZmZlcmVuY2UgYmV0d2VlbiB0aGUgbGFzdCBzZWxlY3Rpb24gY2hhbmdlIGFuZCB0aGUgdGltZW91
dCkKKyAgICAgICAgYW5kICh0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBsYXN0IGNoYW5nZSBp
biB3aGljaCBoaWdobGlnaHQgaXMgaG92ZXJlZCBhbmQgdGhlIHRpbWVvdXQpLgorCisgICAgICAg
IFRlbGVwaG9uZSBudW1iZXIgaGlnaGxpZ2h0cyBhcmUgc2hvd24gaW1tZWRpYXRlbHksIGJlY2F1
c2UgdGhleSBhcmUgYWxyZWFkeSBzdGFibGUKKyAgICAgICAgYnkgdmlydHVlIG9mIGJlaW5nIGV4
cGFuZGVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSB0ZWxlcGhvbmUgbnVtYmVyLgorCisgICAgICAg
IChXZWJLaXQ6OlNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OnJlcGFpbnRIaWdobGlnaHRUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYktpdDo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZHJh
d0hpZ2hsaWdodCk6CisgICAgICAgIElmIHRoZSBoaWdobGlnaHQgc2hvdWxkbid0IGJlIHNob3du
IHlldCAoYmVjYXVzZSB3ZSBoYXZlbid0IGhpdCB0aGUgdHdvIHRpbWVvdXRzKSwKKyAgICAgICAg
c2NoZWR1bGUgYSB0aW1lciB0byByZXBhaW50IHVzIGFyb3VuZCB3aGVuIHdlIHdpbGwgaGl0IHRo
ZSB0aW1lb3V0cy4KKworICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
Ojplc3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYktpdDo6
U2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91c2VFdmVudCk6CisgICAgICAgIERvbid0IGFs
bG93IG1vdXNlVXAgdG8gdHJpZ2dlciB0aGUgbWVudSBpZiB3ZSBzaG91bGRuJ3QgYmUgc2hvd2lu
ZyB0aGUgb3ZlcmxheSB5ZXQuCisKIDIwMTQtMDgtMDYgIEFkcmlhbiBQZXJleiBkZSBDYXN0cm8g
IDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBBZGQgc3VwcG9ydCBmb3IgdXNl
ciBzY3JpcHRzIHRvIFdlYktpdFVzZXJDb250ZW50TWFuYWdlcgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaCBi
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9TZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyLmgKaW5kZXggOGYzMGE5YS4uMjMwNDc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1NlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvU2VydmljZXNPdmVybGF5Q29udHJvbGxlci5o
CkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJQYWdlT3ZlcmxheS5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvUmFuZ2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAKIHR5cGVkZWYg
dm9pZCogRERIaWdobGlnaHRSZWY7CiAKQEAgLTc5LDE3ICs4MCwyMyBAQCBwcml2YXRlOgogICAg
IHZvaWQgZHJhd1NlbGVjdGlvbkhpZ2hsaWdodChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmLCBj
b25zdCBXZWJDb3JlOjpJbnRSZWN0JiBkaXJ0eVJlY3QpOwogICAgIHZvaWQgZHJhd0hpZ2hsaWdo
dChEREhpZ2hsaWdodFJlZiwgV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0Jik7CiAKLSAgICB2b2lk
IGVzdGFibGlzaEhvdmVyZWRUZWxlcGhvbmVIaWdobGlnaHQoQm9vbGVhbiYgb25CdXR0b24pOwor
ICAgIHZvaWQgZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhpZ2hsaWdodChib29sJiBtb3VzZUlz
T3ZlckJ1dHRvbik7CiAgICAgdm9pZCBtYXliZUNyZWF0ZVNlbGVjdGlvbkhpZ2hsaWdodCgpOwog
CiAgICAgdm9pZCBjbGVhclNlbGVjdGlvbkhpZ2hsaWdodCgpOwogICAgIHZvaWQgY2xlYXJIb3Zl
cmVkVGVsZXBob25lTnVtYmVySGlnaGxpZ2h0KCk7CiAKKyAgICBib29sIG1vdXNlSXNPdmVySGln
aGxpZ2h0KERESGlnaGxpZ2h0UmVmLCBib29sJiBtb3VzZUlzT3ZlckJ1dHRvbikgY29uc3Q7Cisg
ICAgc3RkOjpjaHJvbm86Om1pbGxpc2Vjb25kcyByZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRT
aG91bGRCZVNob3duKCkgY29uc3Q7CisgICAgdm9pZCByZXBhaW50SGlnaGxpZ2h0VGltZXJGaXJl
ZChXZWJDb3JlOjpUaW1lcjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyPiYpOworCiAgICAgV2Vi
UGFnZSogbV93ZWJQYWdlOwogICAgIFBhZ2VPdmVybGF5KiBtX3NlcnZpY2VzT3ZlcmxheTsKICAg
ICAKICAgICBWZWN0b3I8V2ViQ29yZTo6TGF5b3V0UmVjdD4gbV9jdXJyZW50U2VsZWN0aW9uUmVj
dHM7CiAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVmPiBtX3NlbGVjdGlvbkhpZ2hsaWdodDsK
KyAgICBzdGQ6OmNocm9ubzo6c3RlYWR5X2Nsb2NrOjp0aW1lX3BvaW50IG1fbGFzdFNlbGVjdGlv
bkNoYW5nZVRpbWU7CisgICAgc3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6dGltZV9wb2ludCBt
X2xhc3RIb3ZlcmVkSGlnaGxpZ2h0Q2hhbmdlVGltZTsKIAogICAgIFZlY3RvcjxSZWZQdHI8V2Vi
Q29yZTo6UmFuZ2U+PiBtX2N1cnJlbnRUZWxlcGhvbmVOdW1iZXJSYW5nZXM7CiAgICAgVmVjdG9y
PFJldGFpblB0cjxEREhpZ2hsaWdodFJlZj4+IG1fdGVsZXBob25lTnVtYmVySGlnaGxpZ2h0czsK
QEAgLTk4LDYgKzEwNSw4IEBAIHByaXZhdGU6CiAgICAgUmV0YWluUHRyPERESGlnaGxpZ2h0UmVm
PiBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0OwogICAgIFJldGFpblB0cjxEREhpZ2hsaWdodFJl
Zj4gbV9jdXJyZW50TW91c2VEb3duT25CdXR0b25IaWdobGlnaHQ7CiAKKyAgICBXZWJDb3JlOjpU
aW1lcjxTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyPiBtX3JlcGFpbnRIaWdobGlnaHRUaW1lcjsK
KwogICAgIFdlYkNvcmU6OkludFBvaW50IG1fbW91c2VQb3NpdGlvbjsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2VydmljZXNPdmVybGF5
Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlci5tbQppbmRleCAzMmM3ZDk0Li45NTBlZTZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1NlcnZpY2VzT3Zlcmxh
eUNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21h
Yy9TZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyLm1tCkBAIC03Niw2ICs3Niw3IEBAIHN0YXRpYyBJ
bnRSZWN0IHRleHRRdWFkc1RvQm91bmRpbmdSZWN0Rm9yUmFuZ2UoUmFuZ2UmIHJhbmdlKQogU2Vy
dmljZXNPdmVybGF5Q29udHJvbGxlcjo6U2VydmljZXNPdmVybGF5Q29udHJvbGxlcihXZWJQYWdl
JiB3ZWJQYWdlKQogICAgIDogbV93ZWJQYWdlKCZ3ZWJQYWdlKQogICAgICwgbV9zZXJ2aWNlc092
ZXJsYXkobnVsbHB0cikKKyAgICAsIG1fcmVwYWludEhpZ2hsaWdodFRpbWVyKHRoaXMsICZTZXJ2
aWNlc092ZXJsYXlDb250cm9sbGVyOjpyZXBhaW50SGlnaGxpZ2h0VGltZXJGaXJlZCkKIHsKIH0K
IApAQCAtMjE2LDYgKzIxNyw4IEBAIHZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6c2Vs
ZWN0aW9uUmVjdHNEaWRDaGFuZ2UoY29uc3QgVmVjdG9yPExheW91dFJlY3Q+CiAgICAgY2xlYXJT
ZWxlY3Rpb25IaWdobGlnaHQoKTsKICAgICBtX2N1cnJlbnRTZWxlY3Rpb25SZWN0cyA9IHJlY3Rz
OwogCisgICAgbV9sYXN0U2VsZWN0aW9uQ2hhbmdlVGltZSA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlf
Y2xvY2s6Om5vdygpOworCiAgICAgY29tcGFjdFJlY3RzV2l0aEdhcFJlY3RzKG1fY3VycmVudFNl
bGVjdGlvblJlY3RzLCBnYXBSZWN0cyk7CiAKICAgICAvLyBEYXRhRGV0ZWN0b3JzIG5lZWRzIHRo
ZXNlIHJldmVyc2VkIGluIG9yZGVyIHRvIHBsYWNlIHRoZSBhcnJvdyBpbiB0aGUgcmlnaHQgbG9j
YXRpb24uCkBAIC0zMDYsOCArMzA5LDggQEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVy
OjpkcmF3VGVsZXBob25lTnVtYmVySGlnaGxpZ2h0SWZWaXNpYmxlKFdlYkNvcmU6OkcKIAogICAg
IC8vIEZvdW5kIG91dCB3aGljaCAtIGlmIGFueSAtIHRlbGVwaG9uZSBudW1iZXIgaXMgaG92ZXJl
ZC4KICAgICBpZiAoIW1faG92ZXJlZFRlbGVwaG9uZU51bWJlckRhdGEpIHsKLSAgICAgICAgQm9v
bGVhbiBvbkJ1dHRvbjsKLSAgICAgICAgZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhpZ2hsaWdo
dChvbkJ1dHRvbik7CisgICAgICAgIGJvb2wgbW91c2VJc092ZXJCdXR0b247CisgICAgICAgIGVz
dGFibGlzaEhvdmVyZWRUZWxlcGhvbmVIaWdobGlnaHQobW91c2VJc092ZXJCdXR0b24pOwogICAg
IH0KIAogICAgIC8vIElmIGEgdGVsZXBob25lIG51bWJlciBpcyBhY3R1YWxseSBob3ZlcmVkLCBk
cmF3IGl0LgpAQCAtMzE5LDE4ICszMjIsNTIgQEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpkcmF3VGVsZXBob25lTnVtYmVySGlnaGxpZ2h0SWZWaXNpYmxlKFdlYkNvcmU6OkcKICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6bW91
c2VJc092ZXJIaWdobGlnaHQoRERIaWdobGlnaHRSZWYgaGlnaGxpZ2h0LCBib29sJiBtb3VzZUlz
T3ZlckJ1dHRvbikgY29uc3QKK3sKKyAgICBCb29sZWFuIG9uQnV0dG9uOworICAgIGJvb2wgaG92
ZXJlZCA9IERESGlnaGxpZ2h0UG9pbnRJc09uSGlnaGxpZ2h0KGhpZ2hsaWdodCwgKENHUG9pbnQp
bV9tb3VzZVBvc2l0aW9uLCAmb25CdXR0b24pOworICAgIG1vdXNlSXNPdmVyQnV0dG9uID0gb25C
dXR0b247CisgICAgcmV0dXJuIGhvdmVyZWQ7Cit9CisKK3N0ZDo6Y2hyb25vOjptaWxsaXNlY29u
ZHMgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6cmVtYWluaW5nVGltZVVudGlsSGlnaGxpZ2h0
U2hvdWxkQmVTaG93bigpIGNvbnN0Cit7CisgICAgLy8gSGlnaGxpZ2h0IGh5c3RlcmVzaXMgaXMg
b25seSBmb3Igc2VsZWN0aW9uIHNlcnZpY2VzLCBiZWNhdXNlIHRlbGVwaG9uZSBudW1iZXIgaGln
aGxpZ2h0cyBhcmUgYWxyZWFkeSBtdWNoIG1vcmUgc3RhYmxlCisgICAgLy8gYnkgdmlydHVlIG9m
IGJlaW5nIGV4cGFuZGVkIHRvIGluY2x1ZGUgdGhlIGVudGlyZSB0ZWxlcGhvbmUgbnVtYmVyLgor
ICAgIGlmIChtX2hvdmVyZWRUZWxlcGhvbmVOdW1iZXJEYXRhKQorICAgICAgICByZXR1cm4gc3Rk
OjpjaHJvbm86Om1pbGxpc2Vjb25kczo6emVybygpOworCisgICAgc3RkOjpjaHJvbm86OnN0ZWFk
eV9jbG9jazo6ZHVyYXRpb24gbWluaW11bVRpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24g
PSAyMDBfbXM7CisKKyAgICBhdXRvIG5vdyA9IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6Om5v
dygpOworICAgIGF1dG8gdGltZVNpbmNlTGFzdFNlbGVjdGlvbkNoYW5nZSA9IG5vdyAtIG1fbGFz
dFNlbGVjdGlvbkNoYW5nZVRpbWU7CisgICAgYXV0byB0aW1lU2luY2VNb3VzZU92ZXJTZWxlY3Rp
b24gPSBub3cgLSBtX2xhc3RIb3ZlcmVkSGlnaGxpZ2h0Q2hhbmdlVGltZTsKKworICAgIHJldHVy
biBzdGQ6OmNocm9ubzo6ZHVyYXRpb25fY2FzdDxzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzPihz
dGQ6Om1heChtaW5pbXVtVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93biAtIHRpbWVTaW5j
ZUxhc3RTZWxlY3Rpb25DaGFuZ2UsIG1pbmltdW1UaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNo
b3duIC0gdGltZVNpbmNlTW91c2VPdmVyU2VsZWN0aW9uKSk7Cit9CisKK3ZvaWQgU2VydmljZXNP
dmVybGF5Q29udHJvbGxlcjo6cmVwYWludEhpZ2hsaWdodFRpbWVyRmlyZWQoV2ViQ29yZTo6VGlt
ZXI8U2VydmljZXNPdmVybGF5Q29udHJvbGxlcj4mKQoreworICAgIGlmIChtX3NlcnZpY2VzT3Zl
cmxheSkKKyAgICAgICAgbV9zZXJ2aWNlc092ZXJsYXktPnNldE5lZWRzRGlzcGxheSgpOworfQor
CiB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmRyYXdIaWdobGlnaHQoRERIaWdobGln
aHRSZWYgaGlnaGxpZ2h0LCBXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQmIGdyYXBoaWNzQ29udGV4
dCkKIHsKICAgICBBU1NFUlQoaGlnaGxpZ2h0KTsKIAotICAgIEJvb2xlYW4gb25CdXR0b247Ci0g
ICAgYm9vbCBtb3VzZUlzT3ZlckhpZ2hsaWdodCA9IERESGlnaGxpZ2h0UG9pbnRJc09uSGlnaGxp
Z2h0KGhpZ2hsaWdodCwgKENHUG9pbnQpbV9tb3VzZVBvc2l0aW9uLCAmb25CdXR0b24pOwotCi0g
ICAgaWYgKCFtb3VzZUlzT3ZlckhpZ2hsaWdodCkgeworICAgIGJvb2wgbW91c2VJc092ZXJCdXR0
b247CisgICAgaWYgKCFtb3VzZUlzT3ZlckhpZ2hsaWdodChoaWdobGlnaHQsIG1vdXNlSXNPdmVy
QnV0dG9uKSkgewogICAgICAgICBMT0coU2VydmljZXMsICJTZXJ2aWNlc092ZXJsYXlDb250cm9s
bGVyOjpkcmF3SGlnaGxpZ2h0IC0gTW91c2UgaXMgbm90IG92ZXIgaGlnaGxpZ2h0LCBzbyBkcmF3
aW5nIG5vdGhpbmciKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIGF1dG8gcmVtYWlu
aW5nVGltZVVudGlsSGlnaGxpZ2h0U2hvdWxkQmVTaG93biA9IHRoaXMtPnJlbWFpbmluZ1RpbWVV
bnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24oKTsKKyAgICBpZiAocmVtYWluaW5nVGltZVVudGls
SGlnaGxpZ2h0U2hvdWxkQmVTaG93biA+IHN0ZDo6Y2hyb25vOjpzdGVhZHlfY2xvY2s6OmR1cmF0
aW9uOjp6ZXJvKCkpIHsKKyAgICAgICAgbV9yZXBhaW50SGlnaGxpZ2h0VGltZXIuc3RhcnRPbmVT
aG90KHJlbWFpbmluZ1RpbWVVbnRpbEhpZ2hsaWdodFNob3VsZEJlU2hvd24pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCiAgICAgQ0dDb250ZXh0UmVmIGNnQ29udGV4dCA9IGdyYXBoaWNzQ29u
dGV4dC5wbGF0Zm9ybUNvbnRleHQoKTsKICAgICAKICAgICBDR0xheWVyUmVmIGhpZ2hsaWdodExh
eWVyID0gRERIaWdobGlnaHRHZXRMYXllcldpdGhDb250ZXh0KGhpZ2hsaWdodCwgY2dDb250ZXh0
KTsKQEAgLTM3MSw3ICs0MDgsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmNs
ZWFySG92ZXJlZFRlbGVwaG9uZU51bWJlckhpZ2hsaWdodCgpCiAgICAgbV9ob3ZlcmVkVGVsZXBo
b25lTnVtYmVyRGF0YSA9IG51bGxwdHI7CiB9CiAKLXZvaWQgU2VydmljZXNPdmVybGF5Q29udHJv
bGxlcjo6ZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhpZ2hsaWdodChCb29sZWFuJiBvbkJ1dHRv
bikKK3ZvaWQgU2VydmljZXNPdmVybGF5Q29udHJvbGxlcjo6ZXN0YWJsaXNoSG92ZXJlZFRlbGVw
aG9uZUhpZ2hsaWdodChib29sJiBtb3VzZUlzT3ZlckJ1dHRvbikKIHsKICAgICBBU1NFUlQobV9j
dXJyZW50VGVsZXBob25lTnVtYmVyUmFuZ2VzLnNpemUoKSA9PSBtX3RlbGVwaG9uZU51bWJlckhp
Z2hsaWdodHMuc2l6ZSgpKTsKIApAQCAtMzk1LDcgKzQzMiw3IEBAIHZvaWQgU2VydmljZXNPdmVy
bGF5Q29udHJvbGxlcjo6ZXN0YWJsaXNoSG92ZXJlZFRlbGVwaG9uZUhpZ2hsaWdodChCb29sZWFu
JiBvbkJ1CiAgICAgICAgICAgICBtX3RlbGVwaG9uZU51bWJlckhpZ2hsaWdodHNbaV0gPSBhZG9w
dENGKERESGlnaGxpZ2h0Q3JlYXRlV2l0aFJlY3RzSW5WaXNpYmxlUmVjdFdpdGhTdHlsZUFuZERp
cmVjdGlvbihudWxscHRyLCAmY2dSZWN0LCAxLCB2aWV3Rm9yUmFuZ2UtPmJvdW5kc1JlY3QoKSwg
RERIaWdobGlnaHRPdXRsaW5lV2l0aEFycm93LCBZRVMsIE5TV3JpdGluZ0RpcmVjdGlvbk5hdHVy
YWwsIE5PLCBZRVMpKTsKICAgICAgICAgfQogCi0gICAgICAgIGlmICghRERIaWdobGlnaHRQb2lu
dElzT25IaWdobGlnaHQobV90ZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRzW2ldLmdldCgpLCAoQ0dQ
b2ludCltX21vdXNlUG9zaXRpb24sICZvbkJ1dHRvbikpCisgICAgICAgIGlmICghbW91c2VJc092
ZXJIaWdobGlnaHQobV90ZWxlcGhvbmVOdW1iZXJIaWdobGlnaHRzW2ldLmdldCgpLCBtb3VzZUlz
T3ZlckJ1dHRvbikpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoIW1faG92
ZXJlZFRlbGVwaG9uZU51bWJlckRhdGEgfHwgbV9ob3ZlcmVkVGVsZXBob25lTnVtYmVyRGF0YS0+
aGlnaGxpZ2h0ICE9IG1fdGVsZXBob25lTnVtYmVySGlnaGxpZ2h0c1tpXSkKQEAgLTQwNiw3ICs0
NDMsNyBAQCB2b2lkIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6OmVzdGFibGlzaEhvdmVyZWRU
ZWxlcGhvbmVIaWdobGlnaHQoQm9vbGVhbiYgb25CdQogICAgIH0KIAogICAgIGNsZWFySG92ZXJl
ZFRlbGVwaG9uZU51bWJlckhpZ2hsaWdodCgpOwotICAgIG9uQnV0dG9uID0gZmFsc2U7CisgICAg
bW91c2VJc092ZXJCdXR0b24gPSBmYWxzZTsKIH0KIAogdm9pZCBTZXJ2aWNlc092ZXJsYXlDb250
cm9sbGVyOjptYXliZUNyZWF0ZVNlbGVjdGlvbkhpZ2hsaWdodCgpCkBAIC00MzQsOCArNDcxLDgg
QEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5
KiwgY29uc3QgV2ViTW91c2VFdmVudCYgZXYKIAogICAgIERESGlnaGxpZ2h0UmVmIG9sZEhvdmVy
ZWRIaWdobGlnaHQgPSBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0LmdldCgpOwogCi0gICAgQm9v
bGVhbiBvbkJ1dHRvbiA9IGZhbHNlOwotICAgIGVzdGFibGlzaEhvdmVyZWRUZWxlcGhvbmVIaWdo
bGlnaHQob25CdXR0b24pOworICAgIGJvb2wgbW91c2VJc092ZXJCdXR0b24gPSBmYWxzZTsKKyAg
ICBlc3RhYmxpc2hIb3ZlcmVkVGVsZXBob25lSGlnaGxpZ2h0KG1vdXNlSXNPdmVyQnV0dG9uKTsK
ICAgICBpZiAobV9ob3ZlcmVkVGVsZXBob25lTnVtYmVyRGF0YSkgewogICAgICAgICBBU1NFUlQo
bV9ob3ZlcmVkVGVsZXBob25lTnVtYmVyRGF0YS0+aGlnaGxpZ2h0KTsKICAgICAgICAgbV9jdXJy
ZW50SG92ZXJlZEhpZ2hsaWdodCA9IG1faG92ZXJlZFRlbGVwaG9uZU51bWJlckRhdGEtPmhpZ2hs
aWdodDsKQEAgLTQ0MywxNCArNDgwLDE2IEBAIGJvb2wgU2VydmljZXNPdmVybGF5Q29udHJvbGxl
cjo6bW91c2VFdmVudChQYWdlT3ZlcmxheSosIGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2CiAgICAg
ICAgIGlmICghbV9zZWxlY3Rpb25IaWdobGlnaHQpCiAgICAgICAgICAgICBtYXliZUNyZWF0ZVNl
bGVjdGlvbkhpZ2hsaWdodCgpOwogCi0gICAgICAgIGlmIChtX3NlbGVjdGlvbkhpZ2hsaWdodCAm
JiBEREhpZ2hsaWdodFBvaW50SXNPbkhpZ2hsaWdodChtX3NlbGVjdGlvbkhpZ2hsaWdodC5nZXQo
KSwgKENHUG9pbnQpbV9tb3VzZVBvc2l0aW9uLCAmb25CdXR0b24pKQorICAgICAgICBpZiAobV9z
ZWxlY3Rpb25IaWdobGlnaHQgJiYgbW91c2VJc092ZXJIaWdobGlnaHQobV9zZWxlY3Rpb25IaWdo
bGlnaHQuZ2V0KCksIG1vdXNlSXNPdmVyQnV0dG9uKSkKICAgICAgICAgICAgIG1fY3VycmVudEhv
dmVyZWRIaWdobGlnaHQgPSBtX3NlbGVjdGlvbkhpZ2hsaWdodDsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgbV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodCA9IG51bGxwdHI7CiAgICAgfQogCi0g
ICAgaWYgKG9sZEhvdmVyZWRIaWdobGlnaHQgIT0gbV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodCkK
KyAgICBpZiAob2xkSG92ZXJlZEhpZ2hsaWdodCAhPSBtX2N1cnJlbnRIb3ZlcmVkSGlnaGxpZ2h0
KSB7CisgICAgICAgIG1fbGFzdEhvdmVyZWRIaWdobGlnaHRDaGFuZ2VUaW1lID0gc3RkOjpjaHJv
bm86OnN0ZWFkeV9jbG9jazo6bm93KCk7CiAgICAgICAgIG1fc2VydmljZXNPdmVybGF5LT5zZXRO
ZWVkc0Rpc3BsYXkoKTsKKyAgICB9CiAKICAgICAvLyBJZiB0aGlzIGV2ZW50IGhhcyBub3RoaW5n
IHRvIGRvIHdpdGggdGhlIGxlZnQgYnV0dG9uLCBpdCBjbGVhcnMgdGhlIGN1cnJlbnQgbW91c2Ug
ZG93biB0cmFja2luZyBhbmQgd2UncmUgZG9uZSBwcm9jZXNzaW5nIGl0LgogICAgIGlmIChldmVu
dC5idXR0b24oKSAhPSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uKSB7CkBAIC00NjMsNyArNTAy
LDcgQEAgYm9vbCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVy
bGF5KiwgY29uc3QgV2ViTW91c2VFdmVudCYgZXYKICAgICAgICAgUmV0YWluUHRyPERESGlnaGxp
Z2h0UmVmPiBtb3VzZURvd25IaWdobGlnaHQgPSBXVEY6Om1vdmUobV9jdXJyZW50TW91c2VEb3du
T25CdXR0b25IaWdobGlnaHQpOwogCiAgICAgICAgIC8vIElmIHRoZSBtb3VzZSBsaWZ0ZWQgd2hp
bGUgc3RpbGwgb3ZlciB0aGUgaGlnaGxpZ2h0IGJ1dHRvbiB0aGF0IGl0IHdlbnQgZG93biBvbiwg
dGhlbiB0aGF0IGlzIGEgY2xpY2suCi0gICAgICAgIGlmIChvbkJ1dHRvbiAmJiBtb3VzZURvd25I
aWdobGlnaHQpIHsKKyAgICAgICAgaWYgKG1vdXNlSXNPdmVyQnV0dG9uICYmIG1vdXNlRG93bkhp
Z2hsaWdodCAmJiByZW1haW5pbmdUaW1lVW50aWxIaWdobGlnaHRTaG91bGRCZVNob3duKCkgPD0g
c3RkOjpjaHJvbm86OnN0ZWFkeV9jbG9jazo6ZHVyYXRpb246Onplcm8oKSkgewogICAgICAgICAg
ICAgaGFuZGxlQ2xpY2sobV9tb3VzZVBvc2l0aW9uLCBtb3VzZURvd25IaWdobGlnaHQuZ2V0KCkp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KQEAgLTQ3NCw3ICs1MTMsNyBA
QCBib29sIFNlcnZpY2VzT3ZlcmxheUNvbnRyb2xsZXI6Om1vdXNlRXZlbnQoUGFnZU92ZXJsYXkq
LCBjb25zdCBXZWJNb3VzZUV2ZW50JiBldgogICAgIC8vIENoZWNrIGFuZCBzZWUgaWYgdGhlIG1v
dXNlIG1vdmVkIHdpdGhpbiB0aGUgY29uZmluZXMgb2YgdGhlIEREIGhpZ2hsaWdodCBidXR0b24u
CiAgICAgaWYgKGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6TW91c2VNb3ZlKSB7CiAgICAgICAg
IC8vIE1vdmluZyB3aXRoIHRoZSBtb3VzZSBidXR0b24gZG93biBpcyBva2F5IGFzIGxvbmcgYXMg
dGhlIG1vdXNlIG5ldmVyIGxlYXZlcyB0aGUgaGlnaGxpZ2h0IGJ1dHRvbi4KLSAgICAgICAgaWYg
KG1fY3VycmVudE1vdXNlRG93bk9uQnV0dG9uSGlnaGxpZ2h0ICYmIG9uQnV0dG9uKQorICAgICAg
ICBpZiAobV9jdXJyZW50TW91c2VEb3duT25CdXR0b25IaWdobGlnaHQgJiYgbW91c2VJc092ZXJC
dXR0b24pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBtX2N1cnJlbnRNb3Vz
ZURvd25PbkJ1dHRvbkhpZ2hsaWdodCA9IG51bGxwdHI7CkBAIC00ODMsNyArNTIyLDcgQEAgYm9v
bCBTZXJ2aWNlc092ZXJsYXlDb250cm9sbGVyOjptb3VzZUV2ZW50KFBhZ2VPdmVybGF5KiwgY29u
c3QgV2ViTW91c2VFdmVudCYgZXYKIAogICAgIC8vIENoZWNrIGFuZCBzZWUgaWYgdGhlIG1vdXNl
IHdlbnQgZG93biBvdmVyIGEgREQgaGlnaGxpZ2h0IGJ1dHRvbi4KICAgICBpZiAoZXZlbnQudHlw
ZSgpID09IFdlYkV2ZW50OjpNb3VzZURvd24pIHsKLSAgICAgICAgaWYgKG1fY3VycmVudEhvdmVy
ZWRIaWdobGlnaHQgJiYgb25CdXR0b24pIHsKKyAgICAgICAgaWYgKG1fY3VycmVudEhvdmVyZWRI
aWdobGlnaHQgJiYgbW91c2VJc092ZXJCdXR0b24pIHsKICAgICAgICAgICAgIG1fY3VycmVudE1v
dXNlRG93bk9uQnV0dG9uSGlnaGxpZ2h0ID0gbV9jdXJyZW50SG92ZXJlZEhpZ2hsaWdodDsKICAg
ICAgICAgICAgIG1fc2VydmljZXNPdmVybGF5LT5zZXROZWVkc0Rpc3BsYXkoKTsKICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwo=
</data>
<flag name="review"
          id="260757"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>