<?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>61715</bug_id>
          
          <creation_ts>2011-05-29 17:43:25 -0700</creation_ts>
          <short_desc>Controls never hide in full screen after user stops moving mouse</short_desc>
          <delta_ts>2011-06-03 14:01:58 -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>Media</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>ademar</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jer.noble</cc>
    
    <cc>mjs</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>412067</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 17:43:25 -0700</bug_when>
    <thetext>Full screen HTML5 video at vimeo, reveal the controls by moving the mouse, they never go away again!

* STEPS TO REPRODUCE
1. Go to vimeo.com
2. Play the front page video
3. Take it full screen.
4. Notice the controls are hidden.
5. Move the mouse to reveal them.
6. They never re-hide.

* RESULTS
They should re-hide!

&lt;rdar://problem/9522182&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412070</commentid>
    <comment_count>1</comment_count>
      <attachid>95310</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 17:46:35 -0700</bug_when>
    <thetext>Created attachment 95310
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412071</commentid>
    <comment_count>2</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 17:48:45 -0700</bug_when>
    <thetext>Is there any way to hide the mouse pointer from within WebCore?  If not, that&apos;s fine (because the user can park their mouse in the corner).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412072</commentid>
    <comment_count>3</comment_count>
      <attachid>95310</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-29 17:48:51 -0700</bug_when>
    <thetext>Comment on attachment 95310
[PATCH] Fix

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:1649
&gt; +    // If we have a timer running to hide the controls, stop and restart it to start out three second
&gt; +    // period over again.
&gt; +    if (m_hideFullscreenControlsTimer.isActive())
&gt; +        m_hideFullscreenControlsTimer.stop();

Doesn’t startOneShot already do this?

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2412
&gt; +                    startHideFullscreenControlsTimer();

What if this timer is still running when some other code calls makeOpaque. I would expect to see more calls to stop the timer elsewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412074</commentid>
    <comment_count>4</comment_count>
      <attachid>95310</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 17:53:38 -0700</bug_when>
    <thetext>Comment on attachment 95310
[PATCH] Fix

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1649
&gt;&gt; +        m_hideFullscreenControlsTimer.stop();
&gt; 
&gt; Doesn’t startOneShot already do this?

I wasn&apos;t 100% sure from looking at the Timer code, but I believe so on closer inspection.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2412
&gt;&gt; +                    startHideFullscreenControlsTimer();
&gt; 
&gt; What if this timer is still running when some other code calls makeOpaque. I would expect to see more calls to stop the timer elsewhere.

makeOpaque is only called in one other places in HTMLMediaElement - when handling mouseOver events. I can discuss with Jer other places to stop the timer, I&apos;m not sure the other places we would want to.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412075</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 17:56:28 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 95310 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=95310&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:1649
&gt; &gt;&gt; +        m_hideFullscreenControlsTimer.stop();
&gt; &gt; 
&gt; &gt; Doesn’t startOneShot already do this?
&gt; 
&gt; I wasn&apos;t 100% sure from looking at the Timer code, but I believe so on closer inspection.

Testing confirms you are correct. Fixed to remove the unnecessary code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412086</commentid>
    <comment_count>6</comment_count>
      <attachid>95314</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 19:21:10 -0700</bug_when>
    <thetext>Created attachment 95314
[PATCH] Fix v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412091</commentid>
    <comment_count>7</comment_count>
      <attachid>95314</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-29 19:39:09 -0700</bug_when>
    <thetext>Comment on attachment 95314
[PATCH] Fix v2

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

This is missing the mouseover and mouseout part. I see no reason to land the partial fix.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2417
&gt;                      mediaControls()-&gt;makeOpaque();

We should stop the timer here, when we move over the controls.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2419
&gt;                  m_mouseOver = false;

And we should start the timer here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412092</commentid>
    <comment_count>8</comment_count>
      <attachid>95314</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 19:45:24 -0700</bug_when>
    <thetext>Comment on attachment 95314
[PATCH] Fix v2

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2417
&gt;&gt;                      mediaControls()-&gt;makeOpaque();
&gt; 
&gt; We should stop the timer here, when we move over the controls.

There&apos;s not currently a way to determine here that the mouse is over the controls, since the MediaControls class doesn&apos;t give access to its innards, and MediaControls()-&gt;hovered() is apparently always returning true if the mouse is over the video element.  But if MediaControls had a new virtual function, say &quot;bool shouldHideControls()&quot;, and MediaControlRootElement implemented it to return, &quot;return !m_panel-&gt;hovered()&quot;, that should be enough to determine if the mouse is over the media control panel.

I&apos;ve modified Brian&apos;s patch to add this to MediaControls (but not stopping the timer here, yet), and it seems to work well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412093</commentid>
    <comment_count>9</comment_count>
      <attachid>95314</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-05-29 19:53:10 -0700</bug_when>
    <thetext>Comment on attachment 95314
[PATCH] Fix v2

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2419
&gt;&gt;                  m_mouseOver = false;
&gt; 
&gt; And we should start the timer here.

I believe this represents whether or not the mouse is in the media element, not whether or not it is over the controls. As Jer mentioned in the comment, there currently isn&apos;t a way to determine if the mouse is in the controls.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412094</commentid>
    <comment_count>10</comment_count>
      <attachid>95316</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 19:55:51 -0700</bug_when>
    <thetext>Created attachment 95316
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412095</commentid>
    <comment_count>11</comment_count>
      <attachid>95316</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-29 19:59:07 -0700</bug_when>
    <thetext>Comment on attachment 95316
Patch

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

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2420
&gt; +                    if (mediaControls()-&gt;shouldHideControls())
&gt; +                        startHideFullscreenControlsTimer();

Mousing over means we should *stop* the timer.

&gt; Source/WebCore/html/HTMLMediaElement.cpp:2424
&gt;                  m_mouseOver = false;
&gt; +                stopHideFullscreenControlsTimer();

Mousing out means we should *start* the timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412099</commentid>
    <comment_count>12</comment_count>
      <attachid>95316</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 20:09:38 -0700</bug_when>
    <thetext>Comment on attachment 95316
Patch

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

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2420
&gt;&gt; +                        startHideFullscreenControlsTimer();
&gt; 
&gt; Mousing over means we should *stop* the timer.

What we are mousing over is not necessarily the controls.  We are mousing over the element here.  We may still want to hide the controls after the inactivity period if the mouse isn&apos;t over the controls.

&gt;&gt; Source/WebCore/html/HTMLMediaElement.cpp:2424
&gt;&gt; +                stopHideFullscreenControlsTimer();
&gt; 
&gt; Mousing out means we should *start* the timer.

And here, we are mousing out of the element entirely, so we are going to hide the controls the next time we get a playbackProgressTimerFired call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412102</commentid>
    <comment_count>13</comment_count>
      <attachid>95316</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-29 20:14:26 -0700</bug_when>
    <thetext>Comment on attachment 95316
Patch

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

OK, then assuming you tested enough, r=me

&gt; Source/WebCore/html/shadow/MediaControlRootElement.h:99
&gt; +    bool shouldHideControls();

Should this be marked virtual?

&gt; Source/WebCore/html/shadow/MediaControls.h:71
&gt; +    virtual bool shouldHideControls() = 0;

I see only one derived class implementing this. Will having this new pure virtual function break the build?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412105</commentid>
    <comment_count>14</comment_count>
      <attachid>95316</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 20:36:04 -0700</bug_when>
    <thetext>Comment on attachment 95316
Patch

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

&gt;&gt; Source/WebCore/html/shadow/MediaControlRootElement.h:99
&gt;&gt; +    bool shouldHideControls();
&gt; 
&gt; Should this be marked virtual?

It should be.  None of the other functions in this file are, and they should all be as well.  (But later)

&gt;&gt; Source/WebCore/html/shadow/MediaControls.h:71
&gt;&gt; +    virtual bool shouldHideControls() = 0;
&gt; 
&gt; I see only one derived class implementing this. Will having this new pure virtual function break the build?

I checked, an no other class in WebCore inherits from this class except MediaControlRootElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412106</commentid>
    <comment_count>15</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2011-05-29 20:37:23 -0700</bug_when>
    <thetext>Committed r87661: &lt;http://trac.webkit.org/changeset/87661&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412675</commentid>
    <comment_count>16</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2011-05-31 09:08:10 -0700</bug_when>
    <thetext>Why can&apos;t this be done with just CSS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>412872</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-31 14:38:17 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; Why can&apos;t this be done with just CSS?

It probably can be.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>415163</commentid>
    <comment_count>18</comment_count>
    <who name="Ademar Reis">ademar</who>
    <bug_when>2011-06-03 14:01:58 -0700</bug_when>
    <thetext>Revision r87661 cherry-picked into qtwebkit-2.2 with commit ec7a9b6 &lt;http://gitorious.org/webkit/qtwebkit/commit/ec7a9b6&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95310</attachid>
            <date>2011-05-29 17:46:35 -0700</date>
            <delta_ts>2011-05-29 19:21:10 -0700</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>hide_controls_full_screen.patch</filename>
            <type>text/plain</type>
            <size>5200</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjU3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDUtMjkgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRyb2xzIG5ldmVyIGhpZGUgaW4gZnVsbCBzY3Jl
ZW4gYWZ0ZXIgdXNlciBzdG9wcyBtb3ZpbmcgbW91c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85
NTIyMTgyPgorICAgICAgICAKKyAgICAgICAgV2hlbiB3ZSBnZXQgYSBtb3VzZSBtb3ZlIGV2ZW50
IGluIEhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIsIGFuZCB3ZSBhcmUgaW4g
ZnVsbCBzY3JlZW4sCisgICAgICAgIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgdGhlbiBz
dGFydCBhIHRpbWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIHRpbWVyIGZpcmVzIDMgc2Vjb25k
cyBhZnRlciB0aGUgdXNlcidzIGxhc3QgbW91c2UgbW92ZW1lbnQgKHRpbWVyIGlzIHJlc3RhcnRl
ZCBvbiBldmVyeSBtb3VzZQorICAgICAgICBtb3ZlKSwgYW5kIGhpZGVzIHRoZSBjb250cm9scy4K
KworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBvdXIgbmV3
IHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3RhcnRIaWRlRnVs
bHNjcmVlbkNvbnRyb2xzVGltZXIpOiBJZiB0aGUgdGltZXIgd2FzIGN1cnJlbnRseSBhY3RpdmUs
IHN0YXJ0IGl0CisgICAgICAgICAgICBvdmVyIGZvciAzIHNlY29uZHMgaW4gdGhlIGZ1dHVyZS4K
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJv
bHNUaW1lckZpcmVkKTogSWYgd2UgYXJlIHN0aWxsIGluIGZ1bGwgc2NyZWVuIG1vZGUsIGhpZGUg
dGhlCisgICAgICAgICAgICBjb250cm9scy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBJZiB3ZSBnb3QgYSBtb3VzZSBtb3ZlIGFuZCBh
cmUgaW4gZnVsbCBzY3JlZW4sIHNob3cKKyAgICAgICAgICAgIHRoZSBjb250cm9scywgYW5kIHN0
YXJ0IHRoZSB0aW1lciB0byBoaWRlIHRoZSBjb250cm9scy4KKyAgICAgICAgKiBodG1sL0hUTUxN
ZWRpYUVsZW1lbnQuaDoKKwogMjAxMS0wNS0yOSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiA4NzY1NCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEy
Myw2ICsxMjMsNyBAQCBIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KGNvbnN0CiAg
ICAgLCBtX2FzeW5jRXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6YXN5bmNFdmVu
dFRpbWVyRmlyZWQpCiAgICAgLCBtX3Byb2dyZXNzRXZlbnRUaW1lcih0aGlzLCAmSFRNTE1lZGlh
RWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXliYWNrUHJvZ3Jl
c3NUaW1lcih0aGlzLCAmSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmly
ZWQpCisgICAgLCBtX2hpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcih0aGlzLCAmSFRNTE1lZGlh
RWxlbWVudDo6aGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQpCiAgICAgLCBtX3BsYXll
ZFRpbWVSYW5nZXMoKQogICAgICwgbV9wbGF5YmFja1JhdGUoMS4wZikKICAgICAsIG1fZGVmYXVs
dFBsYXliYWNrUmF0ZSgxLjBmKQpAQCAtMTYxMCw2ICsxNjExLDggQEAgdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjplbmRTY3J1YmJpbmcoKQogLy8gIjE1IHRvIDI1MG1zIiwgd2UgY2hvb3NlIHRoZSBz
bG93ZXN0IGZyZXF1ZW5jeQogc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhUaW1ldXBkYXRlRXZlbnRG
cmVxdWVuY3kgPSAwLjI1OwogCitzdGF0aWMgY29uc3QgZG91YmxlIHRpbWVXaXRob3V0TW91c2VN
b3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzID0gMzsKKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50
OjpzdGFydFBsYXliYWNrUHJvZ3Jlc3NUaW1lcigpCiB7CiAgICAgaWYgKG1fcGxheWJhY2tQcm9n
cmVzc1RpbWVyLmlzQWN0aXZlKCkpCkBAIC0xNjM1LDYgKzE2MzgsMjUgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVAogICAgIC8vIEZJWE1FOiBkZWFsIHdpdGggY3Vl
IHJhbmdlcyBoZXJlCiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RhcnRIaWRlRnVsbHNj
cmVlbkNvbnRyb2xzVGltZXIoKQoreworICAgIGlmICghaXNGdWxsc2NyZWVuKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICAvLyBJZiB3ZSBoYXZlIGEgdGltZXIgcnVubmluZyB0byBoaWRl
IHRoZSBjb250cm9scywgc3RvcCBhbmQgcmVzdGFydCBpdCB0byBzdGFydCBvdXQgdGhyZWUgc2Vj
b25kCisgICAgLy8gcGVyaW9kIG92ZXIgYWdhaW4uCisgICAgaWYgKG1faGlkZUZ1bGxzY3JlZW5D
b250cm9sc1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1faGlkZUZ1bGxzY3JlZW5Db250cm9s
c1RpbWVyLnN0b3AoKTsKKyAgICAKKyAgICBtX2hpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lci5z
dGFydE9uZVNob3QodGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMp
OworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1l
ckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+KikKK3sKKyAgICBpZiAoaXNGdWxsc2NyZWVu
KCkgJiYgY29udHJvbHMoKSkKKyAgICAgICAgbWVkaWFDb250cm9scygpLT5tYWtlVHJhbnNwYXJl
bnQoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVRpbWV1cGRhdGVFdmVu
dChib29sIHBlcmlvZGljRXZlbnQpCiB7CiAgICAgZG91YmxlIG5vdyA9IFdURjo6Y3VycmVudFRp
bWUoKTsKQEAgLTIzODIsNiArMjQwNCwxNSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1
bHRFdmVudEhhbmRsCiAgICAgICAgICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+bWFrZU9w
YXF1ZSgpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFt
ZXMoKS5tb3VzZW91dEV2ZW50KQogICAgICAgICAgICAgICAgIG1fbW91c2VPdmVyID0gZmFsc2U7
CisgICAgICAgICAgICBlbHNlIGlmIChldmVudC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3Vz
ZW1vdmVFdmVudCkgeworICAgICAgICAgICAgICAgIGlmIChpc0Z1bGxzY3JlZW4oKSAmJiBjb250
cm9scygpKSB7CisgICAgICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IGEgbW91c2UgbW92
ZSBpbiBmdWxsc2NyZWVuIG1vZGUsIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgc3RhcnQg
YSB0aW1lcgorICAgICAgICAgICAgICAgICAgICAvLyB0aGF0IHdpbGwgaGlkZSB0aGUgbWVkaWEg
Y29udHJvbHMgYWZ0ZXIgYSAzIHNlY29uZHMgd2l0aG91dCBhIG1vdXNlIG1vdmUuCisgICAgICAg
ICAgICAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+bWFrZU9wYXF1ZSgpOworICAgICAgICAgICAg
ICAgICAgICBzdGFydEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOworICAgICAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAKICAgICAgICAgfQogICAgIH0KIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHJldmlzaW9uIDg3NjU0KQorKysgU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTI2
Nyw4ICsyNjcsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIGFzeW5jRXZlbnRUaW1lckZpcmVkKFRp
bWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7CiAgICAgdm9pZCBwcm9ncmVzc0V2ZW50VGltZXJGaXJl
ZChUaW1lcjxIVE1MTWVkaWFFbGVtZW50PiopOwogICAgIHZvaWQgcGxheWJhY2tQcm9ncmVzc1Rp
bWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKTsKKyAgICB2b2lkIGhpZGVGdWxsc2Ny
ZWVuQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+Kik7CiAgICAgdm9p
ZCBzdGFydFBsYXliYWNrUHJvZ3Jlc3NUaW1lcigpOwogICAgIHZvaWQgc3RhcnRQcm9ncmVzc0V2
ZW50VGltZXIoKTsKKyAgICB2b2lkIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CiAgICAgdm9pZCBzdG9wUGVyaW9kaWNUaW1lcnMoKTsKIAogICAgIHZvaWQgc2VlayhmbG9hdCB0
aW1lLCBFeGNlcHRpb25Db2RlJik7CkBAIC0zMzgsNiArMzQwLDcgQEAgcHJpdmF0ZToKICAgICBU
aW1lcjxIVE1MTWVkaWFFbGVtZW50PiBtX2FzeW5jRXZlbnRUaW1lcjsKICAgICBUaW1lcjxIVE1M
TWVkaWFFbGVtZW50PiBtX3Byb2dyZXNzRXZlbnRUaW1lcjsKICAgICBUaW1lcjxIVE1MTWVkaWFF
bGVtZW50PiBtX3BsYXliYWNrUHJvZ3Jlc3NUaW1lcjsKKyAgICBUaW1lcjxIVE1MTWVkaWFFbGVt
ZW50PiBtX2hpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcjsKICAgICBWZWN0b3I8UmVmUHRyPEV2
ZW50PiA+IG1fcGVuZGluZ0V2ZW50czsKICAgICBSZWZQdHI8VGltZVJhbmdlcz4gbV9wbGF5ZWRU
aW1lUmFuZ2VzOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95314</attachid>
            <date>2011-05-29 19:21:10 -0700</date>
            <delta_ts>2011-05-29 19:55:47 -0700</delta_ts>
            <desc>[PATCH] Fix v2</desc>
            <filename>hide_controls_full_screen.patch</filename>
            <type>text/plain</type>
            <size>8026</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg3NjU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTEtMDUtMjkgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRyb2xzIG5ldmVyIGhpZGUgaW4gZnVsbCBzY3Jl
ZW4gYWZ0ZXIgdXNlciBzdG9wcyBtb3ZpbmcgbW91c2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS85
NTIyMTgyPgorICAgICAgICAKKyAgICAgICAgV2hlbiB3ZSBnZXQgYSBtb3VzZSBtb3ZlIGV2ZW50
IGluIEhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIsIGFuZCB3ZSBhcmUgaW4g
ZnVsbCBzY3JlZW4sCisgICAgICAgIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgdGhlbiBz
dGFydCBhIHRpbWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIHRpbWVyIGZpcmVzIDMgc2Vjb25k
cyBhZnRlciB0aGUgdXNlcidzIGxhc3QgbW91c2UgbW92ZW1lbnQgKHRpbWVyIGlzIHJlc3RhcnRl
ZCBvbiBldmVyeSBtb3VzZQorICAgICAgICBtb3ZlKSwgYW5kIGhpZGVzIHRoZSBjb250cm9scy4K
KworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBvdXIgbmV3
IHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6IElmIHdl
IGFyZSBpbiBmdWxsIHNjcmVlbiBtb2RlLCBzdGFydCBvdXIgdGltZXIgdG8gaGlkZSB0aGUgZnVs
bCBzY3JlZW4KKyAgICAgICAgICAgIGNvbnRyb2xzLiBXZSBkb24ndCB3YW50IHRoZSB1c2VyIHRv
IGhhdmUgdG8gbW92ZSB0aGUgbW91c2UgdG8gaGlkZSB0aGVtIHdoZW4gdGhleSB1c2UgdGhlIHNw
YWNlYmFyCisgICAgICAgICAgICB0byBwbGF5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlh
RWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIpOiBTdGFydHMgYSBvbmVz
aG90IHRpbWVyIDMgc2Vjb25kcyBpbiB0aGUgZnV0dXJlCisgICAgICAgICAgICBpZiB3ZSBhcmUg
aW4gZnVsbCBzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpoaWRl
RnVsbHNjcmVlbkNvbnRyb2xzVGltZXJGaXJlZCk6IE1ha2Ugc3VyZSB0aGF0IHdlIGFyZSBjdXJy
ZW50bHkgcGxheWluZywgYW5kCisgICAgICAgICAgICB3ZSBhcmUgaW4gZnVsbCBzY3JlZW4sIGFu
ZCBoaWRlIHRoZSBjb250cm9scy4gV2UgZG9uJ3Qgd2FudCB0byBoaWRlIHRoZSBjb250cm9scyBp
ZiB3ZSBhcmUgcGF1c2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c3Rv
cEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcik6IFN0b3BzIHRoZSB0aW1lci4KKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBJZiB3ZSBn
ZXQgYSBtb3VzZSBtb3ZlIGV2ZW50IGFuZCBhcmUgaW4gZnVsbCBzY3JlZW4sIHNob3cgdGhlCisg
ICAgICAgICAgICBjb250cm9scyBhbmQgc3RhcnQgYSB0aW1lciB0byBoaWRlIHRoZW0uCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4pOiBTdGFydCBh
IHRpbWVyIHRvIGhpZGUgdGhlIGZ1bGwgc2NyZWVuIGNvbnRyb2xzLiBUaGUgdXNlciBzaG91bGRu
J3QKKyAgICAgICAgICAgIGhhdmUgdGhlIG1vdmUgdGhlIG1vdXNlIG9uY2UgdGhleSBlbnRlciBm
dWxsIHNjcmVlbiB0byBoaWRlIHRoZSBjb250cm9scy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKTogU3RvcCB0aGUgdGltZXIgdG8gaGlkZSB0aGUg
ZnVsbCBzY3JlZW4gY29udHJvbHMuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50Lmg6
CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sUm9vdEVsZW1lbnQ6OnBsYXliYWNrU3RvcHBlZCk6
IFN0b3AgdGhlIHRpbWVyIHRvIGhpZGUgdGhlIGZ1bGwgc2NyZWVuIGNvbnRyb2xzLgorCiAyMDEx
LTA1LTI5ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAJKHJldmlzaW9uIDg3NjU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTIzLDYgKzEyMyw3IEBAIEhUTUxNZWRp
YUVsZW1lbnQ6OkhUTUxNZWRpYUVsZW1lbnQoY29uc3QKICAgICAsIG1fYXN5bmNFdmVudFRpbWVy
KHRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojphc3luY0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1f
cHJvZ3Jlc3NFdmVudFRpbWVyKHRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50
VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKHRoaXMsICZIVE1MTWVk
aWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCkKKyAgICAsIG1faGlkZUZ1bGxz
Y3JlZW5Db250cm9sc1RpbWVyKHRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpoaWRlRnVsbHNjcmVl
bkNvbnRyb2xzVGltZXJGaXJlZCkKICAgICAsIG1fcGxheWVkVGltZVJhbmdlcygpCiAgICAgLCBt
X3BsYXliYWNrUmF0ZSgxLjBmKQogICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEuMGYpCkBA
IC0xNDI1LDYgKzE0MjYsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoYm9vbCBpc1Vz
ZXJHCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAorICAgIGlmIChpc0Z1bGxzY3Jl
ZW4oKSkKKyAgICAgICAgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKKyAgICAK
ICAgICBwbGF5SW50ZXJuYWwoKTsKIH0KIApAQCAtMTYxMCw2ICsxNjE0LDggQEAgdm9pZCBIVE1M
TWVkaWFFbGVtZW50OjplbmRTY3J1YmJpbmcoKQogLy8gIjE1IHRvIDI1MG1zIiwgd2UgY2hvb3Nl
IHRoZSBzbG93ZXN0IGZyZXF1ZW5jeQogc3RhdGljIGNvbnN0IGRvdWJsZSBtYXhUaW1ldXBkYXRl
RXZlbnRGcmVxdWVuY3kgPSAwLjI1OwogCitzdGF0aWMgY29uc3QgZG91YmxlIHRpbWVXaXRob3V0
TW91c2VNb3ZlbWVudEJlZm9yZUhpZGluZ0NvbnRyb2xzID0gMzsKKwogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpzdGFydFBsYXliYWNrUHJvZ3Jlc3NUaW1lcigpCiB7CiAgICAgaWYgKG1fcGxheWJh
Y2tQcm9ncmVzc1RpbWVyLmlzQWN0aXZlKCkpCkBAIC0xNjM1LDYgKzE2NDEsMzUgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVAogICAgIC8vIEZJWE1FOiBkZWFsIHdp
dGggY3VlIHJhbmdlcyBoZXJlCiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RhcnRIaWRl
RnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKQoreworICAgIGlmICghaXNGdWxsc2NyZWVuKCkpCisg
ICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2hpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lci5z
dGFydE9uZVNob3QodGltZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMp
OworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1l
ckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+KikKK3sKKyAgICBpZiAoIW1fcGxheWluZykK
KyAgICAgICAgcmV0dXJuOworICAgIAorICAgIGlmICghaXNGdWxsc2NyZWVuKCkpCisgICAgICAg
IHJldHVybjsKKyAgICAKKyAgICBpZiAoIWNvbnRyb2xzKCkgfHwgIWhhc01lZGlhQ29udHJvbHMo
KSkKKyAgICAgICAgcmV0dXJuOworICAgIAorICAgIC8vIEZJWE1FOiBEb24ndCBoaWRlIHRoZSBj
b250cm9scyB3aGVuIHRoZSBtb3VzZSBpcyBvdmVyIHRoZW0uCisgICAgICAgIAorICAgIG1lZGlh
Q29udHJvbHMoKS0+bWFrZVRyYW5zcGFyZW50KCk7Cit9CisKK3ZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c3RvcEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpCit7CisgICAgbV9oaWRlRnVsbHNj
cmVlbkNvbnRyb2xzVGltZXIuc3RvcCgpOworfQorCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNj
aGVkdWxlVGltZXVwZGF0ZUV2ZW50KGJvb2wgcGVyaW9kaWNFdmVudCkKIHsKICAgICBkb3VibGUg
bm93ID0gV1RGOjpjdXJyZW50VGltZSgpOwpAQCAtMjM4Miw2ICsyNDE3LDE1IEBAIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6ZGVmYXVsdEV2ZW50SGFuZGwKICAgICAgICAgICAgICAgICAgICAgbWVk
aWFDb250cm9scygpLT5tYWtlT3BhcXVlKCk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50
LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpCiAgICAgICAgICAgICAgICAg
bV9tb3VzZU92ZXIgPSBmYWxzZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKGV2ZW50LT50eXBlKCkg
PT0gZXZlbnROYW1lcygpLm1vdXNlbW92ZUV2ZW50KSB7CisgICAgICAgICAgICAgICAgaWYgKGlz
RnVsbHNjcmVlbigpICYmIGhhc01lZGlhQ29udHJvbHMoKSAmJiBjb250cm9scygpKSB7CisgICAg
ICAgICAgICAgICAgICAgIC8vIFdoZW4gd2UgZ2V0IGEgbW91c2UgbW92ZSBpbiBmdWxsc2NyZWVu
IG1vZGUsIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgc3RhcnQgYSB0aW1lcgorICAgICAg
ICAgICAgICAgICAgICAvLyB0aGF0IHdpbGwgaGlkZSB0aGUgbWVkaWEgY29udHJvbHMgYWZ0ZXIg
YSAzIHNlY29uZHMgd2l0aG91dCBhIG1vdXNlIG1vdmUuCisgICAgICAgICAgICAgICAgICAgIG1l
ZGlhQ29udHJvbHMoKS0+bWFrZU9wYXF1ZSgpOworICAgICAgICAgICAgICAgICAgICBzdGFydEhp
ZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIH0KKyAgICAKICAgICAgICAgfQogICAgIH0KIApAQCAtMjUxOCw2ICsyNTYyLDkgQEAgYm9v
bCBIVE1MTWVkaWFFbGVtZW50Ojppc0Z1bGxzY3JlZW4oKSBjbwogdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjplbnRlckZ1bGxzY3JlZW4oKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1l
bnQ6OmVudGVyRnVsbHNjcmVlbiIpOworICAgIAorICAgIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250
cm9sc1RpbWVyKCk7CisgICAgCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChk
b2N1bWVudCgpICYmIGRvY3VtZW50KCktPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQoKS0+c2V0dGlu
Z3MoKS0+ZnVsbFNjcmVlbkVuYWJsZWQoKSkgewogICAgICAgICBkb2N1bWVudCgpLT5yZXF1ZXN0
RnVsbFNjcmVlbkZvckVsZW1lbnQodGhpcywgMCwgRG9jdW1lbnQ6OkV4ZW1wdElGcmFtZUFsbG93
RnVsU2NyZWVuUmVxdWlyZW1lbnQpOwpAQCAtMjUzNyw2ICsyNTg0LDkgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4oKQogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpleGl0
RnVsbHNjcmVlbigpCiB7CiAgICAgTE9HKE1lZGlhLCAiSFRNTE1lZGlhRWxlbWVudDo6ZXhpdEZ1
bGxzY3JlZW4iKTsKKyAgICAKKyAgICBzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CisgICAgCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGlmIChkb2N1bWVudCgpICYm
IGRvY3VtZW50KCktPnNldHRpbmdzKCkgJiYgZG9jdW1lbnQoKS0+c2V0dGluZ3MoKS0+ZnVsbFNj
cmVlbkVuYWJsZWQoKSkgewogICAgICAgICBpZiAoZG9jdW1lbnQoKS0+d2Via2l0SXNGdWxsU2Ny
ZWVuKCkgJiYgZG9jdW1lbnQoKS0+d2Via2l0Q3VycmVudEZ1bGxTY3JlZW5FbGVtZW50KCkgPT0g
dGhpcykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCShyZXZpc2lv
biA4NzY1NCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xNDYsNiArMTQ2LDggQEAgcHVibGljOgogICAgIHZvaWQgdG9nZ2xlUGxh
eVN0YXRlKCk7CiAgICAgdm9pZCBiZWdpblNjcnViYmluZygpOwogICAgIHZvaWQgZW5kU2NydWJi
aW5nKCk7CisgICAgCisgICAgdm9pZCBzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CiAKICAgICBib29sIGNhblBsYXkoKSBjb25zdDsKIApAQCAtMjY3LDggKzI2OSwxMCBAQCBwcml2
YXRlOgogICAgIHZvaWQgYXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVu
dD4qKTsKICAgICB2b2lkIHByb2dyZXNzRXZlbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVs
ZW1lbnQ+Kik7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZChUaW1lcjxIVE1M
TWVkaWFFbGVtZW50PiopOworICAgIHZvaWQgaGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyRmly
ZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKTsKICAgICB2b2lkIHN0YXJ0UGxheWJhY2tQcm9n
cmVzc1RpbWVyKCk7CiAgICAgdm9pZCBzdGFydFByb2dyZXNzRXZlbnRUaW1lcigpOworICAgIHZv
aWQgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKICAgICB2b2lkIHN0b3BQZXJp
b2RpY1RpbWVycygpOwogCiAgICAgdm9pZCBzZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUm
KTsKQEAgLTMzOCw2ICszNDIsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1l
bnQ+IG1fYXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcHJv
Z3Jlc3NFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcGxheWJhY2tQ
cm9ncmVzc1RpbWVyOworICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1faGlkZUZ1bGxzY3Jl
ZW5Db250cm9sc1RpbWVyOwogICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZl
bnRzOwogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290
RWxlbWVudC5jcHAJKHJldmlzaW9uIDg3NjU0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9zaGFk
b3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNTAsNiAr
MzUwLDggQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdAogICAgIG1f
dGltZWxpbmUtPnNldFBvc2l0aW9uKG1fbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpKTsKICAg
ICB1cGRhdGVUaW1lRGlzcGxheSgpOwogICAgIG1ha2VPcGFxdWUoKTsKKyAgICAKKyAgICBtX21l
ZGlhRWxlbWVudC0+c3RvcEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcigpOwogfQogCiB2b2lk
IE1lZGlhQ29udHJvbFJvb3RFbGVtZW50Ojp1cGRhdGVUaW1lRGlzcGxheSgpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95316</attachid>
            <date>2011-05-29 19:55:51 -0700</date>
            <delta_ts>2011-05-29 20:36:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61715-20110529195549.patch</filename>
            <type>text/plain</type>
            <size>10712</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc2NjAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Nzg5MjllNDc1MTllMzAx
ZTVlMWYzNTg5MzA3M2QyMTkwZjAyYjIxLi44ODBkZjhmYjA2Y2JmZjg5ZmUxZThjOTVmNjI1MGM1
NTI0Y2UyNTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMTEtMDUtMjkgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENvbnRyb2xzIG5ldmVyIGhpZGUgaW4gZnVsbCBz
Y3JlZW4gYWZ0ZXIgdXNlciBzdG9wcyBtb3ZpbmcgbW91c2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxNzE1CisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS85NTIyMTgyPgorICAgICAgICAKKyAgICAgICAgV2hlbiB3ZSBnZXQgYSBtb3VzZSBtb3ZlIGV2
ZW50IGluIEhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIsIGFuZCB3ZSBhcmUg
aW4gZnVsbCBzY3JlZW4sCisgICAgICAgIHNob3cgdGhlIG1lZGlhIGNvbnRyb2xzLCBhbmQgdGhl
biBzdGFydCBhIHRpbWVyLgorICAgICAgICAKKyAgICAgICAgVGhlIHRpbWVyIGZpcmVzIDMgc2Vj
b25kcyBhZnRlciB0aGUgdXNlcidzIGxhc3QgbW91c2UgbW92ZW1lbnQgKHRpbWVyIGlzIHJlc3Rh
cnRlZCBvbiBldmVyeSBtb3VzZQorICAgICAgICBtb3ZlKSwgYW5kIGhpZGVzIHRoZSBjb250cm9s
cy4KKworICAgICAgICAqIGh0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MTWVkaWFFbGVtZW50OjpIVE1MTWVkaWFFbGVtZW50KTogSW5pdGlhbGl6ZSBvdXIg
bmV3IHRpbWVyLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGxheSk6IElm
IHdlIGFyZSBpbiBmdWxsIHNjcmVlbiBtb2RlLCBzdGFydCBvdXIgdGltZXIgdG8gaGlkZSB0aGUg
ZnVsbCBzY3JlZW4KKyAgICAgICAgICAgIGNvbnRyb2xzLiBXZSBkb24ndCB3YW50IHRoZSB1c2Vy
IHRvIGhhdmUgdG8gbW92ZSB0aGUgbW91c2UgdG8gaGlkZSB0aGVtIHdoZW4gdGhleSB1c2UgdGhl
IHNwYWNlYmFyCisgICAgICAgICAgICB0byBwbGF5LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1l
ZGlhRWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIpOiBTdGFydHMgYSBv
bmVzaG90IHRpbWVyIDMgc2Vjb25kcyBpbiB0aGUgZnV0dXJlCisgICAgICAgICAgICBpZiB3ZSBh
cmUgaW4gZnVsbCBzY3JlZW4uCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpo
aWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXJGaXJlZCk6IE1ha2Ugc3VyZSB0aGF0IHdlIGFyZSBj
dXJyZW50bHkgcGxheWluZywgYW5kCisgICAgICAgICAgICB3ZSBhcmUgaW4gZnVsbCBzY3JlZW4s
IGFuZCBoaWRlIHRoZSBjb250cm9scy4gV2UgZG9uJ3Qgd2FudCB0byBoaWRlIHRoZSBjb250cm9s
cyBpZiB3ZSBhcmUgcGF1c2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6
c3RvcEhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lcik6IFN0b3BzIHRoZSB0aW1lci4KKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRlZmF1bHRFdmVudEhhbmRsZXIpOiBJZiB3
ZSBnZXQgYSBtb3VzZSBtb3ZlIGV2ZW50IGFuZCBhcmUgaW4gZnVsbCBzY3JlZW4sIHNob3cgdGhl
CisgICAgICAgICAgICBjb250cm9scyBhbmQgc3RhcnQgYSB0aW1lciB0byBoaWRlIHRoZW0uCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4pOiBTdGFy
dCBhIHRpbWVyIHRvIGhpZGUgdGhlIGZ1bGwgc2NyZWVuIGNvbnRyb2xzLiBUaGUgdXNlciBzaG91
bGRuJ3QKKyAgICAgICAgICAgIGhhdmUgdGhlIG1vdmUgdGhlIG1vdXNlIG9uY2UgdGhleSBlbnRl
ciBmdWxsIHNjcmVlbiB0byBoaWRlIHRoZSBjb250cm9scy4KKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxNZWRpYUVsZW1lbnQ6OmV4aXRGdWxsc2NyZWVuKTogU3RvcCB0aGUgdGltZXIgdG8gaGlkZSB0
aGUgZnVsbCBzY3JlZW4gY29udHJvbHMuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50
Lmg6CisgICAgICAgICogaHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oOiBBZGRlZCBwdXJlIHZp
cnR1YWwgc2hvdWxkSGlkZUNvbnRyb2xzKCkgbWV0aG9kLgorICAgICAgICAqIGh0bWwvc2hhZG93
L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29u
dHJvbFJvb3RFbGVtZW50OjpwbGF5YmFja1N0b3BwZWQpOiBTdG9wIHRoZSB0aW1lciB0byBoaWRl
IHRoZSBmdWxsIHNjcmVlbiBjb250cm9scy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhQ29udHJv
bFJvb3RFbGVtZW50OjpzaG91bGRIaWRlQ29udHJvbHMpOiBBZGRlZCwgb25seSByZXBvcnQgdGhh
dAorICAgICAgICAgICAgdGhlIGNhbGxlciBzaG91bGQgaGlkZSB0aGUgY29udHJvbHMgaWYgdGhl
IHBhbmVsIGlzIG5vdCBob3ZlcmVkLgorICAgICAgICAqIGh0bWwvc2hhZG93L01lZGlhQ29udHJv
bFJvb3RFbGVtZW50Lmg6CisKIDIwMTEtMDUtMjkgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggZDllZmMzOTk5MDk2MmM2OTZlODA1Y2Fm
ODg3ZjRiZTc5NDdjYzY4Ni4uZmFhY2U4ZGViMGRhMjAyYzkwZjJmZGFmMDQ1NzY1MDdmMmE0OTc4
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBAIC0xMjMsNiAr
MTIzLDcgQEAgSFRNTE1lZGlhRWxlbWVudDo6SFRNTE1lZGlhRWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bWVudCogZG9jdW0KICAgICAsIG1fYXN5bmNFdmVudFRpbWVy
KHRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojphc3luY0V2ZW50VGltZXJGaXJlZCkKICAgICAsIG1f
cHJvZ3Jlc3NFdmVudFRpbWVyKHRoaXMsICZIVE1MTWVkaWFFbGVtZW50Ojpwcm9ncmVzc0V2ZW50
VGltZXJGaXJlZCkKICAgICAsIG1fcGxheWJhY2tQcm9ncmVzc1RpbWVyKHRoaXMsICZIVE1MTWVk
aWFFbGVtZW50OjpwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCkKKyAgICAsIG1faGlkZUZ1bGxz
Y3JlZW5Db250cm9sc1RpbWVyKHRoaXMsICZIVE1MTWVkaWFFbGVtZW50OjpoaWRlRnVsbHNjcmVl
bkNvbnRyb2xzVGltZXJGaXJlZCkKICAgICAsIG1fcGxheWVkVGltZVJhbmdlcygpCiAgICAgLCBt
X3BsYXliYWNrUmF0ZSgxLjBmKQogICAgICwgbV9kZWZhdWx0UGxheWJhY2tSYXRlKDEuMGYpCkBA
IC0xNDI1LDYgKzE0MjYsOSBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXkoYm9vbCBpc1Vz
ZXJHZXN0dXJlKQogICAgICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKKyAgICBpZiAoaXNG
dWxsc2NyZWVuKCkpCisgICAgICAgIHN0YXJ0SGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7
CisgICAgCiAgICAgcGxheUludGVybmFsKCk7CiB9CiAKQEAgLTE2MTAsNiArMTYxNCw4IEBAIHZv
aWQgSFRNTE1lZGlhRWxlbWVudDo6ZW5kU2NydWJiaW5nKCkKIC8vICIxNSB0byAyNTBtcyIsIHdl
IGNob29zZSB0aGUgc2xvd2VzdCBmcmVxdWVuY3kKIHN0YXRpYyBjb25zdCBkb3VibGUgbWF4VGlt
ZXVwZGF0ZUV2ZW50RnJlcXVlbmN5ID0gMC4yNTsKIAorc3RhdGljIGNvbnN0IGRvdWJsZSB0aW1l
V2l0aG91dE1vdXNlTW92ZW1lbnRCZWZvcmVIaWRpbmdDb250cm9scyA9IDM7CisKIHZvaWQgSFRN
TE1lZGlhRWxlbWVudDo6c3RhcnRQbGF5YmFja1Byb2dyZXNzVGltZXIoKQogewogICAgIGlmICht
X3BsYXliYWNrUHJvZ3Jlc3NUaW1lci5pc0FjdGl2ZSgpKQpAQCAtMTYzNSw2ICsxNjQxLDM2IEBA
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tQcm9ncmVzc1RpbWVyRmlyZWQoVGltZXI8
SFRNTE1lZGlhRWxlbWVudD4qKQogICAgIC8vIEZJWE1FOiBkZWFsIHdpdGggY3VlIHJhbmdlcyBo
ZXJlCiB9CiAKK3ZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRy
b2xzVGltZXIoKQoreworICAgIGlmICghaXNGdWxsc2NyZWVuKCkpCisgICAgICAgIHJldHVybjsK
KyAgICAKKyAgICBtX2hpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lci5zdGFydE9uZVNob3QodGlt
ZVdpdGhvdXRNb3VzZU1vdmVtZW50QmVmb3JlSGlkaW5nQ29udHJvbHMpOworfQorCit2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmhpZGVGdWxsc2NyZWVuQ29udHJvbHNUaW1lckZpcmVkKFRpbWVyPEhU
TUxNZWRpYUVsZW1lbnQ+KikKK3sKKyAgICBpZiAoIW1fcGxheWluZykKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIGlmICghaXNGdWxsc2NyZWVuKCkpCisgICAgICAgIHJldHVybjsKKyAgICAK
KyAgICBpZiAoIWNvbnRyb2xzKCkgfHwgIWhhc01lZGlhQ29udHJvbHMoKSkKKyAgICAgICAgcmV0
dXJuOworICAgIAorICAgIGlmICghbWVkaWFDb250cm9scygpLT5zaG91bGRIaWRlQ29udHJvbHMo
KSkKKyAgICAgICAgcmV0dXJuOworICAgICAgICAKKyAgICBtZWRpYUNvbnRyb2xzKCktPm1ha2VU
cmFuc3BhcmVudCgpOworfQorCit2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnN0b3BIaWRlRnVsbHNj
cmVlbkNvbnRyb2xzVGltZXIoKQoreworICAgIG1faGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVy
LnN0b3AoKTsKK30KKwogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZVRpbWV1cGRhdGVF
dmVudChib29sIHBlcmlvZGljRXZlbnQpCiB7CiAgICAgZG91YmxlIG5vdyA9IFdURjo6Y3VycmVu
dFRpbWUoKTsKQEAgLTIzNzgsMTAgKzI0MTQsMjQgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpk
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldmVudCkKICAgICAgICAgaWYgKG1vdXNlRXZlbnQt
PnJlbGF0ZWRUYXJnZXQoKSAhPSB0aGlzKSB7CiAgICAgICAgICAgICBpZiAoZXZlbnQtPnR5cGUo
KSA9PSBldmVudE5hbWVzKCkubW91c2VvdmVyRXZlbnQpIHsKICAgICAgICAgICAgICAgICBtX21v
dXNlT3ZlciA9IHRydWU7Ci0gICAgICAgICAgICAgICAgaWYgKGhhc01lZGlhQ29udHJvbHMoKSAm
JiBjb250cm9scygpICYmICFjYW5QbGF5KCkpCisgICAgICAgICAgICAgICAgaWYgKGhhc01lZGlh
Q29udHJvbHMoKSAmJiBjb250cm9scygpICYmICFjYW5QbGF5KCkpIHsKICAgICAgICAgICAgICAg
ICAgICAgbWVkaWFDb250cm9scygpLT5tYWtlT3BhcXVlKCk7Ci0gICAgICAgICAgICB9IGVsc2Ug
aWYgKGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpCisgICAgICAg
ICAgICAgICAgICAgIGlmIChtZWRpYUNvbnRyb2xzKCktPnNob3VsZEhpZGVDb250cm9scygpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIo
KTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LT50eXBl
KCkgPT0gZXZlbnROYW1lcygpLm1vdXNlb3V0RXZlbnQpIHsKICAgICAgICAgICAgICAgICBtX21v
dXNlT3ZlciA9IGZhbHNlOworICAgICAgICAgICAgICAgIHN0b3BIaWRlRnVsbHNjcmVlbkNvbnRy
b2xzVGltZXIoKTsKKyAgICAgICAgICAgIH0gZWxzZSBpZiAoZXZlbnQtPnR5cGUoKSA9PSBldmVu
dE5hbWVzKCkubW91c2Vtb3ZlRXZlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAoaXNGdWxsc2Ny
ZWVuKCkgJiYgaGFzTWVkaWFDb250cm9scygpICYmIGNvbnRyb2xzKCkpIHsKKyAgICAgICAgICAg
ICAgICAgICAgLy8gV2hlbiB3ZSBnZXQgYSBtb3VzZSBtb3ZlIGluIGZ1bGxzY3JlZW4gbW9kZSwg
c2hvdyB0aGUgbWVkaWEgY29udHJvbHMsIGFuZCBzdGFydCBhIHRpbWVyCisgICAgICAgICAgICAg
ICAgICAgIC8vIHRoYXQgd2lsbCBoaWRlIHRoZSBtZWRpYSBjb250cm9scyBhZnRlciBhIDMgc2Vj
b25kcyB3aXRob3V0IGEgbW91c2UgbW92ZS4KKyAgICAgICAgICAgICAgICAgICAgbWVkaWFDb250
cm9scygpLT5tYWtlT3BhcXVlKCk7CisgICAgICAgICAgICAgICAgICAgIGlmIChtZWRpYUNvbnRy
b2xzKCktPnNob3VsZEhpZGVDb250cm9scygpKQorICAgICAgICAgICAgICAgICAgICAgICAgc3Rh
cnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKKyAgICAgICAgICAgICAgICB9CisgICAg
ICAgICAgICB9CisgICAgCiAgICAgICAgIH0KICAgICB9CiAKQEAgLTI1MTgsNiArMjU2OCw5IEBA
IGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aXNGdWxsc2NyZWVuKCkgY29uc3QKIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkKIHsKICAgICBMT0coTWVkaWEsICJIVE1MTWVk
aWFFbGVtZW50OjplbnRlckZ1bGxzY3JlZW4iKTsKKyAgICAKKyAgICBzdGFydEhpZGVGdWxsc2Ny
ZWVuQ29udHJvbHNUaW1lcigpOworICAgIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAg
ICBpZiAoZG9jdW1lbnQoKSAmJiBkb2N1bWVudCgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCkt
PnNldHRpbmdzKCktPmZ1bGxTY3JlZW5FbmFibGVkKCkpIHsKICAgICAgICAgZG9jdW1lbnQoKS0+
cmVxdWVzdEZ1bGxTY3JlZW5Gb3JFbGVtZW50KHRoaXMsIDAsIERvY3VtZW50OjpFeGVtcHRJRnJh
bWVBbGxvd0Z1bFNjcmVlblJlcXVpcmVtZW50KTsKQEAgLTI1MzcsNiArMjU5MCw5IEBAIHZvaWQg
SFRNTE1lZGlhRWxlbWVudDo6ZW50ZXJGdWxsc2NyZWVuKCkKIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6ZXhpdEZ1bGxzY3JlZW4oKQogewogICAgIExPRyhNZWRpYSwgIkhUTUxNZWRpYUVsZW1lbnQ6
OmV4aXRGdWxsc2NyZWVuIik7CisgICAgCisgICAgc3RvcEhpZGVGdWxsc2NyZWVuQ29udHJvbHNU
aW1lcigpOworICAgIAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBpZiAoZG9jdW1l
bnQoKSAmJiBkb2N1bWVudCgpLT5zZXR0aW5ncygpICYmIGRvY3VtZW50KCktPnNldHRpbmdzKCkt
PmZ1bGxTY3JlZW5FbmFibGVkKCkpIHsKICAgICAgICAgaWYgKGRvY3VtZW50KCktPndlYmtpdElz
RnVsbFNjcmVlbigpICYmIGRvY3VtZW50KCktPndlYmtpdEN1cnJlbnRGdWxsU2NyZWVuRWxlbWVu
dCgpID09IHRoaXMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVs
ZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5oCmluZGV4IGQz
NTJlNDRhZWU2OGVhNjIxMmUwMzUwNDQzZjVlMGEwOGMyOGJlMmIuLmM4MjRlMTgxNzNhY2M1NTcz
NWJlNzE0OGVmMDQ2OTJjZTA3ZjNkODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTE1lZGlhRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5oCkBAIC0xNDYsNiArMTQ2LDggQEAgcHVibGljOgogICAgIHZvaWQgdG9nZ2xlUGxheVN0
YXRlKCk7CiAgICAgdm9pZCBiZWdpblNjcnViYmluZygpOwogICAgIHZvaWQgZW5kU2NydWJiaW5n
KCk7CisgICAgCisgICAgdm9pZCBzdG9wSGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyKCk7CiAK
ICAgICBib29sIGNhblBsYXkoKSBjb25zdDsKIApAQCAtMjcwLDggKzI3MiwxMCBAQCBwcml2YXRl
OgogICAgIHZvaWQgYXN5bmNFdmVudFRpbWVyRmlyZWQoVGltZXI8SFRNTE1lZGlhRWxlbWVudD4q
KTsKICAgICB2b2lkIHByb2dyZXNzRXZlbnRUaW1lckZpcmVkKFRpbWVyPEhUTUxNZWRpYUVsZW1l
bnQ+Kik7CiAgICAgdm9pZCBwbGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZChUaW1lcjxIVE1MTWVk
aWFFbGVtZW50PiopOworICAgIHZvaWQgaGlkZUZ1bGxzY3JlZW5Db250cm9sc1RpbWVyRmlyZWQo
VGltZXI8SFRNTE1lZGlhRWxlbWVudD4qKTsKICAgICB2b2lkIHN0YXJ0UGxheWJhY2tQcm9ncmVz
c1RpbWVyKCk7CiAgICAgdm9pZCBzdGFydFByb2dyZXNzRXZlbnRUaW1lcigpOworICAgIHZvaWQg
c3RhcnRIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsKICAgICB2b2lkIHN0b3BQZXJpb2Rp
Y1RpbWVycygpOwogCiAgICAgdm9pZCBzZWVrKGZsb2F0IHRpbWUsIEV4Y2VwdGlvbkNvZGUmKTsK
QEAgLTM0MSw2ICszNDUsNyBAQCBwcml2YXRlOgogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+
IG1fYXN5bmNFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcHJvZ3Jl
c3NFdmVudFRpbWVyOwogICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1fcGxheWJhY2tQcm9n
cmVzc1RpbWVyOworICAgIFRpbWVyPEhUTUxNZWRpYUVsZW1lbnQ+IG1faGlkZUZ1bGxzY3JlZW5D
b250cm9sc1RpbWVyOwogICAgIFZlY3RvcjxSZWZQdHI8RXZlbnQ+ID4gbV9wZW5kaW5nRXZlbnRz
OwogICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiBtX3BsYXllZFRpbWVSYW5nZXM7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJvbFJvb3RFbGVtZW50LmNw
cAppbmRleCBhMWU2MjBiMGJjNjIxOTBlMTE5Zjc3NGU1NzU2ZTA4NWM5MjJkNjQwLi5lMzFmMjkw
ZjVkMWI5MjQyY2IxNmNjYWFhMjNmMmJmMzBhMDBlYTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQuY3BwCkBAIC0zNTAs
NiArMzUwLDggQEAgdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6cGxheWJhY2tTdG9wcGVk
KCkKICAgICBtX3RpbWVsaW5lLT5zZXRQb3NpdGlvbihtX21lZGlhRWxlbWVudC0+Y3VycmVudFRp
bWUoKSk7CiAgICAgdXBkYXRlVGltZURpc3BsYXkoKTsKICAgICBtYWtlT3BhcXVlKCk7CisgICAg
CisgICAgbV9tZWRpYUVsZW1lbnQtPnN0b3BIaWRlRnVsbHNjcmVlbkNvbnRyb2xzVGltZXIoKTsK
IH0KIAogdm9pZCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6dXBkYXRlVGltZURpc3BsYXkoKQpA
QCAtNDU3LDYgKzQ1OSwxMSBAQCB2b2lkIE1lZGlhQ29udHJvbFJvb3RFbGVtZW50OjpzaG93Vm9s
dW1lU2xpZGVyKCkKICAgICAgICAgbV92b2x1bWVTbGlkZXJDb250YWluZXItPnNob3coKTsKIH0K
IAorYm9vbCBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hvdWxkSGlkZUNvbnRyb2xzKCkKK3sK
KyAgICByZXR1cm4gIW1fcGFuZWwtPmhvdmVyZWQoKTsKK30KKwogY29uc3QgQXRvbWljU3RyaW5n
JiBNZWRpYUNvbnRyb2xSb290RWxlbWVudDo6c2hhZG93UHNldWRvSWQoKSBjb25zdAogewogICAg
IERFRklORV9TVEFUSUNfTE9DQUwoQXRvbWljU3RyaW5nLCBpZCwgKCItd2Via2l0LW1lZGlhLWNv
bnRyb2xzIikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFD
b250cm9sUm9vdEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29u
dHJvbFJvb3RFbGVtZW50LmgKaW5kZXggMWZkY2MwMTg2YWE3OGMzM2M4OTBkNWYzM2JhNjc4NDVm
ZWJlMWE4MC4uNjJjNDVhNjZlODA2NGNiZWY4MjliZmQwODAxZGEwNGY3ZjJiYTJmMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9zaGFkb3cvTWVkaWFDb250cm9sUm9vdEVsZW1lbnQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xSb290RWxlbWVu
dC5oCkBAIC05Niw2ICs5Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHVwZGF0ZVRpbWVEaXNwbGF5
KCk7CiAgICAgdm9pZCB1cGRhdGVTdGF0dXNEaXNwbGF5KCk7CiAKKyAgICBib29sIHNob3VsZEhp
ZGVDb250cm9scygpOwogcHJpdmF0ZToKICAgICBNZWRpYUNvbnRyb2xSb290RWxlbWVudChIVE1M
TWVkaWFFbGVtZW50Kik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93
L01lZGlhQ29udHJvbHMuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvc2hhZG93L01lZGlhQ29udHJv
bHMuaAppbmRleCA5YWNkYjY1YjU5MmUyNzRlMjM2NDQ4ZmY0ODQ5NjdkNjQ1MmUxZjVkLi40MzNi
MTdiMTg2YjZkNDUzMGNmYWM3MDU0NDgxOTk2MDQ5NWU3MjdkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL3NoYWRvdy9NZWRpYUNvbnRyb2xzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
aHRtbC9zaGFkb3cvTWVkaWFDb250cm9scy5oCkBAIC02OCw2ICs2OCw4IEBAIGNsYXNzIE1lZGlh
Q29udHJvbHMgOiBwdWJsaWMgSFRNTERpdkVsZW1lbnQgewogICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVUaW1lRGlzcGxheSgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlU3RhdHVzRGlzcGxh
eSgpID0gMDsKIAorICAgIHZpcnR1YWwgYm9vbCBzaG91bGRIaWRlQ29udHJvbHMoKSA9IDA7CisK
IHByb3RlY3RlZDoKICAgICBNZWRpYUNvbnRyb2xzKEhUTUxNZWRpYUVsZW1lbnQqKTsKIAo=
</data>
<flag name="review"
          id="88780"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>