<?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>29041</bug_id>
          
          <creation_ts>2009-09-08 10:53:11 -0700</creation_ts>
          <short_desc>HTMLMediaElement buffered attribute should report a list of time range</short_desc>
          <delta_ts>2009-09-10 19:43:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Hin-Chung Lam">hclam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>145447</commentid>
    <comment_count>0</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-08 10:53:11 -0700</bug_when>
    <thetext>Now MediaPlayer and MediaPlayerPrivateInterface only reports maxTimeBuffered(), so HTMLMediaElement can report at most one time range in the buffered attribute. The interfaces should support multiple time ranges.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145453</commentid>
    <comment_count>1</comment_count>
      <attachid>39197</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-08 11:02:14 -0700</bug_when>
    <thetext>Created attachment 39197
API change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145511</commentid>
    <comment_count>2</comment_count>
      <attachid>39197</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-08 13:07:32 -0700</bug_when>
    <thetext>Comment on attachment 39197
API change

&gt; +        * html/HTMLMediaElement.cpp:
&gt; +        (WebCore::HTMLMediaElement::percentLoaded):
&gt; +        (WebCore::HTMLMediaElement::buffered):
&gt; +        * platform/graphics/MediaPlayer.cpp:
&gt; +        (WebCore::NullMediaPlayerPrivate::buffered):
&gt; +        (WebCore::MediaPlayer::buffered):
&gt; +        * platform/graphics/MediaPlayer.h:
&gt; +        * platform/graphics/MediaPlayerPrivate.h:
&gt; +        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
&gt; +        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
&gt; +        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
&gt; +        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
&gt; +        (WebCore::MediaPlayerPrivate::buffered):
&gt; +        * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
&gt; +        * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
&gt; +        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
&gt; +        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
&gt; +        * platform/graphics/wince/MediaPlayerPrivateWince.h:
&gt; +        * rendering/RenderThemeChromiumMac.mm:
&gt; +        (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
&gt; +        * rendering/RenderThemeChromiumSkia.cpp:
&gt; +        * rendering/RenderThemeMac.mm:
&gt; +        (WebCore::RenderThemeMac::paintMediaSliderTrack):

  It would be nice to have a brief comment about what changed in each function.


&gt; +    int length = m_player-&gt;buffered()-&gt;length();
&gt; +    if (length) {
&gt; +        // FIXME: The end of last range doesn&apos;t represent the actual percentage loaded.
&gt; +        ExceptionCode ignoredException;
&gt; +        float end = m_player-&gt;buffered()-&gt;end(length - 1, ignoredException);
&gt; +        return duration ? end / duration : 0;
&gt; +    }
&gt; +    return 0;


  Please put m_player-&gt;buffered() into a local, it can be expensive to calculate the buffered ranges. 

  This code will return the wrong answer as soon as an engine returns a TimeRanges object with more than one entry. You might as well change it now to iterate through all of the ranges to get the total amount buffered.


&gt; diff --git a/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp b/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp

&gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt; +    if (!m_errorOccured &amp;&amp; !m_isStreaming &amp;&amp; maxTimeLoaded() &gt; 0)
&gt; +        timeRanges-&gt;add(0, maxTimeLoaded());
&gt; +    return timeRanges;

  You should store maxTimeLoaded() in a local, it can be expensive to calculate.


&gt; diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm

&gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt; +    if (maxTimeLoaded() &gt; 0)
&gt; +        timeRanges-&gt;add(0, maxTimeLoaded());
&gt; +    return timeRanges;

  Same thing here.


&gt; diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp

&gt;  #include &quot;Timer.h&quot;
&gt; +#include &quot;TimeRanges.h&quot;

  Minor style violation here, &quot;TimeRanges.h&quot; sorts before &quot;Timer.h&quot;.


&gt; -float MediaPlayerPrivate::maxTimeBuffered() const
&gt; +PassRefPtr&lt;TimeRanges&gt; MediaPlayerPrivate::buffered() const;
&gt;  {
&gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt;      // rtsp streams are not buffered
&gt; -    return m_isStreaming ? 0 : maxTimeLoaded();
&gt; +    if (!m_isStreaming &amp;&amp; maxTimeLoaded() &gt; 0)
&gt; +        timeRanges-&gt;add(0, maxTimeLoaded());

  You should store maxTimeLoaded() in a local, it can be expensive to calculate.


&gt; @@ -1935,6 +1935,9 @@ bool RenderThemeChromiumMac::paintMediaSliderTrack(RenderObject* o, const Render
&gt;      float currentTime = 0;
&gt;      float duration = 0;
&gt;      if (MediaPlayer* player = mediaElement-&gt;player()) {
&gt; +        RefPtr&lt;TimeRanges&gt; timeRanges = player-&gt;buffered();
&gt; +        ExceptionCode ignoredException;
&gt; +        timeLoaded = timeRanges-&gt;length() ? timeRanges-&gt;end(0, ignoredException) : 0;
&gt;          duration = player-&gt;duration();
&gt;          timeLoaded = player-&gt;maxTimeBuffered();
&gt;          currentTime = player-&gt;currentTime();

  I realize that this isn&apos;t new to this patch, but HTMLMediaElement has buffered, duration, and currentTime methods so I would prefer if we used it instead of MediaPlayer.


&gt; @@ -1604,8 +1605,10 @@ bool RenderThemeMac::paintMediaSliderTrack(RenderObject* o, const RenderObject::
&gt;      float currentTime = 0;
&gt;      float duration = 0;
&gt;      if (MediaPlayer* player = mediaElement-&gt;player()) {
&gt; +        RefPtr&lt;TimeRanges&gt; timeRanges = player-&gt;buffered();
&gt; +        ExceptionCode ignoredException;
&gt; +        timeLoaded = timeRanges-&gt;length() ? timeRanges-&gt;end(0, ignoredException) : 0;
&gt;          duration = player-&gt;duration();
&gt; -        timeLoaded = player-&gt;maxTimeBuffered();
&gt;          currentTime = player-&gt;currentTime();
&gt;      }

  Same thing here.

  r+ assuming you address the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145545</commentid>
    <comment_count>3</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-08 14:42:47 -0700</bug_when>
    <thetext>OK, will address your concerns before committing it.

(In reply to comment #2)
&gt; (From update of attachment 39197 [details])
&gt; &gt; +        * html/HTMLMediaElement.cpp:
&gt; &gt; +        (WebCore::HTMLMediaElement::percentLoaded):
&gt; &gt; +        (WebCore::HTMLMediaElement::buffered):
&gt; &gt; +        * platform/graphics/MediaPlayer.cpp:
&gt; &gt; +        (WebCore::NullMediaPlayerPrivate::buffered):
&gt; &gt; +        (WebCore::MediaPlayer::buffered):
&gt; &gt; +        * platform/graphics/MediaPlayer.h:
&gt; &gt; +        * platform/graphics/MediaPlayerPrivate.h:
&gt; &gt; +        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp:
&gt; &gt; +        * platform/graphics/gtk/MediaPlayerPrivateGStreamer.h:
&gt; &gt; +        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
&gt; &gt; +        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
&gt; &gt; +        (WebCore::MediaPlayerPrivate::buffered):
&gt; &gt; +        * platform/graphics/qt/MediaPlayerPrivatePhonon.cpp:
&gt; &gt; +        * platform/graphics/qt/MediaPlayerPrivatePhonon.h:
&gt; &gt; +        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
&gt; &gt; +        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:
&gt; &gt; +        * platform/graphics/wince/MediaPlayerPrivateWince.h:
&gt; &gt; +        * rendering/RenderThemeChromiumMac.mm:
&gt; &gt; +        (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
&gt; &gt; +        * rendering/RenderThemeChromiumSkia.cpp:
&gt; &gt; +        * rendering/RenderThemeMac.mm:
&gt; &gt; +        (WebCore::RenderThemeMac::paintMediaSliderTrack):
&gt; 
&gt;   It would be nice to have a brief comment about what changed in each function.
&gt; 
&gt; 
&gt; &gt; +    int length = m_player-&gt;buffered()-&gt;length();
&gt; &gt; +    if (length) {
&gt; &gt; +        // FIXME: The end of last range doesn&apos;t represent the actual percentage loaded.
&gt; &gt; +        ExceptionCode ignoredException;
&gt; &gt; +        float end = m_player-&gt;buffered()-&gt;end(length - 1, ignoredException);
&gt; &gt; +        return duration ? end / duration : 0;
&gt; &gt; +    }
&gt; &gt; +    return 0;
&gt; 
&gt; 
&gt;   Please put m_player-&gt;buffered() into a local, it can be expensive to
&gt; calculate the buffered ranges. 
&gt; 
&gt;   This code will return the wrong answer as soon as an engine returns a
&gt; TimeRanges object with more than one entry. You might as well change it now to
&gt; iterate through all of the ranges to get the total amount buffered.
&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp b/WebCore/platform/graphics/gtk/MediaPlayerPrivateGStreamer.cpp
&gt; 
&gt; &gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt; &gt; +    if (!m_errorOccured &amp;&amp; !m_isStreaming &amp;&amp; maxTimeLoaded() &gt; 0)
&gt; &gt; +        timeRanges-&gt;add(0, maxTimeLoaded());
&gt; &gt; +    return timeRanges;
&gt; 
&gt;   You should store maxTimeLoaded() in a local, it can be expensive to
&gt; calculate.
&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm b/WebCore/platform/graphics/mac/MediaPlayerPrivateQTKit.mm
&gt; 
&gt; &gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt; &gt; +    if (maxTimeLoaded() &gt; 0)
&gt; &gt; +        timeRanges-&gt;add(0, maxTimeLoaded());
&gt; &gt; +    return timeRanges;
&gt; 
&gt;   Same thing here.
&gt; 
&gt; 
&gt; &gt; diff --git a/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp b/WebCore/platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp
&gt; 
&gt; &gt;  #include &quot;Timer.h&quot;
&gt; &gt; +#include &quot;TimeRanges.h&quot;
&gt; 
&gt;   Minor style violation here, &quot;TimeRanges.h&quot; sorts before &quot;Timer.h&quot;.
&gt; 
&gt; 
&gt; &gt; -float MediaPlayerPrivate::maxTimeBuffered() const
&gt; &gt; +PassRefPtr&lt;TimeRanges&gt; MediaPlayerPrivate::buffered() const;
&gt; &gt;  {
&gt; &gt; +    RefPtr&lt;TimeRanges&gt; timeRanges = TimeRanges::create();
&gt; &gt;      // rtsp streams are not buffered
&gt; &gt; -    return m_isStreaming ? 0 : maxTimeLoaded();
&gt; &gt; +    if (!m_isStreaming &amp;&amp; maxTimeLoaded() &gt; 0)
&gt; &gt; +        timeRanges-&gt;add(0, maxTimeLoaded());
&gt; 
&gt;   You should store maxTimeLoaded() in a local, it can be expensive to
&gt; calculate.
&gt; 
&gt; 
&gt; &gt; @@ -1935,6 +1935,9 @@ bool RenderThemeChromiumMac::paintMediaSliderTrack(RenderObject* o, const Render
&gt; &gt;      float currentTime = 0;
&gt; &gt;      float duration = 0;
&gt; &gt;      if (MediaPlayer* player = mediaElement-&gt;player()) {
&gt; &gt; +        RefPtr&lt;TimeRanges&gt; timeRanges = player-&gt;buffered();
&gt; &gt; +        ExceptionCode ignoredException;
&gt; &gt; +        timeLoaded = timeRanges-&gt;length() ? timeRanges-&gt;end(0, ignoredException) : 0;
&gt; &gt;          duration = player-&gt;duration();
&gt; &gt;          timeLoaded = player-&gt;maxTimeBuffered();
&gt; &gt;          currentTime = player-&gt;currentTime();
&gt; 
&gt;   I realize that this isn&apos;t new to this patch, but HTMLMediaElement has
&gt; buffered, duration, and currentTime methods so I would prefer if we used it
&gt; instead of MediaPlayer.
&gt; 
&gt; 
&gt; &gt; @@ -1604,8 +1605,10 @@ bool RenderThemeMac::paintMediaSliderTrack(RenderObject* o, const RenderObject::
&gt; &gt;      float currentTime = 0;
&gt; &gt;      float duration = 0;
&gt; &gt;      if (MediaPlayer* player = mediaElement-&gt;player()) {
&gt; &gt; +        RefPtr&lt;TimeRanges&gt; timeRanges = player-&gt;buffered();
&gt; &gt; +        ExceptionCode ignoredException;
&gt; &gt; +        timeLoaded = timeRanges-&gt;length() ? timeRanges-&gt;end(0, ignoredException) : 0;
&gt; &gt;          duration = player-&gt;duration();
&gt; &gt; -        timeLoaded = player-&gt;maxTimeBuffered();
&gt; &gt;          currentTime = player-&gt;currentTime();
&gt; &gt;      }
&gt; 
&gt;   Same thing here.
&gt; 
&gt;   r+ assuming you address the comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145597</commentid>
    <comment_count>4</comment_count>
      <attachid>39233</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-08 17:25:31 -0700</bug_when>
    <thetext>Created attachment 39233
patch to be submitted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145771</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 08:32:52 -0700</bug_when>
    <thetext>Does Hin-Chung have commit-bit, or should this be marked r=?/cq=?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145851</commentid>
    <comment_count>6</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 11:08:44 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; Does Hin-Chung have commit-bit, or should this be marked r=?/cq=?

I don&apos;t have commit bit, I&apos;m having someone else to commit this for me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145867</commentid>
    <comment_count>7</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 11:34:45 -0700</bug_when>
    <thetext>Updated this patch to address Eric&apos;s comments. Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>145879</commentid>
    <comment_count>8</comment_count>
      <attachid>39233</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-09 11:48:47 -0700</bug_when>
    <thetext>Comment on attachment 39233
patch to be submitted


@@ -1287,7 +1287,15 @@ float HTMLMediaElement::percentLoaded() const
     if (!m_player)
         return 0;
     float duration = m_player-&gt;duration();
-    return duration ? m_player-&gt;maxTimeBuffered() / duration : 0;
+    float buffered = 0;
+    RefPtr&lt;TimeRanges&gt; timeRanges = m_player-&gt;buffered();
+    for (unsigned i = 0; i &lt; timeRanges-&gt;length(); ++i) {
+        ExceptionCode ignoredException;
+        float start = timeRanges-&gt;start(i, ignoredException);
+        float end = timeRanges-&gt;end(i, ignoredException);
+        buffered += end - start;
+    }
+    return duration ? buffered / duration : 0;

  Why accumulate the buffered ranges if duration is zero or infinite? Should probably just have an early return instead.

  r=me with this change, no need to re-submit for review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146003</commentid>
    <comment_count>9</comment_count>
      <attachid>39310</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 16:40:40 -0700</bug_when>
    <thetext>Created attachment 39310
patch to be submitted

Since I&apos;m not a committer, I&apos;m submitting this for review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146006</commentid>
    <comment_count>10</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 16:42:34 -0700</bug_when>
    <thetext>Submitting this for review again since I&apos;m not a committer.

I did an early return on the condition that duration is 0 or infinity in HTMLMediaElement::percentLoaded().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146008</commentid>
    <comment_count>11</comment_count>
      <attachid>39310</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-09 16:49:21 -0700</bug_when>
    <thetext>Comment on attachment 39310
patch to be submitted

&gt; +
&gt; +    if (duration == 0 || isinf(duration))
&gt; +        return 0;

&quot;duration == 0&quot; is a style violation, tests for zero/non-zero should be not be done with an equality comparison.

check-webkit-style would have flagged this error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146021</commentid>
    <comment_count>12</comment_count>
      <attachid>39313</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 17:07:34 -0700</bug_when>
    <thetext>Created attachment 39313
patch to be submitted

Fixed the style violation according Eric&apos;s comments. Thanks for looking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146023</commentid>
    <comment_count>13</comment_count>
      <attachid>39314</attachid>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 17:10:06 -0700</bug_when>
    <thetext>Created attachment 39314
patch to be submitted</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146026</commentid>
    <comment_count>14</comment_count>
      <attachid>39314</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2009-09-09 17:14:58 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146030</commentid>
    <comment_count>15</comment_count>
      <attachid>39314</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-09 17:31:45 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

Rejecting patch 39314 from commit-queue.

eric.carlson@apple.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146031</commentid>
    <comment_count>16</comment_count>
      <attachid>39314</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 17:34:46 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

I have no idea why the commit queue does not think you have commit-bit.  You&apos;re clearly in committers.py.  I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146033</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 17:38:17 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (From update of attachment 39314 [details])
&gt; Rejecting patch 39314 from commit-queue.
&gt; 
&gt; eric.carlson@apple.com does not have committer permissions according to
&gt; http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/modules/committers.py.

Oops. bug 29113.

Also I&apos;ll move you from the Committer list to the Reviewer list now that you&apos;re a reviewer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146037</commentid>
    <comment_count>18</comment_count>
      <attachid>39314</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-09 17:47:12 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

Rejecting patch 39314 from commit-queue.

This patch will require manual commit. [&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--quiet&apos;, &apos;--exit-after-n-failures=1&apos;] failed with exit code 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146038</commentid>
    <comment_count>19</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 17:49:34 -0700</bug_when>
    <thetext>I&apos;ll look into it and see why it failed layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146047</commentid>
    <comment_count>20</comment_count>
      <attachid>39314</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 18:31:20 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

storage/database-lock-after-reload.html -&gt; failed
I think we have a flakey storage test.  Your change is not related to that at all.
Trying again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146055</commentid>
    <comment_count>21</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 18:42:53 -0700</bug_when>
    <thetext>Can I hold this commit until tomorrow? Since this change would break chromium build, I can get a better coordinations tomorrow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146056</commentid>
    <comment_count>22</comment_count>
      <attachid>39314</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-09 18:43:40 -0700</bug_when>
    <thetext>Comment on attachment 39314
patch to be submitted

You can always cq- your own patches. :)  I&apos;ll abort the bot if it&apos;s currently processing this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146057</commentid>
    <comment_count>23</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-09 18:44:28 -0700</bug_when>
    <thetext>Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>146436</commentid>
    <comment_count>24</comment_count>
    <who name="Hin-Chung Lam">hclam</who>
    <bug_when>2009-09-10 19:43:15 -0700</bug_when>
    <thetext>API now support reporting multiple time ranges, it&apos;s up to the media engine to report it. For how QuickTime/GStreamer works their behavior is correct, so mark this as fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39197</attachid>
            <date>2009-09-08 11:02:14 -0700</date>
            <delta_ts>2009-09-09 11:58:52 -0700</delta_ts>
            <desc>API change</desc>
            <filename>webkit-buffered.patch</filename>
            <type>text/plain</type>
            <size>14936</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
N2I1N2JiNy4uNTI3YzlkNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOS0wOS0wOCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYnVmZmVyZWQgYXR0cmlidXRlIHNob3VsZCBy
ZXBvcnQgYSBsaXN0IG9mIHRpbWUgcmFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MQorCisgICAgICAgIENoYW5nZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIGFuZCBNZWRpYVBsYXllcidzIGRlZmluaXRpb24gdG8KKyAgICAgICAg
cmVwb3J0IGEgbGlzdCBvZiBidWZmZXJlZCB0aW1lIHJhbmdlcyBhcyBXZWJDb3JlOjpUaW1lUmFu
Z2VzLiBUaGlzCisgICAgICAgIGNoYW5nZSBhbHNvIGdvdCByaWQgb2YgdGhlIG1heFRpbWVCdWZm
ZXJlZCgpIG1ldGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyBpcyBhIEFQ
SSBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCk6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpidWZmZXJlZCk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TnVsbE1lZGlhUGxh
eWVyUHJpdmF0ZTo6YnVmZmVyZWQpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXI6OmJ1
ZmZlcmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwOgor
ICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFt
ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRl
UVRLaXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2
YXRlUVRLaXQubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZl
cmVkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQ
aG9ub24uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJp
dmF0ZVBob25vbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXll
clByaXZhdGVRdWlja1RpbWVXaW4uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dp
bi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRpYVNsaWRlclRyYWNrKToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUaGVtZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjpwYWlu
dE1lZGlhU2xpZGVyVHJhY2spOgorCiAyMDA5LTA5LTA4ICBKb2NlbHluIFR1cmNvdHRlICA8am9j
ZWx5bi50dXJjb3R0ZUBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGltb3RoeSBI
YXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4IDIxNDM5MTguLjVmZDExZTgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEyODcsNyArMTI4NywxNCBAQCBmbG9h
dCBIVE1MTWVkaWFFbGVtZW50OjpwZXJjZW50TG9hZGVkKCkgY29uc3QKICAgICBpZiAoIW1fcGxh
eWVyKQogICAgICAgICByZXR1cm4gMDsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fcGxheWVyLT5k
dXJhdGlvbigpOwotICAgIHJldHVybiBkdXJhdGlvbiA/IG1fcGxheWVyLT5tYXhUaW1lQnVmZmVy
ZWQoKSAvIGR1cmF0aW9uIDogMDsKKyAgICBpbnQgbGVuZ3RoID0gbV9wbGF5ZXItPmJ1ZmZlcmVk
KCktPmxlbmd0aCgpOworICAgIGlmIChsZW5ndGgpIHsKKyAgICAgICAgLy8gRklYTUU6IFRoZSBl
bmQgb2YgbGFzdCByYW5nZSBkb2Vzbid0IHJlcHJlc2VudCB0aGUgYWN0dWFsIHBlcmNlbnRhZ2Ug
bG9hZGVkLgorICAgICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZWRFeGNlcHRpb247CisgICAgICAg
IGZsb2F0IGVuZCA9IG1fcGxheWVyLT5idWZmZXJlZCgpLT5lbmQobGVuZ3RoIC0gMSwgaWdub3Jl
ZEV4Y2VwdGlvbik7CisgICAgICAgIHJldHVybiBkdXJhdGlvbiA/IGVuZCAvIGR1cmF0aW9uIDog
MDsKKyAgICB9CisgICAgcmV0dXJuIDA7CiB9CiAKIGJvb2wgSFRNTE1lZGlhRWxlbWVudDo6aGF2
ZVBvdGVudGlhbFNvdXJjZUNoaWxkKCkKQEAgLTE0NjYsMTAgKzE0NzMsOSBAQCBHcmFwaGljc0xh
eWVyKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckdyYXBoaWNzTGF5ZXIoTWVkaWFQbGF5
ZXIqKQogCiBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IEhUTUxNZWRpYUVsZW1lbnQ6OmJ1ZmZlcmVk
KCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSByZWFsIHJhbmdlcyBzdXBwb3J0Ci0gICAgaWYgKCFt
X3BsYXllciB8fCAhbV9wbGF5ZXItPm1heFRpbWVCdWZmZXJlZCgpKQorICAgIGlmICghbV9wbGF5
ZXIpCiAgICAgICAgIHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKLSAgICByZXR1cm4gVGlt
ZVJhbmdlczo6Y3JlYXRlKDAsIG1fcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKSk7CisgICAgcmV0
dXJuIG1fcGxheWVyLT5idWZmZXJlZCgpOwogfQogCiBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IEhU
TUxNZWRpYUVsZW1lbnQ6OnBsYXllZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXIuY3BwCmluZGV4IDEzYWIzZmIuLjIwZGJjMDAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAi
RnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgor
I2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKIAogI2lmIFBMQVRGT1JNKE1BQykKICNpbmNsdWRlICJN
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgpAQCAtOTEsNyArOTIsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1
cm4gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nOyB9CiAKICAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2aXJ0dWFsIGZsb2F0IG1heFRp
bWVCdWZmZXJlZCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2aXJ0dWFsIFBhc3NSZWZQdHI8
VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUo
KTsgfQogCiAgICAgdmlydHVhbCBpbnQgZGF0YVJhdGUoKSBjb25zdCB7IHJldHVybiAwOyB9CiAK
QEAgLTM5MCw5ICszOTEsOSBAQCB2b2lkIE1lZGlhUGxheWVyOjpzZXRFbmRUaW1lKGZsb2F0IHRp
bWUpCiAgICAgbV9wcml2YXRlLT5zZXRFbmRUaW1lKHRpbWUpOwogfQogCi1mbG9hdCBNZWRpYVBs
YXllcjo6bWF4VGltZUJ1ZmZlcmVkKCkKK1Bhc3NSZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5
ZXI6OmJ1ZmZlcmVkKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRlLT5tYXhUaW1lQnVmZmVyZWQo
KTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5idWZmZXJlZCgpOwogfQogCiBmbG9hdCBNZWRpYVBs
YXllcjo6bWF4VGltZVNlZWthYmxlKCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5
ZXIuaAppbmRleCA3NDc2MzYwLi40YzVlZTViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9N
ZWRpYVBsYXllci5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIEludFNpemU7CiBjbGFzcyBNZWRp
YVBsYXllcjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVyZmFjZTsKIGNsYXNzIFN0cmlu
ZzsKK2NsYXNzIFRpbWVSYW5nZXM7CiAKICNpZiBVU0UoQUNDRUxFUkFURURfQ09NUE9TSVRJTkcp
CiBjbGFzcyBHcmFwaGljc0xheWVyOwpAQCAtMTQ2LDcgKzE0Nyw3IEBAIHB1YmxpYzoKICAgICBi
b29sIHByZXNlcnZlc1BpdGNoKCkgY29uc3Q7ICAgIAogICAgIHZvaWQgc2V0UHJlc2VydmVzUGl0
Y2goYm9vbCk7CiAgICAgCi0gICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCk7CisgICAgUGFzc1Jl
ZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgp
OwogCiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDYzYWRhYzYuLjljYzg5YzUgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApAQCAtNzcs
NyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBy
ZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vla2Fi
bGUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25z
dCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29u
c3QgPSAwOwogCiAgICAgdmlydHVhbCBpbnQgZGF0YVJhdGUoKSBjb25zdCA9IDA7CiAKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclBy
aXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGM1NzE1ZDguLjVkYWJmZTIgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5j
cHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRl
R1N0cmVhbWVyLmNwcApAQCAtMzc3LDExICszNzcsMTIgQEAgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpyZWFkeVN0YXRlKCkgY29uc3QKICAgICByZXR1cm4gbV9y
ZWFkeVN0YXRlOwogfQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVCdWZmZXJl
ZCgpIGNvbnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVm
ZmVyZWQoKSBjb25zdDsKIHsKLSAgICBpZiAobV9lcnJvck9jY3VyZWQpCi0gICAgICAgIHJldHVy
biAwLjA7Ci0gICAgcmV0dXJuIG1faXNTdHJlYW1pbmcgPyAwIDogbWF4VGltZUxvYWRlZCgpOwor
ICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7
CisgICAgaWYgKCFtX2Vycm9yT2NjdXJlZCAmJiAhbV9pc1N0cmVhbWluZyAmJiBtYXhUaW1lTG9h
ZGVkKCkgPiAwKQorICAgICAgICB0aW1lUmFuZ2VzLT5hZGQoMCwgbWF4VGltZUxvYWRlZCgpKTsK
KyAgICByZXR1cm4gdGltZVJhbmdlczsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpt
YXhUaW1lU2Vla2FibGUoKSBjb25zdApAQCAtNzMwLDQgKzczMSwzIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiB9CiAKICNlbmRpZgotCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZmOGQ5NzEuLmQzMDU3NTkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCkBAIC04MSw3ICs4MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAg
ICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAKLSAg
ICAgICAgICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAgICAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgICAgICAgICAgZmxvYXQg
bWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRl
ZCgpIGNvbnN0OwogICAgICAgICAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCmluZGV4IDk3NGRiZWIuLmJmYWJhOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTA1
LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3
b3JrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7
IH0KICAgICAKLSAgICBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGltZVNlZWth
YmxlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICBib29s
IHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBkM2I1M2U1Li5m
ZDFmOWFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiS1VS
TC5oIgogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcu
aCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPFFUS2l0L1FUS2l0Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGlt
ZS5oPgpAQCAtNzY1LDEwICs3NjYsMTIgQEAgaW50IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZGF0YVJh
dGUoKSBjb25zdAogICAgIHJldHVybiB3a1FUTW92aWVEYXRhUmF0ZShtX3F0TW92aWUuZ2V0KCkp
OyAKIH0KIAotCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVCdWZmZXJlZCgpIGNv
bnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQo
KSBjb25zdAogewotICAgIHJldHVybiBtYXhUaW1lTG9hZGVkKCk7CisgICAgUmVmUHRyPFRpbWVS
YW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBpZiAobWF4VGlt
ZUxvYWRlZCgpID4gMCkKKyAgICAgICAgdGltZVJhbmdlcy0+YWRkKDAsIG1heFRpbWVMb2FkZWQo
KSk7CisgICAgcmV0dXJuIHRpbWVSYW5nZXM7CiB9CiAKIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0
ZTo6bWF4VGltZVNlZWthYmxlKCkgY29uc3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcAppbmRleCA4MTY5NTNk
Li40MTVmNDU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlh
UGxheWVyUHJpdmF0ZVBob25vbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAi
Tm90SW1wbGVtZW50ZWQuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVkZSAiV2lk
Z2V0LmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KIApAQCAtMjYwLDEwICsyNjEsMTAgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGU6OnNldEVuZFRpbWUoZmxvYXQgZW5kVGltZSkKICAgICBu
b3RJbXBsZW1lbnRlZCgpOwogfQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVC
dWZmZXJlZCgpIGNvbnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0
ZTo6YnVmZmVyZWQoKSBjb25zdDsKIHsKICAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biAwLjBmOworICAgIHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKIH0KIAogZmxvYXQgTWVk
aWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgKaW5k
ZXggMDQyZjViMi4uZTExOTNiNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oCkBAIC0xMDUsNyArMTA1LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5l
dHdvcmtTdGF0ZSgpIGNvbnN0OwogICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFk
eVN0YXRlKCkgY29uc3Q7CiAKLSAgICAgICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7
CisgICAgICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICAg
ICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGJ5dGVz
TG9hZGVkKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdG90YWxCeXRlc0tub3duKCkgY29uc3Q7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZh
dGVRdWlja1RpbWVXaW4uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQ
bGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcAppbmRleCBhYmY0ZjZiLi42MDQxZGMzIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVXaW4uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlh
UGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRl
ICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgogI2luY2x1ZGUgIlRpbWVy
LmgiCisjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAj
aW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+
CkBAIC0zMjMsMTAgKzMyNCwxMyBAQCBpbnQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkYXRhUmF0ZSgp
IGNvbnN0CiAgICAgcmV0dXJuIDA7CiB9CiAKLWZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4
VGltZUJ1ZmZlcmVkKCkgY29uc3QKK1Bhc3NSZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQ
cml2YXRlOjpidWZmZXJlZCgpIGNvbnN0OwogeworICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1l
UmFuZ2VzID0gVGltZVJhbmdlczo6Y3JlYXRlKCk7CiAgICAgLy8gcnRzcCBzdHJlYW1zIGFyZSBu
b3QgYnVmZmVyZWQKLSAgICByZXR1cm4gbV9pc1N0cmVhbWluZyA/IDAgOiBtYXhUaW1lTG9hZGVk
KCk7CisgICAgaWYgKCFtX2lzU3RyZWFtaW5nICYmIG1heFRpbWVMb2FkZWQoKSA+IDApCisgICAg
ICAgIHRpbWVSYW5nZXMtPmFkZCgwLCBtYXhUaW1lTG9hZGVkKCkpOworICAgIHJldHVybiB0aW1l
UmFuZ2VzOwogfQogCiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSgp
IGNvbnN0CkBAIC02MzAsNCArNjM0LDMgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGU6Omhhc1Np
bmdsZVNlY3VyaXR5T3JpZ2luKCkgY29uc3QKIH0KIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdp
bi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVp
Y2tUaW1lV2luLmgKaW5kZXggMGM5OWVhNi4uNGEzYTI4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKKysr
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tU
aW1lV2luLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyOjpOZXR3
b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0K
ICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9yZWFkeVN0YXRlOyB9CiAgICAgCi0gICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7
CisgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0
IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29u
c3Q7CiAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaApp
bmRleCBmZjM4YWRhLi4yZDZjMzU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy93aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCkBAIC03MSw3ICs3MSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0
ZSBuZXR3b3JrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgICAg
ICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9y
ZWFkeVN0YXRlOyB9CiAKLSAgICAgICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7Cisg
ICAgICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICAgICAg
ZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGJ5dGVzTG9h
ZGVkKCkgY29uc3Q7CiAgICAgICAgIGJvb2wgdG90YWxCeXRlc0tub3duKCkgY29uc3Q7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tIGIvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQppbmRleCA0MmUyYWNhLi5k
ZTZiOGY4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVt
TWFjLm1tCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0K
QEAgLTE5MzUsNiArMTkzNSw5IEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRN
ZWRpYVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyCiAgICAgZmxvYXQg
Y3VycmVudFRpbWUgPSAwOwogICAgIGZsb2F0IGR1cmF0aW9uID0gMDsKICAgICBpZiAoTWVkaWFQ
bGF5ZXIqIHBsYXllciA9IG1lZGlhRWxlbWVudC0+cGxheWVyKCkpIHsKKyAgICAgICAgUmVmUHRy
PFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBwbGF5ZXItPmJ1ZmZlcmVkKCk7CisgICAgICAgIEV4
Y2VwdGlvbkNvZGUgaWdub3JlZEV4Y2VwdGlvbjsKKyAgICAgICAgdGltZUxvYWRlZCA9IHRpbWVS
YW5nZXMtPmxlbmd0aCgpID8gdGltZVJhbmdlcy0+ZW5kKDAsIGlnbm9yZWRFeGNlcHRpb24pIDog
MDsKICAgICAgICAgZHVyYXRpb24gPSBwbGF5ZXItPmR1cmF0aW9uKCk7CiAgICAgICAgIHRpbWVM
b2FkZWQgPSBwbGF5ZXItPm1heFRpbWVCdWZmZXJlZCgpOwogICAgICAgICBjdXJyZW50VGltZSA9
IHBsYXllci0+Y3VycmVudFRpbWUoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
Q2hyb21pdW1Ta2lhLmNwcAppbmRleCA1MTJjMzBiLi5lMjVlZWQzIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKKysrIGIvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCkBAIC0zNiw2ICszNiw3IEBACiAj
aW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCiAjaW5j
bHVkZSAiU2Nyb2xsYmFyVGhlbWUuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAjaW5jbHVk
ZSAiVHJhbnNmb3JtYXRpb25NYXRyaXguaCIKICNpbmNsdWRlICJVc2VyQWdlbnRTdHlsZVNoZWV0
cy5oIgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4IDM2NTI5MmUuLmYyZDgy
ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBi
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0zOCw2ICszOCw3IEBACiAj
aW1wb3J0ICJSZW5kZXJTbGlkZXIuaCIKICNpbXBvcnQgIlJlbmRlclZpZXcuaCIKICNpbXBvcnQg
IlNoYXJlZEJ1ZmZlci5oIgorI2ltcG9ydCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiV2ViQ29y
ZVN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiVXNlckFnZW50U3R5bGVTaGVldHMuaCIKICNp
bXBvcnQgPENhcmJvbi9DYXJib24uaD4KQEAgLTE2MDQsOCArMTYwNSwxMCBAQCBib29sIFJlbmRl
clRoZW1lTWFjOjpwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBS
ZW5kZXJPYmplY3Q6OgogICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gMDsKICAgICBmbG9hdCBkdXJh
dGlvbiA9IDA7CiAgICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBtZWRpYUVsZW1lbnQtPnBs
YXllcigpKSB7CisgICAgICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gcGxheWVy
LT5idWZmZXJlZCgpOworICAgICAgICBFeGNlcHRpb25Db2RlIGlnbm9yZWRFeGNlcHRpb247Cisg
ICAgICAgIHRpbWVMb2FkZWQgPSB0aW1lUmFuZ2VzLT5sZW5ndGgoKSA/IHRpbWVSYW5nZXMtPmVu
ZCgwLCBpZ25vcmVkRXhjZXB0aW9uKSA6IDA7CiAgICAgICAgIGR1cmF0aW9uID0gcGxheWVyLT5k
dXJhdGlvbigpOwotICAgICAgICB0aW1lTG9hZGVkID0gcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQo
KTsKICAgICAgICAgY3VycmVudFRpbWUgPSBwbGF5ZXItPmN1cnJlbnRUaW1lKCk7CiAgICAgfQog
IAo=
</data>
<flag name="review"
          id="20261"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39233</attachid>
            <date>2009-09-08 17:25:31 -0700</date>
            <delta_ts>2009-09-09 16:40:40 -0700</delta_ts>
            <desc>patch to be submitted</desc>
            <filename>webkit-buffered.patch</filename>
            <type>text/plain</type>
            <size>16833</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzEwN2FjMi4uYTljODE1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAwOS0wOS0wOCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYnVmZmVyZWQgYXR0cmlidXRlIHNob3VsZCBy
ZXBvcnQgYSBsaXN0IG9mIHRpbWUgcmFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MQorCisgICAgICAgIENoYW5nZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIGFuZCBNZWRpYVBsYXllcidzIGRlZmluaXRpb24gdG8KKyAgICAgICAg
cmVwb3J0IGEgbGlzdCBvZiBidWZmZXJlZCB0aW1lIHJhbmdlcyBhcyBXZWJDb3JlOjpUaW1lUmFu
Z2VzLiBUaGlzCisgICAgICAgIGNoYW5nZSBhbHNvIGdvdCByaWQgb2YgdGhlIG1heFRpbWVCdWZm
ZXJlZCgpIG1ldGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyBpcyBhIEFQ
SSBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCk6CisgICAgICAgIFVz
ZSBNZWRpYVBsYWllcjo6YnVmZmVyZWQoKSBpbnN0ZWFkIG9mIG1heFRpbWVCdWZmZXJlZCgpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YnVmZmVyZWQpOgorICAgICAgICBk
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IFVzZSBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OmJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBt
YXhUaW1lQnVmZmVyZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpidWZmZXJl
ZCk6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgSW1wbGVtZW50cyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
ICAgICAgICBSZW1vdmVkIG1heFRpbWVCdWZmZXJlZCgpIGFuZCBkZWZpbmVzIFBhc3NSZWZQdHI8
VGltZVJhbmdlcz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgUmVtb3ZlZCBtYXhUaW1lQnVmZmVy
ZWQoKSBhbmQgZGVmaW5lcyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IEltcGxlbWVudGF0aW9uIG9mIGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcDoKKyAgICAgICAgSW1wbGVtZW50cyBQ
YXNzUmVmUHRyPFRpbWVSYW5lZ3M+IGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmg6CisgICAgICAgIFJlbW92ZWQgbWF4
VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVXaW4uY3BwOgorICAgICAgICBJbXBsZW1lbnRzIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lV2luLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVk
KCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmg6Cisg
ICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRp
YVNsaWRlclRyYWNrKToKKyAgICAgICAgVXNlIGJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBtYXhUaW1l
QnVmZmVyZWQoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYVNsaWRlclRy
YWNrKToKKyAgICAgICAgZGl0dG8uCisKIDIwMDktMDktMDggIERhdmUgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDIxNDM5MTguLjZmNTgzNzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTEyODcsNyArMTI4NywxNSBAQCBmbG9hdCBIVE1MTWVkaWFFbGVtZW50Ojpw
ZXJjZW50TG9hZGVkKCkgY29uc3QKICAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4g
MDsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fcGxheWVyLT5kdXJhdGlvbigpOwotICAgIHJldHVy
biBkdXJhdGlvbiA/IG1fcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKSAvIGR1cmF0aW9uIDogMDsK
KyAgICBmbG9hdCBidWZmZXJlZCA9IDA7CisgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5n
ZXMgPSBtX3BsYXllci0+YnVmZmVyZWQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
dGltZVJhbmdlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBFeGNlcHRpb25Db2RlIGlnbm9y
ZWRFeGNlcHRpb247CisgICAgICAgIGZsb2F0IHN0YXJ0ID0gdGltZVJhbmdlcy0+c3RhcnQoaSwg
aWdub3JlZEV4Y2VwdGlvbik7CisgICAgICAgIGZsb2F0IGVuZCA9IHRpbWVSYW5nZXMtPmVuZChp
LCBpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgYnVmZmVyZWQgKz0gZW5kIC0gc3RhcnQ7Cisg
ICAgfQorICAgIHJldHVybiBkdXJhdGlvbiA/IGJ1ZmZlcmVkIC8gZHVyYXRpb24gOiAwOwogfQog
CiBib29sIEhUTUxNZWRpYUVsZW1lbnQ6OmhhdmVQb3RlbnRpYWxTb3VyY2VDaGlsZCgpCkBAIC0x
NDY2LDEwICsxNDc0LDkgQEAgR3JhcGhpY3NMYXllciogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQ
bGF5ZXJHcmFwaGljc0xheWVyKE1lZGlhUGxheWVyKikKIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBIVE1MTWVkaWFFbGVtZW50OjpidWZmZXJlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUgcmVh
bCByYW5nZXMgc3VwcG9ydAotICAgIGlmICghbV9wbGF5ZXIgfHwgIW1fcGxheWVyLT5tYXhUaW1l
QnVmZmVyZWQoKSkKKyAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4gVGltZVJhbmdl
czo6Y3JlYXRlKCk7Ci0gICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNyZWF0ZSgwLCBtX3BsYXllci0+
bWF4VGltZUJ1ZmZlcmVkKCkpOworICAgIHJldHVybiBtX3BsYXllci0+YnVmZmVyZWQoKTsKIH0K
IAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBIVE1MTWVkaWFFbGVtZW50OjpwbGF5ZWQoKSBjb25z
dApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAxM2FiM2Zi
Li4yMGRiYzAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApA
QCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1l
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAKICNp
ZiBQTEFURk9STShNQUMpCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCIKQEAg
LTkxLDcgKzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3Rh
dGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsg
fQogCiAgICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdCB7IHJldHVybiAw
OyB9Ci0gICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiAw
OyB9CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Qg
eyByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7IH0KIAogICAgIHZpcnR1YWwgaW50IGRhdGFS
YXRlKCkgY29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0zOTAsOSArMzkxLDkgQEAgdm9pZCBNZWRp
YVBsYXllcjo6c2V0RW5kVGltZShmbG9hdCB0aW1lKQogICAgIG1fcHJpdmF0ZS0+c2V0RW5kVGlt
ZSh0aW1lKTsKIH0KIAotZmxvYXQgTWVkaWFQbGF5ZXI6Om1heFRpbWVCdWZmZXJlZCgpCitQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyOjpidWZmZXJlZCgpCiB7Ci0gICAgcmV0dXJu
IG1fcHJpdmF0ZS0+bWF4VGltZUJ1ZmZlcmVkKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YnVm
ZmVyZWQoKTsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXI6Om1heFRpbWVTZWVrYWJsZSgpCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNzQ3NjM2MC4uNGM1ZWU1YiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDgsNiArNDgsNyBA
QCBjbGFzcyBJbnRTaXplOwogY2xhc3MgTWVkaWFQbGF5ZXI7CiBjbGFzcyBNZWRpYVBsYXllclBy
aXZhdGVJbnRlcmZhY2U7CiBjbGFzcyBTdHJpbmc7CitjbGFzcyBUaW1lUmFuZ2VzOwogCiAjaWYg
VVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgR3JhcGhpY3NMYXllcjsKQEAgLTE0
Niw3ICsxNDcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0OyAg
ICAKICAgICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwogICAgIAotICAgIGZsb2F0IG1h
eFRpbWVCdWZmZXJlZCgpOworICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKTsK
ICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKTsKIAogICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVk
KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJp
dmF0ZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaApp
bmRleCA2M2FkYWM2Li45Y2M4OWM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
TWVkaWFQbGF5ZXJQcml2YXRlLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKIAogICAg
IHZpcnR1YWwgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwg
ZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgaW50IGRh
dGFSYXRlKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjNTcx
NWQ4Li4xZmM0ZjQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9N
ZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM3NywxMSArMzc3
LDEzIEBAIE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVhZHlT
dGF0ZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKIH0KIAotZmxvYXQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjptYXhUaW1lQnVmZmVyZWQoKSBjb25zdAorUGFzc1JlZlB0cjxUaW1lUmFu
Z2VzPiBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3Q7CiB7Ci0gICAgaWYgKG1f
ZXJyb3JPY2N1cmVkKQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtX2lzU3RyZWFt
aW5nID8gMCA6IG1heFRpbWVMb2FkZWQoKTsKKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGltZVJh
bmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIGZsb2F0IGxvYWRlZCA9IG1heFRpbWVM
b2FkZWQoKTsKKyAgICBpZiAoIW1fZXJyb3JPY2N1cmVkICYmICFtX2lzU3RyZWFtaW5nICYmIGxv
YWRlZCA+IDApCisgICAgICAgIHRpbWVSYW5nZXMtPmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVy
biB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjpt
YXhUaW1lU2Vla2FibGUoKSBjb25zdApAQCAtNzMwLDQgKzczMiwzIEBAIHZvaWQgTWVkaWFQbGF5
ZXJQcml2YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiB9CiAKICNlbmRpZgotCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZh
dGVHU3RyZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5oCmluZGV4IDZmOGQ5NzEuLmQzMDU3NTkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5o
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdT
dHJlYW1lci5oCkBAIC04MSw3ICs4MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAg
ICAgICAgICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAKLSAg
ICAgICAgICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAgICAgICAgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgICAgICAgICAgZmxvYXQg
bWF4VGltZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRl
ZCgpIGNvbnN0OwogICAgICAgICAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZh
dGVRVEtpdC5oCmluZGV4IDk3NGRiZWIuLmJmYWJhOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTA1
LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3
b3JrU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgIE1lZGlhUGxh
eWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7
IH0KICAgICAKLSAgICBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGltZVNlZWth
YmxlKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICBib29s
IHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBkM2I1M2U1Li41
YTVjMDMxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9N
ZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiS1VS
TC5oIgogI2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcu
aCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKICNpbXBvcnQgPFFUS2l0L1FUS2l0Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGlt
ZS5oPgpAQCAtNzY1LDEwICs3NjYsMTMgQEAgaW50IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZGF0YVJh
dGUoKSBjb25zdAogICAgIHJldHVybiB3a1FUTW92aWVEYXRhUmF0ZShtX3F0TW92aWUuZ2V0KCkp
OyAKIH0KIAotCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVCdWZmZXJlZCgpIGNv
bnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQo
KSBjb25zdAogewotICAgIHJldHVybiBtYXhUaW1lTG9hZGVkKCk7CisgICAgUmVmUHRyPFRpbWVS
YW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBmbG9hdCBsb2Fk
ZWQgPSBtYXhUaW1lTG9hZGVkKCk7CisgICAgaWYgKGxvYWRlZCA+IDApCisgICAgICAgIHRpbWVS
YW5nZXMtPmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsK
IH0KIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZh
dGVQaG9ub24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclBy
aXZhdGVQaG9ub24uY3BwCmluZGV4IDgxNjk1M2QuLjQxNWY0NTUgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcAorKysg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5j
cHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJH
cmFwaGljc0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUg
IlRpbWVSYW5nZXMuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNl
dC5oPgogCkBAIC0yNjAsMTAgKzI2MSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0
RW5kVGltZShmbG9hdCBlbmRUaW1lKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWZsb2F0
IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4VGltZUJ1ZmZlcmVkKCkgY29uc3QKK1Bhc3NSZWZQdHI8
VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0OwogewogICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDAuMGY7CisgICAgcmV0dXJuIFRpbWVSYW5n
ZXM6OmNyZWF0ZSgpOwogfQogCiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVr
YWJsZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01l
ZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9N
ZWRpYVBsYXllclByaXZhdGVQaG9ub24uaAppbmRleCAwNDJmNWIyLi5lMTE5M2I2IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25v
bi5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRl
UGhvbm9uLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAg
IE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAgICAg
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKIAotICAgICAgICBm
bG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdDsKKyAgICAgICAgUGFzc1JlZlB0cjxUaW1lUmFu
Z2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBj
b25zdDsKICAgICAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICAgICAgYm9v
bCB0b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3Bw
CmluZGV4IGFiZjRmNmIuLjJkN2ZjYjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKKysrIGIvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNw
cApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlFUTW92aWVXaW4uaCIKICNpbmNsdWRlICJT
Y3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorI2luY2x1ZGUgIlRpbWVSYW5n
ZXMuaCIKICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5j
bHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KQEAgLTMyMywxMCArMzI0LDE0IEBAIGludCBNZWRpYVBs
YXllclByaXZhdGU6OmRhdGFSYXRlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotZmxvYXQg
TWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lQnVmZmVyZWQoKSBjb25zdAorUGFzc1JlZlB0cjxU
aW1lUmFuZ2VzPiBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3Q7CiB7CisgICAg
UmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAg
ICBmbG9hdCBsb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CiAgICAgLy8gcnRzcCBzdHJlYW1zIGFy
ZSBub3QgYnVmZmVyZWQKLSAgICByZXR1cm4gbV9pc1N0cmVhbWluZyA/IDAgOiBtYXhUaW1lTG9h
ZGVkKCk7CisgICAgaWYgKCFtX2lzU3RyZWFtaW5nICYmIGxvYWRlZCA+IDApCisgICAgICAgIHRp
bWVSYW5nZXMtPmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2Uo
KTsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25z
dApAQCAtNjMwLDQgKzYzNSwzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNTaW5nbGVT
ZWN1cml0eU9yaWdpbigpIGNvbnN0CiB9CiAKICNlbmRpZgotCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGlt
ZVdpbi5oCmluZGV4IDBjOTllYTYuLjRhM2EyOGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCisrKyBiL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdp
bi5oCkBAIC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0
YXRlIG5ldHdvcmtTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAg
TWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVh
ZHlTdGF0ZTsgfQogICAgIAotICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAg
IFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBtYXhU
aW1lU2Vla2FibGUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0Owog
ICAgIGJvb2wgdG90YWxCeXRlc0tub3duKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmggYi9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgKaW5kZXgg
ZmYzOGFkYS4uMmQ2YzM1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW5jZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaApAQCAtNzEsNyArNzEsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0
d29ya1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICAgICAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlT
dGF0ZTsgfQogCi0gICAgICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAg
ICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0
IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgp
IGNvbnN0OwogICAgICAgICBib29sIHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbSBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KaW5kZXggNDJlMmFjYS4uYjMyM2U3
NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5t
bQorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBAIC0x
OTMxLDE0ICsxOTMxLDEzIEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRp
YVNsaWRlclRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyCiAgICAgaWYgKCFtZWRp
YUVsZW1lbnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZsb2F0IHRpbWVMb2FkZWQg
PSAwOwotICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gMDsKLSAgICBmbG9hdCBkdXJhdGlvbiA9IDA7
Ci0gICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBtZWRpYUVsZW1lbnQtPnBsYXllcigpKSB7
Ci0gICAgICAgIGR1cmF0aW9uID0gcGxheWVyLT5kdXJhdGlvbigpOwotICAgICAgICB0aW1lTG9h
ZGVkID0gcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKTsKLSAgICAgICAgY3VycmVudFRpbWUgPSBw
bGF5ZXItPmN1cnJlbnRUaW1lKCk7Ci0gICAgfQorICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1l
UmFuZ2VzID0gbWVkaWFFbGVtZW50LT5idWZmZXJlZCgpOworICAgIEV4Y2VwdGlvbkNvZGUgaWdu
b3JlZEV4Y2VwdGlvbjsKKyAgICBmbG9hdCB0aW1lTG9hZGVkID0gdGltZVJhbmdlcy0+bGVuZ3Ro
KCkgPyB0aW1lUmFuZ2VzLT5lbmQoMCwgaWdub3JlZEV4Y2VwdGlvbikgOiAwOworICAgIGZsb2F0
IGN1cnJlbnRUaW1lID0gbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0IGR1
cmF0aW9uID0gbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIGlmIChpc25hbihkdXJhdGlv
bikpCisgICAgICAgIGR1cmF0aW9uID0gMDsKIAogICAgIGJvb2wgc2hvdWxkRHJhd0VuZENhcHMg
PSAhdG9SZW5kZXJNZWRpYShtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT5zaG91bGRTaG93VGlt
ZURpc3BsYXlDb250cm9scygpOwogICAgIHdrRHJhd01lZGlhU2xpZGVyVHJhY2soTWVkaWFDb250
cm9sbGVyVGhlbWVDbGFzc2ljLCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCks
IHIsIHRpbWVMb2FkZWQsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbiwgc2hvdWxkRHJhd0VuZENhcHMg
PyBNZWRpYVVJUGFydERyYXdFbmRDYXBzRmxhZyA6IDApOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCmluZGV4IDUxMmMzMGIuLmUyNWVlZDMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTM2LDYg
KzM2LDcgQEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlk
ZXIuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMu
aCIKICNpbmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlVzZXJBZ2Vu
dFN0eWxlU2hlZXRzLmgiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMzY1
MjkyZS4uNWY0YWUyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM4LDYg
KzM4LDcgQEAKICNpbXBvcnQgIlJlbmRlclNsaWRlci5oIgogI2ltcG9ydCAiUmVuZGVyVmlldy5o
IgogI2ltcG9ydCAiU2hhcmVkQnVmZmVyLmgiCisjaW1wb3J0ICJUaW1lUmFuZ2VzLmgiCiAjaW1w
b3J0ICJXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJVc2VyQWdlbnRTdHlsZVNo
ZWV0cy5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgpAQCAtMTYwMCwxNCArMTYwMSwxMyBA
QCBib29sIFJlbmRlclRoZW1lTWFjOjpwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0
KiBvLCBjb25zdCBSZW5kZXJPYmplY3Q6OgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKLSAgICBmbG9hdCB0aW1lTG9hZGVkID0gMDsKLSAgICBmbG9hdCBj
dXJyZW50VGltZSA9IDA7Ci0gICAgZmxvYXQgZHVyYXRpb24gPSAwOwotICAgIGlmIChNZWRpYVBs
YXllciogcGxheWVyID0gbWVkaWFFbGVtZW50LT5wbGF5ZXIoKSkgewotICAgICAgICBkdXJhdGlv
biA9IHBsYXllci0+ZHVyYXRpb24oKTsKLSAgICAgICAgdGltZUxvYWRlZCA9IHBsYXllci0+bWF4
VGltZUJ1ZmZlcmVkKCk7Ci0gICAgICAgIGN1cnJlbnRUaW1lID0gcGxheWVyLT5jdXJyZW50VGlt
ZSgpOwotICAgIH0KKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGltZVJhbmdlcyA9IG1lZGlhRWxl
bWVudC0+YnVmZmVyZWQoKTsKKyAgICBFeGNlcHRpb25Db2RlIGlnbm9yZWRFeGNlcHRpb247Cisg
ICAgZmxvYXQgdGltZUxvYWRlZCA9IHRpbWVSYW5nZXMtPmxlbmd0aCgpID8gdGltZVJhbmdlcy0+
ZW5kKDAsIGlnbm9yZWRFeGNlcHRpb24pIDogMDsKKyAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1l
ZGlhRWxlbWVudC0+Y3VycmVudFRpbWUoKTsKKyAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxl
bWVudC0+ZHVyYXRpb24oKTsKKyAgICBpZiAoaXNuYW4oZHVyYXRpb24pKQorICAgICAgICBkdXJh
dGlvbiA9IDA7CiAgCiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKICAgICBGbG9hdFJl
Y3QgdW56b29tZWRSZWN0ID0gZ2V0VW56b29tZWRSZWN0QW5kQWRqdXN0Q3VycmVudENvbnRleHQo
bywgcGFpbnRJbmZvLCByKTsK
</data>
<flag name="review"
          id="20355"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39310</attachid>
            <date>2009-09-09 16:40:40 -0700</date>
            <delta_ts>2009-09-09 17:07:34 -0700</delta_ts>
            <desc>patch to be submitted</desc>
            <filename>webkit-buffered.patch</filename>
            <type>text/plain</type>
            <size>16884</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzEwN2FjMi4uYTljODE1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAwOS0wOS0wOCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYnVmZmVyZWQgYXR0cmlidXRlIHNob3VsZCBy
ZXBvcnQgYSBsaXN0IG9mIHRpbWUgcmFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MQorCisgICAgICAgIENoYW5nZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIGFuZCBNZWRpYVBsYXllcidzIGRlZmluaXRpb24gdG8KKyAgICAgICAg
cmVwb3J0IGEgbGlzdCBvZiBidWZmZXJlZCB0aW1lIHJhbmdlcyBhcyBXZWJDb3JlOjpUaW1lUmFu
Z2VzLiBUaGlzCisgICAgICAgIGNoYW5nZSBhbHNvIGdvdCByaWQgb2YgdGhlIG1heFRpbWVCdWZm
ZXJlZCgpIG1ldGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyBpcyBhIEFQ
SSBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCk6CisgICAgICAgIFVz
ZSBNZWRpYVBsYWllcjo6YnVmZmVyZWQoKSBpbnN0ZWFkIG9mIG1heFRpbWVCdWZmZXJlZCgpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YnVmZmVyZWQpOgorICAgICAgICBk
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IFVzZSBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OmJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBt
YXhUaW1lQnVmZmVyZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpidWZmZXJl
ZCk6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgSW1wbGVtZW50cyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
ICAgICAgICBSZW1vdmVkIG1heFRpbWVCdWZmZXJlZCgpIGFuZCBkZWZpbmVzIFBhc3NSZWZQdHI8
VGltZVJhbmdlcz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgUmVtb3ZlZCBtYXhUaW1lQnVmZmVy
ZWQoKSBhbmQgZGVmaW5lcyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IEltcGxlbWVudGF0aW9uIG9mIGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcDoKKyAgICAgICAgSW1wbGVtZW50cyBQ
YXNzUmVmUHRyPFRpbWVSYW5lZ3M+IGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmg6CisgICAgICAgIFJlbW92ZWQgbWF4
VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVXaW4uY3BwOgorICAgICAgICBJbXBsZW1lbnRzIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lV2luLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVk
KCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmg6Cisg
ICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRp
YVNsaWRlclRyYWNrKToKKyAgICAgICAgVXNlIGJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBtYXhUaW1l
QnVmZmVyZWQoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYVNsaWRlclRy
YWNrKToKKyAgICAgICAgZGl0dG8uCisKIDIwMDktMDktMDggIERhdmUgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDIxNDM5MTguLjg2NmEwNzYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTEyODcsNyArMTI4NywxOSBAQCBmbG9hdCBIVE1MTWVkaWFFbGVtZW50Ojpw
ZXJjZW50TG9hZGVkKCkgY29uc3QKICAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4g
MDsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fcGxheWVyLT5kdXJhdGlvbigpOwotICAgIHJldHVy
biBkdXJhdGlvbiA/IG1fcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKSAvIGR1cmF0aW9uIDogMDsK
KworICAgIGlmIChkdXJhdGlvbiA9PSAwIHx8IGlzaW5mKGR1cmF0aW9uKSkKKyAgICAgICAgcmV0
dXJuIDA7CisKKyAgICBmbG9hdCBidWZmZXJlZCA9IDA7CisgICAgUmVmUHRyPFRpbWVSYW5nZXM+
IHRpbWVSYW5nZXMgPSBtX3BsYXllci0+YnVmZmVyZWQoKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwOyBpIDwgdGltZVJhbmdlcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICBFeGNlcHRpb25D
b2RlIGlnbm9yZWRFeGNlcHRpb247CisgICAgICAgIGZsb2F0IHN0YXJ0ID0gdGltZVJhbmdlcy0+
c3RhcnQoaSwgaWdub3JlZEV4Y2VwdGlvbik7CisgICAgICAgIGZsb2F0IGVuZCA9IHRpbWVSYW5n
ZXMtPmVuZChpLCBpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgYnVmZmVyZWQgKz0gZW5kIC0g
c3RhcnQ7CisgICAgfQorICAgIHJldHVybiBidWZmZXJlZCAvIGR1cmF0aW9uOwogfQogCiBib29s
IEhUTUxNZWRpYUVsZW1lbnQ6OmhhdmVQb3RlbnRpYWxTb3VyY2VDaGlsZCgpCkBAIC0xNDY2LDEw
ICsxNDc4LDkgQEAgR3JhcGhpY3NMYXllciogSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJH
cmFwaGljc0xheWVyKE1lZGlhUGxheWVyKikKIAogUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBIVE1M
TWVkaWFFbGVtZW50OjpidWZmZXJlZCgpIGNvbnN0CiB7Ci0gICAgLy8gRklYTUUgcmVhbCByYW5n
ZXMgc3VwcG9ydAotICAgIGlmICghbV9wbGF5ZXIgfHwgIW1fcGxheWVyLT5tYXhUaW1lQnVmZmVy
ZWQoKSkKKyAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4gVGltZVJhbmdlczo6Y3Jl
YXRlKCk7Ci0gICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNyZWF0ZSgwLCBtX3BsYXllci0+bWF4VGlt
ZUJ1ZmZlcmVkKCkpOworICAgIHJldHVybiBtX3BsYXllci0+YnVmZmVyZWQoKTsKIH0KIAogUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBIVE1MTWVkaWFFbGVtZW50OjpwbGF5ZWQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcAppbmRleCAxM2FiM2ZiLi4yMGRi
YzAwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNw
cAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcApAQCAtMzUs
NiArMzUsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCiAj
aW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJUaW1lUmFuZ2VzLmgiCiAKICNpZiBQTEFU
Rk9STShNQUMpCiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCIKQEAgLTkxLDcg
KzkyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVkaWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVh
ZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIE1lZGlhUGxheWVyOjpIYXZlTm90aGluZzsgfQogCiAg
ICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdCB7IHJldHVybiAwOyB9Ci0g
ICAgdmlydHVhbCBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiAwOyB9Cisg
ICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3QgeyByZXR1
cm4gVGltZVJhbmdlczo6Y3JlYXRlKCk7IH0KIAogICAgIHZpcnR1YWwgaW50IGRhdGFSYXRlKCkg
Y29uc3QgeyByZXR1cm4gMDsgfQogCkBAIC0zOTAsOSArMzkxLDkgQEAgdm9pZCBNZWRpYVBsYXll
cjo6c2V0RW5kVGltZShmbG9hdCB0aW1lKQogICAgIG1fcHJpdmF0ZS0+c2V0RW5kVGltZSh0aW1l
KTsKIH0KIAotZmxvYXQgTWVkaWFQbGF5ZXI6Om1heFRpbWVCdWZmZXJlZCgpCitQYXNzUmVmUHRy
PFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyOjpidWZmZXJlZCgpCiB7Ci0gICAgcmV0dXJuIG1fcHJp
dmF0ZS0+bWF4VGltZUJ1ZmZlcmVkKCk7CisgICAgcmV0dXJuIG1fcHJpdmF0ZS0+YnVmZmVyZWQo
KTsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXI6Om1heFRpbWVTZWVrYWJsZSgpCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKaW5kZXggNzQ3NjM2MC4uNGM1ZWU1YiAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCisrKyBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaApAQCAtNDgsNiArNDgsNyBAQCBjbGFz
cyBJbnRTaXplOwogY2xhc3MgTWVkaWFQbGF5ZXI7CiBjbGFzcyBNZWRpYVBsYXllclByaXZhdGVJ
bnRlcmZhY2U7CiBjbGFzcyBTdHJpbmc7CitjbGFzcyBUaW1lUmFuZ2VzOwogCiAjaWYgVVNFKEFD
Q0VMRVJBVEVEX0NPTVBPU0lUSU5HKQogY2xhc3MgR3JhcGhpY3NMYXllcjsKQEAgLTE0Niw3ICsx
NDcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBwcmVzZXJ2ZXNQaXRjaCgpIGNvbnN0OyAgICAKICAg
ICB2b2lkIHNldFByZXNlcnZlc1BpdGNoKGJvb2wpOwogICAgIAotICAgIGZsb2F0IG1heFRpbWVC
dWZmZXJlZCgpOworICAgIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKTsKICAgICBm
bG9hdCBtYXhUaW1lU2Vla2FibGUoKTsKIAogICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5o
IGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllclByaXZhdGUuaAppbmRleCA2
M2FkYWM2Li45Y2M4OWM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01l
ZGlhUGxheWVyUHJpdmF0ZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1
YWwgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkgY29uc3QgPSAwOwotICAgIHZpcnR1YWwgZmxvYXQg
bWF4VGltZUJ1ZmZlcmVkKCkgY29uc3QgPSAwOworICAgIHZpcnR1YWwgUGFzc1JlZlB0cjxUaW1l
UmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1YWwgaW50IGRhdGFSYXRl
KCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0
ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcAppbmRleCBjNTcxNWQ4Li4x
ZmM0ZjQ1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBs
YXllclByaXZhdGVHU3RyZWFtZXIuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Z3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAKQEAgLTM3NywxMSArMzc3LDEzIEBA
IE1lZGlhUGxheWVyOjpSZWFkeVN0YXRlIE1lZGlhUGxheWVyUHJpdmF0ZTo6cmVhZHlTdGF0ZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fcmVhZHlTdGF0ZTsKIH0KIAotZmxvYXQgTWVkaWFQbGF5ZXJQ
cml2YXRlOjptYXhUaW1lQnVmZmVyZWQoKSBjb25zdAorUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBN
ZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3Q7CiB7Ci0gICAgaWYgKG1fZXJyb3JP
Y2N1cmVkKQotICAgICAgICByZXR1cm4gMC4wOwotICAgIHJldHVybiBtX2lzU3RyZWFtaW5nID8g
MCA6IG1heFRpbWVMb2FkZWQoKTsKKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGltZVJhbmdlcyA9
IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIGZsb2F0IGxvYWRlZCA9IG1heFRpbWVMb2FkZWQo
KTsKKyAgICBpZiAoIW1fZXJyb3JPY2N1cmVkICYmICFtX2lzU3RyZWFtaW5nICYmIGxvYWRlZCA+
IDApCisgICAgICAgIHRpbWVSYW5nZXMtPmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVybiB0aW1l
UmFuZ2VzLnJlbGVhc2UoKTsKIH0KIAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1l
U2Vla2FibGUoKSBjb25zdApAQCAtNzMwLDQgKzczMiwzIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2
YXRlOjpjcmVhdGVHU1RQbGF5QmluKFN0cmluZyB1cmwpCiB9CiAKICNlbmRpZgotCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3Ry
ZWFtZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0
ZUdTdHJlYW1lci5oCmluZGV4IDZmOGQ5NzEuLmQzMDU3NTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oCkBAIC04MSw3ICs4MSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIE1l
ZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAgICAgICAg
ICBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3Q7CiAKLSAgICAgICAg
ICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAgICAgICAgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgICAgICAgICAgZmxvYXQgbWF4VGlt
ZVNlZWthYmxlKCkgY29uc3Q7CiAgICAgICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNv
bnN0OwogICAgICAgICAgICAgYm9vbCB0b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0
LmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtp
dC5oCmluZGV4IDk3NGRiZWIuLmJmYWJhOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaApAQCAtMTA1LDcgKzEw
NSw3IEBAIHByaXZhdGU6CiAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3Rh
dGUoKSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgIE1lZGlhUGxheWVyOjpS
ZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3JlYWR5U3RhdGU7IH0KICAg
ICAKLSAgICBmbG9hdCBtYXhUaW1lQnVmZmVyZWQoKSBjb25zdDsKKyAgICBQYXNzUmVmUHRyPFRp
bWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgZmxvYXQgbWF4VGltZVNlZWthYmxlKCkg
Y29uc3Q7CiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICBib29sIHRvdGFs
Qnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQubW0gYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbQppbmRleCBkM2I1M2U1Li41YTVjMDMx
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclBy
aXZhdGVRVEtpdC5tbQorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9NZWRpYVBs
YXllclByaXZhdGVRVEtpdC5tbQpAQCAtMzksNiArMzksNyBAQAogI2ltcG9ydCAiS1VSTC5oIgog
I2ltcG9ydCAiTUlNRVR5cGVSZWdpc3RyeS5oIgogI2ltcG9ydCAiU29mdExpbmtpbmcuaCIKKyNp
bXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNvcmVTeXN0ZW1JbnRlcmZhY2UuaCIK
ICNpbXBvcnQgPFFUS2l0L1FUS2l0Lmg+CiAjaW1wb3J0IDxvYmpjL29iamMtcnVudGltZS5oPgpA
QCAtNzY1LDEwICs3NjYsMTMgQEAgaW50IE1lZGlhUGxheWVyUHJpdmF0ZTo6ZGF0YVJhdGUoKSBj
b25zdAogICAgIHJldHVybiB3a1FUTW92aWVEYXRhUmF0ZShtX3F0TW92aWUuZ2V0KCkpOyAKIH0K
IAotCi1mbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVCdWZmZXJlZCgpIGNvbnN0CitQ
YXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQoKSBjb25z
dAogewotICAgIHJldHVybiBtYXhUaW1lTG9hZGVkKCk7CisgICAgUmVmUHRyPFRpbWVSYW5nZXM+
IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBmbG9hdCBsb2FkZWQgPSBt
YXhUaW1lTG9hZGVkKCk7CisgICAgaWYgKGxvYWRlZCA+IDApCisgICAgICAgIHRpbWVSYW5nZXMt
PmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsKIH0KIAog
ZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdApkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9u
b24uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQ
aG9ub24uY3BwCmluZGV4IDgxNjk1M2QuLjQxNWY0NTUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcAorKysgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5jcHAKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJHcmFwaGlj
c0NvbnRleHQuaCIKICNpbmNsdWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIlRpbWVS
YW5nZXMuaCIKICNpbmNsdWRlICJXaWRnZXQuaCIKICNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgog
CkBAIC0yNjAsMTAgKzI2MSwxMCBAQCB2b2lkIE1lZGlhUGxheWVyUHJpdmF0ZTo6c2V0RW5kVGlt
ZShmbG9hdCBlbmRUaW1lKQogICAgIG5vdEltcGxlbWVudGVkKCk7CiB9CiAKLWZsb2F0IE1lZGlh
UGxheWVyUHJpdmF0ZTo6bWF4VGltZUJ1ZmZlcmVkKCkgY29uc3QKK1Bhc3NSZWZQdHI8VGltZVJh
bmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0OwogewogICAgIG5vdElt
cGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDAuMGY7CisgICAgcmV0dXJuIFRpbWVSYW5nZXM6OmNy
ZWF0ZSgpOwogfQogCiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSgp
IGNvbnN0CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxh
eWVyUHJpdmF0ZVBob25vbi5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBs
YXllclByaXZhdGVQaG9ub24uaAppbmRleCAwNDJmNWIyLi5lMTE5M2I2IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5oCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9u
LmgKQEAgLTEwNSw3ICsxMDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIE1lZGlh
UGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0YXRlKCkgY29uc3Q7CiAgICAgICAgIE1lZGlh
UGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKIAotICAgICAgICBmbG9hdCBt
YXhUaW1lQnVmZmVyZWQoKSBjb25zdDsKKyAgICAgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBi
dWZmZXJlZCgpIGNvbnN0OwogICAgICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdDsK
ICAgICAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKSBjb25zdDsKICAgICAgICAgYm9vbCB0b3Rh
bEJ5dGVzS25vd24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwCmluZGV4
IGFiZjRmNmIuLjJkN2ZjYjkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcApAQCAt
MzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlFUTW92aWVXaW4uaCIKICNpbmNsdWRlICJTY3JvbGxW
aWV3LmgiCiAjaW5jbHVkZSAiU3RyaW5nSGFzaC5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIK
ICNpbmNsdWRlICJUaW1lci5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8
d3RmL01hdGhFeHRyYXMuaD4KQEAgLTMyMywxMCArMzI0LDE0IEBAIGludCBNZWRpYVBsYXllclBy
aXZhdGU6OmRhdGFSYXRlKCkgY29uc3QKICAgICByZXR1cm4gMDsKIH0KIAotZmxvYXQgTWVkaWFQ
bGF5ZXJQcml2YXRlOjptYXhUaW1lQnVmZmVyZWQoKSBjb25zdAorUGFzc1JlZlB0cjxUaW1lUmFu
Z2VzPiBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3Q7CiB7CisgICAgUmVmUHRy
PFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBUaW1lUmFuZ2VzOjpjcmVhdGUoKTsKKyAgICBmbG9h
dCBsb2FkZWQgPSBtYXhUaW1lTG9hZGVkKCk7CiAgICAgLy8gcnRzcCBzdHJlYW1zIGFyZSBub3Qg
YnVmZmVyZWQKLSAgICByZXR1cm4gbV9pc1N0cmVhbWluZyA/IDAgOiBtYXhUaW1lTG9hZGVkKCk7
CisgICAgaWYgKCFtX2lzU3RyZWFtaW5nICYmIGxvYWRlZCA+IDApCisgICAgICAgIHRpbWVSYW5n
ZXMtPmFkZCgwLCBsb2FkZWQpOworICAgIHJldHVybiB0aW1lUmFuZ2VzLnJlbGVhc2UoKTsKIH0K
IAogZmxvYXQgTWVkaWFQbGF5ZXJQcml2YXRlOjptYXhUaW1lU2Vla2FibGUoKSBjb25zdApAQCAt
NjMwLDQgKzYzNSwzIEBAIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlOjpoYXNTaW5nbGVTZWN1cml0
eU9yaWdpbigpIGNvbnN0CiB9CiAKICNlbmRpZgotCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uaCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5o
CmluZGV4IDBjOTllYTYuLjRhM2EyOGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oCkBA
IC03Nyw3ICs3Nyw3IEBAIHB1YmxpYzoKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5l
dHdvcmtTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAgTWVkaWFQ
bGF5ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0
ZTsgfQogICAgIAotICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgIFBhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBtYXhUaW1lU2Vl
a2FibGUoKSBjb25zdDsKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OwogICAgIGJv
b2wgdG90YWxCeXRlc0tub3duKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmggYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmgKaW5kZXggZmYzOGFk
YS4uMmQ2YzM1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5jZS9N
ZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
d2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaApAQCAtNzEsNyArNzEsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29ya1N0
YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICAgICAgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsg
fQogCi0gICAgICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAgICBQYXNz
UmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0IG1heFRp
bWVTZWVrYWJsZSgpIGNvbnN0OwogICAgICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0
OwogICAgICAgICBib29sIHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbSBiL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KaW5kZXggNDJlMmFjYS4uYjMyM2U3NSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCkBAIC0xOTMxLDE0
ICsxOTMxLDEzIEBAIGJvb2wgUmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRpYVNsaWRl
clRyYWNrKFJlbmRlck9iamVjdCogbywgY29uc3QgUmVuZGVyCiAgICAgaWYgKCFtZWRpYUVsZW1l
bnQpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGZsb2F0IHRpbWVMb2FkZWQgPSAwOwot
ICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gMDsKLSAgICBmbG9hdCBkdXJhdGlvbiA9IDA7Ci0gICAg
aWYgKE1lZGlhUGxheWVyKiBwbGF5ZXIgPSBtZWRpYUVsZW1lbnQtPnBsYXllcigpKSB7Ci0gICAg
ICAgIGR1cmF0aW9uID0gcGxheWVyLT5kdXJhdGlvbigpOwotICAgICAgICB0aW1lTG9hZGVkID0g
cGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKTsKLSAgICAgICAgY3VycmVudFRpbWUgPSBwbGF5ZXIt
PmN1cnJlbnRUaW1lKCk7Ci0gICAgfQorICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2Vz
ID0gbWVkaWFFbGVtZW50LT5idWZmZXJlZCgpOworICAgIEV4Y2VwdGlvbkNvZGUgaWdub3JlZEV4
Y2VwdGlvbjsKKyAgICBmbG9hdCB0aW1lTG9hZGVkID0gdGltZVJhbmdlcy0+bGVuZ3RoKCkgPyB0
aW1lUmFuZ2VzLT5lbmQoMCwgaWdub3JlZEV4Y2VwdGlvbikgOiAwOworICAgIGZsb2F0IGN1cnJl
bnRUaW1lID0gbWVkaWFFbGVtZW50LT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0IGR1cmF0aW9u
ID0gbWVkaWFFbGVtZW50LT5kdXJhdGlvbigpOworICAgIGlmIChpc25hbihkdXJhdGlvbikpCisg
ICAgICAgIGR1cmF0aW9uID0gMDsKIAogICAgIGJvb2wgc2hvdWxkRHJhd0VuZENhcHMgPSAhdG9S
ZW5kZXJNZWRpYShtZWRpYUVsZW1lbnQtPnJlbmRlcmVyKCkpLT5zaG91bGRTaG93VGltZURpc3Bs
YXlDb250cm9scygpOwogICAgIHdrRHJhd01lZGlhU2xpZGVyVHJhY2soTWVkaWFDb250cm9sbGVy
VGhlbWVDbGFzc2ljLCBwYWludEluZm8uY29udGV4dC0+cGxhdGZvcm1Db250ZXh0KCksIHIsIHRp
bWVMb2FkZWQsIGN1cnJlbnRUaW1lLCBkdXJhdGlvbiwgc2hvdWxkRHJhd0VuZENhcHMgPyBNZWRp
YVVJUGFydERyYXdFbmRDYXBzRmxhZyA6IDApOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVDaHJvbWl1bVNraWEuY3BwCmluZGV4IDUxMmMzMGIuLmUyNWVlZDMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcAorKysgYi9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAKQEAgLTM2LDYgKzM2LDcg
QEAKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJTbGlkZXIuaCIK
ICNpbmNsdWRlICJTY3JvbGxiYXJUaGVtZS5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKICNp
bmNsdWRlICJUcmFuc2Zvcm1hdGlvbk1hdHJpeC5oIgogI2luY2x1ZGUgIlVzZXJBZ2VudFN0eWxl
U2hlZXRzLmgiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFj
Lm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMzY1MjkyZS4u
NWY0YWUyNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0K
KysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTM4LDYgKzM4LDcg
QEAKICNpbXBvcnQgIlJlbmRlclNsaWRlci5oIgogI2ltcG9ydCAiUmVuZGVyVmlldy5oIgogI2lt
cG9ydCAiU2hhcmVkQnVmZmVyLmgiCisjaW1wb3J0ICJUaW1lUmFuZ2VzLmgiCiAjaW1wb3J0ICJX
ZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgiCiAjaW1wb3J0ICJVc2VyQWdlbnRTdHlsZVNoZWV0cy5o
IgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5oPgpAQCAtMTYwMCwxNCArMTYwMSwxMyBAQCBib29s
IFJlbmRlclRoZW1lTWFjOjpwYWludE1lZGlhU2xpZGVyVHJhY2soUmVuZGVyT2JqZWN0KiBvLCBj
b25zdCBSZW5kZXJPYmplY3Q6OgogICAgIGlmICghbWVkaWFFbGVtZW50KQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKLSAgICBmbG9hdCB0aW1lTG9hZGVkID0gMDsKLSAgICBmbG9hdCBjdXJyZW50
VGltZSA9IDA7Ci0gICAgZmxvYXQgZHVyYXRpb24gPSAwOwotICAgIGlmIChNZWRpYVBsYXllciog
cGxheWVyID0gbWVkaWFFbGVtZW50LT5wbGF5ZXIoKSkgewotICAgICAgICBkdXJhdGlvbiA9IHBs
YXllci0+ZHVyYXRpb24oKTsKLSAgICAgICAgdGltZUxvYWRlZCA9IHBsYXllci0+bWF4VGltZUJ1
ZmZlcmVkKCk7Ci0gICAgICAgIGN1cnJlbnRUaW1lID0gcGxheWVyLT5jdXJyZW50VGltZSgpOwot
ICAgIH0KKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGltZVJhbmdlcyA9IG1lZGlhRWxlbWVudC0+
YnVmZmVyZWQoKTsKKyAgICBFeGNlcHRpb25Db2RlIGlnbm9yZWRFeGNlcHRpb247CisgICAgZmxv
YXQgdGltZUxvYWRlZCA9IHRpbWVSYW5nZXMtPmxlbmd0aCgpID8gdGltZVJhbmdlcy0+ZW5kKDAs
IGlnbm9yZWRFeGNlcHRpb24pIDogMDsKKyAgICBmbG9hdCBjdXJyZW50VGltZSA9IG1lZGlhRWxl
bWVudC0+Y3VycmVudFRpbWUoKTsKKyAgICBmbG9hdCBkdXJhdGlvbiA9IG1lZGlhRWxlbWVudC0+
ZHVyYXRpb24oKTsKKyAgICBpZiAoaXNuYW4oZHVyYXRpb24pKQorICAgICAgICBkdXJhdGlvbiA9
IDA7CiAgCiAgICAgcGFpbnRJbmZvLmNvbnRleHQtPnNhdmUoKTsKICAgICBGbG9hdFJlY3QgdW56
b29tZWRSZWN0ID0gZ2V0VW56b29tZWRSZWN0QW5kQWRqdXN0Q3VycmVudENvbnRleHQobywgcGFp
bnRJbmZvLCByKTsK
</data>
<flag name="review"
          id="20391"
          type_id="1"
          status="-"
          setter="eric.carlson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39313</attachid>
            <date>2009-09-09 17:07:34 -0700</date>
            <delta_ts>2009-09-09 17:10:06 -0700</delta_ts>
            <desc>patch to be submitted</desc>
            <filename>webkit-codecs-1.patch</filename>
            <type>text/plain</type>
            <size>11890</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhMzQ2ZWZhLi4xMWNkMDMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDktMDkt
MDggIEFscGhhIExhbSAgPGhjbGFtQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNZWRpYSBsYXlvdXQgdGVzdHMgc2hvdWxkIGhh
dmUgYSB3YXkgdG8gcHJvdmlkZSB0ZXN0IGZpbGVzIGluIGRpZmZlcmVudCBmb3JtYXRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yODMyNworCisgICAg
ICAgIEFkZGVkIG1lZGlhLWZpbGUuanMgd2hpY2ggaGFzIGEgZmluZE1lZGlhRmlsZSh0eXBlLCBu
YW1lKSBtZXRob2QKKyAgICAgICAgdG8gZmluZCBhIHByb3BlciBtZWRpYSBmaWxlIHRvIGxvYWQg
YWNjb3JkaW5nIHRvIHN1cHBvcnRlZCBjb2RlY3MuCisKKyAgICAgICAgQWxzbyBjaGFuZ2VkIDEw
IGxheW91dCB0ZXN0cyB0byB1c2UgYWJvdmUgbWV0aG9kIHRvIGxvY2F0ZSB0aGUgdGVzdCBmaWxl
LgorCisgICAgICAgICogbWVkaWEvY29udHJvbHMtc3RyaWN0Lmh0bWw6IFVzZSBmaW5kTWVkaWFG
aWxlKHR5cGUsIG5hbWUpLgorICAgICAgICAqIG1lZGlhL2NvbnRyb2xzLXN0eWxpbmcuaHRtbDog
ZGl0dG8uCisgICAgICAgICogbWVkaWEvbWVkaWEtZmlsZS5qczogQWRkZWQuIFByb3ZpZGUgZmlu
ZE1lZGlhRmlsZSh0eXBlLCBuYW1lKS4KKyAgICAgICAgKiBtZWRpYS92aWRlby1hcHBlbmQtc291
cmNlLmh0bWw6IFVzZSBmaW5kTWVkaWFGaWxlKHR5cGUsIG5hbWUpLgorICAgICAgICAqIG1lZGlh
L3ZpZGVvLWFzcGVjdC1yYXRpby5odG1sOiBkaXR0by4KKyAgICAgICAgKiBtZWRpYS92aWRlby1h
dXRvcGxheS5odG1sOiBkaXR0by4KKyAgICAgICAgKiBtZWRpYS92aWRlby1idWZmZXJlZC5odG1s
OiBkaXR0by4KKyAgICAgICAgKiBtZWRpYS92aWRlby1jb250cm9scy1yZW5kZXJpbmcuaHRtbDog
ZGl0dG8uCisgICAgICAgICogbWVkaWEvdmlkZW8tbGF5ZXItY3Jhc2guaHRtbDogZGl0dG8uCisg
ICAgICAgICogbWVkaWEvdmlkZW8tdHJhbnNmb3JtZWQuaHRtbDogVXNlIGZpbmRNZWRpYUZpbGUo
dHlwZSwgbmFtZSkuCisgICAgICAgICogbWVkaWEvdmlkZW8tem9vbS1jb250cm9scy5odG1sOiBk
aXR0by4KKwogMjAwOS0wOS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L21lZGlhL2NvbnRyb2xzLXN0cmljdC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udHJvbHMt
c3RyaWN0Lmh0bWwKaW5kZXggZDUwNDY0OC4uZGU1YjRkZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvbWVkaWEvY29udHJvbHMtc3RyaWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29u
dHJvbHMtc3RyaWN0Lmh0bWwKQEAgLTEsMTAgKzEsMTEgQEAKIDwhRE9DVFlQRSBIVE1MPgogPGh0
bWw+CiAgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3Nj
cmlwdD4KICAgICAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXBhaW50LXRlc3QuanMiPjwvc2NyaXB0
PgogICAgIDwvaGVhZD4KLSAgICA8Ym9keSBvbmxvYWQ9ImluaXQoKSI+CisgICAgPGJvZHkgb25s
b2FkPSJzZXRTcmNCeVRhZ05hbWUoJ3ZpZGVvJywgZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29u
dGVudC90ZXN0JykpOyBpbml0KCkiPgogICAgICAgICA8cD5EcmF3aW5nIHRoZSBjb250cm9scyBp
biBzdHJpY3QgbW9kZS48L3A+Ci0gICAgICAgIDx2aWRlbyBjb250cm9scyBzcmM9ImNvbnRlbnQv
dGVzdC5tcDQiPjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBjb250cm9scz48L3ZpZGVvPgogICAg
IDwvYm9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL2NvbnRyb2xz
LXN0eWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL2NvbnRyb2xzLXN0eWxpbmcuaHRtbApp
bmRleCA5YmIzMDZiLi40NTNhZTQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS9jb250
cm9scy1zdHlsaW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvY29udHJvbHMtc3R5bGlu
Zy5odG1sCkBAIC0xLDUgKzEsNiBAQAogPGh0bWw+CiA8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0i
bWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXBhaW50LXRl
c3QuanMiPjwvc2NyaXB0PgogICAgIDxzdHlsZT4KICAgICAub3ZlcnJpZGUgewpAQCAtMTQsMTEg
KzE1LDExIEBACiAgICAgfQogICAgIDwvc3R5bGU+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9Imlu
aXQoKSI+Cis8Ym9keSBvbmxvYWQ9InNldFNyY0J5VGFnTmFtZSgndmlkZW8nLCBmaW5kTWVkaWFG
aWxlKCd2aWRlbycsICdjb250ZW50L3Rlc3QnKSk7IGluaXQoKSI+CiA8cD5UaGUgbG9vayBvZiB0
aGUgY29udHJvbHMgc2hvdWxkIG5vdCBjaGFuZ2UuPC9wPgogPGRpdiBjbGFzcz0ib3ZlcnJpZGUi
PgotICAgIDx2aWRlbyBjb250cm9scyBzcmM9ImNvbnRlbnQvdGVzdC5tcDQiPjwvdmlkZW8+Cisg
ICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+CiA8L2Rpdj4KLTx2aWRlbyBjb250cm9scyBzcmM9
ImNvbnRlbnQvdGVzdC5tcDQiPjwvdmlkZW8+Cis8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KIDwv
Ym9keT4KIDwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL21lZGlhLWZpbGUu
anMgYi9MYXlvdXRUZXN0cy9tZWRpYS9tZWRpYS1maWxlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmE4NTY5Y2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9t
ZWRpYS9tZWRpYS1maWxlLmpzCkBAIC0wLDAgKzEsNDkgQEAKK3ZhciBhdWRpb0NvZGVjcyA9IFsK
KyAgICBbImF1ZGlvL2FhYyIsICJtNGEiXSwKKyAgICBbImF1ZGlvL21wZWciLCAibXAzIl0sCisg
ICAgWyJhdWRpby93YXYiLCAid2F2Il0sCisgICAgWyJhdWRpby9vZ2ciLCAib2dnIl0KK107CisK
K3ZhciB2aWRlb0NvZGVjcyA9IFsKKyAgICBbInZpZGVvL21wNCIsICJtcDQiXSwKKyAgICBbInZp
ZGVvL21wZWciLCAibXBnIl0sCisgICAgWyJ2aWRlby9xdWlja3RpbWUiLCAibW92Il0sCisgICAg
WyJ2aWRlby9vZ2ciLCAib2dnIl0KK107CisKK2Z1bmN0aW9uIGZpbmRNZWRpYUZpbGUodGFnTmFt
ZSwgbmFtZSkgeworICAgIHZhciBjb2RlY3M7CisgICAgaWYgKHRhZ05hbWUgPT0gImF1ZGlvIikK
KyAgICAgICAgY29kZWNzID0gYXVkaW9Db2RlY3M7CisgICAgZWxzZQorICAgICAgICBjb2RlY3Mg
PSB2aWRlb0NvZGVjczsKKworICAgIHZhciBlbGVtZW50OworICAgIHRyeSB7CisgICAgICAgIGVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSh0YWdOYW1lKVswXTsKKyAgICB9
IGNhdGNoIChleCkgeworICAgICAgICBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCh0
YWdOYW1lKTsKKyAgICB9CisKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IGNvZGVjcy5sZW5ndGg7
ICsraSkgeworICAgICAgICBpZiAoZWxlbWVudC5jYW5QbGF5VHlwZShjb2RlY3NbaV1bMF0pKQor
ICAgICAgICAgICAgcmV0dXJuIG5hbWUgKyAiLiIgKyBjb2RlY3NbaV1bMV07CisgICAgfQorCisg
ICAgcmV0dXJuICIiOworfQorCitmdW5jdGlvbiBzZXRTcmNCeVRhZ05hbWUodGFnTmFtZSwgc3Jj
KSB7CisgICAgdmFyIGVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUodGFn
TmFtZSk7CisgICAgaWYgKGVsZW1lbnRzKSB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
ZWxlbWVudHMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBlbGVtZW50c1tpXS5zcmMgPSBzcmM7
CisgICAgfQorfQorCitmdW5jdGlvbiBzZXRTcmNCeUlkKGlkLCBzcmMpIHsKKyAgICB2YXIgZWxl
bWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGlkKTsKKyAgICBpZiAoZWxlbWVudCkKKyAg
ICAgICAgaWQuc3JjID0gc3JjOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlk
ZW8tYXBwZW5kLXNvdXJjZS5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tYXBwZW5kLXNv
dXJjZS5odG1sCmluZGV4IDUwMTgyNzQuLjg2MTY5OTcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L21lZGlhL3ZpZGVvLWFwcGVuZC1zb3VyY2UuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1hcHBlbmQtc291cmNlLmh0bWwKQEAgLTEsMTYgKzEsMTggQEAKIDx2aWRlbyBjb250cm9s
cz48L3ZpZGVvPgorPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KIDxzY3JpcHQg
c3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiAgICAgdGVzdEV4cGVjdGVk
KCJ2aWRlby5jdXJyZW50U3JjIiwgIiIpOworICAgIHZhciBtZWRpYUZpbGUgPSBmaW5kTWVkaWFG
aWxlKCJ2aWRlbyIsICJjb250ZW50L3Rlc3QiKTsKICAgICB2YXIgc291cmNlID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgic291cmNlIik7Ci0gICAgc291cmNlLnNldEF0dHJpYnV0ZSgic3JjIiwg
ImNvbnRlbnQvdGVzdC5tcDQiKTsKKyAgICBzb3VyY2Uuc2V0QXR0cmlidXRlKCJzcmMiLCBtZWRp
YUZpbGUpOwogICAgIHZpZGVvLmFwcGVuZENoaWxkKHNvdXJjZSk7CiAKICAgICB0ZXN0RXhwZWN0
ZWQoInZpZGVvLmN1cnJlbnRTcmMiLCAiIik7CiAKICAgICB3YWl0Rm9yRXZlbnQoImxvYWQiLCBm
dW5jdGlvbiAoKSB7Ci0gICAgICAgIHRlc3RFeHBlY3RlZCgicmVsYXRpdmVVUkwodmlkZW8uY3Vy
cmVudFNyYykgIiwgImNvbnRlbnQvdGVzdC5tcDQiKTsKKyAgICAgICAgdGVzdEV4cGVjdGVkKCJy
ZWxhdGl2ZVVSTCh2aWRlby5jdXJyZW50U3JjKSAiLCBtZWRpYUZpbGUpOwogICAgICAgICBlbmRU
ZXN0KCk7CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWFz
cGVjdC1yYXRpby5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tYXNwZWN0LXJhdGlvLmh0
bWwKaW5kZXggNmFmZmVkMy4uZmZkOTVhOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEv
dmlkZW8tYXNwZWN0LXJhdGlvLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tYXNw
ZWN0LXJhdGlvLmh0bWwKQEAgLTEsMjEgKzEsMjIgQEAKKzxzY3JpcHQgc3JjPSJtZWRpYS1maWxl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ2aWRlby1wYWludC10ZXN0LmpzIj48L3Njcmlw
dD4KLTxib2R5IG9ubG9hZD0iaW5pdCgpIj4KKzxib2R5IG9ubG9hZD0ic2V0U3JjQnlUYWdOYW1l
KCd2aWRlbycsIGZpbmRNZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpKTsgaW5pdCgp
Ij4KIDxwPlRlc3QgdmlkZW8gc2l6aW5nLiBZb3Ugc2hvdWxkIHNlZSBvbmUgYmlnZ2VyIGltYWdl
IChwYXVzZWQgdmlkZW8pIGFuZCA3IHNtYWxsIG9uZXMgb2YgMS80IGl0cyBzaXplLiA8L3A+Ci08
dmlkZW8gc3JjPSJjb250ZW50L3Rlc3QubXA0Ij48L3ZpZGVvPjxicj4KLTx2aWRlbyBzcmM9ImNv
bnRlbnQvdGVzdC5tcDQiIHN0eWxlPSJ3aWR0aDogMTYwcHg7IGhlaWdodDoxMjBweCI+Cis8dmlk
ZW8+PC92aWRlbz48YnI+Cis8dmlkZW8gc3R5bGU9IndpZHRoOiAxNjBweDsgaGVpZ2h0OjEyMHB4
Ij4KIAogPC92aWRlbz48ZGl2IHN0eWxlPSJkaXNwbGF5OmlubGluZS1ibG9jayI+Ci08dmlkZW8g
c3JjPSJjb250ZW50L3Rlc3QubXA0IiBzdHlsZT0id2lkdGg6IDE2MHB4OyI+Ci08L3ZpZGVvPjx2
aWRlbyBzcmM9ImNvbnRlbnQvdGVzdC5tcDQiIHN0eWxlPSJoZWlnaHQ6IDEyMHB4OyI+Cis8dmlk
ZW8gc3R5bGU9IndpZHRoOiAxNjBweDsiPgorPC92aWRlbz48dmlkZW8gc3R5bGU9ImhlaWdodDog
MTIwcHg7Ij4KIDwvdmlkZW8+CiAKIDwvZGl2PjxkaXYgc3R5bGU9IndpZHRoOiAzMjBweDsgaGVp
Z2h0OjEyMHB4OyBkaXNwbGF5OmlubGluZS1ibG9jazsgbWFyZ2luOiAwIj4KLTx2aWRlbyBzcmM9
ImNvbnRlbnQvdGVzdC5tcDQiIHN0eWxlPSJoZWlnaHQ6IDEwMCU7Ij4KLTwvdmlkZW8+PHZpZGVv
IHNyYz0iY29udGVudC90ZXN0Lm1wNCIgc3R5bGU9IndpZHRoOiA1MCU7Ij48L3ZpZGVvPgorPHZp
ZGVvIHN0eWxlPSJoZWlnaHQ6IDEwMCU7Ij4KKzwvdmlkZW8+PHZpZGVvIHN0eWxlPSJ3aWR0aDog
NTAlOyI+PC92aWRlbz4KIAogPC9kaXY+PGRpdiBzdHlsZT0id2lkdGg6IDMyMHB4OyBoZWlnaHQ6
MTIwcHg7cG9zaXRpb246cmVsYXRpdmU7IGRpc3BsYXk6aW5saW5lLWJsb2NrOyBtYXJnaW46IDAi
PgotPHZpZGVvIHNyYz0iY29udGVudC90ZXN0Lm1wNCIgc3R5bGU9ImhlaWdodDogMTIwcHg7IHBv
c2l0aW9uOiBhYnNvbHV0ZTsiPjwvdmlkZW8+Ci08dmlkZW8gc3JjPSJjb250ZW50L3Rlc3QubXA0
IiBzdHlsZT0ibGVmdDogMTYwcHg7IHdpZHRoOiAxNjBweDsgcG9zaXRpb246IGFic29sdXRlOyI+
Cis8dmlkZW8gc3R5bGU9ImhlaWdodDogMTIwcHg7IHBvc2l0aW9uOiBhYnNvbHV0ZTsiPjwvdmlk
ZW8+Cis8dmlkZW8gc3R5bGU9ImxlZnQ6IDE2MHB4OyB3aWR0aDogMTYwcHg7IHBvc2l0aW9uOiBh
YnNvbHV0ZTsiPgogPC92aWRlbz4KIDwvZGl2PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tYXV0b3BsYXkuaHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVv
LWF1dG9wbGF5Lmh0bWwKaW5kZXggMDRkMjIwMC4uZTFkOGJhMiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvbWVkaWEvdmlkZW8tYXV0b3BsYXkuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9tZWRpYS92
aWRlby1hdXRvcGxheS5odG1sCkBAIC0xLDkgKzEsMTAgQEAKIDx2aWRlbyBhdXRvcGxheSBjb250
cm9scz48L3ZpZGVvPgorPHNjcmlwdCBzcmM9bWVkaWEtZmlsZS5qcz48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPXZpZGVvLXRlc3QuanM+PC9zY3JpcHQ+CiAKIDxzY3JpcHQ+CiAgICAgdGVzdEV4cGVj
dGVkKCJ2aWRlby5hdXRvcGxheSIsIHRydWUpOwogICAgIHRlc3RFeHBlY3RlZCgidmlkZW8uZ2V0
QXR0cmlidXRlKCdhdXRvcGxheScpIiwgbnVsbCwgJyE9Jyk7CiAgICAgd2FpdEZvckV2ZW50KCdw
bGF5JywgZnVuY3Rpb24gKCkgeyB0ZXN0RXhwZWN0ZWQoInZpZGVvLnBhdXNlZCIsIGZhbHNlKTsg
ZW5kVGVzdCgpOyB9ICk7Ci0gICAgdmlkZW8uc3JjID0gImNvbnRlbnQvdGVzdC5tcDQiOworICAg
IHZpZGVvLnNyYyA9IGZpbmRNZWRpYUZpbGUoInZpZGVvIiwgImNvbnRlbnQvdGVzdCIpOwogPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1idWZmZXJlZC5odG1s
IGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQuaHRtbAppbmRleCBjYThkMGFhLi42
YjZiN2IyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1idWZmZXJlZC5odG1s
CisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLmh0bWwKQEAgLTEsNCArMSw1
IEBACiA8dmlkZW8gY29udHJvbHM+PC92aWRlbz4KKzxzY3JpcHQgc3JjPW1lZGlhLWZpbGUuanM+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz12aWRlby10ZXN0LmpzPjwvc2NyaXB0PgogPHNjcmlwdD4K
ICAgICB0ZXN0RXhwZWN0ZWQoInZpZGVvLmJ1ZmZlcmVkLmxlbmd0aCIsIDApOwpAQCAtMTksNSAr
MjAsNSBAQAogICAgICAgICAgICAgZW5kVGVzdCgpOwogICAgICAgICB9CiAgICAgKTsKLSAgICB2
aWRlby5zcmMgPSAiY29udGVudC90ZXN0Lm1wNCI7CisgICAgdmlkZW8uc3JjID0gZmluZE1lZGlh
RmlsZSgidmlkZW8iLCAiY29udGVudC90ZXN0Iik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL21lZGlhL3ZpZGVvLWNvbnRyb2xzLXJlbmRlcmluZy5odG1sIGIvTGF5b3V0VGVz
dHMvbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5nLmh0bWwKaW5kZXggMjFjZDA0Yy4uZGM3
MGIxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVy
aW5nLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tY29udHJvbHMtcmVuZGVyaW5n
Lmh0bWwKQEAgLTEsMTMgKzEsMTUgQEAKKzxzY3JpcHQgc3JjPSJtZWRpYS1maWxlLmpzIj48L3Nj
cmlwdD4KIDxzY3JpcHQgc3JjPSJ2aWRlby1wYWludC10ZXN0LmpzIj48L3NjcmlwdD4KIDxib2R5
IG9ubG9hZD0iaW5pdCgpIj4KIDxwPlRlc3QgY29udHJvbHMgcGxhY2VtZW50LiA8L3A+CiA8ZGl2
PgotICAgIDx2aWRlbyBjb250cm9scyBzcmM9ImNvbnRlbnQvdGVzdC5tcDQiPjwvdmlkZW8+Cisg
ICAgPHZpZGVvIGNvbnRyb2xzPjwvdmlkZW8+CiA8L2Rpdj4KIDxkaXY+Ci0gICAgPHZpZGVvIGNv
bnRyb2xzIHNyYz0iY29udGVudC90ZXN0Lm1wNCIgc3R5bGU9IndpZHRoOiAzMjBweDsiPjwvdmlk
ZW8+CisgICAgPHZpZGVvIGNvbnRyb2xzIHN0eWxlPSJ3aWR0aDogMzIwcHg7Ij48L3ZpZGVvPgog
PC9kaXY+CiA8ZGl2PgotICAgIDx2aWRlbyBjb250cm9scyBzcmM9ImNvbnRlbnQvdGVzdC5tcDQi
IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAzMjBweDsiPjwvdmlkZW8+CisgICAg
PHZpZGVvIGNvbnRyb2xzIHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IHdpZHRoOiAzMjBweDsi
PjwvdmlkZW8+CiA8L2Rpdj4KKzxzY3JpcHQ+c2V0U3JjQnlUYWdOYW1lKCd2aWRlbycsIGZpbmRN
ZWRpYUZpbGUoJ3ZpZGVvJywgJ2NvbnRlbnQvdGVzdCcpKTwvc2NyaXB0PgogPC9ib2R5PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tbGF5ZXItY3Jhc2guaHRtbCBiL0xheW91
dFRlc3RzL21lZGlhL3ZpZGVvLWxheWVyLWNyYXNoLmh0bWwKaW5kZXggZmE3ZTc2YS4uZTRmMmE3
OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tbGF5ZXItY3Jhc2guaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby1sYXllci1jcmFzaC5odG1sCkBAIC0xLDEwICsx
LDEyIEBACis8c2NyaXB0IHNyYz0ibWVkaWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNy
Yz0idmlkZW8tcGFpbnQtdGVzdC5qcyI+PC9zY3JpcHQ+CiA8Ym9keSBvbmxvYWQ9ImRvY3VtZW50
LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ29uZScpKTsgZG9jdW1l
bnQuYm9keS5vZmZzZXRMZWZ0OyBpbml0KCkiPgogPHN0eWxlPgogdmlkZW8geyB3aWR0aDoyMDBw
eDsgYm9yZGVyOiAzcHggc29saWQgcmVkOyAtd2Via2l0LWJveC1yZWZsZWN0OiBiZWxvdyA1cHg7
IH0KIDwvc3R5bGU+CiA8cD5UZXN0IGR5bmFtaWMgcmVtb3ZhbCBvZiB0cmFuc2Zvcm1lZCBhbmQg
cmVmbGVjdGVkIHZpZGVvIDwvcD4KLSZuYnNwOzx2aWRlbyBpZD0ib25lIiBzcmM9ImNvbnRlbnQv
dGVzdC5tcDQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTpyb3RhdGUoMjBkZWcpIj48L3ZpZGVv
Pjxicj4KLSZuYnNwOzx2aWRlbyBzcmM9ImNvbnRlbnQvdGVzdC5tcDQiIHN0eWxlPSItd2Via2l0
LXRyYW5zZm9ybTpzY2FsZSgwLjUpIj48L3ZpZGVvPjxicj4KLSZuYnNwOzx2aWRlbyBzcmM9ImNv
bnRlbnQvdGVzdC5tcDQiIHN0eWxlPSItd2Via2l0LXRyYW5zZm9ybTpza2V3KDIwZGVnKSI+PC92
aWRlbz48YnI+CismbmJzcDs8dmlkZW8gaWQ9Im9uZSIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3Jt
OnJvdGF0ZSgyMGRlZykiPjwvdmlkZW8+PGJyPgorJm5ic3A7PHZpZGVvIHN0eWxlPSItd2Via2l0
LXRyYW5zZm9ybTpzY2FsZSgwLjUpIj48L3ZpZGVvPjxicj4KKyZuYnNwOzx2aWRlbyBzdHlsZT0i
LXdlYmtpdC10cmFuc2Zvcm06c2tldygyMGRlZykiPjwvdmlkZW8+PGJyPgorPHNjcmlwdD5zZXRT
cmNCeVRhZ05hbWUoJ3ZpZGVvJywgZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90ZXN0
JykpPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRl
by10cmFuc2Zvcm1lZC5odG1sIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tdHJhbnNmb3JtZWQu
aHRtbAppbmRleCAzNzRiODY1Li5kM2FiMjYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRp
YS92aWRlby10cmFuc2Zvcm1lZC5odG1sCisrKyBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXRy
YW5zZm9ybWVkLmh0bWwKQEAgLTEsMTAgKzEsMTIgQEAKKzxzY3JpcHQgc3JjPSJtZWRpYS1maWxl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ2aWRlby1wYWludC10ZXN0LmpzIj48L3Njcmlw
dD4KIDxib2R5IG9ubG9hZD0iaW5pdCgpIj4KIDxzdHlsZT4KIHZpZGVvIHsgd2lkdGg6MjAwcHg7
IGJvcmRlcjogM3B4IHNvbGlkIHJlZDsgfQogPC9zdHlsZT4KIDxwPlRlc3QgcGFpbnRpbmcgb2Yg
dHJhbnNmb3JtZWQgdmlkZW8gPC9wPgotJm5ic3A7PHZpZGVvIHNyYz0iY29udGVudC90ZXN0Lm1w
NCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOnJvdGF0ZSgyMGRlZykiPjwvdmlkZW8+PGJyPgot
Jm5ic3A7PHZpZGVvIHNyYz0iY29udGVudC90ZXN0Lm1wNCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNm
b3JtOnNjYWxlKDAuNSkiPjwvdmlkZW8+PGJyPgotJm5ic3A7PHZpZGVvIHNyYz0iY29udGVudC90
ZXN0Lm1wNCIgc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOnNrZXcoMjBkZWcpIj48L3ZpZGVvPjxi
cj4KKyZuYnNwOzx2aWRlbyBzdHlsZT0iLXdlYmtpdC10cmFuc2Zvcm06cm90YXRlKDIwZGVnKSI+
PC92aWRlbz48YnI+CismbmJzcDs8dmlkZW8gc3R5bGU9Ii13ZWJraXQtdHJhbnNmb3JtOnNjYWxl
KDAuNSkiPjwvdmlkZW8+PGJyPgorJm5ic3A7PHZpZGVvIHN0eWxlPSItd2Via2l0LXRyYW5zZm9y
bTpza2V3KDIwZGVnKSI+PC92aWRlbz48YnI+Cis8c2NyaXB0PnNldFNyY0J5VGFnTmFtZSgndmlk
ZW8nLCBmaW5kTWVkaWFGaWxlKCd2aWRlbycsICdjb250ZW50L3Rlc3QnKSk8L3NjcmlwdD4KIDwv
Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMu
aHRtbCBiL0xheW91dFRlc3RzL21lZGlhL3ZpZGVvLXpvb20tY29udHJvbHMuaHRtbAppbmRleCA3
ZWM1MWNjLi4xZTVkNTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9tZWRpYS92aWRlby16b29t
LWNvbnRyb2xzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvbWVkaWEvdmlkZW8tem9vbS1jb250cm9s
cy5odG1sCkBAIC0xMCwxMSArMTAsMTMgQEAKICAgICAgICAgLXdlYmtpdC10cmFuc2Zvcm06IHJv
dGF0ZSgxMGRlZyk7CiAgICAgICB9CiAgICAgPC9zdHlsZT4KKyAgICA8c2NyaXB0IHNyYz0ibWVk
aWEtZmlsZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9InZpZGVvLXBhaW50LXRlc3Qu
anMiPjwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2FkPSJpbml0KCkiPgogICAgIDxwPlpv
b21lZCB2aWRlbyB3aXRoIGNvbnRyb2xzLjwvcD4KLSAgICA8dmlkZW8gc3JjPSJjb250ZW50L3Rl
c3QubXA0IiB3aWR0aD0iMTYwIiBoZWlnaHQ9IjEyMCIgY29udHJvbHM+PC92aWRlbz4KLSAgICA8
dmlkZW8gY2xhc3M9InJvdGF0ZWQiIHNyYz0iY29udGVudC90ZXN0Lm1wNCIgd2lkdGg9IjE2MCIg
aGVpZ2h0PSIxMjAiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHZpZGVvIHdpZHRoPSIxNjAiIGhl
aWdodD0iMTIwIiBjb250cm9scz48L3ZpZGVvPgorICAgIDx2aWRlbyBjbGFzcz0icm90YXRlZCIg
d2lkdGg9IjE2MCIgaGVpZ2h0PSIxMjAiIGNvbnRyb2xzPjwvdmlkZW8+CisgICAgPHNjcmlwdD5z
ZXRTcmNCeVRhZ05hbWUoJ3ZpZGVvJywgZmluZE1lZGlhRmlsZSgndmlkZW8nLCAnY29udGVudC90
ZXN0JykpPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39314</attachid>
            <date>2009-09-09 17:10:06 -0700</date>
            <delta_ts>2009-09-09 18:43:40 -0700</delta_ts>
            <desc>patch to be submitted</desc>
            <filename>webkit-buffered.patch</filename>
            <type>text/plain</type>
            <size>16880</size>
            <attacher name="Hin-Chung Lam">hclam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzEwN2FjMi4uYTljODE1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1OCBAQAorMjAwOS0wOS0wOCAgQWxwaGEgTGFtICA8
aGNsYW1AY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEhUTUxNZWRpYUVsZW1lbnQgYnVmZmVyZWQgYXR0cmlidXRlIHNob3VsZCBy
ZXBvcnQgYSBsaXN0IG9mIHRpbWUgcmFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yOTA0MQorCisgICAgICAgIENoYW5nZWQgTWVkaWFQbGF5ZXJQ
cml2YXRlSW50ZXJmYWNlIGFuZCBNZWRpYVBsYXllcidzIGRlZmluaXRpb24gdG8KKyAgICAgICAg
cmVwb3J0IGEgbGlzdCBvZiBidWZmZXJlZCB0aW1lIHJhbmdlcyBhcyBXZWJDb3JlOjpUaW1lUmFu
Z2VzLiBUaGlzCisgICAgICAgIGNoYW5nZSBhbHNvIGdvdCByaWQgb2YgdGhlIG1heFRpbWVCdWZm
ZXJlZCgpIG1ldGhvZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgc2luY2UgdGhpcyBpcyBhIEFQ
SSBjaGFuZ2UuCisKKyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cGVyY2VudExvYWRlZCk6CisgICAgICAgIFVz
ZSBNZWRpYVBsYWllcjo6YnVmZmVyZWQoKSBpbnN0ZWFkIG9mIG1heFRpbWVCdWZmZXJlZCgpLgor
ICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6YnVmZmVyZWQpOgorICAgICAgICBk
aXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpOdWxsTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IFVzZSBNZWRpYVBsYXllclByaXZhdGVJbnRlcmZhY2U6OmJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBt
YXhUaW1lQnVmZmVyZWQoKS4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyOjpidWZmZXJl
ZCk6CisgICAgICAgIGRpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxh
eWVyLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFz
c1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcDoKKyAgICAg
ICAgSW1wbGVtZW50cyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCk7CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5oOgor
ICAgICAgICBSZW1vdmVkIG1heFRpbWVCdWZmZXJlZCgpIGFuZCBkZWZpbmVzIFBhc3NSZWZQdHI8
VGltZVJhbmdlcz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMv
TWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaDoKKyAgICAgICAgUmVtb3ZlZCBtYXhUaW1lQnVmZmVy
ZWQoKSBhbmQgZGVmaW5lcyBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZlcmVkKCkuCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tOgor
ICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCk6CisgICAgICAg
IEltcGxlbWVudGF0aW9uIG9mIGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcDoKKyAgICAgICAgSW1wbGVtZW50cyBQ
YXNzUmVmUHRyPFRpbWVSYW5lZ3M+IGJ1ZmZlcmVkKCkuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmg6CisgICAgICAgIFJlbW92ZWQgbWF4
VGltZUJ1ZmZlcmVkKCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJl
ZCgpLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVR
dWlja1RpbWVXaW4uY3BwOgorICAgICAgICBJbXBsZW1lbnRzIFBhc3NSZWZQdHI8VGltZVJhbmdl
cz4gYnVmZmVyZWQoKS4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5
ZXJQcml2YXRlUXVpY2tUaW1lV2luLmg6CisgICAgICAgIFJlbW92ZWQgbWF4VGltZUJ1ZmZlcmVk
KCkgYW5kIGRlZmluZXMgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlhUGxheWVyUHJpdmF0ZVdpbmNlLmg6Cisg
ICAgICAgIGRpdHRvLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVDaHJvbWl1bU1hYzo6cGFpbnRNZWRp
YVNsaWRlclRyYWNrKToKKyAgICAgICAgVXNlIGJ1ZmZlcmVkKCkgaW5zdGVhZCBvZiBtYXhUaW1l
QnVmZmVyZWQoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEu
Y3BwOgorICAgICAgICBkaXR0by4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6cGFpbnRNZWRpYVNsaWRlclRy
YWNrKToKKyAgICAgICAgZGl0dG8uCisKIDIwMDktMDktMDggIERhdmUgSHlhdHQgIDxoeWF0dEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFyayBSb3dlLgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvV2ViQ29yZS9odG1sL0hUTUxNZWRp
YUVsZW1lbnQuY3BwCmluZGV4IDIxNDM5MTguLjAzOWQ2ZjYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
aHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAKQEAgLTEyODcsNyArMTI4NywxOSBAQCBmbG9hdCBIVE1MTWVkaWFFbGVtZW50Ojpw
ZXJjZW50TG9hZGVkKCkgY29uc3QKICAgICBpZiAoIW1fcGxheWVyKQogICAgICAgICByZXR1cm4g
MDsKICAgICBmbG9hdCBkdXJhdGlvbiA9IG1fcGxheWVyLT5kdXJhdGlvbigpOwotICAgIHJldHVy
biBkdXJhdGlvbiA/IG1fcGxheWVyLT5tYXhUaW1lQnVmZmVyZWQoKSAvIGR1cmF0aW9uIDogMDsK
KworICAgIGlmICghZHVyYXRpb24gfHwgaXNpbmYoZHVyYXRpb24pKQorICAgICAgICByZXR1cm4g
MDsKKworICAgIGZsb2F0IGJ1ZmZlcmVkID0gMDsKKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGlt
ZVJhbmdlcyA9IG1fcGxheWVyLT5idWZmZXJlZCgpOworICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCB0aW1lUmFuZ2VzLT5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIEV4Y2VwdGlvbkNvZGUg
aWdub3JlZEV4Y2VwdGlvbjsKKyAgICAgICAgZmxvYXQgc3RhcnQgPSB0aW1lUmFuZ2VzLT5zdGFy
dChpLCBpZ25vcmVkRXhjZXB0aW9uKTsKKyAgICAgICAgZmxvYXQgZW5kID0gdGltZVJhbmdlcy0+
ZW5kKGksIGlnbm9yZWRFeGNlcHRpb24pOworICAgICAgICBidWZmZXJlZCArPSBlbmQgLSBzdGFy
dDsKKyAgICB9CisgICAgcmV0dXJuIGJ1ZmZlcmVkIC8gZHVyYXRpb247CiB9CiAKIGJvb2wgSFRN
TE1lZGlhRWxlbWVudDo6aGF2ZVBvdGVudGlhbFNvdXJjZUNoaWxkKCkKQEAgLTE0NjYsMTAgKzE0
NzgsOSBAQCBHcmFwaGljc0xheWVyKiBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckdyYXBo
aWNzTGF5ZXIoTWVkaWFQbGF5ZXIqKQogCiBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IEhUTUxNZWRp
YUVsZW1lbnQ6OmJ1ZmZlcmVkKCkgY29uc3QKIHsKLSAgICAvLyBGSVhNRSByZWFsIHJhbmdlcyBz
dXBwb3J0Ci0gICAgaWYgKCFtX3BsYXllciB8fCAhbV9wbGF5ZXItPm1heFRpbWVCdWZmZXJlZCgp
KQorICAgIGlmICghbV9wbGF5ZXIpCiAgICAgICAgIHJldHVybiBUaW1lUmFuZ2VzOjpjcmVhdGUo
KTsKLSAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRlKDAsIG1fcGxheWVyLT5tYXhUaW1lQnVm
ZmVyZWQoKSk7CisgICAgcmV0dXJuIG1fcGxheWVyLT5idWZmZXJlZCgpOwogfQogCiBQYXNzUmVm
UHRyPFRpbWVSYW5nZXM+IEhUTUxNZWRpYUVsZW1lbnQ6OnBsYXllZCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmNwcCBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCmluZGV4IDEzYWIzZmIuLjIwZGJjMDAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCisr
KyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuY3BwCkBAIC0zNSw2ICsz
NSw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIlRpbWVSYW5nZXMuaCIKIAogI2lmIFBMQVRGT1JN
KE1BQykKICNpbmNsdWRlICJNZWRpYVBsYXllclByaXZhdGVRVEtpdC5oIgpAQCAtOTEsNyArOTIs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0
YXRlKCkgY29uc3QgeyByZXR1cm4gTWVkaWFQbGF5ZXI6OkhhdmVOb3RoaW5nOyB9CiAKICAgICB2
aXJ0dWFsIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KLSAgICB2
aXJ0dWFsIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0IHsgcmV0dXJuIDA7IH0KKyAgICB2
aXJ0dWFsIFBhc3NSZWZQdHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdCB7IHJldHVybiBU
aW1lUmFuZ2VzOjpjcmVhdGUoKTsgfQogCiAgICAgdmlydHVhbCBpbnQgZGF0YVJhdGUoKSBjb25z
dCB7IHJldHVybiAwOyB9CiAKQEAgLTM5MCw5ICszOTEsOSBAQCB2b2lkIE1lZGlhUGxheWVyOjpz
ZXRFbmRUaW1lKGZsb2F0IHRpbWUpCiAgICAgbV9wcml2YXRlLT5zZXRFbmRUaW1lKHRpbWUpOwog
fQogCi1mbG9hdCBNZWRpYVBsYXllcjo6bWF4VGltZUJ1ZmZlcmVkKCkKK1Bhc3NSZWZQdHI8VGlt
ZVJhbmdlcz4gTWVkaWFQbGF5ZXI6OmJ1ZmZlcmVkKCkKIHsKLSAgICByZXR1cm4gbV9wcml2YXRl
LT5tYXhUaW1lQnVmZmVyZWQoKTsKKyAgICByZXR1cm4gbV9wcml2YXRlLT5idWZmZXJlZCgpOwog
fQogCiBmbG9hdCBNZWRpYVBsYXllcjo6bWF4VGltZVNlZWthYmxlKCkKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXIuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5ZXIuaAppbmRleCA3NDc2MzYwLi40YzVlZTViIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyLmgKKysrIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXllci5oCkBAIC00OCw2ICs0OCw3IEBAIGNsYXNzIElu
dFNpemU7CiBjbGFzcyBNZWRpYVBsYXllcjsKIGNsYXNzIE1lZGlhUGxheWVyUHJpdmF0ZUludGVy
ZmFjZTsKIGNsYXNzIFN0cmluZzsKK2NsYXNzIFRpbWVSYW5nZXM7CiAKICNpZiBVU0UoQUNDRUxF
UkFURURfQ09NUE9TSVRJTkcpCiBjbGFzcyBHcmFwaGljc0xheWVyOwpAQCAtMTQ2LDcgKzE0Nyw3
IEBAIHB1YmxpYzoKICAgICBib29sIHByZXNlcnZlc1BpdGNoKCkgY29uc3Q7ICAgIAogICAgIHZv
aWQgc2V0UHJlc2VydmVzUGl0Y2goYm9vbCk7CiAgICAgCi0gICAgZmxvYXQgbWF4VGltZUJ1ZmZl
cmVkKCk7CisgICAgUGFzc1JlZlB0cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpOwogICAgIGZsb2F0
IG1heFRpbWVTZWVrYWJsZSgpOwogCiAgICAgdW5zaWduZWQgYnl0ZXNMb2FkZWQoKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5ZXJQcml2YXRlLmggYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWVyUHJpdmF0ZS5oCmluZGV4IDYzYWRh
YzYuLjljYzg5YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5ZXJQcml2YXRlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXll
clByaXZhdGUuaApAQCAtNzcsNyArNzcsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVBs
YXllcjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBm
bG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25zdCA9IDA7Ci0gICAgdmlydHVhbCBmbG9hdCBtYXhU
aW1lQnVmZmVyZWQoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBQYXNzUmVmUHRyPFRpbWVSYW5n
ZXM+IGJ1ZmZlcmVkKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBpbnQgZGF0YVJhdGUoKSBj
b25zdCA9IDA7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01l
ZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1lci5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2d0ay9NZWRpYVBsYXllclByaXZhdGVHU3RyZWFtZXIuY3BwCmluZGV4IGM1NzE1ZDguLjFmYzRm
NDUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVy
UHJpdmF0ZUdTdHJlYW1lci5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsv
TWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmNwcApAQCAtMzc3LDExICszNzcsMTMgQEAgTWVk
aWFQbGF5ZXI6OlJlYWR5U3RhdGUgTWVkaWFQbGF5ZXJQcml2YXRlOjpyZWFkeVN0YXRlKCkgY29u
c3QKICAgICByZXR1cm4gbV9yZWFkeVN0YXRlOwogfQogCi1mbG9hdCBNZWRpYVBsYXllclByaXZh
dGU6Om1heFRpbWVCdWZmZXJlZCgpIGNvbnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IE1lZGlh
UGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQoKSBjb25zdDsKIHsKLSAgICBpZiAobV9lcnJvck9jY3Vy
ZWQpCi0gICAgICAgIHJldHVybiAwLjA7Ci0gICAgcmV0dXJuIG1faXNTdHJlYW1pbmcgPyAwIDog
bWF4VGltZUxvYWRlZCgpOworICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gVGlt
ZVJhbmdlczo6Y3JlYXRlKCk7CisgICAgZmxvYXQgbG9hZGVkID0gbWF4VGltZUxvYWRlZCgpOwor
ICAgIGlmICghbV9lcnJvck9jY3VyZWQgJiYgIW1faXNTdHJlYW1pbmcgJiYgbG9hZGVkID4gMCkK
KyAgICAgICAgdGltZVJhbmdlcy0+YWRkKDAsIGxvYWRlZCk7CisgICAgcmV0dXJuIHRpbWVSYW5n
ZXMucmVsZWFzZSgpOwogfQogCiBmbG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVr
YWJsZSgpIGNvbnN0CkBAIC03MzAsNCArNzMyLDMgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGU6
OmNyZWF0ZUdTVFBsYXlCaW4oU3RyaW5nIHVybCkKIH0KIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBh
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL01lZGlhUGxheWVyUHJpdmF0ZUdTdHJlYW1l
ci5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0
cmVhbWVyLmgKaW5kZXggNmY4ZDk3MS4uZDMwNTc1OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvTWVkaWFQbGF5ZXJQcml2YXRlR1N0cmVhbWVyLmgK
QEAgLTgxLDcgKzgxLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgTWVkaWFQ
bGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAgICAgICAgICAgIE1l
ZGlhUGxheWVyOjpSZWFkeVN0YXRlIHJlYWR5U3RhdGUoKSBjb25zdDsKIAotICAgICAgICAgICAg
ZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7CisgICAgICAgICAgICBQYXNzUmVmUHRyPFRp
bWVSYW5nZXM+IGJ1ZmZlcmVkKCkgY29uc3Q7CiAgICAgICAgICAgICBmbG9hdCBtYXhUaW1lU2Vl
a2FibGUoKSBjb25zdDsKICAgICAgICAgICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7
CiAgICAgICAgICAgICBib29sIHRvdGFsQnl0ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaCBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0LmgK
aW5kZXggOTc0ZGJlYi4uYmZhYmE5YSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvTWVkaWFQbGF5ZXJQcml2YXRlUVRLaXQuaAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5oCkBAIC0xMDUsNyArMTA1LDcg
QEAgcHJpdmF0ZToKICAgICBNZWRpYVBsYXllcjo6TmV0d29ya1N0YXRlIG5ldHdvcmtTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya1N0YXRlOyB9CiAgICAgTWVkaWFQbGF5ZXI6OlJlYWR5
U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVhZHlTdGF0ZTsgfQogICAgIAot
ICAgIGZsb2F0IG1heFRpbWVCdWZmZXJlZCgpIGNvbnN0OworICAgIFBhc3NSZWZQdHI8VGltZVJh
bmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICBmbG9hdCBtYXhUaW1lU2Vla2FibGUoKSBjb25z
dDsKICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OwogICAgIGJvb2wgdG90YWxCeXRl
c0tub3duKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9NZWRpYVBsYXllclByaXZhdGVRVEtpdC5tbSBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL01lZGlhUGxheWVyUHJpdmF0ZVFUS2l0Lm1tCmluZGV4IGQzYjUzZTUuLjVhNWMwMzEgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVyUHJpdmF0
ZVFUS2l0Lm1tCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL01lZGlhUGxheWVy
UHJpdmF0ZVFUS2l0Lm1tCkBAIC0zOSw2ICszOSw3IEBACiAjaW1wb3J0ICJLVVJMLmgiCiAjaW1w
b3J0ICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJTb2Z0TGlua2luZy5oIgorI2ltcG9y
dCAiVGltZVJhbmdlcy5oIgogI2ltcG9ydCAiV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oIgogI2lt
cG9ydCA8UVRLaXQvUVRLaXQuaD4KICNpbXBvcnQgPG9iamMvb2JqYy1ydW50aW1lLmg+CkBAIC03
NjUsMTAgKzc2NiwxMyBAQCBpbnQgTWVkaWFQbGF5ZXJQcml2YXRlOjpkYXRhUmF0ZSgpIGNvbnN0
CiAgICAgcmV0dXJuIHdrUVRNb3ZpZURhdGFSYXRlKG1fcXRNb3ZpZS5nZXQoKSk7IAogfQogCi0K
LWZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4VGltZUJ1ZmZlcmVkKCkgY29uc3QKK1Bhc3NS
ZWZQdHI8VGltZVJhbmdlcz4gTWVkaWFQbGF5ZXJQcml2YXRlOjpidWZmZXJlZCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1heFRpbWVMb2FkZWQoKTsKKyAgICBSZWZQdHI8VGltZVJhbmdlcz4gdGlt
ZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIGZsb2F0IGxvYWRlZCA9IG1heFRp
bWVMb2FkZWQoKTsKKyAgICBpZiAobG9hZGVkID4gMCkKKyAgICAgICAgdGltZVJhbmdlcy0+YWRk
KDAsIGxvYWRlZCk7CisgICAgcmV0dXJuIHRpbWVSYW5nZXMucmVsZWFzZSgpOwogfQogCiBmbG9h
dCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25vbi5j
cHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVyUHJpdmF0ZVBob25v
bi5jcHAKaW5kZXggODE2OTUzZC4uNDE1ZjQ1NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmNwcApAQCAtMjcs
NiArMjcsNyBAQAogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkdyYXBoaWNzQ29u
dGV4dC5oIgogI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiVGltZVJhbmdl
cy5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAKQEAg
LTI2MCwxMCArMjYxLDEwIEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlOjpzZXRFbmRUaW1lKGZs
b2F0IGVuZFRpbWUpCiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KIAotZmxvYXQgTWVkaWFQbGF5
ZXJQcml2YXRlOjptYXhUaW1lQnVmZmVyZWQoKSBjb25zdAorUGFzc1JlZlB0cjxUaW1lUmFuZ2Vz
PiBNZWRpYVBsYXllclByaXZhdGU6OmJ1ZmZlcmVkKCkgY29uc3Q7CiB7CiAgICAgbm90SW1wbGVt
ZW50ZWQoKTsKLSAgICByZXR1cm4gMC4wZjsKKyAgICByZXR1cm4gVGltZVJhbmdlczo6Y3JlYXRl
KCk7CiB9CiAKIGZsb2F0IE1lZGlhUGxheWVyUHJpdmF0ZTo6bWF4VGltZVNlZWthYmxlKCkgY29u
c3QKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQ
cml2YXRlUGhvbm9uLmggYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L01lZGlhUGxheWVy
UHJpdmF0ZVBob25vbi5oCmluZGV4IDA0MmY1YjIuLmUxMTkzYjYgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvTWVkaWFQbGF5ZXJQcml2YXRlUGhvbm9uLmgKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9NZWRpYVBsYXllclByaXZhdGVQaG9ub24uaApA
QCAtMTA1LDcgKzEwNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgTWVkaWFQbGF5
ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUoKSBjb25zdDsKICAgICAgICAgTWVkaWFQbGF5
ZXI6OlJlYWR5U3RhdGUgcmVhZHlTdGF0ZSgpIGNvbnN0OwogCi0gICAgICAgIGZsb2F0IG1heFRp
bWVCdWZmZXJlZCgpIGNvbnN0OworICAgICAgICBQYXNzUmVmUHRyPFRpbWVSYW5nZXM+IGJ1ZmZl
cmVkKCkgY29uc3Q7CiAgICAgICAgIGZsb2F0IG1heFRpbWVTZWVrYWJsZSgpIGNvbnN0OwogICAg
ICAgICB1bnNpZ25lZCBieXRlc0xvYWRlZCgpIGNvbnN0OwogICAgICAgICBib29sIHRvdGFsQnl0
ZXNLbm93bigpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93
aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5jcHAKaW5kZXggYWJm
NGY2Yi4uMmQ3ZmNiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4v
TWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9NZWRpYVBsYXllclByaXZhdGVRdWlja1RpbWVXaW4uY3BwCkBAIC0zMyw2
ICszMyw3IEBACiAjaW5jbHVkZSAiUVRNb3ZpZVdpbi5oIgogI2luY2x1ZGUgIlNjcm9sbFZpZXcu
aCIKICNpbmNsdWRlICJTdHJpbmdIYXNoLmgiCisjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2lu
Y2x1ZGUgIlRpbWVyLmgiCiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgpAQCAtMzIzLDEwICszMjQsMTQgQEAgaW50IE1lZGlhUGxheWVyUHJpdmF0
ZTo6ZGF0YVJhdGUoKSBjb25zdAogICAgIHJldHVybiAwOwogfQogCi1mbG9hdCBNZWRpYVBsYXll
clByaXZhdGU6Om1heFRpbWVCdWZmZXJlZCgpIGNvbnN0CitQYXNzUmVmUHRyPFRpbWVSYW5nZXM+
IE1lZGlhUGxheWVyUHJpdmF0ZTo6YnVmZmVyZWQoKSBjb25zdDsKIHsKKyAgICBSZWZQdHI8VGlt
ZVJhbmdlcz4gdGltZVJhbmdlcyA9IFRpbWVSYW5nZXM6OmNyZWF0ZSgpOworICAgIGZsb2F0IGxv
YWRlZCA9IG1heFRpbWVMb2FkZWQoKTsKICAgICAvLyBydHNwIHN0cmVhbXMgYXJlIG5vdCBidWZm
ZXJlZAotICAgIHJldHVybiBtX2lzU3RyZWFtaW5nID8gMCA6IG1heFRpbWVMb2FkZWQoKTsKKyAg
ICBpZiAoIW1faXNTdHJlYW1pbmcgJiYgbG9hZGVkID4gMCkKKyAgICAgICAgdGltZVJhbmdlcy0+
YWRkKDAsIGxvYWRlZCk7CisgICAgcmV0dXJuIHRpbWVSYW5nZXMucmVsZWFzZSgpOwogfQogCiBm
bG9hdCBNZWRpYVBsYXllclByaXZhdGU6Om1heFRpbWVTZWVrYWJsZSgpIGNvbnN0CkBAIC02MzAs
NCArNjM1LDMgQEAgYm9vbCBNZWRpYVBsYXllclByaXZhdGU6Omhhc1NpbmdsZVNlY3VyaXR5T3Jp
Z2luKCkgY29uc3QKIH0KIAogI2VuZGlmCi0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL01lZGlhUGxheWVyUHJpdmF0ZVF1aWNrVGltZVdpbi5oIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKaW5k
ZXggMGM5OWVhNi4uNGEzYTI4ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy93aW4vTWVkaWFQbGF5ZXJQcml2YXRlUXVpY2tUaW1lV2luLmgKQEAgLTc3
LDcgKzc3LDcgQEAgcHVibGljOgogICAgIE1lZGlhUGxheWVyOjpOZXR3b3JrU3RhdGUgbmV0d29y
a1N0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrU3RhdGU7IH0KICAgICBNZWRpYVBsYXll
cjo6UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9
CiAgICAgCi0gICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7CisgICAgUGFzc1JlZlB0
cjxUaW1lUmFuZ2VzPiBidWZmZXJlZCgpIGNvbnN0OwogICAgIGZsb2F0IG1heFRpbWVTZWVrYWJs
ZSgpIGNvbnN0OwogICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CiAgICAgYm9vbCB0
b3RhbEJ5dGVzS25vd24oKSBjb25zdDsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaCBiL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luY2UvTWVkaWFQbGF5ZXJQcml2YXRlV2luY2UuaAppbmRleCBmZjM4YWRhLi4y
ZDZjMzU4IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbmNlL01lZGlh
UGxheWVyUHJpdmF0ZVdpbmNlLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW5j
ZS9NZWRpYVBsYXllclByaXZhdGVXaW5jZS5oCkBAIC03MSw3ICs3MSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgTWVkaWFQbGF5ZXI6Ok5ldHdvcmtTdGF0ZSBuZXR3b3JrU3RhdGUo
KSBjb25zdCB7IHJldHVybiBtX25ldHdvcmtTdGF0ZTsgfQogICAgICAgICBNZWRpYVBsYXllcjo6
UmVhZHlTdGF0ZSByZWFkeVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9yZWFkeVN0YXRlOyB9CiAK
LSAgICAgICAgZmxvYXQgbWF4VGltZUJ1ZmZlcmVkKCkgY29uc3Q7CisgICAgICAgIFBhc3NSZWZQ
dHI8VGltZVJhbmdlcz4gYnVmZmVyZWQoKSBjb25zdDsKICAgICAgICAgZmxvYXQgbWF4VGltZVNl
ZWthYmxlKCkgY29uc3Q7CiAgICAgICAgIHVuc2lnbmVkIGJ5dGVzTG9hZGVkKCkgY29uc3Q7CiAg
ICAgICAgIGJvb2wgdG90YWxCeXRlc0tub3duKCkgY29uc3Q7CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tIGIvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVDaHJvbWl1bU1hYy5tbQppbmRleCA0MmUyYWNhLi5iMzIzZTc1IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUNocm9taXVtTWFjLm1tCisrKyBiL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1NYWMubW0KQEAgLTE5MzEsMTQgKzE5
MzEsMTMgQEAgYm9vbCBSZW5kZXJUaGVtZUNocm9taXVtTWFjOjpwYWludE1lZGlhU2xpZGVyVHJh
Y2soUmVuZGVyT2JqZWN0KiBvLCBjb25zdCBSZW5kZXIKICAgICBpZiAoIW1lZGlhRWxlbWVudCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgZmxvYXQgdGltZUxvYWRlZCA9IDA7Ci0gICAg
ZmxvYXQgY3VycmVudFRpbWUgPSAwOwotICAgIGZsb2F0IGR1cmF0aW9uID0gMDsKLSAgICBpZiAo
TWVkaWFQbGF5ZXIqIHBsYXllciA9IG1lZGlhRWxlbWVudC0+cGxheWVyKCkpIHsKLSAgICAgICAg
ZHVyYXRpb24gPSBwbGF5ZXItPmR1cmF0aW9uKCk7Ci0gICAgICAgIHRpbWVMb2FkZWQgPSBwbGF5
ZXItPm1heFRpbWVCdWZmZXJlZCgpOwotICAgICAgICBjdXJyZW50VGltZSA9IHBsYXllci0+Y3Vy
cmVudFRpbWUoKTsKLSAgICB9CisgICAgUmVmUHRyPFRpbWVSYW5nZXM+IHRpbWVSYW5nZXMgPSBt
ZWRpYUVsZW1lbnQtPmJ1ZmZlcmVkKCk7CisgICAgRXhjZXB0aW9uQ29kZSBpZ25vcmVkRXhjZXB0
aW9uOworICAgIGZsb2F0IHRpbWVMb2FkZWQgPSB0aW1lUmFuZ2VzLT5sZW5ndGgoKSA/IHRpbWVS
YW5nZXMtPmVuZCgwLCBpZ25vcmVkRXhjZXB0aW9uKSA6IDA7CisgICAgZmxvYXQgY3VycmVudFRp
bWUgPSBtZWRpYUVsZW1lbnQtPmN1cnJlbnRUaW1lKCk7CisgICAgZmxvYXQgZHVyYXRpb24gPSBt
ZWRpYUVsZW1lbnQtPmR1cmF0aW9uKCk7CisgICAgaWYgKGlzbmFuKGR1cmF0aW9uKSkKKyAgICAg
ICAgZHVyYXRpb24gPSAwOwogCiAgICAgYm9vbCBzaG91bGREcmF3RW5kQ2FwcyA9ICF0b1JlbmRl
ck1lZGlhKG1lZGlhRWxlbWVudC0+cmVuZGVyZXIoKSktPnNob3VsZFNob3dUaW1lRGlzcGxheUNv
bnRyb2xzKCk7CiAgICAgd2tEcmF3TWVkaWFTbGlkZXJUcmFjayhNZWRpYUNvbnRyb2xsZXJUaGVt
ZUNsYXNzaWMsIHBhaW50SW5mby5jb250ZXh0LT5wbGF0Zm9ybUNvbnRleHQoKSwgciwgdGltZUxv
YWRlZCwgY3VycmVudFRpbWUsIGR1cmF0aW9uLCBzaG91bGREcmF3RW5kQ2FwcyA/IE1lZGlhVUlQ
YXJ0RHJhd0VuZENhcHNGbGFnIDogMCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUNocm9taXVtU2tpYS5jcHAgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVt
ZUNocm9taXVtU2tpYS5jcHAKaW5kZXggNTEyYzMwYi4uZTI1ZWVkMyAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVDaHJvbWl1bVNraWEuY3BwCisrKyBiL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lQ2hyb21pdW1Ta2lhLmNwcApAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgogI2lu
Y2x1ZGUgIlNjcm9sbGJhclRoZW1lLmgiCisjaW5jbHVkZSAiVGltZVJhbmdlcy5oIgogI2luY2x1
ZGUgIlRyYW5zZm9ybWF0aW9uTWF0cml4LmgiCiAjaW5jbHVkZSAiVXNlckFnZW50U3R5bGVTaGVl
dHMuaCIKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAzNjUyOTJlLi41ZjRh
ZTI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysg
Yi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMzgsNiArMzgsNyBAQAog
I2ltcG9ydCAiUmVuZGVyU2xpZGVyLmgiCiAjaW1wb3J0ICJSZW5kZXJWaWV3LmgiCiAjaW1wb3J0
ICJTaGFyZWRCdWZmZXIuaCIKKyNpbXBvcnQgIlRpbWVSYW5nZXMuaCIKICNpbXBvcnQgIldlYkNv
cmVTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIlVzZXJBZ2VudFN0eWxlU2hlZXRzLmgiCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CkBAIC0xNjAwLDE0ICsxNjAxLDEzIEBAIGJvb2wgUmVu
ZGVyVGhlbWVNYWM6OnBhaW50TWVkaWFTbGlkZXJUcmFjayhSZW5kZXJPYmplY3QqIG8sIGNvbnN0
IFJlbmRlck9iamVjdDo6CiAgICAgaWYgKCFtZWRpYUVsZW1lbnQpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGZsb2F0IHRpbWVMb2FkZWQgPSAwOwotICAgIGZsb2F0IGN1cnJlbnRUaW1l
ID0gMDsKLSAgICBmbG9hdCBkdXJhdGlvbiA9IDA7Ci0gICAgaWYgKE1lZGlhUGxheWVyKiBwbGF5
ZXIgPSBtZWRpYUVsZW1lbnQtPnBsYXllcigpKSB7Ci0gICAgICAgIGR1cmF0aW9uID0gcGxheWVy
LT5kdXJhdGlvbigpOwotICAgICAgICB0aW1lTG9hZGVkID0gcGxheWVyLT5tYXhUaW1lQnVmZmVy
ZWQoKTsKLSAgICAgICAgY3VycmVudFRpbWUgPSBwbGF5ZXItPmN1cnJlbnRUaW1lKCk7Ci0gICAg
fQorICAgIFJlZlB0cjxUaW1lUmFuZ2VzPiB0aW1lUmFuZ2VzID0gbWVkaWFFbGVtZW50LT5idWZm
ZXJlZCgpOworICAgIEV4Y2VwdGlvbkNvZGUgaWdub3JlZEV4Y2VwdGlvbjsKKyAgICBmbG9hdCB0
aW1lTG9hZGVkID0gdGltZVJhbmdlcy0+bGVuZ3RoKCkgPyB0aW1lUmFuZ2VzLT5lbmQoMCwgaWdu
b3JlZEV4Y2VwdGlvbikgOiAwOworICAgIGZsb2F0IGN1cnJlbnRUaW1lID0gbWVkaWFFbGVtZW50
LT5jdXJyZW50VGltZSgpOworICAgIGZsb2F0IGR1cmF0aW9uID0gbWVkaWFFbGVtZW50LT5kdXJh
dGlvbigpOworICAgIGlmIChpc25hbihkdXJhdGlvbikpCisgICAgICAgIGR1cmF0aW9uID0gMDsK
ICAKICAgICBwYWludEluZm8uY29udGV4dC0+c2F2ZSgpOwogICAgIEZsb2F0UmVjdCB1bnpvb21l
ZFJlY3QgPSBnZXRVbnpvb21lZFJlY3RBbmRBZGp1c3RDdXJyZW50Q29udGV4dChvLCBwYWludElu
Zm8sIHIpOwo=
</data>
<flag name="review"
          id="20397"
          type_id="1"
          status="+"
          setter="eric.carlson"
    />
    <flag name="commit-queue"
          id="20398"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>