<?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>99940</bug_id>
          
          <creation_ts>2012-10-21 10:51:13 -0700</creation_ts>
          <short_desc>Should only fire a single set of mouse events and update hover state once when scrolling is done</short_desc>
          <delta_ts>2015-04-23 11:42:34 -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>UI Events</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>
          
          <blocked>99669</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ojan Vafai">ojan</reporter>
          <assigned_to name="Dave Hyatt">hyatt</assigned_to>
          <cc>adamk</cc>
    
    <cc>andersca</cc>
    
    <cc>anilsson</cc>
    
    <cc>ap</cc>
    
    <cc>arv</cc>
    
    <cc>bdakin</cc>
    
    <cc>davemoore</cc>
    
    <cc>dbates</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eae</cc>
    
    <cc>efidler</cc>
    
    <cc>eric</cc>
    
    <cc>esprehn</cc>
    
    <cc>gmak</cc>
    
    <cc>jamesr</cc>
    
    <cc>jonlee</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>leviw</cc>
    
    <cc>mlattanzio</cc>
    
    <cc>nduca</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tabatkins</cc>
    
    <cc>tasak</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tony</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>747133</commentid>
    <comment_count>0</comment_count>
      <attachid>169808</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-21 10:51:13 -0700</bug_when>
    <thetext>Created attachment 169808
test case

RIght now we fire them continuously. Gecko does not. On some pages this gives them much better performance (see blocked bug). Also, IMO, the user-experience in Gecko is nicer, although that&apos;s certainly arguable.

Perhaps the ideal solution would be to pay attention to scrolling speed and only update hover state and mouse events when the scrolling is below a certain speed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747135</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-21 10:57:17 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; Perhaps the ideal solution would be to pay attention to scrolling speed and only update hover state and mouse events when the scrolling is below a certain speed.

It sounds like we could do that just by setting a throttle on hover events.  I don&apos;t know how good/bad of a UX that would be w/o trying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747136</commentid>
    <comment_count>2</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-21 11:06:54 -0700</bug_when>
    <thetext>Looking at EventHandler.cpp it looks like we already do some throttling, but it&apos;s mostly limited to mousemove events, not all mouse events and not hover state. My intuition is that the delay we&apos;d need would be too long for a good user-experience, but if ~50ms is enough, maybe it&apos;s fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747138</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-21 11:22:54 -0700</bug_when>
    <thetext>I think starting with a 50ms throttle for hover state updates would be a great first attempt.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747139</commentid>
    <comment_count>4</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-21 11:31:15 -0700</bug_when>
    <thetext>James/Nat, listening to mouse events currently disables threaded scrolling, right?

Thinking about this more, I kind of like the idea of not firing them at all until the scroll is done. That appears to be what Gecko does, although I haven&apos;t looked at their source to confirm. What I like about this approach is that it would mean that mouse event handlers wouldn&apos;t need to disable threaded scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748231</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-22 20:32:06 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; James/Nat, listening to mouse events currently disables threaded scrolling, right?

Listening to mousewheel events prevents handling mousewheels as scrolls off of the main thread.  I don&apos;t think that&apos;s what this bug is about, though.

&gt; Thinking about this more, I kind of like the idea of not firing them at all until the scroll is done. That appears to be what Gecko does, although I haven&apos;t looked at their source to confirm. What I like about this approach is that it would mean that mouse event handlers wouldn&apos;t need to disable threaded scrolling.

I don&apos;t think this will have any impact one way or the other on threaded scrolling.  The only thing that&apos;s relevant for threaded scrolling are input events with a default action of scrolling that can be cancelled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748232</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-22 20:32:38 -0700</bug_when>
    <thetext>That said, I&apos;m definitely supportive of firing fewer mouse events and doing fewer hover state calculations while the user is scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748328</commentid>
    <comment_count>7</comment_count>
      <attachid>170072</attachid>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-23 00:32:22 -0700</bug_when>
    <thetext>Created attachment 170072
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748337</commentid>
    <comment_count>8</comment_count>
    <who name="Takashi Sakamoto">tasak</who>
    <bug_when>2012-10-23 00:40:29 -0700</bug_when>
    <thetext>I looked at testcase by using Firefox. I think, Firefox seems to fire mouseover/mouseout events when mouse cursor is actually moved.
So scrolling testcase.html by using only mouse wheel didn&apos;t cause Firefox to fire mouse events.
(Except the case that the page has any &lt;iframe&gt;.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748538</commentid>
    <comment_count>9</comment_count>
      <attachid>170072</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 05:42:59 -0700</bug_when>
    <thetext>Comment on attachment 170072
WIP

Attachment 170072 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14489926

New failing tests:
fast/events/frame-scroll-fake-mouse-move.html
fast/events/overflow-scroll-fake-mouse-move.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748575</commentid>
    <comment_count>10</comment_count>
      <attachid>170072</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-23 06:35:56 -0700</bug_when>
    <thetext>Comment on attachment 170072
WIP

Attachment 170072 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14488860

New failing tests:
fast/events/frame-scroll-fake-mouse-move.html
fast/events/overflow-scroll-fake-mouse-move.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748726</commentid>
    <comment_count>11</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 09:30:01 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; I looked at testcase by using Firefox. I think, Firefox seems to fire mouseover/mouseout events when mouse cursor is actually moved.
&gt; So scrolling testcase.html by using only mouse wheel didn&apos;t cause Firefox to fire mouse events.
&gt; (Except the case that the page has any &lt;iframe&gt;.)

That&apos;s not the behavior I&apos;m seeing in the test case on this bug on Firefox 16 on Ubuntu. Scrolling with just the scroll wheel or just the keyboard arrow keys does fire mouse events and update hover state, but only once at the end of the scroll.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748936</commentid>
    <comment_count>12</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 13:44:21 -0700</bug_when>
    <thetext>We already try to throttle. We just don&apos;t do a great job of it. Takashi-san, I hope you don&apos;t mind if I take this over. I basically have the patch to fix this locally. I&apos;m just optimizing it some now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749105</commentid>
    <comment_count>13</comment_count>
      <attachid>170262</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 16:16:49 -0700</bug_when>
    <thetext>Created attachment 170262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749108</commentid>
    <comment_count>14</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 16:19:02 -0700</bug_when>
    <thetext>This works *much* better. This makes the page in 99669 scroll smoothly as long as you don&apos;t move the mouse. Once you actually move the mouse, the hover/layout/hittest/something else takes so long to run that it&apos;s janky again. The point is that once you&apos;re scrolling, the scroll doesn&apos;t fire events after this patch until you&apos;re done scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749118</commentid>
    <comment_count>15</comment_count>
      <attachid>170262</attachid>
    <who name="Elliott Sprehn">esprehn</who>
    <bug_when>2012-10-23 16:28:00 -0700</bug_when>
    <thetext>Comment on attachment 170262
Patch

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

&gt; Source/WebCore/page/EventHandler.cpp:162
&gt; +    explicit RunningAverageDurationTracker(double *avgDuration, unsigned numberOfRunsToTrack)

You don&apos;t need the explicit. There&apos;s 2 args.

&gt; Source/WebCore/page/EventHandler.cpp:180
&gt; +    double* m_avgDuration;

I think m_average would be nicer

&gt; Source/WebCore/page/EventHandler.cpp:2821
&gt; +        m_fakeMouseMoveEventTimer.setDelay(m_mouseMovedDurationRunningAverage + .05);

How&apos;d you pick .05?

&gt; Source/WebCore/platform/Timer.h:144
&gt; +    double delay() { return m_delay; }

const

&gt; LayoutTests/fast/scrolling/fake-mouse-event-throttling.html:15
&gt; +&lt;body onload=&quot;runNextTest()&quot; style=&quot;overflow: scroll&quot;&gt;

body { overflow: scroll; } in the style?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749125</commentid>
    <comment_count>16</comment_count>
      <attachid>170262</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-10-23 16:42:47 -0700</bug_when>
    <thetext>Comment on attachment 170262
Patch

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

Are we seeing this same phenomenon with WebKit2 scrolling? What effect does this patch have with WebKit2?

&gt;&gt; Source/WebCore/page/EventHandler.cpp:162
&gt;&gt; +    explicit RunningAverageDurationTracker(double *avgDuration, unsigned numberOfRunsToTrack)
&gt; 
&gt; You don&apos;t need the explicit. There&apos;s 2 args.

The * here is in the wrong place.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:180
&gt;&gt; +    double* m_avgDuration;
&gt; 
&gt; I think m_average would be nicer

I agree, no reason to abbreviate to avg.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2821
&gt;&gt; +        m_fakeMouseMoveEventTimer.setDelay(m_mouseMovedDurationRunningAverage + .05);
&gt; 
&gt; How&apos;d you pick .05?

Normally it’s best to have a named constant just there is a place to put the comment explaining the source of the number.

&gt; Source/WebCore/platform/Timer.h:143
&gt; +    void setDelay(double delay) { m_delay = delay; }

Is it correct that setting a delay on an already-existing timer has no effect until the next restart?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749135</commentid>
    <comment_count>17</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 17:08:14 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 170262 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170262&amp;action=review
&gt; 
&gt; Are we seeing this same phenomenon with WebKit2 scrolling?

Yes. Today&apos;s WebKit nightly gets the same behavior as Chrome.

&gt; What effect does this patch have with WebKit2?

I didn&apos;t test a WebKit2 build, but this is all cross-platform code. Note that this has no effect on real platform mouse events. This only has an effect on code that calls FrameView::scrollPositionChanged, so I expect the patch to not have significant platform-specific differences.

&gt; &gt;&gt; Source/WebCore/page/EventHandler.cpp:2821
&gt; &gt;&gt; +        m_fakeMouseMoveEventTimer.setDelay(m_mouseMovedDurationRunningAverage + .05);
&gt; &gt; 
&gt; &gt; How&apos;d you pick .05?
&gt; 
&gt; Normally it’s best to have a named constant just there is a place to put the comment explaining the source of the number.

Whoops. Missed this one. Meant to do that. I picked .05 fairly arbitrarily (raising by 50ms seems reasonable to me).

&gt; &gt; Source/WebCore/platform/Timer.h:143
&gt; &gt; +    void setDelay(double delay) { m_delay = delay; }
&gt; 
&gt; Is it correct that setting a delay on an already-existing timer has no effect until the next restart?

I went back and forth on this. Now that I think about it more...I think it&apos;s probably not right. I&apos;ll stop the timer and restart it with the new delay if it&apos;s active.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749200</commentid>
    <comment_count>18</comment_count>
      <attachid>170285</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-10-23 18:33:08 -0700</bug_when>
    <thetext>Created attachment 170285
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749437</commentid>
    <comment_count>19</comment_count>
      <attachid>170285</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-24 00:45:14 -0700</bug_when>
    <thetext>Comment on attachment 170285
Patch

Attachment 170285 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14554112

New failing tests:
fast/scrolling/fake-mouse-event-throttling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>749712</commentid>
    <comment_count>20</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-10-24 08:49:00 -0700</bug_when>
    <thetext>Perhaps it would make sense to e-mail webkit-dev about this. There are many people CC&apos;ed on this bug, but not everyone who could have an informed opinion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758038</commentid>
    <comment_count>21</comment_count>
      <attachid>170285</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-11-03 18:05:06 -0700</bug_when>
    <thetext>Comment on attachment 170285
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        mouse events take and adjust thr throttling appropriately.

Typo: thr.

&gt; Source/WebCore/page/EventHandler.cpp:144
&gt; +const double fakeMouseMoveRunningAverageCount = 10;

Why don&apos;t we add a static variable in RunningAverageDurationTracker instead of picking an arbitrary valu.

&gt; Source/WebCore/page/EventHandler.cpp:186
&gt; +    double* m_average;

Why don&apos;t we use a reference instead?

&gt; Source/WebCore/page/EventHandler.cpp:2830
&gt; +    m_fakeMouseMoveEventTimer.restart();

Can the logic to compute new delay be extracted as a function? Maybe we can rename RunningAverageDurationTracker and make this a static function there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758741</commentid>
    <comment_count>22</comment_count>
      <attachid>170285</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-05 11:31:53 -0800</bug_when>
    <thetext>Comment on attachment 170285
Patch

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:144
&gt;&gt; +const double fakeMouseMoveRunningAverageCount = 10;
&gt; 
&gt; Why don&apos;t we add a static variable in RunningAverageDurationTracker instead of picking an arbitrary valu.

We&apos;ll still be picking an arbitrary value. We just then won&apos;t be passing it in. Not sure what the advantage there is. Keeping RunningAverageDurationTracker as simple and generic as possible seems cleaner to me.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:186
&gt;&gt; +    double* m_average;
&gt; 
&gt; Why don&apos;t we use a reference instead?

I was just doing what the old code did. How does using a reference make this better? The point is that we&apos;re modifying a member variable on EventHandler.

&gt;&gt; Source/WebCore/page/EventHandler.cpp:2830
&gt;&gt; +    m_fakeMouseMoveEventTimer.restart();
&gt; 
&gt; Can the logic to compute new delay be extracted as a function? Maybe we can rename RunningAverageDurationTracker and make this a static function there.

It could, but that&apos;s really all this function does. I&apos;m not really sure how that would improve this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758937</commentid>
    <comment_count>23</comment_count>
      <attachid>170285</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-05 15:04:55 -0800</bug_when>
    <thetext>Comment on attachment 170285
Patch

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

This seems reasonable to me. Any idea why the test failed on Mac EWS?

&gt; Source/WebCore/page/EventHandler.cpp:1836
&gt; +

Seems like an odd, random space :)

&gt;&gt;&gt; Source/WebCore/page/EventHandler.cpp:2830
&gt;&gt;&gt; +    m_fakeMouseMoveEventTimer.restart();
&gt;&gt; 
&gt;&gt; Can the logic to compute new delay be extracted as a function? Maybe we can rename RunningAverageDurationTracker and make this a static function there.
&gt; 
&gt; It could, but that&apos;s really all this function does. I&apos;m not really sure how that would improve this code.

Perhaps Ryosuke is imagining there being other heuristics to choose from? If another is implemented, that could make sense. In the meantime this seems reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758973</commentid>
    <comment_count>24</comment_count>
      <attachid>172422</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-05 15:49:20 -0800</bug_when>
    <thetext>Created attachment 172422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758975</commentid>
    <comment_count>25</comment_count>
      <attachid>172424</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-05 15:51:18 -0800</bug_when>
    <thetext>Created attachment 172424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758977</commentid>
    <comment_count>26</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-05 15:53:03 -0800</bug_when>
    <thetext>&gt; This seems reasonable to me. Any idea why the test failed on Mac EWS?

Whoops. Didn&apos;t notice that. Hopefully we&apos;ll link to the right output results this time and I can see if it&apos;s timing out or not. Not really sure what would be going wrong here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759079</commentid>
    <comment_count>27</comment_count>
      <attachid>172424</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 17:31:59 -0800</bug_when>
    <thetext>Comment on attachment 172424
Patch

Attachment 172424 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14747187

New failing tests:
fast/scrolling/fake-mouse-event-throttling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>759152</commentid>
    <comment_count>28</comment_count>
      <attachid>172424</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-05 18:49:04 -0800</bug_when>
    <thetext>Comment on attachment 172424
Patch

Attachment 172424 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14747204

New failing tests:
fast/scrolling/fake-mouse-event-throttling.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763403</commentid>
    <comment_count>29</comment_count>
      <attachid>173386</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-11-09 15:43:27 -0800</bug_when>
    <thetext>Created attachment 173386
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763524</commentid>
    <comment_count>30</comment_count>
      <attachid>173386</attachid>
    <who name="Levi Weintraub">leviw</who>
    <bug_when>2012-11-09 18:12:12 -0800</bug_when>
    <thetext>Comment on attachment 173386
Patch

Lots of seeming flake on the EWS bots, so I&apos;d watch this going on. Otherwise, LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763544</commentid>
    <comment_count>31</comment_count>
      <attachid>173386</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-11-09 18:38:03 -0800</bug_when>
    <thetext>Comment on attachment 173386
Patch

Attachment 173386 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14770851

New failing tests:
http/tests/inspector/stacktraces/csp-injected-content-warning-contains-stacktrace.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763588</commentid>
    <comment_count>32</comment_count>
      <attachid>173386</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 21:16:31 -0800</bug_when>
    <thetext>Comment on attachment 173386
Patch

Clearing flags on attachment: 173386

Committed r134150: &lt;http://trac.webkit.org/changeset/134150&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>763589</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-09 21:16:37 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766402</commentid>
    <comment_count>34</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-11-13 21:43:00 -0800</bug_when>
    <thetext>I noticed that after this patch, if you hover the mouse over a comment field long enough for a tooltip to appear and then you scroll, the tooltip will say up until you stop scrolling. That&apos;s unfortunate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>766403</commentid>
    <comment_count>35</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-11-13 21:43:53 -0800</bug_when>
    <thetext>(In reply to comment #34)
&gt; I noticed that after this patch, if you hover the mouse over a comment field long enough for a tooltip to appear and then you scroll, the tooltip will say up until you stop scrolling. That&apos;s unfortunate.

Ahem, sorry, &quot;hover the mouse over a comment field IN FACEBOOK,&quot; is what I meant to say. Probably applies to all tooltips though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>767230</commentid>
    <comment_count>36</comment_count>
    <who name="Dimitri Glazkov (Google)">dglazkov</who>
    <bug_when>2012-11-14 13:21:08 -0800</bug_when>
    <thetext>It looks like the patch broke fast/events/overflow-scroll-fake-mouse-move.html and the newly added fast/events/frame-scroll-fake-mouse-move.html is failing...

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fevents%2Fframe-scroll-fake-mouse-move.html%2Cfast%2Fevents%2Foverflow-scroll-fake-mouse-move.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784263</commentid>
    <comment_count>37</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2012-12-05 16:43:29 -0800</bug_when>
    <thetext>Ojan, could you address the issues raised in the last two comments? In particular, the issue about tooltips sticking around when scrolling on pages like Facebook is particularly bad, and needs to be addressed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>784279</commentid>
    <comment_count>38</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-05 16:51:06 -0800</bug_when>
    <thetext>Sorry I haven&apos;t responded yet. It&apos;s been somewhere near the top of my todo list. :(

Anyways, I&apos;m not sure I&apos;ll get to fixing this right away, so a rollout might be the best option in the short-term. The facebook UI actually looks fine IMO since the tooltip scrolls along with the page. I don&apos;t really see a problem with it.

On the other hand, the tooltips in Gmail look less fine since they&apos;re position fixed and actually point to the wrong item when you scroll.

FWIW, this is what Firefox already does. There&apos;s is a little less aggressive though.

Hopefully I&apos;ll get around to this in the next few days. What I want to try is to get rid of the bit where we increase the throttling delay and always use 100ms. This matches the Firefox behavior. The open question is whether the Firefox behavior is better or worse than our old behavior. I suppose I should solicit opinions on webkit-dev?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787783</commentid>
    <comment_count>39</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-10 15:35:26 -0800</bug_when>
    <thetext>Reverted r134150 for reason:

Caused JS-based tooltips to remain during scroll on Facebook and Gmail. Rollout until I have time to experiment with less aggresive approaches.

Committed r137214: &lt;http://trac.webkit.org/changeset/137214&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>787784</commentid>
    <comment_count>40</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-10 15:39:51 -0800</bug_when>
    <thetext>I likely won&apos;t get to this in the next few weeks/months, in case anyone else wants to experiment. Specifically, I&apos;d like to try the idea in comment 38. The key is to test this on something with trackpad-based scrolling (e.g. a mac laptop or a chromebook). Using a scroll-wheel as enough pauses that you don&apos;t notice the issues on Facebook/gmail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>903138</commentid>
    <comment_count>41</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2013-06-24 16:58:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/14254013&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087862</commentid>
    <comment_count>42</comment_count>
      <attachid>251450</attachid>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-04-23 10:09:40 -0700</bug_when>
    <thetext>Created attachment 251450
Patch

Here is my cut at this. It seems to work fine with Facebook tooltips, and Gmail tooltips already stick around during scrolling even today, and that doesn&apos;t change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087865</commentid>
    <comment_count>43</comment_count>
      <attachid>251450</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2015-04-23 10:16:22 -0700</bug_when>
    <thetext>Comment on attachment 251450
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        complete. This has the effect of preventing fake mouse moveds from firing until the scroll stops.

mouse moves?

&gt; Source/WebCore/page/EventHandler.cpp:2918
&gt; +    m_fakeMouseMoveEventTimer.startOneShot(m_maxMouseMovedDuration &gt; fakeMouseMoveDurationThreshold ?fakeMouseMoveLongInterval : fakeMouseMoveShortInterval);

Space after ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1087897</commentid>
    <comment_count>44</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2015-04-23 11:42:34 -0700</bug_when>
    <thetext>Fixed in r183198.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>169808</attachid>
            <date>2012-10-21 10:51:13 -0700</date>
            <delta_ts>2012-10-21 10:51:13 -0700</delta_ts>
            <desc>test case</desc>
            <filename>scratch.html</filename>
            <type>text/html</type>
            <size>908</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+DQo8c3R5bGU+DQpkaXYgew0KICAgIGhlaWdodDogMTAwcHg7DQp9DQou
cG9pbnRlciB7DQogICAgY3Vyc29yOiBwb2ludGVyOw0KICAgIGJhY2tncm91bmQtY29sb3I6IHNh
bG1vbjsNCn0NCi5wbGFpbiB7DQogICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOw0KfQ0KI2xv
Z2dlciB7DQogICAgaGVpZ2h0OiAyNSU7DQogICAgb3ZlcmZsb3c6IGF1dG87DQogICAgYmFja2dy
b3VuZC1jb2xvcjogd2hpdGU7DQp9DQo8L3N0eWxlPg0KPGJvZHkgc3R5bGU9Im92ZXJmbG93OiBz
Y3JvbGwiPg0KDQo8ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7IHRvcDogMCI+DQpTY3JvbGwg
ZG93biBvbiB0aGlzIHBhZ2UgdG8gc2VlIHRoYXQgd2UgYXJlIGNvbnRpbnVhbGx5IHVwZGF0aW5n
IGhvdmVyIHN0YXRlLCBldmVuIGR1cmluZyBmYXN0LCBmbGluZy1zdHlsZSBzY3JvbGxpbmcuDQo8
ZGl2IGlkPWxvZ2dlcj48L2Rpdj4NCjwvZGl2Pg0KDQo8c2NyaXB0Pg0KZm9yICh2YXIgaSA9IDA7
IGkgPCAxMDA7IGkrKykgew0KICAgIGRvY3VtZW50LndyaXRlKCc8ZGl2IGNsYXNzPXBvaW50ZXI+
PC9kaXY+PGRpdiBjbGFzcz1wbGFpbj48L2Rpdj4nKTsNCn0NCnZhciBkaXZzID0gZG9jdW1lbnQu
Z2V0RWxlbWVudHNCeVRhZ05hbWUoJ2RpdicpOw0KdmFyIG51bWJlck9mTW91c2VvdmVycyA9IDA7
DQpmb3IgKHZhciBpID0gMDsgaSA8IGRpdnMubGVuZ3RoOyBpKyspIHsNCiAgICBkaXZzW2ldLm9u
bW91c2VvdmVyID0gZnVuY3Rpb24oKSB7DQogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdsb2dnZXInKS5pbm5lckhUTUwgPSAiTnVtYmVyIG9mIG1vdXNlb3ZlciBldmVudHM6IiArICsr
bnVtYmVyT2ZNb3VzZW92ZXJzOw0KICAgIH0NCn0NCjwvc2NyaXB0Pg0KPC9ib2R5Pg0KDQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170072</attachid>
            <date>2012-10-23 00:32:22 -0700</date>
            <delta_ts>2012-10-23 16:16:46 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>bug-99940-20121023163059.patch</filename>
            <type>text/plain</type>
            <size>8369</size>
            <attacher name="Takashi Sakamoto">tasak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzNlMmQ3NTUyYTVkYWMy
YWEzYTgwMGMzZGIwNGMwOWY3NWRmYmE3OS4uMGI2N2E4ODQxNDM0YzY3OWEwMWE5MDA5ZjVlM2Zi
NzNjMzgwZDA1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTIyICBUYWth
c2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KKworICAgICAgICBTaG91bGQgb25seSBm
aXJlIGEgc2luZ2xlIHNldCBvZiBtb3VzZSBldmVudHMgYW5kIHVwZGF0ZSBob3ZlciBzdGF0ZSBv
bmNlIHdoZW4gc2Nyb2xsaW5nIGlzIGRvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTG9va2luZyBhdCBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGlu
IEZpcmVmb3gsIGlmIG1vdXNlIHBvc2l0aW9uIGlzCisgICAgICAgIG5vdCBjaGFuZ2VkLCBlLmcu
IHVzZXMgd2hlZWwgc2Nyb2xsIGFuZCBjaGFuZ2luZyBtb3VzZSBmb2N1cyBub2RlLAorICAgICAg
ICBubyBtb3VzZW92ZXIvbW91c2VvdXQgZXZlbnRzIGFyZSBmaXJlZC4KKyAgICAgICAgU28gd2Ug
bW9kaWZpZWQgd2Via2l0IHRvIGRpc3BhdGNoIG1vdXNlb3Zlci9tb3VzZW91dCBldmVudHMgaW4K
KyAgICAgICAgYWxtb3N0IHRoZSBzYW1lIG1hbm5lciBhcyBGaXJlZm94LiBUaGlzIHBhdGNoIHdp
bGwgaW1wcm92ZSBzY3JvbGwKKyAgICAgICAgcGVyZm9ybWFuY2UgZXNwZWNpYWxseSBvZiBtb2Jp
bGUgZGV2aWNlcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAq
IHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVByZXNz
RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZURvdWJs
ZUNsaWNrRXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3Vz
ZU1vdmVFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNl
UmVsZWFzZUV2ZW50KToKKyAgICAgICAgUmVwbGFjZWQgYWxsIHRoZSBjb2RlcyBmb3IgdXBkYXRp
bmcgY3VycmVudCBtb3VzZSBwb3NpdGlvbiB3aXRoCisgICAgICAgIHVwZGF0ZUN1cnJlbnRNb3Vz
ZVBvc2l0aW9uLiBUaGUgbWV0aG9kIGFsc28gdXBkYXRlcyB0aGUgbGFzdCBtb3VzZQorICAgICAg
ICBwb3NpdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6dXBkYXRlQ3VycmVu
dE1vdXNlUG9zaXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjp1cGRhdGVN
b3VzZUV2ZW50VGFyZ2V0Tm9kZSk6CisgICAgICAgIENvbXBhcmVzIHRoZSBsYXN0IG1vdXNlIHBv
c2l0aW9uIHdpdGggdGhlIGN1cnJlbnQgbW91c2UgcG9zaXRpb24uCisgICAgICAgIElmIGJvdGgg
cG9zaXRpb25zIGFyZSB0aGUgc2FtZSwgbW91c2UgY3Vyc29yIGlzIG5vdCBtb3ZlZC4gU28KKyAg
ICAgICAgbW91c2VvdmVyL21vdXNlb3V0IHNob3VsZCBub3QgYmUgZmlyZWQuIEhvd2V2ZXIsIGlm
IGZvY3VzIGZyYW1lIGlzCisgICAgICAgIGNoYW5nZWQsIG1vdXNlb3Zlci9tb3VzZW91dCBzaG91
bGQgYmUgZmlyZWQuIFRoZXNlIGFyZSB0aGUgc2FtZQorICAgICAgICBiZWhhdmlvciBhcyBGaXJl
Zm94IGRvZXMuCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50
SGFuZGxlcik6CisgICAgICAgIEFkZGVkIGEgbmV3IG1lbWJlciB2YXJpYWJsZSB0byBrZWVwIGxh
c3QgbW91c2UgcG9zaXRpb24gdG8gY2hlY2sKKyAgICAgICAgd2hldGhlciBhY3R1YWxseSBtb3Vz
ZSBjdXJzb3IgaXMgbW92ZWQgb3Igbm90LgorICAgICAgICBBZGRlZCBhIG5ldyBtZXRob2QgdG8g
dXBkYXRlIGN1cnJlbnQgYW5kIGxhc3QgbW91c2UgcG9zaXRpb24uCisKIDIwMTItMTAtMjIgIEtl
bnQgVGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEludHJvZHVjZSBMb2Nh
bGl6ZXI6OnN0YW5kQWxvbmVNb250aExhYmVscwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9FdmVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIu
Y3BwCmluZGV4IDVlZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjk1MWQw
MGQ4NTEyMmQ1OWNhMzg4MmZkYzgwOGI1YWE0YmZjMDRiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5jcHAKQEAgLTM3Myw2ICszNzMsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xl
YXIoKQogI2VuZGlmCiAgICAgbV9jdXJyZW50TW91c2VQb3NpdGlvbiA9IEludFBvaW50KCk7CiAg
ICAgbV9jdXJyZW50TW91c2VHbG9iYWxQb3NpdGlvbiA9IEludFBvaW50KCk7CisgICAgbV9sYXN0
TW91c2VQb3NpdGlvbiA9IEludFBvaW50KCk7CiAgICAgbV9tb3VzZVByZXNzTm9kZSA9IDA7CiAg
ICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKICAgICBtX2NhcHR1cmVzRHJhZ2dpbmcgPSBmYWxz
ZTsKQEAgLTE1MTksOCArMTUyMCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZVBy
ZXNzRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogICAgIGNhbmNl
bEZha2VNb3VzZU1vdmVFdmVudCgpOwogICAgIG1fbW91c2VQcmVzc2VkID0gdHJ1ZTsKICAgICBt
X2NhcHR1cmVzRHJhZ2dpbmcgPSB0cnVlOwotICAgIG1fY3VycmVudE1vdXNlUG9zaXRpb24gPSBt
b3VzZUV2ZW50LnBvc2l0aW9uKCk7Ci0gICAgbV9jdXJyZW50TW91c2VHbG9iYWxQb3NpdGlvbiA9
IG1vdXNlRXZlbnQuZ2xvYmFsUG9zaXRpb24oKTsKKyAgICB1cGRhdGVDdXJyZW50TW91c2VQb3Np
dGlvbihtb3VzZUV2ZW50KTsKICAgICBtX21vdXNlRG93blRpbWVzdGFtcCA9IG1vdXNlRXZlbnQu
dGltZXN0YW1wKCk7CiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICAgICBtX21vdXNlRG93bk1h
eVN0YXJ0RHJhZyA9IGZhbHNlOwpAQCAtMTY0OCw4ICsxNjQ4LDcgQEAgYm9vbCBFdmVudEhhbmRs
ZXI6OmhhbmRsZU1vdXNlRG91YmxlQ2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IG1vdXNlRXYKIAogICAgIC8vIFdlIGdldCB0aGlzIGluc3RlYWQgb2YgYSBzZWNvbmQgbW91c2Ut
dXAgCiAgICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKLSAgICBtX2N1cnJlbnRNb3VzZVBvc2l0
aW9uID0gbW91c2VFdmVudC5wb3NpdGlvbigpOwotICAgIG1fY3VycmVudE1vdXNlR2xvYmFsUG9z
aXRpb24gPSBtb3VzZUV2ZW50Lmdsb2JhbFBvc2l0aW9uKCk7CisgICAgdXBkYXRlQ3VycmVudE1v
dXNlUG9zaXRpb24obW91c2VFdmVudCk7CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KEhp
dFRlc3RSZXF1ZXN0OjpBY3RpdmUpOwogICAgIE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMg
bWV2ID0gcHJlcGFyZU1vdXNlRXZlbnQocmVxdWVzdCwgbW91c2VFdmVudCk7CkBAIC0xNzMyLDYg
KzE3MzEsMTMgQEAgYm9vbCBFdmVudEhhbmRsZXI6OnBhc3NNb3VzZU1vdmVkRXZlbnRUb1Njcm9s
bGJhcnMoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmUKICAgICByZXR1cm4gaGFuZGxlTW91
c2VNb3ZlRXZlbnQoZXZlbnQsICZob3ZlcmVkTm9kZSwgdHJ1ZSk7CiB9CiAKK2lubGluZSB2b2lk
IEV2ZW50SGFuZGxlcjo6dXBkYXRlQ3VycmVudE1vdXNlUG9zaXRpb24oY29uc3QgUGxhdGZvcm1N
b3VzZUV2ZW50JiBtb3VzZUV2ZW50KQoreworICAgIG1fbGFzdE1vdXNlUG9zaXRpb24gPSBtX2N1
cnJlbnRNb3VzZVBvc2l0aW9uOworICAgIG1fY3VycmVudE1vdXNlUG9zaXRpb24gPSBtb3VzZUV2
ZW50LnBvc2l0aW9uKCk7CisgICAgbV9jdXJyZW50TW91c2VHbG9iYWxQb3NpdGlvbiA9IG1vdXNl
RXZlbnQuZ2xvYmFsUG9zaXRpb24oKTsKK30KKwogYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1v
dXNlTW92ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCwgSGl0VGVz
dFJlc3VsdCogaG92ZXJlZE5vZGUsIGJvb2wgb25seVVwZGF0ZVNjcm9sbGJhcnMpCiB7CiAgICAg
Ly8gaW4gUmFkYXIgMzcwMzc2OCB3ZSBzYXcgZnJlcXVlbnQgY3Jhc2hlcyBhcHBhcmVudGx5IGR1
ZSB0byB0aGUKQEAgLTE3NDMsOCArMTc0OSw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVN
b3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQsIEhpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIFJlZlB0cjxGcmFtZVZpZXc+IHByb3RlY3Rvciht
X2ZyYW1lLT52aWV3KCkpOwotICAgIG1fY3VycmVudE1vdXNlUG9zaXRpb24gPSBtb3VzZUV2ZW50
LnBvc2l0aW9uKCk7Ci0gICAgbV9jdXJyZW50TW91c2VHbG9iYWxQb3NpdGlvbiA9IG1vdXNlRXZl
bnQuZ2xvYmFsUG9zaXRpb24oKTsKKyAgICB1cGRhdGVDdXJyZW50TW91c2VQb3NpdGlvbihtb3Vz
ZUV2ZW50KTsKIAogICAgIGlmIChtX2hvdmVyVGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgbV9o
b3ZlclRpbWVyLnN0b3AoKTsKQEAgLTE4MzEsNyArMTgzNiw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQsIEhpCiAKICAgICBpZiAoc3dhbGxvd0V2ZW50KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAKKwogICAgIHN3YWxsb3dFdmVudCA9IGRpc3BhdGNoTW91c2VFdmVudChldmVudE5hbWVzKCku
bW91c2Vtb3ZlRXZlbnQsIG1ldi50YXJnZXROb2RlKCksIGZhbHNlLCAwLCBtb3VzZUV2ZW50LCB0
cnVlKTsKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQogICAgIGlmICghc3dhbGxvd0V2ZW50KQpA
QCAtMTg2Nyw4ICsxODcyLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUmVsZWFz
ZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICNlbmRpZgogCiAg
ICAgbV9tb3VzZVByZXNzZWQgPSBmYWxzZTsKLSAgICBtX2N1cnJlbnRNb3VzZVBvc2l0aW9uID0g
bW91c2VFdmVudC5wb3NpdGlvbigpOwotICAgIG1fY3VycmVudE1vdXNlR2xvYmFsUG9zaXRpb24g
PSBtb3VzZUV2ZW50Lmdsb2JhbFBvc2l0aW9uKCk7CisgICAgdXBkYXRlQ3VycmVudE1vdXNlUG9z
aXRpb24obW91c2VFdmVudCk7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgIGlmIChtX3N2Z1Bhbikg
ewpAQCAtMjIyMSwxMiArMjIyNSwxNCBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6dXBkYXRlTW91c2VF
dmVudFRhcmdldE5vZGUoTm9kZSogdGFyZ2V0Tm9kZSwgY29uc3QgUGxhdGZvcm1NbwogICAgICAg
ICBSZW5kZXJMYXllciogbGF5ZXJGb3JOb2RlVW5kZXJNb3VzZSA9IGxheWVyRm9yTm9kZShtX25v
ZGVVbmRlck1vdXNlLmdldCgpKTsKICAgICAgICAgUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2Uo
KTsKIAorICAgICAgICBib29sIG1vdXNlTW92ZWQgPSBtX2xhc3RNb3VzZVBvc2l0aW9uICE9IG1f
Y3VycmVudE1vdXNlUG9zaXRpb247CiAgICAgICAgIGlmIChtX2xhc3ROb2RlVW5kZXJNb3VzZSAm
JiAoIW1fbm9kZVVuZGVyTW91c2UgfHwgbV9ub2RlVW5kZXJNb3VzZS0+ZG9jdW1lbnQoKSAhPSBt
X2ZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAgICAgICAgLy8gVGhlIG1vdXNlIGhhcyBtb3Zl
ZCBiZXR3ZWVuIGZyYW1lcy4KICAgICAgICAgICAgIGlmIChGcmFtZSogZnJhbWUgPSBtX2xhc3RO
b2RlVW5kZXJNb3VzZS0+ZG9jdW1lbnQoKS0+ZnJhbWUoKSkgewogICAgICAgICAgICAgICAgIGlm
IChGcmFtZVZpZXcqIGZyYW1lVmlldyA9IGZyYW1lLT52aWV3KCkpCiAgICAgICAgICAgICAgICAg
ICAgIGZyYW1lVmlldy0+bW91c2VFeGl0ZWRDb250ZW50QXJlYSgpOwogICAgICAgICAgICAgfQor
ICAgICAgICAgICAgbW91c2VNb3ZlZCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSBpZiAocGFnZSAm
JiAobGF5ZXJGb3JMYXN0Tm9kZSAmJiAoIWxheWVyRm9yTm9kZVVuZGVyTW91c2UgfHwgbGF5ZXJG
b3JOb2RlVW5kZXJNb3VzZSAhPSBsYXllckZvckxhc3ROb2RlKSkpIHsKICAgICAgICAgICAgIC8v
IFRoZSBtb3VzZSBoYXMgbW92ZWQgYmV0d2VlbiBsYXllcnMuCiAgICAgICAgICAgICBpZiAoRnJh
bWUqIGZyYW1lID0gbV9sYXN0Tm9kZVVuZGVyTW91c2UtPmRvY3VtZW50KCktPmZyYW1lKCkpIHsK
QEAgLTIyNDMsNiArMjI0OSw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjp1cGRhdGVNb3VzZUV2ZW50
VGFyZ2V0Tm9kZShOb2RlKiB0YXJnZXROb2RlLCBjb25zdCBQbGF0Zm9ybU1vCiAgICAgICAgICAg
ICAgICAgaWYgKEZyYW1lVmlldyogZnJhbWVWaWV3ID0gZnJhbWUtPnZpZXcoKSkKICAgICAgICAg
ICAgICAgICAgICAgZnJhbWVWaWV3LT5tb3VzZUVudGVyZWRDb250ZW50QXJlYSgpOwogICAgICAg
ICAgICAgfQorICAgICAgICAgICAgbW91c2VNb3ZlZCA9IHRydWU7CiAgICAgICAgIH0gZWxzZSBp
ZiAocGFnZSAmJiAobGF5ZXJGb3JOb2RlVW5kZXJNb3VzZSAmJiAoIWxheWVyRm9yTGFzdE5vZGUg
fHwgbGF5ZXJGb3JOb2RlVW5kZXJNb3VzZSAhPSBsYXllckZvckxhc3ROb2RlKSkpIHsKICAgICAg
ICAgICAgIC8vIFRoZSBtb3VzZSBoYXMgbW92ZWQgYmV0d2VlbiBsYXllcnMuCiAgICAgICAgICAg
ICBpZiAoRnJhbWUqIGZyYW1lID0gbV9ub2RlVW5kZXJNb3VzZS0+ZG9jdW1lbnQoKS0+ZnJhbWUo
KSkgewpAQCAtMjI2MSw3ICsyMjY4LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OnVwZGF0ZU1vdXNl
RXZlbnRUYXJnZXROb2RlKE5vZGUqIHRhcmdldE5vZGUsIGNvbnN0IFBsYXRmb3JtTW8KICNlbmRp
ZgogICAgICAgICB9CiAKLSAgICAgICAgaWYgKG1fbGFzdE5vZGVVbmRlck1vdXNlICE9IG1fbm9k
ZVVuZGVyTW91c2UpIHsKKyAgICAgICAgaWYgKG1vdXNlTW92ZWQgJiYgbV9sYXN0Tm9kZVVuZGVy
TW91c2UgIT0gbV9ub2RlVW5kZXJNb3VzZSkgewogICAgICAgICAgICAgLy8gc2VuZCBtb3VzZW91
dCBldmVudCB0byB0aGUgb2xkIG5vZGUKICAgICAgICAgICAgIGlmIChtX2xhc3ROb2RlVW5kZXJN
b3VzZSkKICAgICAgICAgICAgICAgICBtX2xhc3ROb2RlVW5kZXJNb3VzZS0+ZGlzcGF0Y2hNb3Vz
ZUV2ZW50KG1vdXNlRXZlbnQsIGV2ZW50TmFtZXMoKS5tb3VzZW91dEV2ZW50LCAwLCBtX25vZGVV
bmRlck1vdXNlLmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IGE2MDRk
YTJjODQwZTMyMWI2ZDdkMWM4NTEwMjI1OTcyZGE4YjE4OGEuLjYwOGUwNjI4MGZmNTc5NDAwNThk
MWNkMWJkZWZkZDMyNzU4OWI0MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApAQCAt
MjQ3LDYgKzI0Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZWxlY3RDbG9zZXN0V29yZEZyb21N
b3VzZUV2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKICAgICB2b2lk
IHNlbGVjdENsb3Nlc3RXb3JkT3JMaW5rRnJvbU1vdXNlRXZlbnQoY29uc3QgTW91c2VFdmVudFdp
dGhIaXRUZXN0UmVzdWx0cyYpOwogCisgICAgdm9pZCB1cGRhdGVDdXJyZW50TW91c2VQb3NpdGlv
bihjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKICAgICBib29sIGhhbmRsZU1vdXNlRG91Ymxl
Q2xpY2tFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKIAogICAgIGJvb2wgaGFuZGxl
TW91c2VQcmVzc0V2ZW50KGNvbnN0IE1vdXNlRXZlbnRXaXRoSGl0VGVzdFJlc3VsdHMmKTsKQEAg
LTQzMSw2ICs0MzIsNyBAQCBwcml2YXRlOgogICAgIAogICAgIEludFBvaW50IG1fY3VycmVudE1v
dXNlUG9zaXRpb247CiAgICAgSW50UG9pbnQgbV9jdXJyZW50TW91c2VHbG9iYWxQb3NpdGlvbjsK
KyAgICBJbnRQb2ludCBtX2xhc3RNb3VzZVBvc2l0aW9uOwogICAgIEludFBvaW50IG1fbW91c2VE
b3duUG9zOyAvLyBJbiBvdXIgdmlldydzIGNvb3Jkcy4KICAgICBkb3VibGUgbV9tb3VzZURvd25U
aW1lc3RhbXA7CiAgICAgUGxhdGZvcm1Nb3VzZUV2ZW50IG1fbW91c2VEb3duOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170262</attachid>
            <date>2012-10-23 16:16:49 -0700</date>
            <delta_ts>2012-10-23 18:33:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99940-20121023161525.patch</filename>
            <type>text/plain</type>
            <size>13088</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiOTI2NDkyYTcwNzQz
Y2EzNGVmMzAzMDY1ODZiZDU0NjNlNmI4OS4uMWEwZGI5MTU3ODdlMTFiYWUyYjc0ODk3NzkwZGMw
YTc2ZGZlMDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEwLTIzICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBh
IHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3
aGVuIHNjcm9sbGluZyBpcyBkb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC1Vc2UgYSBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIGluc3RlYWQgb2YgYSBU
aW1lci4gQnkgcmVzZXR0aW5nIHdoZW4gdGhlCisgICAgICAgIHRpbWVyIGlzIGZpcmVkLCB3ZSBl
bnN1cmUgdGhlIGFjdHVhbCBnb2FsIG9mIG5vdCBmaXJpbmcgZmFrZSBtb3VzZSBldmVudHMKKyAg
ICAgICAgdW50aWwgdGhlIHNjcm9sbCBpcyBjb21wbGV0ZWQuIFRoaXMgaXMgdGhlIGNvcmUgcGFy
dCBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgLUNoYW5nZSBvdXIgbW91c2UgZXZlbnQgdGhyb3R0
bGluZyB0byBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIGhvdyBsb25nCisgICAgICAgIG1vdXNl
IGV2ZW50cyB0YWtlIGFuZCBhZGp1c3QgdGhyIHRocm90dGxpbmcgYXBwcm9wcmlhdGVseS4KKyAg
ICAgICAgVGVzdDogZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0
bWwKKyAgICAgICAgLU1haW50YWluIGEgbWluaW11bSB0aHJvdHRsZSBvZiAxMDBtcy4KKworICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXI6OlJ1bm5pbmdBdmVyYWdl
RHVyYXRpb25UcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bm5pbmdBdmVyYWdlRHVyYXRp
b25UcmFja2VyOjp+UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIpOgorICAgICAgICBLZWVw
IHRyYWNrIG9mIGEgcnVubmluZyBhdmVyYWdlIGluc3RlYWQgb2YgbWF4LiBUaGlzIGxldHMgdXMg
YWRqdXN0IHRocm90dGxpbmcKKyAgICAgICAgZHluYW1pY2FsbHkgd2l0aG91dCBwdW5pc2hpbmcg
YSBwYWdlIGZvciBoYXZpbmcgYSBzaW5nbGUgbW91c2UgZXZlbnQgaGFuZGxlcgorICAgICAgICB0
aGF0IHRha2VzIGRpc3Byb3BvcnRpb25hdGVseSBsb25nLgorICAgICAgICAoUnVubmluZ0F2ZXJh
Z2VEdXJhdGlvblRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpFdmVu
dEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbik6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJhYmxl
T25lU2hvdFRpbWVyOjpzZXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJhYmxlT25l
U2hvdFRpbWVyOjpkZWxheSk6CisgICAgICAgIEFkZCBhIHdheSBvZiBhZGp1c3RpbmcgdGhlIHRp
bWVyIGRlbGF5LgorCiAyMDEyLTEwLTIyICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgJ2ltYWdlL3BqcGVnJyBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBpbWFnZSBi
eSBXZWIgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVl
ZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjE4YzQ4NWQ2Yjg1ZWEyNjg2
ZWQ3NDBmNWMyMjY3ZjBhN2IxZTRmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTEzNiwxMSArMTM2LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIC8vIFdo
ZW4gdGhlIGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0
aGUgc2Nyb2xsIGV2ZXJ5IDAuMDVzIHRvIG1ha2UgaXQgc21vb3RoCiBjb25zdCBkb3VibGUgYXV0
b3Njcm9sbEludGVydmFsID0gMC4wNTsKIAotLy8gVGhlIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQg
YmVmb3JlIHNlbmRpbmcgYSBmYWtlIG1vdXNlIGV2ZW50LCB0cmlnZ2VyZWQKLS8vIGR1cmluZyBh
IHNjcm9sbC4gVGhlIHNob3J0IGludGVydmFsIGlzIHVzZWQgaWYgdGhlIGNvbnRlbnQgcmVzcG9u
ZHMgdG8gdGhlIG1vdXNlIGV2ZW50cyBxdWlja2x5IGVub3VnaCwKLS8vIG90aGVyd2lzZSB0aGUg
bG9uZyBpbnRlcnZhbCBpcyB1c2VkLgotY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVTaG9ydElu
dGVydmFsID0gMC4xOwotY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVMb25nSW50ZXJ2YWwgPSAw
LjI1MDsKKy8vIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGEgZmFr
ZSBtb3VzZSBldmVudCwgdHJpZ2dlcmVkIGR1cmluZyBhIHNjcm9sbC4KK2NvbnN0IGRvdWJsZSBm
YWtlTW91c2VNb3ZlTWluaW11bUludGVydmFsID0gMC4xOworY29uc3QgZG91YmxlIGZha2VNb3Vz
ZU1vdmVSdW5uaW5nQXZlcmFnZUNvdW50ID0gMTA7Citjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92
ZUludGVydmFsUmVkdWN0aW9uTGltaXQgPSAwLjU7Citjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92
ZUludGVydmFsUmVkdWN0aW9uRnJhY3Rpb24gPSAwLjc1OwogCiBlbnVtIE5vQ3Vyc29yQ2hhbmdl
VHlwZSB7IE5vQ3Vyc29yQ2hhbmdlIH07CiAKQEAgLTE1NywyMSArMTU3LDI4IEBAIHByaXZhdGU6
CiAgICAgQ3Vyc29yIG1fY3Vyc29yOwogfTsKIAotY2xhc3MgTWF4aW11bUR1cmF0aW9uVHJhY2tl
ciB7CitjbGFzcyBSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlciB7CiBwdWJsaWM6Ci0gICAg
ZXhwbGljaXQgTWF4aW11bUR1cmF0aW9uVHJhY2tlcihkb3VibGUgKm1heER1cmF0aW9uKQotICAg
ICAgICA6IG1fbWF4RHVyYXRpb24obWF4RHVyYXRpb24pCisgICAgZXhwbGljaXQgUnVubmluZ0F2
ZXJhZ2VEdXJhdGlvblRyYWNrZXIoZG91YmxlICphdmdEdXJhdGlvbiwgdW5zaWduZWQgbnVtYmVy
T2ZSdW5zVG9UcmFjaykKKyAgICAgICAgOiBtX2F2Z0R1cmF0aW9uKGF2Z0R1cmF0aW9uKQorICAg
ICAgICAsIG1fbnVtYmVyT2ZSdW5zVG9UcmFjayhudW1iZXJPZlJ1bnNUb1RyYWNrKQogICAgICAg
ICAsIG1fc3RhcnQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpCiAgICAgewogICAgIH0K
IAotICAgIH5NYXhpbXVtRHVyYXRpb25UcmFja2VyKCkKKyAgICB+UnVubmluZ0F2ZXJhZ2VEdXJh
dGlvblRyYWNrZXIoKQogICAgIHsKLSAgICAgICAgKm1fbWF4RHVyYXRpb24gPSBtYXgoKm1fbWF4
RHVyYXRpb24sIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9zdGFydCk7CisgICAg
ICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9z
dGFydDsKKyAgICAgICAgaWYgKCEqbV9hdmdEdXJhdGlvbikgeworICAgICAgICAgICAgKm1fYXZn
RHVyYXRpb24gPSBkdXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAg
ICAgICAqbV9hdmdEdXJhdGlvbiA9ICgqbV9hdmdEdXJhdGlvbiAqIChtX251bWJlck9mUnVuc1Rv
VHJhY2sgLSAxKSArIChkdXJhdGlvbikpIC8gbV9udW1iZXJPZlJ1bnNUb1RyYWNrOwogICAgIH0K
IAogcHJpdmF0ZToKLSAgICBkb3VibGUqIG1fbWF4RHVyYXRpb247CisgICAgZG91YmxlKiBtX2F2
Z0R1cmF0aW9uOworICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZSdW5zVG9UcmFjazsKICAgICBkb3Vi
bGUgbV9zdGFydDsKIH07CiAKQEAgLTMxNiw3ICszMjMsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50
SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKGZhbHNl
KQogICAgICwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwoZmFsc2UpCiAgICAgLCBtX21v
dXNlRG93bldhc0luU3ViZnJhbWUoZmFsc2UpCi0gICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRp
bWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpCisg
ICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQsIGZha2VNb3VzZU1vdmVNaW5pbXVtSW50ZXJ2YWwpCiAj
aWYgRU5BQkxFKFNWRykKICAgICAsIG1fc3ZnUGFuKGZhbHNlKQogI2VuZGlmCkBAIC0zMzMsNyAr
MzQwLDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUqIGZyYW1lKQogI2lmIEVO
QUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoUHJlc3NlZChmYWxzZSkKICNlbmRpZgot
ICAgICwgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24oMCkKKyAgICAsIG1fbW91c2VNb3ZlZER1cmF0
aW9uUnVubmluZ0F2ZXJhZ2UoMCkKICAgICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2ZW50
OjpOb1R5cGUpCiB7CiB9CkBAIC0zODUsNyArMzkyLDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmNs
ZWFyKCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgbV9zY3JvbGxHZXN0dXJlSGFu
ZGxpbmdOb2RlID0gMDsKICNlbmRpZgotICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0gMDsK
KyAgICBtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlID0gMDsKICAgICBtX2Jhc2VF
dmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKQEAgLTE2OTMsNyArMTcwMCw3
IEBAIHN0YXRpYyBSZW5kZXJMYXllciogbGF5ZXJGb3JOb2RlKE5vZGUqIG5vZGUpCiBib29sIEV2
ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50KQog
ewogICAgIFJlZlB0cjxGcmFtZVZpZXc+IHByb3RlY3RvcihtX2ZyYW1lLT52aWV3KCkpOwotICAg
IE1heGltdW1EdXJhdGlvblRyYWNrZXIgbWF4RHVyYXRpb25UcmFja2VyKCZtX21heE1vdXNlTW92
ZWREdXJhdGlvbik7CisgICAgUnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIgZHVyYXRpb25U
cmFja2VyKCZtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlLCBmYWtlTW91c2VNb3Zl
UnVubmluZ0F2ZXJhZ2VDb3VudCk7CiAKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC0x
ODIwLDYgKzE4MjcsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZlbnQo
Y29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBIaQogICAgIH0gZWxzZSB7CiAg
ICAgICAgIGlmIChzY3JvbGxiYXIgJiYgIW1fbW91c2VQcmVzc2VkKQogICAgICAgICAgICAgc2Ny
b2xsYmFyLT5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOyAvLyBIYW5kbGUgaG92ZXIgZWZmZWN0cyBv
biBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHZpc3VhbCBmZWVkYmFjayBvbiBzY3JvbGxiYXIgaG92
ZXJpbmcuCisKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXcoKSkg
ewogICAgICAgICAgICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RDdXJz
b3IobWV2LCBzY3JvbGxiYXIpOwogICAgICAgICAgICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlzQ3Vy
c29yQ2hhbmdlKCkpCkBAIC0yODA1LDE4ICsyODEzLDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpk
aXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24oKQogICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0
dGluZ3MtPmRldmljZVN1cHBvcnRzTW91c2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8g
SWYgdGhlIGNvbnRlbnQgaGFzIGV2ZXIgdGFrZW4gbG9uZ2VyIHRoYW4gZmFrZU1vdXNlTW92ZVNo
b3J0SW50ZXJ2YWwgd2UKLSAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBhbmQgdXNlIGEgbG9u
Z2VyIHRpbWUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY29udGVudAotICAgIC8vIHRvIHJlY2VpdmUg
dGhlc2UgbW92ZXMgb25seSBhZnRlciB0aGUgdXNlciBpcyBkb25lIHNjcm9sbGluZywgcmVkdWNp
bmcKLSAgICAvLyBwYXVzZXMgZHVyaW5nIHRoZSBzY3JvbGwuCi0gICAgaWYgKG1fbWF4TW91c2VN
b3ZlZER1cmF0aW9uID4gZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwpIHsKLSAgICAgICAgaWYg
KG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZmFr
ZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RvcCgpOwotICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyLnN0YXJ0T25lU2hvdChmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBpZiAoIW1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkK
LSAgICAgICAgICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KGZha2VN
b3VzZU1vdmVTaG9ydEludGVydmFsKTsKLSAgICB9CisgICAgLy8gQWRqdXN0IHRoZSBtb3VzZSBt
b3ZlIHRocm90dGxpbmcgc28gdGhhdCBpdCdzIHJvdWdobHkgYXJvdW5kIG91ciBydW5uaW5nIGF2
ZXJhZ2Ugb2YgdGhlIGR1cmF0aW9uIG9mIG1vdXNlbW92ZSBldmVudHMuCisgICAgLy8gVGhpcyB3
aWxsIGNhdXNlIHRoZSBjb250ZW50IHRvIHJlY2VpdmUgdGhlc2UgbW92ZXMgb25seSBhZnRlciB0
aGUgdXNlciBpcyBkb25lIHNjcm9sbGluZywgcmVkdWNpbmcgcGF1c2VzIGR1cmluZyB0aGUgc2Ny
b2xsLgorICAgIC8vIFRoaXMgd2lsbCBvbmx5IG1lYXN1cmUgdGhlIGR1cmF0aW9uIG9mIHRoZSBt
b3VzZW1vdmUgZXZlbnQgdGhvdWdoIChub3QgZm9yIGV4YW1wbGUgbGF5b3V0cyksCisgICAgLy8g
c28gbWFpbnRhaW4gYXQgbGVhc3QgYSBtaW5pbXVtIGludGVydmFsLgorICAgIGlmIChtX21vdXNl
TW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlID4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5k
ZWxheSgpKQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnNldERlbGF5KG1fbW91
c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2ZXJhZ2UgKyAuMDUpOworICAgIGVsc2UgaWYgKG1fbW91
c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2ZXJhZ2UgPCBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1
Y3Rpb25MaW1pdCAqIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuZGVsYXkoKSkKKyAgICAgICAg
bV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zZXREZWxheShtYXgoZmFrZU1vdXNlTW92ZU1pbmlt
dW1JbnRlcnZhbCwgZmFrZU1vdXNlTW92ZUludGVydmFsUmVkdWN0aW9uRnJhY3Rpb24gKiBtX2Zh
a2VNb3VzZU1vdmVFdmVudFRpbWVyLmRlbGF5KCkpKTsKKyAgICBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyLnJlc3RhcnQoKTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1v
dXNlTW92ZUV2ZW50U29vbkluUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCkBAIC0yODM2LDcg
KzI4NDEsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCkK
ICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBFdmVudEhh
bmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiog
dGltZXIpCit2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChE
ZWZlcnJhYmxlT25lU2hvdFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQogewogICAgIEFTU0VS
VF9VTlVTRUQodGltZXIsIHRpbWVyID09ICZtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKTsKICAg
ICBBU1NFUlQoIW1fbW91c2VQcmVzc2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmlu
ZGV4IGE2MDRkYTJjODQwZTMyMWI2ZDdkMWM4NTEwMjI1OTcyZGE4YjE4OGEuLjU2M2RlMGU2MTRl
OThjODA0Mjk3MjNjYTVhZDFmZGVkZTgzNGVjODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuaApAQCAtMjc3LDcgKzI3Nyw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNLZXli
b2FyZE9wdGlvblRhYihLZXlib2FyZEV2ZW50Kik7CiAgICAgc3RhdGljIGJvb2wgZXZlbnRJbnZl
cnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKIAotICAgIHZv
aWQgZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7Cisg
ICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGlt
ZXI8RXZlbnRIYW5kbGVyPiopOwogICAgIHZvaWQgY2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCk7
CiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMzk5LDcgKzM5OSw3IEBAIHByaXZhdGU6
CiAgICAgYm9vbCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbDsKICAgICBib29sIG1fbW91
c2VEb3duV2FzSW5TdWJmcmFtZTsKIAotICAgIFRpbWVyPEV2ZW50SGFuZGxlcj4gbV9mYWtlTW91
c2VNb3ZlRXZlbnRUaW1lcjsKKyAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEV2ZW50SGFuZGxl
cj4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lcjsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgYm9v
bCBtX3N2Z1BhbjsKQEAgLTQ1NSw3ICs0NTUsNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2Rl
PiBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGU7CiAjZW5kaWYKIAotICAgIGRvdWJsZSBtX21h
eE1vdXNlTW92ZWREdXJhdGlvbjsKKyAgICBkb3VibGUgbV9tb3VzZU1vdmVkRHVyYXRpb25SdW5u
aW5nQXZlcmFnZTsKICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKIH07
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IGM1NTc4OTk0MDZiYWUzNjBmY2E0NWU3YTY2
MzZkNTk1MDYzNmQ2MjguLjhiYTQzMjIwNDg2ZWIzNzJkYWU5OGU5M2E3NjhjNjU2NzE3MmEzZTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaApAQCAtMTQwLDYgKzE0MCw5IEBAIHB1YmxpYzoKICAg
ICAgICAgc3RhcnRPbmVTaG90KG1fZGVsYXkpOwogICAgIH0KIAorICAgIHZvaWQgc2V0RGVsYXko
ZG91YmxlIGRlbGF5KSB7IG1fZGVsYXkgPSBkZWxheTsgfQorICAgIGRvdWJsZSBkZWxheSgpIHsg
cmV0dXJuIG1fZGVsYXk7IH0KKwogICAgIHVzaW5nIFRpbWVyQmFzZTo6c3RvcDsKICAgICB1c2lu
ZyBUaW1lckJhc2U6OmlzQWN0aXZlOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjYjNhNDZjMDZmZmM1MjY3
OGM1Y2YzNDQ1M2FkNzNkNDBmNzQyZjFmLi5lZThlOGEyMmVmNGU2OGUxNmFjMWVmOWJlMDE5YjJi
Y2IwNGUwYTFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTAtMjMgIE9qYW4gVmFmYWkg
IDxvamFuQGNocm9taXVtLm9yZz4KKworICAgICAgICBTaG91bGQgb25seSBmaXJlIGEgc2luZ2xl
IHNldCBvZiBtb3VzZSBldmVudHMgYW5kIHVwZGF0ZSBob3ZlciBzdGF0ZSBvbmNlIHdoZW4gc2Ny
b2xsaW5nIGlzIGRvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVzdHMgYmFzaWMgdGhyb3R0bGluZy4gSSBjb3VsZG4ndCB0aGluayBvZiBhIGdvb2Qg
d2F5IHRvIHRlc3QgY2hhbmdpbmcKKyAgICAgICAgdGhlIGRlbGF5IHRoYXQgd291bGRuJ3QgbWFr
ZSBmb3IgYSB0ZXN0IHRoYXQgdGFrZXMgbWludXRlcyB0byBydW4uCisKKyAgICAgICAgKiBmYXN0
L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmcu
aHRtbDogQWRkZWQuCisKIDIwMTItMTAtMjIgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQgY2hyb21pdW0gd2luZG93cyBnYXJkZW5pbmcuCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRo
cm90dGxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1t
b3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDAzN2EzNDhh
ZDRiOTJiNTRkNDY4MmJhOTcyYzljYjlmMjcwMjkzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxLDQgQEAKK1BBU1MgbnVtYmVyT2ZNb3VzZU1vdmVzIGlzIDAKK1BBU1Mg
bnVtYmVyT2ZNb3VzZU1vdmVzIGlzIDEKK1BBU1MgbnVtYmVyT2ZNb3VzZU1vdmVzIGlzIDIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10
aHJvdHRsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2
ZW50LXRocm90dGxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYTllYzdmMTlhODRjYWY0NDBlNzkxMmM2
YzA0NjkwZWNiMTQ0MGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWwKQEAgLTAsMCArMSw2MCBAQAor
PCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitkaXYgeworICAgIGhlaWdodDogMTAwcHg7Cit9Cisu
cG9pbnRlciB7CisgICAgY3Vyc29yOiBwb2ludGVyOworICAgIGJhY2tncm91bmQtY29sb3I6IHNh
bG1vbjsKK30KKy5wbGFpbiB7CisgICAgYmFja2dyb3VuZC1jb2xvcjogb3JhbmdlOworfQorPC9z
dHlsZT4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPGJvZHkgb25sb2FkPSJydW5OZXh0VGVzdCgpIiBzdHlsZT0ib3ZlcmZsb3c6IHNjcm9s
bCI+CisKKzxzY3JpcHQ+Citmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgaSsrKSB7CisgICAgZG9j
dW1lbnQud3JpdGUoJzxkaXYgY2xhc3M9cG9pbnRlcj48L2Rpdj48ZGl2IGNsYXNzPXBsYWluPjwv
ZGl2PicpOworfQorCitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CitpZiAod2luZG93LmV2ZW50U2VuZGVyKQorICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDEwMCwgNTApOworCit2YXIgbnVtYmVyT2ZNb3VzZU1vdmVzID0gMDsKK2RvY3Vt
ZW50LmJvZHkub25tb3VzZW1vdmUgPSBmdW5jdGlvbigpIHsKKyAgICB2YXIgc3RhcnQgPSBEYXRl
Lm5vdygpOworICAgIHdoaWxlIChEYXRlLm5vdygpIC0gc3RhcnQgPCBtb3VzZU1vdmVEdXJhdGlv
bikgeworICAgIH0KKyAgICBudW1iZXJPZk1vdXNlTW92ZXMrKzsKKworICAgIGlmIChkZWxheXMu
bGVuZ3RoKQorICAgICAgICBydW5OZXh0VGVzdCgpOworICAgIGVsc2UgeworICAgICAgICBzaG91
bGRCZSgibnVtYmVyT2ZNb3VzZU1vdmVzIiwgU3RyaW5nKGV4cGVjdGVkTnVtYmVyT2ZNb3VzZU1v
dmVzKSk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKworfQorCit2YXIgZGVsYXlzID0gWzUsIDIwMF07
Cit2YXIgZXhwZWN0ZWROdW1iZXJPZk1vdXNlTW92ZXMgPSBkZWxheXMubGVuZ3RoOworCitmdW5j
dGlvbiBydW5OZXh0VGVzdCgpCit7CisgICAgc2hvdWxkQmUoIm51bWJlck9mTW91c2VNb3ZlcyIs
IFN0cmluZyhleHBlY3RlZE51bWJlck9mTW91c2VNb3ZlcyAtIGRlbGF5cy5sZW5ndGgpKTsKKyAg
ICBtb3VzZU1vdmVEdXJhdGlvbiA9IGRlbGF5cy5zaGlmdCgpOworICAgIHZhciBwb3NpdGlvbiA9
IDc1ICogZGVsYXlzLmxlbmd0aDsKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgcG9zaXRpb24pOwor
ICAgIHdpbmRvdy5zY3JvbGxUbygwLCBwb3NpdGlvbiArIDI1KTsKKyAgICBzZXRUaW1lb3V0KGZ1
bmN0aW9uKCkgeworICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgcG9zaXRpb24gKyA1MCk7Cisg
ICAgfSwgMCk7Cit9Cis8L3NjcmlwdD4KKzwvYm9keT4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170285</attachid>
            <date>2012-10-23 18:33:08 -0700</date>
            <delta_ts>2012-11-05 15:49:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99940-20121023183144.patch</filename>
            <type>text/plain</type>
            <size>13599</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTNiOTI2NDkyYTcwNzQz
Y2EzNGVmMzAzMDY1ODZiZDU0NjNlNmI4OS4uMWEwZGI5MTU3ODdlMTFiYWUyYjc0ODk3NzkwZGMw
YTc2ZGZlMDM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTEwLTIzICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBh
IHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3
aGVuIHNjcm9sbGluZyBpcyBkb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC1Vc2UgYSBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIGluc3RlYWQgb2YgYSBU
aW1lci4gQnkgcmVzZXR0aW5nIHdoZW4gdGhlCisgICAgICAgIHRpbWVyIGlzIGZpcmVkLCB3ZSBl
bnN1cmUgdGhlIGFjdHVhbCBnb2FsIG9mIG5vdCBmaXJpbmcgZmFrZSBtb3VzZSBldmVudHMKKyAg
ICAgICAgdW50aWwgdGhlIHNjcm9sbCBpcyBjb21wbGV0ZWQuIFRoaXMgaXMgdGhlIGNvcmUgcGFy
dCBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgLUNoYW5nZSBvdXIgbW91c2UgZXZlbnQgdGhyb3R0
bGluZyB0byBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIGhvdyBsb25nCisgICAgICAgIG1vdXNl
IGV2ZW50cyB0YWtlIGFuZCBhZGp1c3QgdGhyIHRocm90dGxpbmcgYXBwcm9wcmlhdGVseS4KKyAg
ICAgICAgVGVzdDogZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0
bWwKKyAgICAgICAgLU1haW50YWluIGEgbWluaW11bSB0aHJvdHRsZSBvZiAxMDBtcy4KKworICAg
ICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAg
ICAoV2ViQ29yZTo6UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXI6OlJ1bm5pbmdBdmVyYWdl
RHVyYXRpb25UcmFja2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlJ1bm5pbmdBdmVyYWdlRHVyYXRp
b25UcmFja2VyOjp+UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIpOgorICAgICAgICBLZWVw
IHRyYWNrIG9mIGEgcnVubmluZyBhdmVyYWdlIGluc3RlYWQgb2YgbWF4LiBUaGlzIGxldHMgdXMg
YWRqdXN0IHRocm90dGxpbmcKKyAgICAgICAgZHluYW1pY2FsbHkgd2l0aG91dCBwdW5pc2hpbmcg
YSBwYWdlIGZvciBoYXZpbmcgYSBzaW5nbGUgbW91c2UgZXZlbnQgaGFuZGxlcgorICAgICAgICB0
aGF0IHRha2VzIGRpc3Byb3BvcnRpb25hdGVseSBsb25nLgorICAgICAgICAoUnVubmluZ0F2ZXJh
Z2VEdXJhdGlvblRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpFdmVu
dEhhbmRsZXIpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpjbGVhcik6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbik6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmg6CisgICAgICAgIChFdmVudEhhbmRsZXIpOgor
ICAgICAgICAqIHBsYXRmb3JtL1RpbWVyLmg6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJhYmxl
T25lU2hvdFRpbWVyOjpzZXREZWxheSk6CisgICAgICAgIChXZWJDb3JlOjpEZWZlcnJhYmxlT25l
U2hvdFRpbWVyOjpkZWxheSk6CisgICAgICAgIEFkZCBhIHdheSBvZiBhZGp1c3RpbmcgdGhlIHRp
bWVyIGRlbGF5LgorCiAyMDEyLTEwLTIyICBNaWtlIFdlc3QgIDxta3dzdEBjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgJ2ltYWdlL3BqcGVnJyBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBpbWFnZSBi
eSBXZWIgSW5zcGVjdG9yLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCmluZGV4IDVl
ZjBjNjFkYTkzZDBjMTY0YWJlZjc0ZWRmYzZmMGRlMGY3NzYyMTEuLjRmMjIzMDhiZWZkNzAwNGFi
MDkxMmNjMGNhN2FmMDgxM2M3NWU2Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5j
cHAKQEAgLTEzNiwxMSArMTM2LDE3IEBAIHVzaW5nIG5hbWVzcGFjZSBTVkdOYW1lczsKIC8vIFdo
ZW4gdGhlIGF1dG9zY3JvbGwgb3IgdGhlIHBhblNjcm9sbCBpcyB0cmlnZ2VyZWQgd2hlbiBkbyB0
aGUgc2Nyb2xsIGV2ZXJ5IDAuMDVzIHRvIG1ha2UgaXQgc21vb3RoCiBjb25zdCBkb3VibGUgYXV0
b3Njcm9sbEludGVydmFsID0gMC4wNTsKIAotLy8gVGhlIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQg
YmVmb3JlIHNlbmRpbmcgYSBmYWtlIG1vdXNlIGV2ZW50LCB0cmlnZ2VyZWQKLS8vIGR1cmluZyBh
IHNjcm9sbC4gVGhlIHNob3J0IGludGVydmFsIGlzIHVzZWQgaWYgdGhlIGNvbnRlbnQgcmVzcG9u
ZHMgdG8gdGhlIG1vdXNlIGV2ZW50cyBxdWlja2x5IGVub3VnaCwKLS8vIG90aGVyd2lzZSB0aGUg
bG9uZyBpbnRlcnZhbCBpcyB1c2VkLgotY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVTaG9ydElu
dGVydmFsID0gMC4xOwotY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVMb25nSW50ZXJ2YWwgPSAw
LjI1MDsKKy8vIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGEgZmFr
ZSBtb3VzZSBldmVudCwgdHJpZ2dlcmVkIGR1cmluZyBhIHNjcm9sbC4KK2NvbnN0IGRvdWJsZSBm
YWtlTW91c2VNb3ZlTWluaW11bUludGVydmFsID0gMC4xOworLy8gQW1vdW50IHRvIGluY3JlYXNl
IHRoZSBmYWtlIG1vdXNlIGV2ZW50IHRocm90dGxpbmcgd2hlbiB0aGUgcnVubmluZyBhdmVyYWdl
IGV4Y2VlZHMgdGhlIGRlbGF5LgorLy8gUGlja2VkIGZhaXJseSBhcmJpdHJhcmlseS4KK2NvbnN0
IGRvdWJsZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxJbmNyZWFzZSA9IDAuMDU7Citjb25zdCBkb3Vi
bGUgZmFrZU1vdXNlTW92ZVJ1bm5pbmdBdmVyYWdlQ291bnQgPSAxMDsKKy8vIERlY3JlYXNlIHRo
ZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWwgd2hlbiB0aGUgY3VycmVudCBkZWxheSBpcyA+MnggdGhl
IHJ1bm5pbmcgYXZlcmFnZSwKKy8vIGJ1dCBvbmx5IGRlY3JlYXNlIHRvIDMvNCB0aGUgY3VycmVu
dCBkZWxheSB0byBhdm9pZCB0b28gbXVjaCB0aHJhc2hpbmcuCisvLyBOb3Qgc3VyZSB0aGlzIGRp
c3RpbmN0aW9uIHJlYWxseSBtYXR0ZXJzIGluIHByYWN0aWNlLgorY29uc3QgZG91YmxlIGZha2VN
b3VzZU1vdmVJbnRlcnZhbFJlZHVjdGlvbkxpbWl0ID0gMC41OworY29uc3QgZG91YmxlIGZha2VN
b3VzZU1vdmVJbnRlcnZhbFJlZHVjdGlvbkZyYWN0aW9uID0gMC43NTsKIAogZW51bSBOb0N1cnNv
ckNoYW5nZVR5cGUgeyBOb0N1cnNvckNoYW5nZSB9OwogCkBAIC0xNTcsMjEgKzE2MywyOCBAQCBw
cml2YXRlOgogICAgIEN1cnNvciBtX2N1cnNvcjsKIH07CiAKLWNsYXNzIE1heGltdW1EdXJhdGlv
blRyYWNrZXIgeworY2xhc3MgUnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIgewogcHVibGlj
OgotICAgIGV4cGxpY2l0IE1heGltdW1EdXJhdGlvblRyYWNrZXIoZG91YmxlICptYXhEdXJhdGlv
bikKLSAgICAgICAgOiBtX21heER1cmF0aW9uKG1heER1cmF0aW9uKQorICAgIFJ1bm5pbmdBdmVy
YWdlRHVyYXRpb25UcmFja2VyKGRvdWJsZSogYXZlcmFnZSwgdW5zaWduZWQgbnVtYmVyT2ZSdW5z
VG9UcmFjaykKKyAgICAgICAgOiBtX2F2ZXJhZ2UoYXZlcmFnZSkKKyAgICAgICAgLCBtX251bWJl
ck9mUnVuc1RvVHJhY2sobnVtYmVyT2ZSdW5zVG9UcmFjaykKICAgICAgICAgLCBtX3N0YXJ0KG1v
bm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpKQogICAgIHsKICAgICB9CiAKLSAgICB+TWF4aW11
bUR1cmF0aW9uVHJhY2tlcigpCisgICAgflJ1bm5pbmdBdmVyYWdlRHVyYXRpb25UcmFja2VyKCkK
ICAgICB7Ci0gICAgICAgICptX21heER1cmF0aW9uID0gbWF4KCptX21heER1cmF0aW9uLCBtb25v
dG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fc3RhcnQpOworICAgICAgICBkb3VibGUgZHVy
YXRpb24gPSBtb25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKSAtIG1fc3RhcnQ7CisgICAgICAg
IGlmICghKm1fYXZlcmFnZSkgeworICAgICAgICAgICAgKm1fYXZlcmFnZSA9IGR1cmF0aW9uOwor
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgICptX2F2ZXJhZ2UgPSAoKm1f
YXZlcmFnZSAqIChtX251bWJlck9mUnVuc1RvVHJhY2sgLSAxKSArIChkdXJhdGlvbikpIC8gbV9u
dW1iZXJPZlJ1bnNUb1RyYWNrOwogICAgIH0KIAogcHJpdmF0ZToKLSAgICBkb3VibGUqIG1fbWF4
RHVyYXRpb247CisgICAgZG91YmxlKiBtX2F2ZXJhZ2U7CisgICAgdW5zaWduZWQgbV9udW1iZXJP
ZlJ1bnNUb1RyYWNrOwogICAgIGRvdWJsZSBtX3N0YXJ0OwogfTsKIApAQCAtMzE2LDcgKzMyOSw3
IEBAIEV2ZW50SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lKiBmcmFtZSkKICAgICAsIG1fYXV0
b3Njcm9sbEluUHJvZ3Jlc3MoZmFsc2UpCiAgICAgLCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Nj
cm9sbChmYWxzZSkKICAgICAsIG1fbW91c2VEb3duV2FzSW5TdWJmcmFtZShmYWxzZSkKLSAgICAs
IG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIodGhpcywgJkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNl
TW92ZUV2ZW50VGltZXJGaXJlZCkKKyAgICAsIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIodGhp
cywgJkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCwgZmFrZU1vdXNl
TW92ZU1pbmltdW1JbnRlcnZhbCkKICNpZiBFTkFCTEUoU1ZHKQogICAgICwgbV9zdmdQYW4oZmFs
c2UpCiAjZW5kaWYKQEAgLTMzMyw3ICszNDYsNyBAQCBFdmVudEhhbmRsZXI6OkV2ZW50SGFuZGxl
cihGcmFtZSogZnJhbWUpCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5UUykKICAgICAsIG1fdG91Y2hQ
cmVzc2VkKGZhbHNlKQogI2VuZGlmCi0gICAgLCBtX21heE1vdXNlTW92ZWREdXJhdGlvbigwKQor
ICAgICwgbV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSgwKQogICAgICwgbV9iYXNl
RXZlbnRUeXBlKFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZSkKIHsKIH0KQEAgLTM4NSw3ICszOTgsNyBA
QCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2xlYXIoKQogI2lmIEVOQUJMRShHRVNUVVJFX0VWRU5UUykK
ICAgICBtX3Njcm9sbEdlc3R1cmVIYW5kbGluZ05vZGUgPSAwOwogI2VuZGlmCi0gICAgbV9tYXhN
b3VzZU1vdmVkRHVyYXRpb24gPSAwOworICAgIG1fbW91c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2
ZXJhZ2UgPSAwOwogICAgIG1fYmFzZUV2ZW50VHlwZSA9IFBsYXRmb3JtRXZlbnQ6Ok5vVHlwZTsK
IH0KIApAQCAtMTY5Myw3ICsxNzA2LDcgQEAgc3RhdGljIFJlbmRlckxheWVyKiBsYXllckZvck5v
ZGUoTm9kZSogbm9kZSkKIGJvb2wgRXZlbnRIYW5kbGVyOjptb3VzZU1vdmVkKGNvbnN0IFBsYXRm
b3JtTW91c2VFdmVudCYgZXZlbnQpCiB7CiAgICAgUmVmUHRyPEZyYW1lVmlldz4gcHJvdGVjdG9y
KG1fZnJhbWUtPnZpZXcoKSk7Ci0gICAgTWF4aW11bUR1cmF0aW9uVHJhY2tlciBtYXhEdXJhdGlv
blRyYWNrZXIoJm1fbWF4TW91c2VNb3ZlZER1cmF0aW9uKTsKKyAgICBSdW5uaW5nQXZlcmFnZUR1
cmF0aW9uVHJhY2tlciBkdXJhdGlvblRyYWNrZXIoJm1fbW91c2VNb3ZlZER1cmF0aW9uUnVubmlu
Z0F2ZXJhZ2UsIGZha2VNb3VzZU1vdmVSdW5uaW5nQXZlcmFnZUNvdW50KTsKIAogCiAjaWYgRU5B
QkxFKFRPVUNIX0VWRU5UUykKQEAgLTE4MjAsNiArMTgzMyw3IEBAIGJvb2wgRXZlbnRIYW5kbGVy
OjpoYW5kbGVNb3VzZU1vdmVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZl
bnQsIEhpCiAgICAgfSBlbHNlIHsKICAgICAgICAgaWYgKHNjcm9sbGJhciAmJiAhbV9tb3VzZVBy
ZXNzZWQpCiAgICAgICAgICAgICBzY3JvbGxiYXItPm1vdXNlTW92ZWQobW91c2VFdmVudCk7IC8v
IEhhbmRsZSBob3ZlciBlZmZlY3RzIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgdmlzdWFsIGZl
ZWRiYWNrIG9uIHNjcm9sbGJhciBob3ZlcmluZy4KKwogICAgICAgICBpZiAoRnJhbWVWaWV3KiB2
aWV3ID0gbV9mcmFtZS0+dmlldygpKSB7CiAgICAgICAgICAgICBPcHRpb25hbEN1cnNvciBvcHRp
b25hbEN1cnNvciA9IHNlbGVjdEN1cnNvcihtZXYsIHNjcm9sbGJhcik7CiAgICAgICAgICAgICBp
ZiAob3B0aW9uYWxDdXJzb3IuaXNDdXJzb3JDaGFuZ2UoKSkKQEAgLTI4MDUsMTggKzI4MTksMTUg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50U29vbigpCiAg
ICAgaWYgKHNldHRpbmdzICYmICFzZXR0aW5ncy0+ZGV2aWNlU3VwcG9ydHNNb3VzZSgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICAvLyBJZiB0aGUgY29udGVudCBoYXMgZXZlciB0YWtlbiBsb25n
ZXIgdGhhbiBmYWtlTW91c2VNb3ZlU2hvcnRJbnRlcnZhbCB3ZQotICAgIC8vIHJlc2NoZWR1bGUg
dGhlIHRpbWVyIGFuZCB1c2UgYSBsb25nZXIgdGltZS4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjb250
ZW50Ci0gICAgLy8gdG8gcmVjZWl2ZSB0aGVzZSBtb3ZlcyBvbmx5IGFmdGVyIHRoZSB1c2VyIGlz
IGRvbmUgc2Nyb2xsaW5nLCByZWR1Y2luZwotICAgIC8vIHBhdXNlcyBkdXJpbmcgdGhlIHNjcm9s
bC4KLSAgICBpZiAobV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPiBmYWtlTW91c2VNb3ZlU2hvcnRJ
bnRlcnZhbCkgewotICAgICAgICBpZiAobV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5pc0FjdGl2
ZSgpKQotICAgICAgICAgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zdG9wKCk7Ci0gICAg
ICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KGZha2VNb3VzZU1vdmVM
b25nSW50ZXJ2YWwpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIGlmICghbV9mYWtlTW91c2VNb3Zl
RXZlbnRUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICAgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRU
aW1lci5zdGFydE9uZVNob3QoZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwpOwotICAgIH0KKyAg
ICAvLyBBZGp1c3QgdGhlIG1vdXNlIG1vdmUgdGhyb3R0bGluZyBzbyB0aGF0IGl0J3Mgcm91Z2hs
eSBhcm91bmQgb3VyIHJ1bm5pbmcgYXZlcmFnZSBvZiB0aGUgZHVyYXRpb24gb2YgbW91c2Vtb3Zl
IGV2ZW50cy4KKyAgICAvLyBUaGlzIHdpbGwgY2F1c2UgdGhlIGNvbnRlbnQgdG8gcmVjZWl2ZSB0
aGVzZSBtb3ZlcyBvbmx5IGFmdGVyIHRoZSB1c2VyIGlzIGRvbmUgc2Nyb2xsaW5nLCByZWR1Y2lu
ZyBwYXVzZXMgZHVyaW5nIHRoZSBzY3JvbGwuCisgICAgLy8gVGhpcyB3aWxsIG9ubHkgbWVhc3Vy
ZSB0aGUgZHVyYXRpb24gb2YgdGhlIG1vdXNlbW92ZSBldmVudCB0aG91Z2ggKG5vdCBmb3IgZXhh
bXBsZSBsYXlvdXRzKSwKKyAgICAvLyBzbyBtYWludGFpbiBhdCBsZWFzdCBhIG1pbmltdW0gaW50
ZXJ2YWwuCisgICAgaWYgKG1fbW91c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2ZXJhZ2UgPiBtX2Zh
a2VNb3VzZU1vdmVFdmVudFRpbWVyLmRlbGF5KCkpCisgICAgICAgIG1fZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXIuc2V0RGVsYXkobV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSArIGZh
a2VNb3VzZU1vdmVJbnRlcnZhbEluY3JlYXNlKTsKKyAgICBlbHNlIGlmIChtX21vdXNlTW92ZWRE
dXJhdGlvblJ1bm5pbmdBdmVyYWdlIDwgZmFrZU1vdXNlTW92ZUludGVydmFsUmVkdWN0aW9uTGlt
aXQgKiBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLmRlbGF5KCkpCisgICAgICAgIG1fZmFrZU1v
dXNlTW92ZUV2ZW50VGltZXIuc2V0RGVsYXkobWF4KGZha2VNb3VzZU1vdmVNaW5pbXVtSW50ZXJ2
YWwsIGZha2VNb3VzZU1vdmVJbnRlcnZhbFJlZHVjdGlvbkZyYWN0aW9uICogbV9mYWtlTW91c2VN
b3ZlRXZlbnRUaW1lci5kZWxheSgpKSk7CisgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5y
ZXN0YXJ0KCk7CiB9CiAKIHZvaWQgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVF
dmVudFNvb25JblF1YWQoY29uc3QgRmxvYXRRdWFkJiBxdWFkKQpAQCAtMjgzNiw3ICsyODQ3LDcg
QEAgdm9pZCBFdmVudEhhbmRsZXI6OmNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpCiAgICAgbV9m
YWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zdG9wKCk7CiB9CiAKLXZvaWQgRXZlbnRIYW5kbGVyOjpm
YWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQor
dm9pZCBFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoRGVmZXJyYWJs
ZU9uZVNob3RUaW1lcjxFdmVudEhhbmRsZXI+KiB0aW1lcikKIHsKICAgICBBU1NFUlRfVU5VU0VE
KHRpbWVyLCB0aW1lciA9PSAmbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lcik7CiAgICAgQVNTRVJU
KCFtX21vdXNlUHJlc3NlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAppbmRleCBhNjA0
ZGEyYzg0MGUzMjFiNmQ3ZDFjODUxMDIyNTk3MmRhOGIxODhhLi41NjNkZTBlNjE0ZTk4YzgwNDI5
NzIzY2E1YWQxZmRlZGU4MzRlYzg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2
ZW50SGFuZGxlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKQEAg
LTI3Nyw3ICsyNzcsNyBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRp
b25UYWIoS2V5Ym9hcmRFdmVudCopOwogICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0c1RhYnNU
b0xpbmtzQ2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Kik7CiAKLSAgICB2b2lkIGZha2VN
b3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiopOworICAgIHZvaWQg
ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEV2ZW50
SGFuZGxlcj4qKTsKICAgICB2b2lkIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwogCiAjaWYg
RU5BQkxFKFRPVUNIX0VWRU5UUykKQEAgLTM5OSw3ICszOTksNyBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGw7CiAgICAgYm9vbCBtX21vdXNlRG93bldh
c0luU3ViZnJhbWU7CiAKLSAgICBUaW1lcjxFdmVudEhhbmRsZXI+IG1fZmFrZU1vdXNlTW92ZUV2
ZW50VGltZXI7CisgICAgRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxFdmVudEhhbmRsZXI+IG1fZmFr
ZU1vdXNlTW92ZUV2ZW50VGltZXI7CiAKICNpZiBFTkFCTEUoU1ZHKQogICAgIGJvb2wgbV9zdmdQ
YW47CkBAIC00NTUsNyArNDU1LDcgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Tm9kZT4gbV9zY3Jv
bGxHZXN0dXJlSGFuZGxpbmdOb2RlOwogI2VuZGlmCiAKLSAgICBkb3VibGUgbV9tYXhNb3VzZU1v
dmVkRHVyYXRpb247CisgICAgZG91YmxlIG1fbW91c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2ZXJh
Z2U7CiAgICAgUGxhdGZvcm1FdmVudDo6VHlwZSBtX2Jhc2VFdmVudFR5cGU7CiB9OwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGltZXIuaAppbmRleCBjNTU3ODk5NDA2YmFlMzYwZmNhNDVlN2E2NjM2ZDU5NTA2
MzZkNjI4Li40ZTBiNjU5ZWVjMzM4MTVkZmFiNmIxODVkMGQ1ODRmMDdmNGUxY2I5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1RpbWVyLmgKQEAgLTE0MCw2ICsxNDAsMTcgQEAgcHVibGljOgogICAgICAgICBz
dGFydE9uZVNob3QobV9kZWxheSk7CiAgICAgfQogCisgICAgdm9pZCBzZXREZWxheShkb3VibGUg
ZGVsYXkpCisgICAgeworICAgICAgICBtX2RlbGF5ID0gZGVsYXk7CisgICAgICAgIGlmIChpc0Fj
dGl2ZSgpKSB7CisgICAgICAgICAgICBzdG9wKCk7CisgICAgICAgICAgICByZXN0YXJ0KCk7Cisg
ICAgICAgIH0KKyAgICB9CisKKyAgICBkb3VibGUgZGVsYXkoKSBjb25zdCB7IHJldHVybiBtX2Rl
bGF5OyB9CisKICAgICB1c2luZyBUaW1lckJhc2U6OnN0b3A7CiAgICAgdXNpbmcgVGltZXJCYXNl
Ojppc0FjdGl2ZTsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggY2IzYTQ2YzA2ZmZjNTI2NzhjNWNmMzQ0NTNh
ZDczZDQwZjc0MmYxZi4uZWU4ZThhMjJlZjRlNjhlMTZhYzFlZjliZTAxOWIyYmNiMDRlMGExZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTIzICBPamFuIFZhZmFpICA8b2phbkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBhIHNpbmdsZSBzZXQgb2YgbW91
c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3aGVuIHNjcm9sbGluZyBpcyBk
b25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Rz
IGJhc2ljIHRocm90dGxpbmcuIEkgY291bGRuJ3QgdGhpbmsgb2YgYSBnb29kIHdheSB0byB0ZXN0
IGNoYW5naW5nCisgICAgICAgIHRoZSBkZWxheSB0aGF0IHdvdWxkbid0IG1ha2UgZm9yIGEgdGVz
dCB0aGF0IHRha2VzIG1pbnV0ZXMgdG8gcnVuLgorCisgICAgICAgICogZmFzdC9zY3JvbGxpbmcv
ZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWw6IEFkZGVk
LgorCiAyMDEyLTEwLTIyICBFbWlsIEEgRWtsdW5kICA8ZWFlQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBVbnJldmlld2VkIGNocm9taXVtIHdpbmRvd3MgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQt
dGhyb3R0bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwMzdhMzQ4YWQ0YjkyYjU0ZDQ2
ODJiYTk3MmM5Y2I5ZjI3MDI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
c2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSw0IEBACitQQVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAwCitQQVNTIG51bWJlck9mTW91
c2VNb3ZlcyBpcyAxCitQQVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAyCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy5o
dG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRs
aW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk3ZDBkZjZlMGMzMTg1MWM4NmVlY2YzNDQ1ZTA2MWMxODA0
MTBhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2Ut
bW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPHN0eWxlPgorYm9keSB7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KK2RpdiB7Cisg
ICAgaGVpZ2h0OiAxMDBweDsKK30KKy5wb2ludGVyIHsKKyAgICBjdXJzb3I6IHBvaW50ZXI7Cisg
ICAgYmFja2dyb3VuZC1jb2xvcjogc2FsbW9uOworfQorLnBsYWluIHsKKyAgICBiYWNrZ3JvdW5k
LWNvbG9yOiBvcmFuZ2U7Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InJ1bk5leHRUZXN0KCki
PgorCis8c2NyaXB0PgorZm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykgeworICAgIGRvY3Vt
ZW50LndyaXRlKCc8ZGl2IGNsYXNzPXBvaW50ZXI+PC9kaXY+PGRpdiBjbGFzcz1wbGFpbj48L2Rp
dj4nKTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygxMDAsIDUwKTsKKwordmFyIG51bWJlck9mTW91c2VNb3ZlcyA9IDA7Citkb2N1bWVu
dC5ib2R5Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHN0YXJ0ID0gRGF0ZS5u
b3coKTsKKyAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHN0YXJ0IDwgbW91c2VNb3ZlRHVyYXRpb24p
IHsKKyAgICB9CisgICAgbnVtYmVyT2ZNb3VzZU1vdmVzKys7CisKKyAgICBpZiAoZGVsYXlzLmxl
bmd0aCkKKyAgICAgICAgcnVuTmV4dFRlc3QoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgc2hvdWxk
QmUoIm51bWJlck9mTW91c2VNb3ZlcyIsIFN0cmluZyhleHBlY3RlZE51bWJlck9mTW91c2VNb3Zl
cykpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKK30KKwordmFyIGRlbGF5cyA9IFs1LCAyMDBdOwor
dmFyIGV4cGVjdGVkTnVtYmVyT2ZNb3VzZU1vdmVzID0gZGVsYXlzLmxlbmd0aDsKKworZnVuY3Rp
b24gcnVuTmV4dFRlc3QoKQoreworICAgIHNob3VsZEJlKCJudW1iZXJPZk1vdXNlTW92ZXMiLCBT
dHJpbmcoZXhwZWN0ZWROdW1iZXJPZk1vdXNlTW92ZXMgLSBkZWxheXMubGVuZ3RoKSk7CisgICAg
bW91c2VNb3ZlRHVyYXRpb24gPSBkZWxheXMuc2hpZnQoKTsKKyAgICB2YXIgcG9zaXRpb24gPSA3
NSAqIGRlbGF5cy5sZW5ndGg7CisgICAgd2luZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uKTsKKyAg
ICB3aW5kb3cuc2Nyb2xsVG8oMCwgcG9zaXRpb24gKyAyNSk7CisgICAgc2V0VGltZW91dChmdW5j
dGlvbigpIHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uICsgNTApOworICAg
IH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172422</attachid>
            <date>2012-11-05 15:49:20 -0800</date>
            <delta_ts>2012-11-05 15:51:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99940-20121105234734.patch</filename>
            <type>text/plain</type>
            <size>13584</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkN2U2ZjJlZjI1OTNk
NWM4YWYzYjI5YjM3NzkwMDIzN2Y0ZTkwZi4uZTU4NzFkMDIxODNmMGZmMmUxNjA4MGNiNWEzYmVl
YzQwNmMyMWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTA1ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBh
IHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3
aGVuIHNjcm9sbGluZyBpcyBkb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC1Vc2UgYSBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIGluc3RlYWQgb2YgYSBU
aW1lci4gQnkgcmVzZXR0aW5nIHdoZW4gdGhlCisgICAgICAgIHRpbWVyIGlzIGZpcmVkLCB3ZSBl
bnN1cmUgdGhlIGFjdHVhbCBnb2FsIG9mIG5vdCBmaXJpbmcgZmFrZSBtb3VzZSBldmVudHMKKyAg
ICAgICAgdW50aWwgdGhlIHNjcm9sbCBpcyBjb21wbGV0ZWQuIFRoaXMgaXMgdGhlIGNvcmUgcGFy
dCBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgLUNoYW5nZSBvdXIgbW91c2UgZXZlbnQgdGhyb3R0
bGluZyB0byBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIGhvdyBsb25nCisgICAgICAgIG1vdXNl
IGV2ZW50cyB0YWtlIGFuZCBhZGp1c3QgdGhyb3R0bGluZyBhcHByb3ByaWF0ZWx5LgorICAgICAg
ICBUZXN0OiBmYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmcuaHRtbAor
ICAgICAgICAtTWFpbnRhaW4gYSBtaW5pbXVtIHRocm90dGxlIG9mIDEwMG1zLgorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcjo6UnVubmluZ0F2ZXJhZ2VEdXJh
dGlvblRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRy
YWNrZXI6On5SdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcik6CisgICAgICAgIEtlZXAgdHJh
Y2sgb2YgYSBydW5uaW5nIGF2ZXJhZ2UgaW5zdGVhZCBvZiBtYXguIFRoaXMgbGV0cyB1cyBhZGp1
c3QgdGhyb3R0bGluZworICAgICAgICBkeW5hbWljYWxseSB3aXRob3V0IHB1bmlzaGluZyBhIHBh
Z2UgZm9yIGhhdmluZyBhIHNpbmdsZSBtb3VzZSBldmVudCBoYW5kbGVyCisgICAgICAgIHRoYXQg
dGFrZXMgZGlzcHJvcG9ydGlvbmF0ZWx5IGxvbmcuCisgICAgICAgIChSdW5uaW5nQXZlcmFnZUR1
cmF0aW9uVHJhY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVT
aG90VGltZXI6OnNldERlbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90
VGltZXI6OmRlbGF5KToKKyAgICAgICAgQWRkIGEgd2F5IG9mIGFkanVzdGluZyB0aGUgdGltZXIg
ZGVsYXkuCisKIDIwMTItMTEtMDUgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEwMDEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5MjA1NWExMjMzYTc4NDY5NTJiN2Ji
Y2ZjMTFhZDczYzVjODNlOThmLi42OGNhZTRjZGVlODc1MTlkNzA0NzVlNWZmODE0OTQzMGExM2Nl
ZTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzYsMTEgKzEzNiwx
NyBAQCB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9y
IHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dlcmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSAwLjA1
cyB0byBtYWtlIGl0IHNtb290aAogY29uc3QgZG91YmxlIGF1dG9zY3JvbGxJbnRlcnZhbCA9IDAu
MDU7CiAKLS8vIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGEgZmFr
ZSBtb3VzZSBldmVudCwgdHJpZ2dlcmVkCi0vLyBkdXJpbmcgYSBzY3JvbGwuIFRoZSBzaG9ydCBp
bnRlcnZhbCBpcyB1c2VkIGlmIHRoZSBjb250ZW50IHJlc3BvbmRzIHRvIHRoZSBtb3VzZSBldmVu
dHMgcXVpY2tseSBlbm91Z2gsCi0vLyBvdGhlcndpc2UgdGhlIGxvbmcgaW50ZXJ2YWwgaXMgdXNl
ZC4KLWNvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlU2hvcnRJbnRlcnZhbCA9IDAuMTsKLWNvbnN0
IGRvdWJsZSBmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsID0gMC4yNTA7CisvLyBUaGUgYW1vdW50
IG9mIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhIGZha2UgbW91c2UgZXZlbnQsIHRyaWdn
ZXJlZCBkdXJpbmcgYSBzY3JvbGwuCitjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92ZU1pbmltdW1J
bnRlcnZhbCA9IDAuMTsKKy8vIEFtb3VudCB0byBpbmNyZWFzZSB0aGUgZmFrZSBtb3VzZSBldmVu
dCB0aHJvdHRsaW5nIHdoZW4gdGhlIHJ1bm5pbmcgYXZlcmFnZSBleGNlZWRzIHRoZSBkZWxheS4K
Ky8vIFBpY2tlZCBmYWlybHkgYXJiaXRyYXJpbHkuCitjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92
ZUludGVydmFsSW5jcmVhc2UgPSAwLjA1OworY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVSdW5u
aW5nQXZlcmFnZUNvdW50ID0gMTA7CisvLyBEZWNyZWFzZSB0aGUgZmFrZU1vdXNlTW92ZUludGVy
dmFsIHdoZW4gdGhlIGN1cnJlbnQgZGVsYXkgaXMgPjJ4IHRoZSBydW5uaW5nIGF2ZXJhZ2UsCisv
LyBidXQgb25seSBkZWNyZWFzZSB0byAzLzQgdGhlIGN1cnJlbnQgZGVsYXkgdG8gYXZvaWQgdG9v
IG11Y2ggdGhyYXNoaW5nLgorLy8gTm90IHN1cmUgdGhpcyBkaXN0aW5jdGlvbiByZWFsbHkgbWF0
dGVycyBpbiBwcmFjdGljZS4KK2NvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1
Y3Rpb25MaW1pdCA9IDAuNTsKK2NvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1
Y3Rpb25GcmFjdGlvbiA9IDAuNzU7CiAKIGVudW0gTm9DdXJzb3JDaGFuZ2VUeXBlIHsgTm9DdXJz
b3JDaGFuZ2UgfTsKIApAQCAtMTU3LDIxICsxNjMsMjggQEAgcHJpdmF0ZToKICAgICBDdXJzb3Ig
bV9jdXJzb3I7CiB9OwogCi1jbGFzcyBNYXhpbXVtRHVyYXRpb25UcmFja2VyIHsKK2NsYXNzIFJ1
bm5pbmdBdmVyYWdlRHVyYXRpb25UcmFja2VyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNYXhp
bXVtRHVyYXRpb25UcmFja2VyKGRvdWJsZSAqbWF4RHVyYXRpb24pCi0gICAgICAgIDogbV9tYXhE
dXJhdGlvbihtYXhEdXJhdGlvbikKKyAgICBSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcihk
b3VibGUqIGF2ZXJhZ2UsIHVuc2lnbmVkIG51bWJlck9mUnVuc1RvVHJhY2spCisgICAgICAgIDog
bV9hdmVyYWdlKGF2ZXJhZ2UpCisgICAgICAgICwgbV9udW1iZXJPZlJ1bnNUb1RyYWNrKG51bWJl
ck9mUnVuc1RvVHJhY2spCiAgICAgICAgICwgbV9zdGFydChtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSkKICAgICB7CiAgICAgfQogCi0gICAgfk1heGltdW1EdXJhdGlvblRyYWNrZXIoKQor
ICAgIH5SdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcigpCiAgICAgewotICAgICAgICAqbV9t
YXhEdXJhdGlvbiA9IG1heCgqbV9tYXhEdXJhdGlvbiwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkgLSBtX3N0YXJ0KTsKKyAgICAgICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgLSBtX3N0YXJ0OworICAgICAgICBpZiAoISptX2F2ZXJhZ2UpIHsK
KyAgICAgICAgICAgICptX2F2ZXJhZ2UgPSBkdXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICAqbV9hdmVyYWdlID0gKCptX2F2ZXJhZ2UgKiAobV9udW1iZXJP
ZlJ1bnNUb1RyYWNrIC0gMSkgKyAoZHVyYXRpb24pKSAvIG1fbnVtYmVyT2ZSdW5zVG9UcmFjazsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZG91YmxlKiBtX21heER1cmF0aW9uOworICAgIGRvdWJs
ZSogbV9hdmVyYWdlOworICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZSdW5zVG9UcmFjazsKICAgICBk
b3VibGUgbV9zdGFydDsKIH07CiAKQEAgLTMxNiw3ICszMjksNyBAQCBFdmVudEhhbmRsZXI6OkV2
ZW50SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKGZh
bHNlKQogICAgICwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwoZmFsc2UpCiAgICAgLCBt
X21vdXNlRG93bldhc0luU3ViZnJhbWUoZmFsc2UpCi0gICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQp
CisgICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZh
a2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQsIGZha2VNb3VzZU1vdmVNaW5pbXVtSW50ZXJ2YWwp
CiAjaWYgRU5BQkxFKFNWRykKICAgICAsIG1fc3ZnUGFuKGZhbHNlKQogI2VuZGlmCkBAIC0zMzMs
NyArMzQ2LDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUqIGZyYW1lKQogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoUHJlc3NlZChmYWxzZSkKICNlbmRp
ZgotICAgICwgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24oMCkKKyAgICAsIG1fbW91c2VNb3ZlZER1
cmF0aW9uUnVubmluZ0F2ZXJhZ2UoMCkKICAgICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUpCiB7CiB9CkBAIC0zODUsNyArMzk4LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmNsZWFyKCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgbV9zY3JvbGxHZXN0dXJl
SGFuZGxpbmdOb2RlID0gMDsKICNlbmRpZgotICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0g
MDsKKyAgICBtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlID0gMDsKICAgICBtX2Jh
c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKQEAgLTE3MzIsNyArMTc0
NSw3IEBAIHN0YXRpYyBSZW5kZXJMYXllciogbGF5ZXJGb3JOb2RlKE5vZGUqIG5vZGUpCiBib29s
IEV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
KQogewogICAgIFJlZlB0cjxGcmFtZVZpZXc+IHByb3RlY3RvcihtX2ZyYW1lLT52aWV3KCkpOwot
ICAgIE1heGltdW1EdXJhdGlvblRyYWNrZXIgbWF4RHVyYXRpb25UcmFja2VyKCZtX21heE1vdXNl
TW92ZWREdXJhdGlvbik7CisgICAgUnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIgZHVyYXRp
b25UcmFja2VyKCZtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlLCBmYWtlTW91c2VN
b3ZlUnVubmluZ0F2ZXJhZ2VDb3VudCk7CiAKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBA
IC0xODU5LDYgKzE4NzIsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlTW91c2VNb3ZlRXZl
bnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50LCBIaQogICAgIH0gZWxzZSB7
CiAgICAgICAgIGlmIChzY3JvbGxiYXIgJiYgIW1fbW91c2VQcmVzc2VkKQogICAgICAgICAgICAg
c2Nyb2xsYmFyLT5tb3VzZU1vdmVkKG1vdXNlRXZlbnQpOyAvLyBIYW5kbGUgaG92ZXIgZWZmZWN0
cyBvbiBwbGF0Zm9ybXMgdGhhdCBzdXBwb3J0IHZpc3VhbCBmZWVkYmFjayBvbiBzY3JvbGxiYXIg
aG92ZXJpbmcuCisKICAgICAgICAgaWYgKEZyYW1lVmlldyogdmlldyA9IG1fZnJhbWUtPnZpZXco
KSkgewogICAgICAgICAgICAgT3B0aW9uYWxDdXJzb3Igb3B0aW9uYWxDdXJzb3IgPSBzZWxlY3RD
dXJzb3IobWV2LCBzY3JvbGxiYXIpOwogICAgICAgICAgICAgaWYgKG9wdGlvbmFsQ3Vyc29yLmlz
Q3Vyc29yQ2hhbmdlKCkpCkBAIC0yODYyLDE4ICsyODc2LDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24oKQogICAgIGlmIChzZXR0aW5ncyAmJiAh
c2V0dGluZ3MtPmRldmljZVN1cHBvcnRzTW91c2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
Ly8gSWYgdGhlIGNvbnRlbnQgaGFzIGV2ZXIgdGFrZW4gbG9uZ2VyIHRoYW4gZmFrZU1vdXNlTW92
ZVNob3J0SW50ZXJ2YWwgd2UKLSAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBhbmQgdXNlIGEg
bG9uZ2VyIHRpbWUuIFRoaXMgd2lsbCBjYXVzZSB0aGUgY29udGVudAotICAgIC8vIHRvIHJlY2Vp
dmUgdGhlc2UgbW92ZXMgb25seSBhZnRlciB0aGUgdXNlciBpcyBkb25lIHNjcm9sbGluZywgcmVk
dWNpbmcKLSAgICAvLyBwYXVzZXMgZHVyaW5nIHRoZSBzY3JvbGwuCi0gICAgaWYgKG1fbWF4TW91
c2VNb3ZlZER1cmF0aW9uID4gZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwpIHsKLSAgICAgICAg
aWYgKG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1f
ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RvcCgpOwotICAgICAgICBtX2Zha2VNb3VzZU1vdmVF
dmVudFRpbWVyLnN0YXJ0T25lU2hvdChmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBpZiAoIW1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUo
KSkKLSAgICAgICAgICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KGZh
a2VNb3VzZU1vdmVTaG9ydEludGVydmFsKTsKLSAgICB9CisgICAgLy8gQWRqdXN0IHRoZSBtb3Vz
ZSBtb3ZlIHRocm90dGxpbmcgc28gdGhhdCBpdCdzIHJvdWdobHkgYXJvdW5kIG91ciBydW5uaW5n
IGF2ZXJhZ2Ugb2YgdGhlIGR1cmF0aW9uIG9mIG1vdXNlbW92ZSBldmVudHMuCisgICAgLy8gVGhp
cyB3aWxsIGNhdXNlIHRoZSBjb250ZW50IHRvIHJlY2VpdmUgdGhlc2UgbW92ZXMgb25seSBhZnRl
ciB0aGUgdXNlciBpcyBkb25lIHNjcm9sbGluZywgcmVkdWNpbmcgcGF1c2VzIGR1cmluZyB0aGUg
c2Nyb2xsLgorICAgIC8vIFRoaXMgd2lsbCBvbmx5IG1lYXN1cmUgdGhlIGR1cmF0aW9uIG9mIHRo
ZSBtb3VzZW1vdmUgZXZlbnQgdGhvdWdoIChub3QgZm9yIGV4YW1wbGUgbGF5b3V0cyksCisgICAg
Ly8gc28gbWFpbnRhaW4gYXQgbGVhc3QgYSBtaW5pbXVtIGludGVydmFsLgorICAgIGlmIChtX21v
dXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlID4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1l
ci5kZWxheSgpKQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnNldERlbGF5KG1f
bW91c2VNb3ZlZER1cmF0aW9uUnVubmluZ0F2ZXJhZ2UgKyBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxJ
bmNyZWFzZSk7CisgICAgZWxzZSBpZiAobV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFn
ZSA8IGZha2VNb3VzZU1vdmVJbnRlcnZhbFJlZHVjdGlvbkxpbWl0ICogbV9mYWtlTW91c2VNb3Zl
RXZlbnRUaW1lci5kZWxheSgpKQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnNl
dERlbGF5KG1heChmYWtlTW91c2VNb3ZlTWluaW11bUludGVydmFsLCBmYWtlTW91c2VNb3ZlSW50
ZXJ2YWxSZWR1Y3Rpb25GcmFjdGlvbiAqIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuZGVsYXko
KSkpOworICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIucmVzdGFydCgpOwogfQogCiB2b2lk
IEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFkKGNvbnN0
IEZsb2F0UXVhZCYgcXVhZCkKQEAgLTI4OTMsNyArMjkwNCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVy
OjpjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKQogICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGlt
ZXIuc3RvcCgpOwogfQogCi12b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGlt
ZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+KiB0aW1lcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpm
YWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8RXZlbnRI
YW5kbGVyPiogdGltZXIpCiB7CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1f
ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIpOwogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmgKaW5kZXggOTNjNmIxMGViOTg3NDRmYmY1NjdhODE5
ZjI4MTY4ZjMyMmExYzFjOC4uOWU3MjVkYmI1YzAwM2I5MjFjZTcyMTc4NTYwMWY5OTA3MmEwNWY3
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCkBAIC0yODAsNyArMjgwLDcgQEAgcHJp
dmF0ZToKICAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQq
KTsKICAgICBzdGF0aWMgYm9vbCBldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1
bHQoS2V5Ym9hcmRFdmVudCopOwogCi0gICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZp
cmVkKFRpbWVyPEV2ZW50SGFuZGxlcj4qKTsKKyAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRp
bWVyRmlyZWQoRGVmZXJyYWJsZU9uZVNob3RUaW1lcjxFdmVudEhhbmRsZXI+Kik7CiAgICAgdm9p
ZCBjYW5jZWxGYWtlTW91c2VNb3ZlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMp
CkBAIC00MDMsNyArNDAzLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbW91c2VEb3duTWF5U3Rh
cnRBdXRvc2Nyb2xsOwogICAgIGJvb2wgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lOwogCi0gICAg
VGltZXI8RXZlbnRIYW5kbGVyPiBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyOworICAgIERlZmVy
cmFibGVPbmVTaG90VGltZXI8RXZlbnRIYW5kbGVyPiBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVy
OwogCiAjaWYgRU5BQkxFKFNWRykKICAgICBib29sIG1fc3ZnUGFuOwpAQCAtNDU5LDcgKzQ1OSw3
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPE5vZGU+IG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9k
ZTsKICNlbmRpZgogCi0gICAgZG91YmxlIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uOworICAgIGRv
dWJsZSBtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlOwogICAgIFBsYXRmb3JtRXZl
bnQ6OlR5cGUgbV9iYXNlRXZlbnRUeXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGltZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKaW5k
ZXggYzU1Nzg5OTQwNmJhZTM2MGZjYTQ1ZTdhNjYzNmQ1OTUwNjM2ZDYyOC4uNGUwYjY1OWVlYzMz
ODE1ZGZhYjZiMTg1ZDBkNTg0ZjA3ZjRlMWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vVGltZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCkBA
IC0xNDAsNiArMTQwLDE3IEBAIHB1YmxpYzoKICAgICAgICAgc3RhcnRPbmVTaG90KG1fZGVsYXkp
OwogICAgIH0KIAorICAgIHZvaWQgc2V0RGVsYXkoZG91YmxlIGRlbGF5KQorICAgIHsKKyAgICAg
ICAgbV9kZWxheSA9IGRlbGF5OworICAgICAgICBpZiAoaXNBY3RpdmUoKSkgeworICAgICAgICAg
ICAgc3RvcCgpOworICAgICAgICAgICAgcmVzdGFydCgpOworICAgICAgICB9CisgICAgfQorCisg
ICAgZG91YmxlIGRlbGF5KCkgY29uc3QgeyByZXR1cm4gbV9kZWxheTsgfQorCiAgICAgdXNpbmcg
VGltZXJCYXNlOjpzdG9wOwogICAgIHVzaW5nIFRpbWVyQmFzZTo6aXNBY3RpdmU7CiBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IGQwYmU2ZDA3MjJhZThlNWIwNzM1YjUzYTU3MGU5ZjFkOWUyZWRmMzkuLmFhNDU4
MTdhODI0MjJmNmIwNzM5OWU0NDQxN2MyZmNmOGExOWYwZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBA
QAorMjAxMi0xMS0wNSAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFNob3VsZCBvbmx5IGZpcmUgYSBzaW5nbGUgc2V0IG9mIG1vdXNlIGV2ZW50cyBhbmQgdXBkYXRl
IGhvdmVyIHN0YXRlIG9uY2Ugd2hlbiBzY3JvbGxpbmcgaXMgZG9uZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTk5NDAKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBiYXNpYyB0aHJvdHRsaW5nLiBJ
IGNvdWxkbid0IHRoaW5rIG9mIGEgZ29vZCB3YXkgdG8gdGVzdCBjaGFuZ2luZworICAgICAgICB0
aGUgZGVsYXkgdGhhdCB3b3VsZG4ndCBtYWtlIGZvciBhIHRlc3QgdGhhdCB0YWtlcyBtaW51dGVz
IHRvIHJ1bi4KKworICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhy
b3R0bGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2Zh
a2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNSAgQmV0
aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTAwMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQwMzdhMzQ4YWQ0YjkyYjU0ZDQ2ODJiYTk3MmM5Y2I5ZjI3
MDI5MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2Ut
bW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNT
IG51bWJlck9mTW91c2VNb3ZlcyBpcyAwCitQQVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAxCitQ
QVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjk3ZDBkZjZlMGMzMTg1MWM4NmVlY2YzNDQ1ZTA2MWMxODA0MTBhYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhy
b3R0bGluZy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgor
Ym9keSB7CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KK2RpdiB7CisgICAgaGVpZ2h0OiAxMDBw
eDsKK30KKy5wb2ludGVyIHsKKyAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgYmFja2dyb3VuZC1j
b2xvcjogc2FsbW9uOworfQorLnBsYWluIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7
Cit9Cis8L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InJ1bk5leHRUZXN0KCkiPgorCis8c2NyaXB0Pgor
Zm9yICh2YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykgeworICAgIGRvY3VtZW50LndyaXRlKCc8ZGl2
IGNsYXNzPXBvaW50ZXI+PC9kaXY+PGRpdiBjbGFzcz1wbGFpbj48L2Rpdj4nKTsKK30KKworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDUw
KTsKKwordmFyIG51bWJlck9mTW91c2VNb3ZlcyA9IDA7Citkb2N1bWVudC5ib2R5Lm9ubW91c2Vt
b3ZlID0gZnVuY3Rpb24oKSB7CisgICAgdmFyIHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAgICB3aGls
ZSAoRGF0ZS5ub3coKSAtIHN0YXJ0IDwgbW91c2VNb3ZlRHVyYXRpb24pIHsKKyAgICB9CisgICAg
bnVtYmVyT2ZNb3VzZU1vdmVzKys7CisKKyAgICBpZiAoZGVsYXlzLmxlbmd0aCkKKyAgICAgICAg
cnVuTmV4dFRlc3QoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mTW91
c2VNb3ZlcyIsIFN0cmluZyhleHBlY3RlZE51bWJlck9mTW91c2VNb3ZlcykpOworICAgICAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9CisKK30KKwordmFyIGRlbGF5cyA9IFs1LCAyMDBdOwordmFyIGV4cGVjdGVkTnVt
YmVyT2ZNb3VzZU1vdmVzID0gZGVsYXlzLmxlbmd0aDsKKworZnVuY3Rpb24gcnVuTmV4dFRlc3Qo
KQoreworICAgIHNob3VsZEJlKCJudW1iZXJPZk1vdXNlTW92ZXMiLCBTdHJpbmcoZXhwZWN0ZWRO
dW1iZXJPZk1vdXNlTW92ZXMgLSBkZWxheXMubGVuZ3RoKSk7CisgICAgbW91c2VNb3ZlRHVyYXRp
b24gPSBkZWxheXMuc2hpZnQoKTsKKyAgICB2YXIgcG9zaXRpb24gPSA3NSAqIGRlbGF5cy5sZW5n
dGg7CisgICAgd2luZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uKTsKKyAgICB3aW5kb3cuc2Nyb2xs
VG8oMCwgcG9zaXRpb24gKyAyNSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAg
ICAgd2luZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uICsgNTApOworICAgIH0sIDApOworfQorPC9z
Y3JpcHQ+Cis8L2JvZHk+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172424</attachid>
            <date>2012-11-05 15:51:18 -0800</date>
            <delta_ts>2012-11-09 15:43:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99940-20121105154932.patch</filename>
            <type>text/plain</type>
            <size>13110</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMzNTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2ZkN2U2ZjJlZjI1OTNk
NWM4YWYzYjI5YjM3NzkwMDIzN2Y0ZTkwZi4uZTU4NzFkMDIxODNmMGZmMmUxNjA4MGNiNWEzYmVl
YzQwNmMyMWY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTA1ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBh
IHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3
aGVuIHNjcm9sbGluZyBpcyBkb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC1Vc2UgYSBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIGluc3RlYWQgb2YgYSBU
aW1lci4gQnkgcmVzZXR0aW5nIHdoZW4gdGhlCisgICAgICAgIHRpbWVyIGlzIGZpcmVkLCB3ZSBl
bnN1cmUgdGhlIGFjdHVhbCBnb2FsIG9mIG5vdCBmaXJpbmcgZmFrZSBtb3VzZSBldmVudHMKKyAg
ICAgICAgdW50aWwgdGhlIHNjcm9sbCBpcyBjb21wbGV0ZWQuIFRoaXMgaXMgdGhlIGNvcmUgcGFy
dCBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgLUNoYW5nZSBvdXIgbW91c2UgZXZlbnQgdGhyb3R0
bGluZyB0byBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIGhvdyBsb25nCisgICAgICAgIG1vdXNl
IGV2ZW50cyB0YWtlIGFuZCBhZGp1c3QgdGhyb3R0bGluZyBhcHByb3ByaWF0ZWx5LgorICAgICAg
ICBUZXN0OiBmYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmcuaHRtbAor
ICAgICAgICAtTWFpbnRhaW4gYSBtaW5pbXVtIHRocm90dGxlIG9mIDEwMG1zLgorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcjo6UnVubmluZ0F2ZXJhZ2VEdXJh
dGlvblRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRy
YWNrZXI6On5SdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcik6CisgICAgICAgIEtlZXAgdHJh
Y2sgb2YgYSBydW5uaW5nIGF2ZXJhZ2UgaW5zdGVhZCBvZiBtYXguIFRoaXMgbGV0cyB1cyBhZGp1
c3QgdGhyb3R0bGluZworICAgICAgICBkeW5hbWljYWxseSB3aXRob3V0IHB1bmlzaGluZyBhIHBh
Z2UgZm9yIGhhdmluZyBhIHNpbmdsZSBtb3VzZSBldmVudCBoYW5kbGVyCisgICAgICAgIHRoYXQg
dGFrZXMgZGlzcHJvcG9ydGlvbmF0ZWx5IGxvbmcuCisgICAgICAgIChSdW5uaW5nQXZlcmFnZUR1
cmF0aW9uVHJhY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVT
aG90VGltZXI6OnNldERlbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90
VGltZXI6OmRlbGF5KToKKyAgICAgICAgQWRkIGEgd2F5IG9mIGFkanVzdGluZyB0aGUgdGltZXIg
ZGVsYXkuCisKIDIwMTItMTEtMDUgIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDEwMDEKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAppbmRleCA5MjA1NWExMjMzYTc4NDY5NTJiN2Ji
Y2ZjMTFhZDczYzVjODNlOThmLi43ZDQ5OWY4ZTQzYmE5M2NmYmNjNzdjMzI0MTI2ZDY4MDdkY2Rh
N2FiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCkBAIC0xMzYsMTEgKzEzNiwx
NyBAQCB1c2luZyBuYW1lc3BhY2UgU1ZHTmFtZXM7CiAvLyBXaGVuIHRoZSBhdXRvc2Nyb2xsIG9y
IHRoZSBwYW5TY3JvbGwgaXMgdHJpZ2dlcmVkIHdoZW4gZG8gdGhlIHNjcm9sbCBldmVyeSAwLjA1
cyB0byBtYWtlIGl0IHNtb290aAogY29uc3QgZG91YmxlIGF1dG9zY3JvbGxJbnRlcnZhbCA9IDAu
MDU7CiAKLS8vIFRoZSBhbW91bnQgb2YgdGltZSB0byB3YWl0IGJlZm9yZSBzZW5kaW5nIGEgZmFr
ZSBtb3VzZSBldmVudCwgdHJpZ2dlcmVkCi0vLyBkdXJpbmcgYSBzY3JvbGwuIFRoZSBzaG9ydCBp
bnRlcnZhbCBpcyB1c2VkIGlmIHRoZSBjb250ZW50IHJlc3BvbmRzIHRvIHRoZSBtb3VzZSBldmVu
dHMgcXVpY2tseSBlbm91Z2gsCi0vLyBvdGhlcndpc2UgdGhlIGxvbmcgaW50ZXJ2YWwgaXMgdXNl
ZC4KLWNvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlU2hvcnRJbnRlcnZhbCA9IDAuMTsKLWNvbnN0
IGRvdWJsZSBmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsID0gMC4yNTA7CisvLyBUaGUgYW1vdW50
IG9mIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhIGZha2UgbW91c2UgZXZlbnQsIHRyaWdn
ZXJlZCBkdXJpbmcgYSBzY3JvbGwuCitjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92ZU1pbmltdW1J
bnRlcnZhbCA9IDAuMTsKKy8vIEFtb3VudCB0byBpbmNyZWFzZSB0aGUgZmFrZSBtb3VzZSBldmVu
dCB0aHJvdHRsaW5nIHdoZW4gdGhlIHJ1bm5pbmcgYXZlcmFnZSBleGNlZWRzIHRoZSBkZWxheS4K
Ky8vIFBpY2tlZCBmYWlybHkgYXJiaXRyYXJpbHkuCitjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92
ZUludGVydmFsSW5jcmVhc2UgPSAwLjA1OworY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVSdW5u
aW5nQXZlcmFnZUNvdW50ID0gMTA7CisvLyBEZWNyZWFzZSB0aGUgZmFrZU1vdXNlTW92ZUludGVy
dmFsIHdoZW4gdGhlIGN1cnJlbnQgZGVsYXkgaXMgPjJ4IHRoZSBydW5uaW5nIGF2ZXJhZ2UsCisv
LyBidXQgb25seSBkZWNyZWFzZSB0byAzLzQgdGhlIGN1cnJlbnQgZGVsYXkgdG8gYXZvaWQgdG9v
IG11Y2ggdGhyYXNoaW5nLgorLy8gTm90IHN1cmUgdGhpcyBkaXN0aW5jdGlvbiByZWFsbHkgbWF0
dGVycyBpbiBwcmFjdGljZS4KK2NvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1
Y3Rpb25MaW1pdCA9IDAuNTsKK2NvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1
Y3Rpb25GcmFjdGlvbiA9IDAuNzU7CiAKIGVudW0gTm9DdXJzb3JDaGFuZ2VUeXBlIHsgTm9DdXJz
b3JDaGFuZ2UgfTsKIApAQCAtMTU3LDIxICsxNjMsMjggQEAgcHJpdmF0ZToKICAgICBDdXJzb3Ig
bV9jdXJzb3I7CiB9OwogCi1jbGFzcyBNYXhpbXVtRHVyYXRpb25UcmFja2VyIHsKK2NsYXNzIFJ1
bm5pbmdBdmVyYWdlRHVyYXRpb25UcmFja2VyIHsKIHB1YmxpYzoKLSAgICBleHBsaWNpdCBNYXhp
bXVtRHVyYXRpb25UcmFja2VyKGRvdWJsZSAqbWF4RHVyYXRpb24pCi0gICAgICAgIDogbV9tYXhE
dXJhdGlvbihtYXhEdXJhdGlvbikKKyAgICBSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcihk
b3VibGUqIGF2ZXJhZ2UsIHVuc2lnbmVkIG51bWJlck9mUnVuc1RvVHJhY2spCisgICAgICAgIDog
bV9hdmVyYWdlKGF2ZXJhZ2UpCisgICAgICAgICwgbV9udW1iZXJPZlJ1bnNUb1RyYWNrKG51bWJl
ck9mUnVuc1RvVHJhY2spCiAgICAgICAgICwgbV9zdGFydChtb25vdG9uaWNhbGx5SW5jcmVhc2lu
Z1RpbWUoKSkKICAgICB7CiAgICAgfQogCi0gICAgfk1heGltdW1EdXJhdGlvblRyYWNrZXIoKQor
ICAgIH5SdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcigpCiAgICAgewotICAgICAgICAqbV9t
YXhEdXJhdGlvbiA9IG1heCgqbV9tYXhEdXJhdGlvbiwgbW9ub3RvbmljYWxseUluY3JlYXNpbmdU
aW1lKCkgLSBtX3N0YXJ0KTsKKyAgICAgICAgZG91YmxlIGR1cmF0aW9uID0gbW9ub3RvbmljYWxs
eUluY3JlYXNpbmdUaW1lKCkgLSBtX3N0YXJ0OworICAgICAgICBpZiAoISptX2F2ZXJhZ2UpIHsK
KyAgICAgICAgICAgICptX2F2ZXJhZ2UgPSBkdXJhdGlvbjsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorICAgICAgICAqbV9hdmVyYWdlID0gKCptX2F2ZXJhZ2UgKiAobV9udW1iZXJP
ZlJ1bnNUb1RyYWNrIC0gMSkgKyAoZHVyYXRpb24pKSAvIG1fbnVtYmVyT2ZSdW5zVG9UcmFjazsK
ICAgICB9CiAKIHByaXZhdGU6Ci0gICAgZG91YmxlKiBtX21heER1cmF0aW9uOworICAgIGRvdWJs
ZSogbV9hdmVyYWdlOworICAgIHVuc2lnbmVkIG1fbnVtYmVyT2ZSdW5zVG9UcmFjazsKICAgICBk
b3VibGUgbV9zdGFydDsKIH07CiAKQEAgLTMxNiw3ICszMjksNyBAQCBFdmVudEhhbmRsZXI6OkV2
ZW50SGFuZGxlcihGcmFtZSogZnJhbWUpCiAgICAgLCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKGZh
bHNlKQogICAgICwgbV9tb3VzZURvd25NYXlTdGFydEF1dG9zY3JvbGwoZmFsc2UpCiAgICAgLCBt
X21vdXNlRG93bldhc0luU3ViZnJhbWUoZmFsc2UpCi0gICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQp
CisgICAgLCBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKHRoaXMsICZFdmVudEhhbmRsZXI6OmZh
a2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQsIGZha2VNb3VzZU1vdmVNaW5pbXVtSW50ZXJ2YWwp
CiAjaWYgRU5BQkxFKFNWRykKICAgICAsIG1fc3ZnUGFuKGZhbHNlKQogI2VuZGlmCkBAIC0zMzMs
NyArMzQ2LDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUqIGZyYW1lKQogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgLCBtX3RvdWNoUHJlc3NlZChmYWxzZSkKICNlbmRp
ZgotICAgICwgbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24oMCkKKyAgICAsIG1fbW91c2VNb3ZlZER1
cmF0aW9uUnVubmluZ0F2ZXJhZ2UoMCkKICAgICAsIG1fYmFzZUV2ZW50VHlwZShQbGF0Zm9ybUV2
ZW50OjpOb1R5cGUpCiB7CiB9CkBAIC0zODUsNyArMzk4LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6
OmNsZWFyKCkKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiAgICAgbV9zY3JvbGxHZXN0dXJl
SGFuZGxpbmdOb2RlID0gMDsKICNlbmRpZgotICAgIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID0g
MDsKKyAgICBtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlID0gMDsKICAgICBtX2Jh
c2VFdmVudFR5cGUgPSBQbGF0Zm9ybUV2ZW50OjpOb1R5cGU7CiB9CiAKQEAgLTE3MzIsNyArMTc0
NSw3IEBAIHN0YXRpYyBSZW5kZXJMYXllciogbGF5ZXJGb3JOb2RlKE5vZGUqIG5vZGUpCiBib29s
IEV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIGV2ZW50
KQogewogICAgIFJlZlB0cjxGcmFtZVZpZXc+IHByb3RlY3RvcihtX2ZyYW1lLT52aWV3KCkpOwot
ICAgIE1heGltdW1EdXJhdGlvblRyYWNrZXIgbWF4RHVyYXRpb25UcmFja2VyKCZtX21heE1vdXNl
TW92ZWREdXJhdGlvbik7CisgICAgUnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIgZHVyYXRp
b25UcmFja2VyKCZtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlLCBmYWtlTW91c2VN
b3ZlUnVubmluZ0F2ZXJhZ2VDb3VudCk7CiAKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBA
IC0yODYyLDE4ICsyODc1LDE1IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3Vz
ZU1vdmVFdmVudFNvb24oKQogICAgIGlmIChzZXR0aW5ncyAmJiAhc2V0dGluZ3MtPmRldmljZVN1
cHBvcnRzTW91c2UoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgLy8gSWYgdGhlIGNvbnRlbnQg
aGFzIGV2ZXIgdGFrZW4gbG9uZ2VyIHRoYW4gZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwgd2UK
LSAgICAvLyByZXNjaGVkdWxlIHRoZSB0aW1lciBhbmQgdXNlIGEgbG9uZ2VyIHRpbWUuIFRoaXMg
d2lsbCBjYXVzZSB0aGUgY29udGVudAotICAgIC8vIHRvIHJlY2VpdmUgdGhlc2UgbW92ZXMgb25s
eSBhZnRlciB0aGUgdXNlciBpcyBkb25lIHNjcm9sbGluZywgcmVkdWNpbmcKLSAgICAvLyBwYXVz
ZXMgZHVyaW5nIHRoZSBzY3JvbGwuCi0gICAgaWYgKG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uID4g
ZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwpIHsKLSAgICAgICAgaWYgKG1fZmFrZU1vdXNlTW92
ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50
VGltZXIuc3RvcCgpOwotICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0YXJ0T25l
U2hvdChmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsKTsKLSAgICB9IGVsc2UgewotICAgICAgICBp
ZiAoIW1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAgICAgIG1f
ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RhcnRPbmVTaG90KGZha2VNb3VzZU1vdmVTaG9ydElu
dGVydmFsKTsKLSAgICB9CisgICAgLy8gQWRqdXN0IHRoZSBtb3VzZSBtb3ZlIHRocm90dGxpbmcg
c28gdGhhdCBpdCdzIHJvdWdobHkgYXJvdW5kIG91ciBydW5uaW5nIGF2ZXJhZ2Ugb2YgdGhlIGR1
cmF0aW9uIG9mIG1vdXNlbW92ZSBldmVudHMuCisgICAgLy8gVGhpcyB3aWxsIGNhdXNlIHRoZSBj
b250ZW50IHRvIHJlY2VpdmUgdGhlc2UgbW92ZXMgb25seSBhZnRlciB0aGUgdXNlciBpcyBkb25l
IHNjcm9sbGluZywgcmVkdWNpbmcgcGF1c2VzIGR1cmluZyB0aGUgc2Nyb2xsLgorICAgIC8vIFRo
aXMgd2lsbCBvbmx5IG1lYXN1cmUgdGhlIGR1cmF0aW9uIG9mIHRoZSBtb3VzZW1vdmUgZXZlbnQg
dGhvdWdoIChub3QgZm9yIGV4YW1wbGUgbGF5b3V0cyksCisgICAgLy8gc28gbWFpbnRhaW4gYXQg
bGVhc3QgYSBtaW5pbXVtIGludGVydmFsLgorICAgIGlmIChtX21vdXNlTW92ZWREdXJhdGlvblJ1
bm5pbmdBdmVyYWdlID4gbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5kZWxheSgpKQorICAgICAg
ICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnNldERlbGF5KG1fbW91c2VNb3ZlZER1cmF0aW9u
UnVubmluZ0F2ZXJhZ2UgKyBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxJbmNyZWFzZSk7CisgICAgZWxz
ZSBpZiAobV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSA8IGZha2VNb3VzZU1vdmVJ
bnRlcnZhbFJlZHVjdGlvbkxpbWl0ICogbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5kZWxheSgp
KQorICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnNldERlbGF5KG1heChmYWtlTW91
c2VNb3ZlTWluaW11bUludGVydmFsLCBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1Y3Rpb25GcmFj
dGlvbiAqIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuZGVsYXkoKSkpOworICAgIG1fZmFrZU1v
dXNlTW92ZUV2ZW50VGltZXIucmVzdGFydCgpOwogfQogCiB2b2lkIEV2ZW50SGFuZGxlcjo6ZGlz
cGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uSW5RdWFkKGNvbnN0IEZsb2F0UXVhZCYgcXVhZCkK
QEAgLTI4OTMsNyArMjkwMyw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjYW5jZWxGYWtlTW91c2VN
b3ZlRXZlbnQoKQogICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RvcCgpOwogfQogCi12
b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVu
dEhhbmRsZXI+KiB0aW1lcikKK3ZvaWQgRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRU
aW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8RXZlbnRIYW5kbGVyPiogdGltZXIpCiB7
CiAgICAgQVNTRVJUX1VOVVNFRCh0aW1lciwgdGltZXIgPT0gJm1fZmFrZU1vdXNlTW92ZUV2ZW50
VGltZXIpOwogICAgIEFTU0VSVCghbV9tb3VzZVByZXNzZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRI
YW5kbGVyLmgKaW5kZXggOTNjNmIxMGViOTg3NDRmYmY1NjdhODE5ZjI4MTY4ZjMyMmExYzFjOC4u
OWU3MjVkYmI1YzAwM2I5MjFjZTcyMTc4NTYwMWY5OTA3MmEwNWY3ZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0V2ZW50SGFuZGxlci5oCkBAIC0yODAsNyArMjgwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMg
Ym9vbCBpc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKICAgICBzdGF0aWMgYm9v
bCBldmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCop
OwogCi0gICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFu
ZGxlcj4qKTsKKyAgICB2b2lkIGZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoRGVmZXJyYWJs
ZU9uZVNob3RUaW1lcjxFdmVudEhhbmRsZXI+Kik7CiAgICAgdm9pZCBjYW5jZWxGYWtlTW91c2VN
b3ZlRXZlbnQoKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVOVFMpCkBAIC00MDMsNyArNDAzLDcg
QEAgcHJpdmF0ZToKICAgICBib29sIG1fbW91c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsOwogICAg
IGJvb2wgbV9tb3VzZURvd25XYXNJblN1YmZyYW1lOwogCi0gICAgVGltZXI8RXZlbnRIYW5kbGVy
PiBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyOworICAgIERlZmVycmFibGVPbmVTaG90VGltZXI8
RXZlbnRIYW5kbGVyPiBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyOwogCiAjaWYgRU5BQkxFKFNW
RykKICAgICBib29sIG1fc3ZnUGFuOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPE5vZGU+IG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZTsKICNlbmRpZgogCi0gICAg
ZG91YmxlIG1fbWF4TW91c2VNb3ZlZER1cmF0aW9uOworICAgIGRvdWJsZSBtX21vdXNlTW92ZWRE
dXJhdGlvblJ1bm5pbmdBdmVyYWdlOwogICAgIFBsYXRmb3JtRXZlbnQ6OlR5cGUgbV9iYXNlRXZl
bnRUeXBlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKaW5kZXggYzU1Nzg5OTQwNmJhZTM2
MGZjYTQ1ZTdhNjYzNmQ1OTUwNjM2ZDYyOC4uNGUwYjY1OWVlYzMzODE1ZGZhYjZiMTg1ZDBkNTg0
ZjA3ZjRlMWNiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vVGltZXIuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5oCkBAIC0xNDAsNiArMTQwLDE3IEBA
IHB1YmxpYzoKICAgICAgICAgc3RhcnRPbmVTaG90KG1fZGVsYXkpOwogICAgIH0KIAorICAgIHZv
aWQgc2V0RGVsYXkoZG91YmxlIGRlbGF5KQorICAgIHsKKyAgICAgICAgbV9kZWxheSA9IGRlbGF5
OworICAgICAgICBpZiAoaXNBY3RpdmUoKSkgeworICAgICAgICAgICAgc3RvcCgpOworICAgICAg
ICAgICAgcmVzdGFydCgpOworICAgICAgICB9CisgICAgfQorCisgICAgZG91YmxlIGRlbGF5KCkg
Y29uc3QgeyByZXR1cm4gbV9kZWxheTsgfQorCiAgICAgdXNpbmcgVGltZXJCYXNlOjpzdG9wOwog
ICAgIHVzaW5nIFRpbWVyQmFzZTo6aXNBY3RpdmU7CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQwYmU2ZDA3
MjJhZThlNWIwNzM1YjUzYTU3MGU5ZjFkOWUyZWRmMzkuLmFhNDU4MTdhODI0MjJmNmIwNzM5OWU0
NDQxN2MyZmNmOGExOWYwZDEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0xMS0wNSAgT2ph
biBWYWZhaSAgPG9qYW5AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFNob3VsZCBvbmx5IGZpcmUg
YSBzaW5nbGUgc2V0IG9mIG1vdXNlIGV2ZW50cyBhbmQgdXBkYXRlIGhvdmVyIHN0YXRlIG9uY2Ug
d2hlbiBzY3JvbGxpbmcgaXMgZG9uZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9OTk5NDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUZXN0cyBiYXNpYyB0aHJvdHRsaW5nLiBJIGNvdWxkbid0IHRoaW5rIG9m
IGEgZ29vZCB3YXkgdG8gdGVzdCBjaGFuZ2luZworICAgICAgICB0aGUgZGVsYXkgdGhhdCB3b3Vs
ZG4ndCBtYWtlIGZvciBhIHRlc3QgdGhhdCB0YWtlcyBtaW51dGVzIHRvIHJ1bi4KKworICAgICAg
ICAqIGZhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhy
b3R0bGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0xMS0wNSAgQmV0aCBEYWtpbiAgPGJkYWtpbkBh
cHBsZS5jb20+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEwMTAwMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcvZmFrZS1t
b3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZjQwMzdhMzQ4YWQ0YjkyYjU0ZDQ2ODJiYTk3MmM5Y2I5ZjI3MDI5MwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0
bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIG51bWJlck9mTW91c2VNb3Zl
cyBpcyAwCitQQVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAxCitQQVNTIG51bWJlck9mTW91c2VN
b3ZlcyBpcyAyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2Ut
bW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9zY3JvbGxpbmcv
ZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjk3ZDBkZjZlMGMz
MTg1MWM4NmVlY2YzNDQ1ZTA2MWMxODA0MTBhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sCkBAIC0w
LDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorYm9keSB7CisgICAgb3ZlcmZs
b3c6IHNjcm9sbDsKK30KK2RpdiB7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKy5wb2ludGVyIHsK
KyAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgYmFja2dyb3VuZC1jb2xvcjogc2FsbW9uOworfQor
LnBsYWluIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cit9Cis8L3N0eWxlPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8Ym9k
eSBvbmxvYWQ9InJ1bk5leHRUZXN0KCkiPgorCis8c2NyaXB0PgorZm9yICh2YXIgaSA9IDA7IGkg
PCAxMDA7IGkrKykgeworICAgIGRvY3VtZW50LndyaXRlKCc8ZGl2IGNsYXNzPXBvaW50ZXI+PC9k
aXY+PGRpdiBjbGFzcz1wbGFpbj48L2Rpdj4nKTsKK30KKworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDUwKTsKKwordmFyIG51bWJlck9m
TW91c2VNb3ZlcyA9IDA7Citkb2N1bWVudC5ib2R5Lm9ubW91c2Vtb3ZlID0gZnVuY3Rpb24oKSB7
CisgICAgdmFyIHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAgICB3aGlsZSAoRGF0ZS5ub3coKSAtIHN0
YXJ0IDwgbW91c2VNb3ZlRHVyYXRpb24pIHsKKyAgICB9CisgICAgbnVtYmVyT2ZNb3VzZU1vdmVz
Kys7CisKKyAgICBpZiAoZGVsYXlzLmxlbmd0aCkKKyAgICAgICAgcnVuTmV4dFRlc3QoKTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mTW91c2VNb3ZlcyIsIFN0cmluZyhl
eHBlY3RlZE51bWJlck9mTW91c2VNb3ZlcykpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKK30KKwor
dmFyIGRlbGF5cyA9IFs1LCAyMDBdOwordmFyIGV4cGVjdGVkTnVtYmVyT2ZNb3VzZU1vdmVzID0g
ZGVsYXlzLmxlbmd0aDsKKworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQoreworICAgIHNob3VsZEJl
KCJudW1iZXJPZk1vdXNlTW92ZXMiLCBTdHJpbmcoZXhwZWN0ZWROdW1iZXJPZk1vdXNlTW92ZXMg
LSBkZWxheXMubGVuZ3RoKSk7CisgICAgbW91c2VNb3ZlRHVyYXRpb24gPSBkZWxheXMuc2hpZnQo
KTsKKyAgICB2YXIgcG9zaXRpb24gPSA3NSAqIGRlbGF5cy5sZW5ndGg7CisgICAgd2luZG93LnNj
cm9sbFRvKDAsIHBvc2l0aW9uKTsKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwgcG9zaXRpb24gKyAy
NSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgd2luZG93LnNjcm9sbFRv
KDAsIHBvc2l0aW9uICsgNTApOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+Cis8L2JvZHk+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>173386</attachid>
            <date>2012-11-09 15:43:27 -0800</date>
            <delta_ts>2015-04-23 10:09:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99940-20121109154134.patch</filename>
            <type>text/plain</type>
            <size>14086</size>
            <attacher name="Ojan Vafai">ojan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTM0MTE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FhNjc0YjhjOWI1MDFi
MDZiMWI2NzI2ODc5MzJkY2NiM2MyNGNmMC4uNDA4NzE5OGNmOGI0MjgxNGY4NzEyZGM5ZmE5OTRm
OTAzMDcyMjZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEyLTExLTA5ICBPamFu
IFZhZmFpICA8b2phbkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgU2hvdWxkIG9ubHkgZmlyZSBh
IHNpbmdsZSBzZXQgb2YgbW91c2UgZXZlbnRzIGFuZCB1cGRhdGUgaG92ZXIgc3RhdGUgb25jZSB3
aGVuIHNjcm9sbGluZyBpcyBkb25lCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIC1Vc2UgYSBEZWZlcnJhYmxlT25lU2hvdFRpbWVyIGluc3RlYWQgb2YgYSBU
aW1lci4gQnkgcmVzZXR0aW5nIHdoZW4gdGhlCisgICAgICAgIHRpbWVyIGlzIGZpcmVkLCB3ZSBl
bnN1cmUgdGhlIGFjdHVhbCBnb2FsIG9mIG5vdCBmaXJpbmcgZmFrZSBtb3VzZSBldmVudHMKKyAg
ICAgICAgdW50aWwgdGhlIHNjcm9sbCBpcyBjb21wbGV0ZWQuIFRoaXMgaXMgdGhlIGNvcmUgcGFy
dCBvZiB0aGlzIGNoYW5nZS4KKyAgICAgICAgLUNoYW5nZSBvdXIgbW91c2UgZXZlbnQgdGhyb3R0
bGluZyB0byBrZWVwIGEgcnVubmluZyBhdmVyYWdlIG9mIGhvdyBsb25nCisgICAgICAgIG1vdXNl
IGV2ZW50cyB0YWtlIGFuZCBhZGp1c3QgdGhyb3R0bGluZyBhcHByb3ByaWF0ZWx5LgorICAgICAg
ICBUZXN0OiBmYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmcuaHRtbAor
ICAgICAgICAtTWFpbnRhaW4gYSBtaW5pbXVtIHRocm90dGxlIG9mIDEwMG1zLgorCisgICAgICAg
ICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpSdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcjo6UnVubmluZ0F2ZXJhZ2VEdXJh
dGlvblRyYWNrZXIpOgorICAgICAgICAoV2ViQ29yZTo6UnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRy
YWNrZXI6On5SdW5uaW5nQXZlcmFnZUR1cmF0aW9uVHJhY2tlcik6CisgICAgICAgIEtlZXAgdHJh
Y2sgb2YgYSBydW5uaW5nIGF2ZXJhZ2UgaW5zdGVhZCBvZiBtYXguIFRoaXMgbGV0cyB1cyBhZGp1
c3QgdGhyb3R0bGluZworICAgICAgICBkeW5hbWljYWxseSB3aXRob3V0IHB1bmlzaGluZyBhIHBh
Z2UgZm9yIGhhdmluZyBhIHNpbmdsZSBtb3VzZSBldmVudCBoYW5kbGVyCisgICAgICAgIHRoYXQg
dGFrZXMgZGlzcHJvcG9ydGlvbmF0ZWx5IGxvbmcuCisgICAgICAgIChSdW5uaW5nQXZlcmFnZUR1
cmF0aW9uVHJhY2tlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OkV2ZW50SGFu
ZGxlcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmNsZWFyKToKKyAgICAgICAg
KFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJDb3JlOjpF
dmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2
ZW50SGFuZGxlcjo6ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKToKKyAgICAgICAgKFdl
YkNvcmU6OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZCk6CisgICAg
ICAgICogcGFnZS9FdmVudEhhbmRsZXIuaDoKKyAgICAgICAgKEV2ZW50SGFuZGxlcik6CisgICAg
ICAgICogcGxhdGZvcm0vVGltZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVT
aG90VGltZXI6OnNldERlbGF5KToKKyAgICAgICAgKFdlYkNvcmU6OkRlZmVycmFibGVPbmVTaG90
VGltZXI6OmRlbGF5KToKKyAgICAgICAgQWRkIGEgd2F5IG9mIGFkanVzdGluZyB0aGUgdGltZXIg
ZGVsYXkuCisKIDIwMTItMTEtMDkgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+
CiAKICAgICAgICAgSFRNTCBBdHRyaWJ1dGVzIG5hbWVzIGFuZCB2YWx1ZXMgc2hvdWxkIGJlIGNy
ZWF0ZWQgYXMgOCBiaXQgc3RyaW5nIHdoZXJlIHBvc3NpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50
SGFuZGxlci5jcHAKaW5kZXggMDdlMWI3M2FiOTgyMzJiMGY4MzQ0MTk2NDVmMzhkNWM5NjVmYzRh
YS4uYzRiYWYwMmU4MTNkZGJiOTRmMTAxYjU5YWVjNDAyNTc5NmQwNmEwZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTM2LDExICsxMzYsMTcgQEAgdXNpbmcgbmFtZXNw
YWNlIFNWR05hbWVzOwogLy8gV2hlbiB0aGUgYXV0b3Njcm9sbCBvciB0aGUgcGFuU2Nyb2xsIGlz
IHRyaWdnZXJlZCB3aGVuIGRvIHRoZSBzY3JvbGwgZXZlcnkgMC4wNXMgdG8gbWFrZSBpdCBzbW9v
dGgKIGNvbnN0IGRvdWJsZSBhdXRvc2Nyb2xsSW50ZXJ2YWwgPSAwLjA1OwogCi0vLyBUaGUgYW1v
dW50IG9mIHRpbWUgdG8gd2FpdCBiZWZvcmUgc2VuZGluZyBhIGZha2UgbW91c2UgZXZlbnQsIHRy
aWdnZXJlZAotLy8gZHVyaW5nIGEgc2Nyb2xsLiBUaGUgc2hvcnQgaW50ZXJ2YWwgaXMgdXNlZCBp
ZiB0aGUgY29udGVudCByZXNwb25kcyB0byB0aGUgbW91c2UgZXZlbnRzIHF1aWNrbHkgZW5vdWdo
LAotLy8gb3RoZXJ3aXNlIHRoZSBsb25nIGludGVydmFsIGlzIHVzZWQuCi1jb25zdCBkb3VibGUg
ZmFrZU1vdXNlTW92ZVNob3J0SW50ZXJ2YWwgPSAwLjE7Ci1jb25zdCBkb3VibGUgZmFrZU1vdXNl
TW92ZUxvbmdJbnRlcnZhbCA9IDAuMjUwOworLy8gVGhlIGFtb3VudCBvZiB0aW1lIHRvIHdhaXQg
YmVmb3JlIHNlbmRpbmcgYSBmYWtlIG1vdXNlIGV2ZW50LCB0cmlnZ2VyZWQgZHVyaW5nIGEgc2Ny
b2xsLgorY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVNaW5pbXVtSW50ZXJ2YWwgPSAwLjE7Cisv
LyBBbW91bnQgdG8gaW5jcmVhc2UgdGhlIGZha2UgbW91c2UgZXZlbnQgdGhyb3R0bGluZyB3aGVu
IHRoZSBydW5uaW5nIGF2ZXJhZ2UgZXhjZWVkcyB0aGUgZGVsYXkuCisvLyBQaWNrZWQgZmFpcmx5
IGFyYml0cmFyaWx5LgorY29uc3QgZG91YmxlIGZha2VNb3VzZU1vdmVJbnRlcnZhbEluY3JlYXNl
ID0gMC4wNTsKK2NvbnN0IGRvdWJsZSBmYWtlTW91c2VNb3ZlUnVubmluZ0F2ZXJhZ2VDb3VudCA9
IDEwOworLy8gRGVjcmVhc2UgdGhlIGZha2VNb3VzZU1vdmVJbnRlcnZhbCB3aGVuIHRoZSBjdXJy
ZW50IGRlbGF5IGlzID4yeCB0aGUgcnVubmluZyBhdmVyYWdlLAorLy8gYnV0IG9ubHkgZGVjcmVh
c2UgdG8gMy80IHRoZSBjdXJyZW50IGRlbGF5IHRvIGF2b2lkIHRvbyBtdWNoIHRocmFzaGluZy4K
Ky8vIE5vdCBzdXJlIHRoaXMgZGlzdGluY3Rpb24gcmVhbGx5IG1hdHRlcnMgaW4gcHJhY3RpY2Uu
Citjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92ZUludGVydmFsUmVkdWN0aW9uTGltaXQgPSAwLjU7
Citjb25zdCBkb3VibGUgZmFrZU1vdXNlTW92ZUludGVydmFsUmVkdWN0aW9uRnJhY3Rpb24gPSAw
Ljc1OwogCiBlbnVtIE5vQ3Vyc29yQ2hhbmdlVHlwZSB7IE5vQ3Vyc29yQ2hhbmdlIH07CiAKQEAg
LTE1NywyMSArMTYzLDI4IEBAIHByaXZhdGU6CiAgICAgQ3Vyc29yIG1fY3Vyc29yOwogfTsKIAot
Y2xhc3MgTWF4aW11bUR1cmF0aW9uVHJhY2tlciB7CitjbGFzcyBSdW5uaW5nQXZlcmFnZUR1cmF0
aW9uVHJhY2tlciB7CiBwdWJsaWM6Ci0gICAgZXhwbGljaXQgTWF4aW11bUR1cmF0aW9uVHJhY2tl
cihkb3VibGUgKm1heER1cmF0aW9uKQotICAgICAgICA6IG1fbWF4RHVyYXRpb24obWF4RHVyYXRp
b24pCisgICAgUnVubmluZ0F2ZXJhZ2VEdXJhdGlvblRyYWNrZXIoZG91YmxlKiBhdmVyYWdlLCB1
bnNpZ25lZCBudW1iZXJPZlJ1bnNUb1RyYWNrKQorICAgICAgICA6IG1fYXZlcmFnZShhdmVyYWdl
KQorICAgICAgICAsIG1fbnVtYmVyT2ZSdW5zVG9UcmFjayhudW1iZXJPZlJ1bnNUb1RyYWNrKQog
ICAgICAgICAsIG1fc3RhcnQobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkpCiAgICAgewog
ICAgIH0KIAotICAgIH5NYXhpbXVtRHVyYXRpb25UcmFja2VyKCkKKyAgICB+UnVubmluZ0F2ZXJh
Z2VEdXJhdGlvblRyYWNrZXIoKQogICAgIHsKLSAgICAgICAgKm1fbWF4RHVyYXRpb24gPSBtYXgo
Km1fbWF4RHVyYXRpb24sIG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gbV9zdGFydCk7
CisgICAgICAgIGRvdWJsZSBkdXJhdGlvbiA9IG1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgp
IC0gbV9zdGFydDsKKyAgICAgICAgaWYgKCEqbV9hdmVyYWdlKSB7CisgICAgICAgICAgICAqbV9h
dmVyYWdlID0gZHVyYXRpb247CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAg
ICAgKm1fYXZlcmFnZSA9ICgqbV9hdmVyYWdlICogKG1fbnVtYmVyT2ZSdW5zVG9UcmFjayAtIDEp
ICsgKGR1cmF0aW9uKSkgLyBtX251bWJlck9mUnVuc1RvVHJhY2s7CiAgICAgfQogCiBwcml2YXRl
OgotICAgIGRvdWJsZSogbV9tYXhEdXJhdGlvbjsKKyAgICBkb3VibGUqIG1fYXZlcmFnZTsKKyAg
ICB1bnNpZ25lZCBtX251bWJlck9mUnVuc1RvVHJhY2s7CiAgICAgZG91YmxlIG1fc3RhcnQ7CiB9
OwogCkBAIC0zMTYsNyArMzI5LDcgQEAgRXZlbnRIYW5kbGVyOjpFdmVudEhhbmRsZXIoRnJhbWUq
IGZyYW1lKQogICAgICwgbV9hdXRvc2Nyb2xsSW5Qcm9ncmVzcyhmYWxzZSkKICAgICAsIG1fbW91
c2VEb3duTWF5U3RhcnRBdXRvc2Nyb2xsKGZhbHNlKQogICAgICwgbV9tb3VzZURvd25XYXNJblN1
YmZyYW1lKGZhbHNlKQotICAgICwgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lcih0aGlzLCAmRXZl
bnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKQorICAgICwgbV9mYWtlTW91
c2VNb3ZlRXZlbnRUaW1lcih0aGlzLCAmRXZlbnRIYW5kbGVyOjpmYWtlTW91c2VNb3ZlRXZlbnRU
aW1lckZpcmVkLCBmYWtlTW91c2VNb3ZlTWluaW11bUludGVydmFsKQogI2lmIEVOQUJMRShTVkcp
CiAgICAgLCBtX3N2Z1BhbihmYWxzZSkKICNlbmRpZgpAQCAtMzMzLDcgKzM0Niw3IEBAIEV2ZW50
SGFuZGxlcjo6RXZlbnRIYW5kbGVyKEZyYW1lKiBmcmFtZSkKICNpZiBFTkFCTEUoVE9VQ0hfRVZF
TlRTKQogICAgICwgbV90b3VjaFByZXNzZWQoZmFsc2UpCiAjZW5kaWYKLSAgICAsIG1fbWF4TW91
c2VNb3ZlZER1cmF0aW9uKDApCisgICAgLCBtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVy
YWdlKDApCiAgICAgLCBtX2Jhc2VFdmVudFR5cGUoUGxhdGZvcm1FdmVudDo6Tm9UeXBlKQogewog
fQpAQCAtMzg1LDcgKzM5OCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpjbGVhcigpCiAjaWYgRU5B
QkxFKEdFU1RVUkVfRVZFTlRTKQogICAgIG1fc2Nyb2xsR2VzdHVyZUhhbmRsaW5nTm9kZSA9IDA7
CiAjZW5kaWYKLSAgICBtX21heE1vdXNlTW92ZWREdXJhdGlvbiA9IDA7CisgICAgbV9tb3VzZU1v
dmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSA9IDA7CiAgICAgbV9iYXNlRXZlbnRUeXBlID0gUGxh
dGZvcm1FdmVudDo6Tm9UeXBlOwogfQogCkBAIC0xNzMyLDcgKzE3NDUsNyBAQCBzdGF0aWMgUmVu
ZGVyTGF5ZXIqIGxheWVyRm9yTm9kZShOb2RlKiBub2RlKQogYm9vbCBFdmVudEhhbmRsZXI6Om1v
dXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50JiBldmVudCkKIHsKICAgICBSZWZQdHI8
RnJhbWVWaWV3PiBwcm90ZWN0b3IobV9mcmFtZS0+dmlldygpKTsKLSAgICBNYXhpbXVtRHVyYXRp
b25UcmFja2VyIG1heER1cmF0aW9uVHJhY2tlcigmbV9tYXhNb3VzZU1vdmVkRHVyYXRpb24pOwor
ICAgIFJ1bm5pbmdBdmVyYWdlRHVyYXRpb25UcmFja2VyIGR1cmF0aW9uVHJhY2tlcigmbV9tb3Vz
ZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSwgZmFrZU1vdXNlTW92ZVJ1bm5pbmdBdmVyYWdl
Q291bnQpOwogCiAKICNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjg2MiwxOCArMjg3NSwx
NSBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6ZGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRTb29uKCkK
ICAgICBpZiAoc2V0dGluZ3MgJiYgIXNldHRpbmdzLT5kZXZpY2VTdXBwb3J0c01vdXNlKCkpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIC8vIElmIHRoZSBjb250ZW50IGhhcyBldmVyIHRha2VuIGxv
bmdlciB0aGFuIGZha2VNb3VzZU1vdmVTaG9ydEludGVydmFsIHdlCi0gICAgLy8gcmVzY2hlZHVs
ZSB0aGUgdGltZXIgYW5kIHVzZSBhIGxvbmdlciB0aW1lLiBUaGlzIHdpbGwgY2F1c2UgdGhlIGNv
bnRlbnQKLSAgICAvLyB0byByZWNlaXZlIHRoZXNlIG1vdmVzIG9ubHkgYWZ0ZXIgdGhlIHVzZXIg
aXMgZG9uZSBzY3JvbGxpbmcsIHJlZHVjaW5nCi0gICAgLy8gcGF1c2VzIGR1cmluZyB0aGUgc2Ny
b2xsLgotICAgIGlmIChtX21heE1vdXNlTW92ZWREdXJhdGlvbiA+IGZha2VNb3VzZU1vdmVTaG9y
dEludGVydmFsKSB7Ci0gICAgICAgIGlmIChtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLmlzQWN0
aXZlKCkpCi0gICAgICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0b3AoKTsKLSAg
ICAgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zdGFydE9uZVNob3QoZmFrZU1vdXNlTW92
ZUxvbmdJbnRlcnZhbCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKCFtX2Zha2VNb3VzZU1v
dmVFdmVudFRpbWVyLmlzQWN0aXZlKCkpCi0gICAgICAgICAgICBtX2Zha2VNb3VzZU1vdmVFdmVu
dFRpbWVyLnN0YXJ0T25lU2hvdChmYWtlTW91c2VNb3ZlU2hvcnRJbnRlcnZhbCk7Ci0gICAgfQor
ICAgIC8vIEFkanVzdCB0aGUgbW91c2UgbW92ZSB0aHJvdHRsaW5nIHNvIHRoYXQgaXQncyByb3Vn
aGx5IGFyb3VuZCBvdXIgcnVubmluZyBhdmVyYWdlIG9mIHRoZSBkdXJhdGlvbiBvZiBtb3VzZW1v
dmUgZXZlbnRzLgorICAgIC8vIFRoaXMgd2lsbCBjYXVzZSB0aGUgY29udGVudCB0byByZWNlaXZl
IHRoZXNlIG1vdmVzIG9ubHkgYWZ0ZXIgdGhlIHVzZXIgaXMgZG9uZSBzY3JvbGxpbmcsIHJlZHVj
aW5nIHBhdXNlcyBkdXJpbmcgdGhlIHNjcm9sbC4KKyAgICAvLyBUaGlzIHdpbGwgb25seSBtZWFz
dXJlIHRoZSBkdXJhdGlvbiBvZiB0aGUgbW91c2Vtb3ZlIGV2ZW50IHRob3VnaCAobm90IGZvciBl
eGFtcGxlIGxheW91dHMpLAorICAgIC8vIHNvIG1haW50YWluIGF0IGxlYXN0IGEgbWluaW11bSBp
bnRlcnZhbC4KKyAgICBpZiAobV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZlcmFnZSA+IG1f
ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuZGVsYXkoKSkKKyAgICAgICAgbV9mYWtlTW91c2VNb3Zl
RXZlbnRUaW1lci5zZXREZWxheShtX21vdXNlTW92ZWREdXJhdGlvblJ1bm5pbmdBdmVyYWdlICsg
ZmFrZU1vdXNlTW92ZUludGVydmFsSW5jcmVhc2UpOworICAgIGVsc2UgaWYgKG1fbW91c2VNb3Zl
ZER1cmF0aW9uUnVubmluZ0F2ZXJhZ2UgPCBmYWtlTW91c2VNb3ZlSW50ZXJ2YWxSZWR1Y3Rpb25M
aW1pdCAqIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuZGVsYXkoKSkKKyAgICAgICAgbV9mYWtl
TW91c2VNb3ZlRXZlbnRUaW1lci5zZXREZWxheShtYXgoZmFrZU1vdXNlTW92ZU1pbmltdW1JbnRl
cnZhbCwgZmFrZU1vdXNlTW92ZUludGVydmFsUmVkdWN0aW9uRnJhY3Rpb24gKiBtX2Zha2VNb3Vz
ZU1vdmVFdmVudFRpbWVyLmRlbGF5KCkpKTsKKyAgICBtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVy
LnJlc3RhcnQoKTsKIH0KIAogdm9pZCBFdmVudEhhbmRsZXI6OmRpc3BhdGNoRmFrZU1vdXNlTW92
ZUV2ZW50U29vbkluUXVhZChjb25zdCBGbG9hdFF1YWQmIHF1YWQpCkBAIC0yODkzLDcgKzI5MDMs
NyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6Y2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCkKICAgICBt
X2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyLnN0b3AoKTsKIH0KIAotdm9pZCBFdmVudEhhbmRsZXI6
OmZha2VNb3VzZU1vdmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiogdGltZXIp
Cit2b2lkIEV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChEZWZlcnJh
YmxlT25lU2hvdFRpbWVyPEV2ZW50SGFuZGxlcj4qIHRpbWVyKQogewogICAgIEFTU0VSVF9VTlVT
RUQodGltZXIsIHRpbWVyID09ICZtX2Zha2VNb3VzZU1vdmVFdmVudFRpbWVyKTsKICAgICBBU1NF
UlQoIW1fbW91c2VQcmVzc2VkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCmluZGV4IDkz
YzZiMTBlYjk4NzQ0ZmJmNTY3YTgxOWYyODE2OGYzMjJhMWMxYzguLjllNzI1ZGJiNWMwMDNiOTIx
Y2U3MjE3ODU2MDFmOTkwNzJhMDVmN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuaApA
QCAtMjgwLDcgKzI4MCw3IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIGJvb2wgaXNLZXlib2FyZE9w
dGlvblRhYihLZXlib2FyZEV2ZW50Kik7CiAgICAgc3RhdGljIGJvb2wgZXZlbnRJbnZlcnRzVGFi
c1RvTGlua3NDbGllbnRDYWxsUmVzdWx0KEtleWJvYXJkRXZlbnQqKTsKIAotICAgIHZvaWQgZmFr
ZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7CisgICAgdm9p
ZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKERlZmVycmFibGVPbmVTaG90VGltZXI8RXZl
bnRIYW5kbGVyPiopOwogICAgIHZvaWQgY2FuY2VsRmFrZU1vdXNlTW92ZUV2ZW50KCk7CiAKICNp
ZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQpAQCAtNDAzLDcgKzQwMyw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbDsKICAgICBib29sIG1fbW91c2VEb3du
V2FzSW5TdWJmcmFtZTsKIAotICAgIFRpbWVyPEV2ZW50SGFuZGxlcj4gbV9mYWtlTW91c2VNb3Zl
RXZlbnRUaW1lcjsKKyAgICBEZWZlcnJhYmxlT25lU2hvdFRpbWVyPEV2ZW50SGFuZGxlcj4gbV9m
YWtlTW91c2VNb3ZlRXZlbnRUaW1lcjsKIAogI2lmIEVOQUJMRShTVkcpCiAgICAgYm9vbCBtX3N2
Z1BhbjsKQEAgLTQ1OSw3ICs0NTksNyBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxOb2RlPiBtX3Nj
cm9sbEdlc3R1cmVIYW5kbGluZ05vZGU7CiAjZW5kaWYKIAotICAgIGRvdWJsZSBtX21heE1vdXNl
TW92ZWREdXJhdGlvbjsKKyAgICBkb3VibGUgbV9tb3VzZU1vdmVkRHVyYXRpb25SdW5uaW5nQXZl
cmFnZTsKICAgICBQbGF0Zm9ybUV2ZW50OjpUeXBlIG1fYmFzZUV2ZW50VHlwZTsKIH07CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9UaW1lci5oCmluZGV4IGM1NTc4OTk0MDZiYWUzNjBmY2E0NWU3YTY2MzZkNTk1
MDYzNmQ2MjguLjRlMGI2NTllZWMzMzgxNWRmYWI2YjE4NWQwZDU4NGYwN2Y0ZTFjYjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vVGltZXIuaApAQCAtMTQwLDYgKzE0MCwxNyBAQCBwdWJsaWM6CiAgICAgICAg
IHN0YXJ0T25lU2hvdChtX2RlbGF5KTsKICAgICB9CiAKKyAgICB2b2lkIHNldERlbGF5KGRvdWJs
ZSBkZWxheSkKKyAgICB7CisgICAgICAgIG1fZGVsYXkgPSBkZWxheTsKKyAgICAgICAgaWYgKGlz
QWN0aXZlKCkpIHsKKyAgICAgICAgICAgIHN0b3AoKTsKKyAgICAgICAgICAgIHJlc3RhcnQoKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIGRvdWJsZSBkZWxheSgpIGNvbnN0IHsgcmV0dXJuIG1f
ZGVsYXk7IH0KKwogICAgIHVzaW5nIFRpbWVyQmFzZTo6c3RvcDsKICAgICB1c2luZyBUaW1lckJh
c2U6OmlzQWN0aXZlOwogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmYzI2ODA5MzI3YjllMmY2NzNiMWY2NWJk
ZmEyN2VhY2E5MWFjY2NmLi5hYmFhYTQyNjRiYjRkNjQxNDUxOTQzZWMxYjc2ZGZjY2Y1OGNiMThi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTItMTEtMDkgIE9qYW4gVmFmYWkgIDxvamFuQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBTaG91bGQgb25seSBmaXJlIGEgc2luZ2xlIHNldCBvZiBt
b3VzZSBldmVudHMgYW5kIHVwZGF0ZSBob3ZlciBzdGF0ZSBvbmNlIHdoZW4gc2Nyb2xsaW5nIGlz
IGRvbmUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk5
OTQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVz
dHMgYmFzaWMgdGhyb3R0bGluZy4gSSBjb3VsZG4ndCB0aGluayBvZiBhIGdvb2Qgd2F5IHRvIHRl
c3QgY2hhbmdpbmcKKyAgICAgICAgdGhlIGRlbGF5IHRoYXQgd291bGRuJ3QgbWFrZSBmb3IgYSB0
ZXN0IHRoYXQgdGFrZXMgbWludXRlcyB0byBydW4uCisKKyAgICAgICAgKiBmYXN0L3Njcm9sbGlu
Zy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L3Njcm9sbGluZy9mYWtlLW1vdXNlLWV2ZW50LXRocm90dGxpbmcuaHRtbDogQWRk
ZWQuCisKIDIwMTItMTEtMDkgIEpvc2h1YSBCZWxsICA8anNiZWxsQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBbQ2hyb21pdW1dIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBVcGRhdGVkIGV4cGVjdGF0
aW9ucyBmb2xsb3dpbmcgMTM0MTEyLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9zY3Jv
bGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZjQwMzdhMzQ4YWQ0YjkyYjU0ZDQ2ODJiYTk3MmM5Y2I5ZjI3MDI5Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2Ut
ZXZlbnQtdGhyb3R0bGluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitQQVNTIG51bWJl
ck9mTW91c2VNb3ZlcyBpcyAwCitQQVNTIG51bWJlck9mTW91c2VNb3ZlcyBpcyAxCitQQVNTIG51
bWJlck9mTW91c2VNb3ZlcyBpcyAyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2Ny
b2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9zY3JvbGxpbmcvZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Mjk3ZDBkZjZlMGMzMTg1MWM4NmVlY2YzNDQ1ZTA2MWMxODA0MTBhYQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3Qvc2Nyb2xsaW5nL2Zha2UtbW91c2UtZXZlbnQtdGhyb3R0bGlu
Zy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorYm9keSB7
CisgICAgb3ZlcmZsb3c6IHNjcm9sbDsKK30KK2RpdiB7CisgICAgaGVpZ2h0OiAxMDBweDsKK30K
Ky5wb2ludGVyIHsKKyAgICBjdXJzb3I6IHBvaW50ZXI7CisgICAgYmFja2dyb3VuZC1jb2xvcjog
c2FsbW9uOworfQorLnBsYWluIHsKKyAgICBiYWNrZ3JvdW5kLWNvbG9yOiBvcmFuZ2U7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8Ym9keSBvbmxvYWQ9InJ1bk5leHRUZXN0KCkiPgorCis8c2NyaXB0PgorZm9yICh2
YXIgaSA9IDA7IGkgPCAxMDA7IGkrKykgeworICAgIGRvY3VtZW50LndyaXRlKCc8ZGl2IGNsYXNz
PXBvaW50ZXI+PC9kaXY+PGRpdiBjbGFzcz1wbGFpbj48L2Rpdj4nKTsKK30KKworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMDAsIDUwKTsKKwor
dmFyIG51bWJlck9mTW91c2VNb3ZlcyA9IDA7Citkb2N1bWVudC5ib2R5Lm9ubW91c2Vtb3ZlID0g
ZnVuY3Rpb24oKSB7CisgICAgdmFyIHN0YXJ0ID0gRGF0ZS5ub3coKTsKKyAgICB3aGlsZSAoRGF0
ZS5ub3coKSAtIHN0YXJ0IDwgbW91c2VNb3ZlRHVyYXRpb24pIHsKKyAgICB9CisgICAgbnVtYmVy
T2ZNb3VzZU1vdmVzKys7CisKKyAgICBpZiAoZGVsYXlzLmxlbmd0aCkKKyAgICAgICAgcnVuTmV4
dFRlc3QoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mTW91c2VNb3Zl
cyIsIFN0cmluZyhleHBlY3RlZE51bWJlck9mTW91c2VNb3ZlcykpOworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICB9CisKK30KKwordmFyIGRlbGF5cyA9IFs1LCAyMDBdOwordmFyIGV4cGVjdGVkTnVtYmVyT2ZN
b3VzZU1vdmVzID0gZGVsYXlzLmxlbmd0aDsKKworZnVuY3Rpb24gcnVuTmV4dFRlc3QoKQorewor
ICAgIHNob3VsZEJlKCJudW1iZXJPZk1vdXNlTW92ZXMiLCBTdHJpbmcoZXhwZWN0ZWROdW1iZXJP
Zk1vdXNlTW92ZXMgLSBkZWxheXMubGVuZ3RoKSk7CisgICAgbW91c2VNb3ZlRHVyYXRpb24gPSBk
ZWxheXMuc2hpZnQoKTsKKyAgICB2YXIgcG9zaXRpb24gPSA3NSAqIGRlbGF5cy5sZW5ndGg7Cisg
ICAgd2luZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uKTsKKyAgICB3aW5kb3cuc2Nyb2xsVG8oMCwg
cG9zaXRpb24gKyAyNSk7CisgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICAgICAgd2lu
ZG93LnNjcm9sbFRvKDAsIHBvc2l0aW9uICsgNTApOworICAgIH0sIDApOworfQorPC9zY3JpcHQ+
Cis8L2JvZHk+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNDY1YjZmOTIzMjJhOTMxMzg0YzJkZTJiMDRkOTNjZGVhODIwMTMzMy4uZTY3NzViZDM0MWU4
NDllZWMwMDgzMGU2NDkyYzYyODM3MDg3YTNlMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFj
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTExNjUsNiArMTE2NSw5IEBAIHdlYmtpdC5vcmcvYi82MTEz
OCBodHRwL3Rlc3RzL3czYy93ZWJwZXJmL3N1Ym1pc3Npb24vSW50ZWwvcmVzb3VyY2UtdGltaW5n
IFsgU2tpCiAjIFRpbGVDYWNoZSB0ZXN0cyB0aGF0IGRvbid0IGFwcGx5IHRvIFdLMSAodGhleSBh
cmUgcmUtZW5hYmxlZCB2aWEgdGhlIFdLMiBUZXN0RXhwZWN0YXRpb25zIGZpbGUpCiBwbGF0Zm9y
bS9tYWMvdGlsZWQtZHJhd2luZy8gWyBTa2lwIF0KIAorIyBEUlQgaXMgbm90IGZpcmluZyBmYWtl
IG1vdXNlIGV2ZW50cy4gU2FmYXJpIGZpcmVzIHRoZW0gZmluZS4gTG9va3MgbGlrZSBhIGJ1ZyB3
aXRoIEFwcGxlJ3MgTWFjIERSVC4KK3dlYmtpdC5vcmcvYi8xMDE4MDggZmFzdC9zY3JvbGxpbmcv
ZmFrZS1tb3VzZS1ldmVudC10aHJvdHRsaW5nLmh0bWwgWyBTa2lwIF0KKwogd2Via2l0Lm9yZy9i
LzEwMDg0NiBpbnNwZWN0b3ItcHJvdG9jb2wvZGVidWdnZXItcGF1c2UtZGVkaWNhdGVkLXdvcmtl
ci5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMTAwODQ2IGluc3BlY3Rvci1wcm90b2NvbC9k
ZWJ1Z2dlci10ZXJtaW5hdGUtZGVkaWNhdGVkLXdvcmtlci13aGlsZS1wYXVzZWQuaHRtbCBbIFNr
aXAgXQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>251450</attachid>
            <date>2015-04-23 10:09:40 -0700</date>
            <delta_ts>2015-04-23 10:16:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>2012</size>
            <attacher name="Dave Hyatt">hyatt</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4MzE5MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1IEBACisyMDE1LTA0LTIzICBEYXZpZCBI
eWF0dCAgPGh5YXR0QGFwcGxlLmNvbT4KKworICAgICAgICBEb24ndCBmaXJlIGEgYnVuY2ggb2Yg
bW91c2UgbW92ZWRzIGR1cmluZyBzY3JvbGxpbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTk0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRsZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpkaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudFNvb24pOgor
ICAgICAgICBFdmVuIGZvciB0aGUgc2hvcnQgaW50ZXJ2YWwgdGltZXIsIG1ha2Ugc3VyZSB0byBj
YW5jZWwgYW5kIHJlc3RhcnQgaXQgaW5zdGVhZCBvZiBhbGxvd2luZyB0aGUgb3JpZ2luYWwgdG8K
KyAgICAgICAgY29tcGxldGUuIFRoaXMgaGFzIHRoZSBlZmZlY3Qgb2YgcHJldmVudGluZyBmYWtl
IG1vdXNlIG1vdmVkcyBmcm9tIGZpcmluZyB1bnRpbCB0aGUgc2Nyb2xsIHN0b3BzLgorCiAyMDE1
LTA0LTIzICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIG1ha2UgYSBzdWdnZXN0ZWQgY2hhbmdlIEkgb3Zlcmxvb2tlZCBpbiBEYXJp
bidzIHJldmlldyBvZgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2
aXNpb24gMTgzMTAzKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0yOTEzLDE0ICsyOTEzLDkgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmRp
c3BhdGNoRmFrZU1vdXNlTW92ZQogICAgIC8vIHJlc2NoZWR1bGUgdGhlIHRpbWVyIGFuZCB1c2Ug
YSBsb25nZXIgdGltZS4gVGhpcyB3aWxsIGNhdXNlIHRoZSBjb250ZW50CiAgICAgLy8gdG8gcmVj
ZWl2ZSB0aGVzZSBtb3ZlcyBvbmx5IGFmdGVyIHRoZSB1c2VyIGlzIGRvbmUgc2Nyb2xsaW5nLCBy
ZWR1Y2luZwogICAgIC8vIHBhdXNlcyBkdXJpbmcgdGhlIHNjcm9sbC4KLSAgICBpZiAobV9tYXhN
b3VzZU1vdmVkRHVyYXRpb24gPiBmYWtlTW91c2VNb3ZlRHVyYXRpb25UaHJlc2hvbGQpIHsKLSAg
ICAgICAgaWYgKG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKLSAgICAgICAg
ICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RvcCgpOwotICAgICAgICBtX2Zha2VNb3Vz
ZU1vdmVFdmVudFRpbWVyLnN0YXJ0T25lU2hvdChmYWtlTW91c2VNb3ZlTG9uZ0ludGVydmFsKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBpZiAoIW1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuaXNB
Y3RpdmUoKSkKLSAgICAgICAgICAgIG1fZmFrZU1vdXNlTW92ZUV2ZW50VGltZXIuc3RhcnRPbmVT
aG90KGZha2VNb3VzZU1vdmVTaG9ydEludGVydmFsKTsKLSAgICB9CisgICAgaWYgKG1fZmFrZU1v
dXNlTW92ZUV2ZW50VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9mYWtlTW91c2VNb3ZlRXZl
bnRUaW1lci5zdG9wKCk7CisgICAgbV9mYWtlTW91c2VNb3ZlRXZlbnRUaW1lci5zdGFydE9uZVNo
b3QobV9tYXhNb3VzZU1vdmVkRHVyYXRpb24gPiBmYWtlTW91c2VNb3ZlRHVyYXRpb25UaHJlc2hv
bGQgP2Zha2VNb3VzZU1vdmVMb25nSW50ZXJ2YWwgOiBmYWtlTW91c2VNb3ZlU2hvcnRJbnRlcnZh
bCk7CiAjZW5kaWYKIH0KIAo=
</data>
<flag name="review"
          id="276238"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>