<?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>95072</bug_id>
          
          <creation_ts>2012-08-27 04:38:18 -0700</creation_ts>
          <short_desc>[WK2] LayerTreeCoordinator should release unused UpdatedAtlases</short_desc>
          <delta_ts>2013-01-29 06:40:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Balazs Kelemen">kbalazs</assigned_to>
          <cc>hausmann</cc>
    
    <cc>jturcotte</cc>
    
    <cc>noam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>705157</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-08-27 04:38:18 -0700</bug_when>
    <thetext>UpdateAtlas&apos;s are allocated on demand in beginContentUpdate. At the time the number of required tiles is decreasing, we could release some of them. This should happen for example after zooming in and out.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705183</commentid>
    <comment_count>1</comment_count>
      <attachid>160698</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-08-27 05:27:10 -0700</bug_when>
    <thetext>Created attachment 160698
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705188</commentid>
    <comment_count>2</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-08-27 05:31:35 -0700</bug_when>
    <thetext>All of this is pretty much heuristic and also not very good for decoupling things. The basic goal of mine was to release some memory after zooming out and it has been satisfied (tested by printf&apos;s).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713220</commentid>
    <comment_count>3</comment_count>
      <attachid>162488</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-06 06:16:07 -0700</bug_when>
    <thetext>Created attachment 162488
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>713438</commentid>
    <comment_count>4</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-06 10:34:38 -0700</bug_when>
    <thetext>The memory usage logic seems to add most of the complexity in the patch, is there a way to keep things a bit simpler?

Overall I think that we can always keep at least one UpdateAtlas, so would it work to only mark extra UpdateAtlases that were inactive for more than 10 frames and destroy them?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716098</commentid>
    <comment_count>5</comment_count>
      <attachid>163138</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-10 08:25:26 -0700</bug_when>
    <thetext>Created attachment 163138
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716099</commentid>
    <comment_count>6</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-10 08:25:55 -0700</bug_when>
    <thetext>I added a timer for this because otherwise we won&apos;t release memory if we become inactive (ui proc stop sending rendernextframe).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716106</commentid>
    <comment_count>7</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-10 08:33:16 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I added a timer for this because otherwise we won&apos;t release memory if we become inactive (ui proc stop sending rendernextframe).

You can gather other opinions about it, but I think that the added complexity of the timer isn&apos;t worth it.
It will only happen if the user does a zoom in/out and doesn&apos;t interact with the page after this, and in this case the memory we use will most likely not be required by the rest of the system.

PurgeBackingStores and suspend/resume should be able to deal with the cases where the memory will be needed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716921</commentid>
    <comment_count>8</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-11 01:02:23 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; &gt; I added a timer for this because otherwise we won&apos;t release memory if we become inactive (ui proc stop sending rendernextframe).
&gt; 
&gt; You can gather other opinions about it, but I think that the added complexity of the timer isn&apos;t worth it.

Ok, CC&apos;d some people :)

&gt; It will only happen if the user does a zoom in/out and doesn&apos;t interact with the page after this, and in this case the memory we use will most likely not be required by the rest of the system.

In this version we can release the memory as soon as interaction ends for a while, no need to zoom out. Furthermore I don&apos;t think we can have any preassumption about how many memory the system needs. I think it&apos;s not nice if we keep up to 8x4 MB of memory even in background (8 atlas was the maximum I saw when tested this).

In my opinion the added complexity is minimal, but a bigger disadvantage of this change is that we need to allocate more times.

&gt; 
&gt; PurgeBackingStores and suspend/resume should be able to deal with the cases where the memory will be needed.

Maybe I&apos;m wrong but I think PurgeBackingStores is sent only when the page is being destroyed. I don&apos;t see how suspend/resume comes to this, could you describe it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717121</commentid>
    <comment_count>9</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-11 06:58:09 -0700</bug_when>
    <thetext>Humm thought about it and we need your timer on desktop. What I was saying can only apply to devices have only one application visible at a time. Let me have a look at the rest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717169</commentid>
    <comment_count>10</comment_count>
      <attachid>163138</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-11 08:02:27 -0700</bug_when>
    <thetext>Comment on attachment 163138
Patch

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

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [WK2] LayerTreeCoordinator should release unused UpdatedAtlas&apos;s

UpdateAtlases? I personally never saw the single quote syntax for plurals yet.

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Release graphic buffers that are not used for a while in order to save memory.

that *haven&apos;t been* used for a while

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:644
&gt; +void LayerTreeCoordinator::scheduleReleaseInactiveAtlasesIfNecessary()

You can remove IfNecessary from the name.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:657
&gt; +    // Always keep one atlas.
&gt; +    if (m_updateAtlases.size() &lt;= 1) {
&gt; +        m_releaseInactiveAtlasesTimer.stop();
&gt; +        return;
&gt; +    }

We need to make sure that the kept atlas is the one used for tiles. In this case you could end up keeping the altas used for the overlay since it has different SupportsAlpha flag.
You also need to make sure that you won&apos;t be keeping an inactive one, and then later also keep the active one, you would end up with two while only one is needed, and you would never stop your timer.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:664
&gt; +    Vector&lt;OwnPtr&lt;UpdateAtlasWithInactivityCounter&gt; &gt; remainingAtlases;
&gt; +    remainingAtlases.reserveInitialCapacity(m_updateAtlases.size());
&gt; +    remainingAtlases.uncheckedAppend(m_updateAtlases[0].release());

I might be wrong but I think that in 90% of the calls to this method you won&apos;t have any atlas to remove, in which case this vector-to-vector optimization becomes a burden.
Vector::remove should be good enough if you start from the end, or you could use a Deque.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:667
&gt; +        OwnPtr&lt;UpdateAtlasWithInactivityCounter&gt;&amp; atlas = m_updateAtlases[i];

Use a pointer directly instead of a reference to the smart pointer.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.h:143
&gt; +    class UpdateAtlasWithInactivityCounter : public UpdateAtlas {
&gt; +    public:
&gt; +        UpdateAtlasWithInactivityCounter(int dimension, ShareableBitmap::Flags flags)
&gt; +            : UpdateAtlas(dimension, flags)
&gt; +            , m_inactivityCounter(0)
&gt; +        { }
&gt; +        void incrementCounter() { ++m_inactivityCounter; }
&gt; +        void resetCounter() { m_inactivityCounter = 0; }
&gt; +        unsigned inactivityCount() const { return m_inactivityCounter; }
&gt; +    private:
&gt; +        unsigned m_inactivityCounter;
&gt; +    };

This could be more elegant.
I would put the counter directly in UpdateAtlas, then:
- rename incrementCounter() to reportInactivity(int milliseconds)
- resetCounter() to resetInactivity() (or even better trigger it in beginPaintingOnAvailableBuffer())
- and inactivityCount() to isInactive() and make it handle kInactivityTolerance itself and as a number of milliseconds instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>718268</commentid>
    <comment_count>11</comment_count>
      <attachid>163607</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-12 05:50:23 -0700</bug_when>
    <thetext>Created attachment 163607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719282</commentid>
    <comment_count>12</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 02:54:39 -0700</bug_when>
    <thetext>View in context: https://bugs.webkit.org/attachment.cgi?id=163607&amp;action=review

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:655
&gt; +    if (m_updateAtlases.size() &lt;= 1) {
&gt; +        m_releaseInactiveAtlasesTimer.stop();
&gt; +        return;
&gt; +    }

No need to do it here if you do it at the end too.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:658
&gt; +    bool seenActiveNormalAtlas;

I think you should initialize this.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:662
&gt; +        bool isNormal = atlas-&gt;flags() == ShareableBitmap::NoFlags;

isNormal doesn&apos;t tell much about its purpose, something like usableForMainTiles, nonCompositedCompatible, etc. would give a bit more context to the reader.
Also please add a comment on why we need to keep this one, we need to know that this has to be changed if we change the set of flags that the non-composited layer needs to transfer its data.

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:671
&gt; +    if (!seenActiveNormalAtlas &amp;&amp; !!atlasToKeepAnyway)

OwnPtr has a bool operator, no need to double-not it.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.cpp:89
&gt; +    double now = monotonicallyIncreasingTime();

Querying the system clock isn&apos;t necessary (and in this case it will be done successively for each UpdateAtlas), just pass as a parameter the repeat delay of your timer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719407</commentid>
    <comment_count>13</comment_count>
      <attachid>163860</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 06:35:24 -0700</bug_when>
    <thetext>Created attachment 163860
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719409</commentid>
    <comment_count>14</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 06:36:46 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; Created an attachment (id=163860) [details]
&gt; Patch

Incorporated comments. Also I realized that the best point to kick the timer is when we created a new atlas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719415</commentid>
    <comment_count>15</comment_count>
      <attachid>163860</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 06:51:36 -0700</bug_when>
    <thetext>Comment on attachment 163860
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:655
&gt; +    bool seenActiveNormalAtlas = false;

didFindActiveAtlas = false; what is a normal altas? really confusing for people not knowing the code

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:656
&gt; +    for (int i = m_updateAtlases.size() - 1;  i &gt;= 0; --i) {

size_t? unsigned?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:657
&gt; +        UpdateAtlas* atlas = m_updateAtlases[i].get();

Do you really need the pointer here?

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:660
&gt; +        bool usableForNonCompositedContent = atlas-&gt;flags() == ShareableBitmap::NoFlags;

why so confusing? why not just bool supportsAlpha; Keep the code consistent

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:58
&gt; +    void recordInactivity(double seconds)
&gt; +    {
&gt; +        ASSERT(!m_isUsed);
&gt; +        m_inactiveSeconds += seconds;
&gt; +    }
&gt; +    bool isInactive() const
&gt; +    {
&gt; +        const double inactiveSecondsTolerance = 3;
&gt; +        return !m_isUsed &amp;&amp; m_inactiveSeconds &gt; inactiveSecondsTolerance;
&gt; +    }
&gt; +    void resetInactivity() { m_inactiveSeconds = 0; }
&gt; +    bool isUsed() const { return m_isUsed; }

Wouldn&apos;t something like lastAccessed() not make more sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719419</commentid>
    <comment_count>16</comment_count>
      <attachid>163860</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 06:59:56 -0700</bug_when>
    <thetext>Comment on attachment 163860
Patch

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

Here&apos;s another round, sorry for being a bitch, but I think that this code has to stay simple to keep it maintainable.

&gt; Source/WebKit2/ChangeLog:3
&gt; +        [WK2] LayerTreeCoordinator should release unused UpdatedAtlas&apos;s

UpdateAtlases

&gt; Source/WebKit2/ChangeLog:8
&gt; +        Release graphic buffers that are not used for a while in order to save memory.

that *haven&apos;t been* used for a while

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:654
&gt; +{
&gt; +    // We always want to keep one atlas for non composited content.
&gt; +
&gt; +    OwnPtr&lt;UpdateAtlas&gt; atlasToKeepAnyway;

This comment would fit better above &quot;if (!seenActiveNormalAtlas &amp;&amp; !atlasToKeepAnyway &amp;&amp; usableForNonCompositedContent)&quot;

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:674
&gt; +        if (m_updateAtlases.size())
&gt; +            m_updateAtlases.first()-&gt;resetInactivity();

I might be missing something but I think that this shouldn&apos;t be needed since it will be handled by atlasToKeepAnyway on the next iteration.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:47
&gt; +    void recordInactivity(double seconds)

record is usually related to sound or disk saving, I personally find it confusing in this context.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:55
&gt; +        return !m_isUsed &amp;&amp; m_inactiveSeconds &gt; inactiveSecondsTolerance;

I don&apos;t understand why you need m_isUsed, why not unconditionally increment m_inactiveSeconds on every turn?
With this implementation in seems like &quot;m_inactiveSeconds &gt; inactiveSecondsTolerance&quot; implies that &quot;m_isUsed == false&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719425</commentid>
    <comment_count>17</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 07:03:56 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:660
&gt; &gt; +        bool usableForNonCompositedContent = atlas-&gt;flags() == ShareableBitmap::NoFlags;
&gt; 
&gt; why so confusing? why not just bool supportsAlpha; Keep the code consistent
&gt; 

See previous comments, this was to give the purpose that his is related to keep only an atlas that can handle main content. A comment could be explaining this as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719471</commentid>
    <comment_count>18</comment_count>
      <attachid>163872</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 07:47:38 -0700</bug_when>
    <thetext>Created attachment 163872
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719504</commentid>
    <comment_count>19</comment_count>
      <attachid>163872</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 08:13:44 -0700</bug_when>
    <thetext>Comment on attachment 163872
Patch

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

r=me if you make those two changes. Please wait a few hours before committing in case Kenneth still has concerns.

&gt; Source/WebKit2/ChangeLog:23
&gt; +        (WebKit::UpdateAtlas::didSwapBuffers):

Please add a note why you removes the buildLayoutIfNeeded() call and why you think it&apos;s alright to do.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:49
&gt; +        ASSERT(!m_isUsed);

ASSERT(!isInUse())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719522</commentid>
    <comment_count>20</comment_count>
      <attachid>163872</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 08:24:42 -0700</bug_when>
    <thetext>Comment on attachment 163872
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:653
&gt; +    bool seenActiveAtlasForNonCompositedContent = false;

seen sounds weird, why not &quot;found&quot;

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:660
&gt; +            // We always want to keep one atlas for non composited content.

non-composited. Why not add this on top of &quot;atlasToKeepAnyway&quot; maybe call it &quot;atlasForNonCompositedContent&quot; making things clear

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.cpp:35
&gt; +    , m_inactiveSeconds(0)

m_inactivityInSeconds(0)

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:47
&gt; +    void reportInactivity(double seconds)

addTimeInactive()
resetTimeInactive()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719550</commentid>
    <comment_count>21</comment_count>
      <attachid>163884</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 08:47:45 -0700</bug_when>
    <thetext>Created attachment 163884
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719551</commentid>
    <comment_count>22</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 08:49:16 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; (From update of attachment 163872 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163872&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:653
&gt; &gt; +    bool seenActiveAtlasForNonCompositedContent = false;
&gt; 
&gt; seen sounds weird, why not &quot;found&quot;

fixed.

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:660
&gt; &gt; +            // We always want to keep one atlas for non composited content.
&gt; 
&gt; non-composited. Why not add this on top of &quot;atlasToKeepAnyway&quot; maybe call it &quot;atlasForNonCompositedContent&quot; making things clear

No because it will not always be the atlas for non-composited content. I moved the comment because Jocelyn asked to, but I agree it&apos;s better at the start so I moved back. :)

&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.cpp:35
&gt; &gt; +    , m_inactiveSeconds(0)
&gt; 
&gt; m_inactivityInSeconds(0)
&gt; 

Ok.

&gt; &gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:47
&gt; &gt; +    void reportInactivity(double seconds)
&gt; 
&gt; addTimeInactive()
&gt; resetTimeInactive()

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719556</commentid>
    <comment_count>23</comment_count>
      <attachid>163884</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 08:51:55 -0700</bug_when>
    <thetext>Comment on attachment 163884
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:656
&gt; +        UpdateAtlas* atlas = m_updateAtlases[i].get();

I dont see why RefPtr&lt;UpdateAtlas&gt; atas shouldn&apos;t work? You can still do atlas-&gt;isInactive() etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719557</commentid>
    <comment_count>24</comment_count>
      <attachid>163884</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 08:53:10 -0700</bug_when>
    <thetext>Comment on attachment 163884
Patch

Looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719558</commentid>
    <comment_count>25</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-13 08:55:54 -0700</bug_when>
    <thetext>(In reply to comment #23)
&gt; (From update of attachment 163884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163884&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:656
&gt; &gt; +        UpdateAtlas* atlas = m_updateAtlases[i].get();
&gt; 
&gt; I dont see why RefPtr&lt;UpdateAtlas&gt; atas shouldn&apos;t work? You can still do atlas-&gt;isInactive() etc

UpdateAtlas isn&apos;t refcounted, and it doesn&apos;t need shared ownership IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719565</commentid>
    <comment_count>26</comment_count>
      <attachid>163884</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-09-13 09:03:03 -0700</bug_when>
    <thetext>Comment on attachment 163884
Patch

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

&gt;&gt;&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:656
&gt;&gt;&gt; +        UpdateAtlas* atlas = m_updateAtlases[i].get();
&gt;&gt; 
&gt;&gt; I dont see why RefPtr&lt;UpdateAtlas&gt; atas shouldn&apos;t work? You can still do atlas-&gt;isInactive() etc
&gt; 
&gt; UpdateAtlas isn&apos;t refcounted, and it doesn&apos;t need shared ownership IMO.

Ah it is an OwnPtr array</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719575</commentid>
    <comment_count>27</comment_count>
      <attachid>163884</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 09:17:57 -0700</bug_when>
    <thetext>Comment on attachment 163884
Patch

Clearing flags on attachment: 163884

Committed r128473: &lt;http://trac.webkit.org/changeset/128473&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719576</commentid>
    <comment_count>28</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 09:18:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719580</commentid>
    <comment_count>29</comment_count>
      <attachid>163884</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-09-13 09:22:18 -0700</bug_when>
    <thetext>Comment on attachment 163884
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:642
&gt; +const double ReleaseInactiveAtlasesTimerInterval = 0.5;

It’s important to have “why” comments about magic numbers like this one. What makes 0.5 seconds a good value? The future reader of this code needs to know. Also, ideally, any constants like this would be at the top of the file, rather than down between two member functions where it’s easier to overlook.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:54
&gt; +        const double inactiveSecondsTolerance = 3;

It’s important to have “why” comments about magic numbers like this one. What makes 3 seconds a good value? The future reader of this code needs to know. Also, ideally, a constant like this would not be in a header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>719585</commentid>
    <comment_count>30</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-13 09:31:42 -0700</bug_when>
    <thetext>(In reply to comment #29)
&gt; (From update of attachment 163884 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163884&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:642
&gt; &gt; +const double ReleaseInactiveAtlasesTimerInterval = 0.5;
&gt; 
&gt; It’s important to have “why” comments about magic numbers like this one. What makes 0.5 seconds a good value? The future reader of this code needs to know. Also, ideally, any constants like this would be at the top of the file, rather than down between two member functions where it’s easier to overlook.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.h:54
&gt; &gt; +        const double inactiveSecondsTolerance = 3;
&gt; 
&gt; It’s important to have “why” comments about magic numbers like this one. What makes 3 seconds a good value? The future reader of this code needs to know. Also, ideally, a constant like this would not be in a header file.

I will try to make up with some valuable comments after I see that bots are fine with the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720462</commentid>
    <comment_count>31</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-14 02:22:24 -0700</bug_when>
    <thetext>Let&apos;s track the comment fix here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720475</commentid>
    <comment_count>32</comment_count>
      <attachid>164078</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-14 02:32:15 -0700</bug_when>
    <thetext>Created attachment 164078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720482</commentid>
    <comment_count>33</comment_count>
      <attachid>164079</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-14 02:47:42 -0700</bug_when>
    <thetext>Created attachment 164079
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720501</commentid>
    <comment_count>34</comment_count>
      <attachid>164079</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-14 03:13:46 -0700</bug_when>
    <thetext>Comment on attachment 164079
Patch

Attachment 164079 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13835950</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>720809</commentid>
    <comment_count>35</comment_count>
      <attachid>164164</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-14 08:47:49 -0700</bug_when>
    <thetext>Created attachment 164164
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721890</commentid>
    <comment_count>36</comment_count>
      <attachid>164164</attachid>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-09-17 07:01:54 -0700</bug_when>
    <thetext>Comment on attachment 164164
Patch

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

&gt; Source/WebKit2/WebProcess/WebPage/CoordinatedGraphics/LayerTreeCoordinator.cpp:56
&gt; +// Our scratch buffers become unused if no user interaction happens for a while so we can release them.
&gt; +// We want to keep the number of allocations low so we don&apos;t check this too often.
&gt; +static const double kReleaseInactiveAtlasesTimerInterval = 0.5;

I don&apos;t see what you mean by &quot;number of allocations&quot; in relation by not checking this too often. AFAIK we&apos;re only checking/destroying and not allocating anything.

This is also something that has a relationship with kInactivityToleranceInSeconds, it should never be bigger than it and it might be worth noting this. An ASSERT would be even better though you would need to have then in the same file.

&gt; Source/WebKit2/WebProcess/WebPage/UpdateAtlas.cpp:35
&gt; +// We want to keep the number of allocations low so we consider an atlas inactive only if it
&gt; +// was unused for a relatively long time.
&gt; +static const double kInactivityToleranceInSeconds = 3;

Let&apos;s try to explain this a bit more scientifically, we could say something like we want to keep the atlases alive until the user has finished interacting with the page. 3 seconds sounds should be a proper fence to group successive user interactions together.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722753</commentid>
    <comment_count>37</comment_count>
      <attachid>164553</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2012-09-18 07:12:01 -0700</bug_when>
    <thetext>Created attachment 164553
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750814</commentid>
    <comment_count>38</comment_count>
      <attachid>164553</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2012-10-25 07:44:06 -0700</bug_when>
    <thetext>Comment on attachment 164553
Patch

Is this patch still valid?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750820</commentid>
    <comment_count>39</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2012-10-25 07:48:12 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; (From update of attachment 164553 [details])
&gt; Is this patch still valid?

The last issue discussed on IRC was that kReleaseInactiveAtlasesTimerInterval had no comment explaining the / 6 and that kInactivityToleranceInSeconds made its way back to the header file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817419</commentid>
    <comment_count>40</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2013-01-27 14:36:25 -0800</bug_when>
    <thetext>Let&apos;s close this bug, as the actual behavioral change has been landed long ago. Jocelyn, if I remember correctly we could not really find a good compromise about how to do the refactoring (first of all I don&apos;t like the idea to put the heuristic timing stuff into UpdateAtlas), so if you don&apos;t mind I let it to you or anybody how has a clean idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818900</commentid>
    <comment_count>41</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2013-01-29 06:40:56 -0800</bug_when>
    <thetext>Sorry about that, I think that the patch was good but there was still one or two superficial commenting issue that went back and forth.
We can reevaluate how to deal with it since the code also changed a lot in this area.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160698</attachid>
            <date>2012-08-27 05:27:10 -0700</date>
            <delta_ts>2012-09-06 06:16:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120827142637.patch</filename>
            <type>text/plain</type>
            <size>11722</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2NzQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDg5YTFhMDVhZTNkY2E0
OWMwZmQzMGI3YTM2MWQyNzY3MjdhMzhkZi4uOTUxYjRmYjNmZjc2NGU5NTQzYTcxNDNiN2ZmN2Rk
MWE0MTU2NDMwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA4LTI3ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBUaWxlZEJhY2tp
bmdTdG9yZSBleHBvc2UgdGhlIHN1bW1hcml6ZWQgc2l6ZQorICAgICAgICBvZiBpdCdzIGN1cnJl
bnRseSBhbGxvY2F0ZWQgdGlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6
dGlsZUJ1ZmZlcnNTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmdTdG9y
ZSk6CisKIDIwMTItMDgtMjcgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjY2OTQgYW5kIHIxMjY3
MzEuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKaW5kZXggY2NiZmI3YmI2OTdhMzBmY2IyZGI0NzZhZjg5ZjA1NzM1MTZiZjk3
ZS4uZGY3NjE5MWIyMWE0ODk1MGE3ODBiZmM2MDQ1NjYxMjAzMmFlMjM5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQwIEBACisyMDEyLTA4LTI3ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRyZWVDb29yZGluYXRvciBzaG91bGQgcmVs
ZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgSW52ZW50IGEgd2F5IHRvIHJlbGVhc2Ugc29tZSBtZW1vcnkgYWxs
b2NhdGVkIGZvciBVcGRhdGVBdGxhcydzCisgICAgICAgIHdoZW4gdGhlIHNpemUgb2YgdGhlIHZp
c2libGUgcmVjdCBiZWNvbWUgc21hbGxlciwgZm9yIGV4YW1wbGUKKyAgICAgICAgd2hlbiB6b29t
aW5nIG91dC4gV2UgY2FuIHJlbGVhc2UgdGhlIGF0bGFzIGJldHdlZW4gcmVuZGVyTmV4dEZyYW1l
CisgICAgICAgIGFuZCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMgaXQgd2FzIG5vdCB1c2VkIGZv
ciB0aGUgcmVuZGVyaW5nIG9mCisgICAgICAgIHRoZSBjdXJyZW50IGZyYW1lLiBUbyBhdm9pZCBt
ZW1vcnkgYWxsb2NhdGlvbiBjaHVybiBpZiB0aGUgdmlzaWJsZQorICAgICAgICByZWN0IGlzIGNo
YW5naW5nIHJhcGlkbHkgd2Ugd2FpdCB1bnRpbCB0aGUgYXRsYXMgd2FzIGJlaW5nIHVudXNlZAor
ICAgICAgICBmb3IgYSBjb25zdGFudCBudW1iZXIgb2YgZnJhbWVzLgorCisgICAgICAgICogV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZXN0
aW1hdGVkTWVtb3J5RGVtYW5kRm9yQ29udGVudFVwZGF0ZSk6CisgICAgICAgIFRoaXMgaXMgdGhl
IG1heGltdW0gb2YgdGhlIG1lbW9yeSB0aGF0IGlzIG5lY2Vzc2FyeSBmb3IgdGhpcyBsYXllciBi
ZWNhdXNlCisgICAgICAgIHdlIGRvbid0IGtub3cgaW4gYWR2YW5jZSB3aGF0IHdpbGwgYmUgdGhl
IGRpcmN0eSByZWN0cyBpbiBlYWNoIHRpbGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuaDoKKyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Zmx1c2hQ
ZW5kaW5nTGF5ZXJDaGFuZ2VzKToKKyAgICAgICAgV2UgZG8gdGhlIGhhdXNla2VlcGluZyBoZXJl
IHdoZW4gd2Uga25vdyB3aGljaCBhdGxhc2VzIHdlcmUgdXNlZC4KKyAgICAgICAgKFdlYktpdCk6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVJbmFjdGl2ZUF0
bGFzZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cmVuZGVyTmV4
dEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29u
dGVudFVwZGF0ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yKToKKyAgICAgICAgKFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyKToKKyAgICAg
ICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aEluYWN0aXZp
dHlDb3VudGVyOjpVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcik6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291
bnRlcjo6aW5jcmVtZW50Q291bnRlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3Jk
aW5hdG9yOjpVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcjo6cmVzZXRDb3VudGVyKToK
KyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aElu
YWN0aXZpdHlDb3VudGVyOjppbmFjdGl2aXR5Q291bnQpOgorCiAyMDEyLTA4LTI3ICBTaW1vbiBI
YXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0g
UkVHUkVTU0lPTihyMTI2MDY3KTogSXQgbWFkZSBxbWx0ZXN0czo6RG91YmxlVGFwVG9ab29tOjp0
ZXN0X2Jhc2ljKCkgZmFpbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuY3BwCmluZGV4IGI0ODVkY2YxN2Y1ZWJlZjI5YTk2NmVj
YzYzZDZhMTkwODMyZDczMDQuLmIzMjI5MTg0ZDFhN2JiNjFhNDE0ZDQzOGVlNTRiZDk0YTFiMTUw
ZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFj
a2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5jcHAKQEAgLTU0NCw2ICs1NDQsMTEgQEAgdm9pZCBUaWxlZEJhY2tpbmdT
dG9yZTo6c2V0U3VwcG9ydHNBbHBoYShib29sIGEpCiAgICAgaW52YWxpZGF0ZShtX3JlY3QpOwog
fQogCit1bnNpZ25lZCBUaWxlZEJhY2tpbmdTdG9yZTo6dGlsZUJ1ZmZlcnNTaXplKCkgY29uc3QK
K3sKKyAgICByZXR1cm4gbV90aWxlcy5zaXplKCkgKiBtX3RpbGVTaXplLndpZHRoKCkgKiBtX3Rp
bGVTaXplLmhlaWdodCgpOworfQorCiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmgKaW5kZXggOGQ2NjJlNGM0
YjJkYTY1NGUxNjIyYWYyOTQ0MzFiZDkyN2ZjODBmYS4uNTFjZDhmY2YzYWU3YzcxNzc5OWE3NzZk
ZTg5MWI2N2E1MjZhZmE5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvVGlsZWRCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCkBAIC01Niw2ICs1Niw4IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgdXBkYXRlVGlsZUJ1ZmZlcnMoKTsKIAorICAgIHVuc2lnbmVkIHRpbGVCdWZmZXJz
U2l6ZSgpIGNvbnN0OworCiAgICAgdm9pZCBpbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmIGRpcnR5
UmVjdCk7CiAgICAgdm9pZCBwYWludChHcmFwaGljc0NvbnRleHQqLCBjb25zdCBJbnRSZWN0Jik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGlu
YXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBo
aWNzTGF5ZXIuY3BwCmluZGV4IDE0MWQyZTYwM2Y4NDgwOTVjMjNhNmU3YjM3YTMxYzg4Njk3MWQw
MDUuLjliM2VkZWI3ZTY4MmY2M2M5ZTBiZDdhNzY2ZDBhYzk1YWQ1NmZlNzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNw
cApAQCAtODMyLDUgKzgzMiwxMiBAQCB2b2lkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6c2V0
QW5pbWF0ZWRPcGFjaXR5KGZsb2F0IG9wYWNpdHkpCiAgICAgZGlkQ2hhbmdlQW5pbWF0ZWRQcm9w
ZXJ0aWVzKCk7CiB9CiAKK3Vuc2lnbmVkIENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZXN0aW1h
dGVkTWVtb3J5RGVtYW5kRm9yQ29udGVudFVwZGF0ZSgpIGNvbnN0Cit7CisgICAgaWYgKCFtX21h
aW5CYWNraW5nU3RvcmUpCisgICAgICAgIHJldHVybiAwOworICAgIHJldHVybiBtX21haW5CYWNr
aW5nU3RvcmUtPnRpbGVCdWZmZXJzU2l6ZSgpOworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nv
b3JkaW5hdGVkR3JhcGhpY3NMYXllci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKaW5kZXgg
ZjRlYTJmYjkyZmNiM2U1YTdhYTcwNjQyYWJiZjk5OWM3OTgwZDg2NC4uMmMzNmIyMjNlZjdmMzEx
ZWJmOTQ3MGYyZTlhNTA3NjE4NDk4ZTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmgKQEAgLTE3Myw2ICsxNzMsOCBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHBhdXNlQW5pbWF0aW9uKGNvbnN0IFN0cmluZyYsIGRv
dWJsZSk7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmKTsK
IAorICAgIHVuc2lnbmVkIGVzdGltYXRlZE1lbW9yeURlbWFuZEZvckNvbnRlbnRVcGRhdGUoKSBj
b25zdDsKKwogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgd2lsbEJlRGVzdHJveWVkKCk7CiAg
ICAgV2ViS2l0OjpXZWJMYXllcklEIG1faWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXggYTNhNTcyOTA3M2JkZTlmZjczMzVl
N2MyYTdhODRjZWEzZWQ1ODNjNS4uMmY3OTI5NzQ4MDcwZDIzNGYwYzg4OTU4YjFiNWQ0YzM1NGVh
NWUxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmNwcApAQCAtMjc4LDkgKzI3OCw0OCBAQCBib29sIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMoKQogICAgICAgICBtX2ZvcmNlUmVwYWludEFzeW5j
Q2FsbGJhY2tJRCA9IDA7CiAgICAgfQogCisgICAgcmVtb3ZlSW5hY3RpdmVBdGxhc2VzKCk7CisK
ICAgICByZXR1cm4gZGlkU3luYzsKIH0KIAorc3RhdGljIGNvbnN0IGludCBTY3JhdGNoQnVmZmVy
RGltZW5zaW9uID0gMTAyNDsgLy8gU2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdvLgorCit2b2lkIExh
eWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVJbmFjdGl2ZUF0bGFzZXMoKQoreworICAgIGludCBl
c3RpbWF0ZWRNZW1vcnlEZW1hbmQgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5
ZXIqPihtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpLT5lc3RpbWF0ZWRNZW1vcnlE
ZW1hbmRGb3JDb250ZW50VXBkYXRlKCk7CisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKKyAg
ICAgICAgZXN0aW1hdGVkTWVtb3J5RGVtYW5kICs9IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkR3Jh
cGhpY3NMYXllcio+KG1fcGFnZU92ZXJsYXlMYXllci5nZXQoKSktPmVzdGltYXRlZE1lbW9yeURl
bWFuZEZvckNvbnRlbnRVcGRhdGUoKTsKKyAgICBmb3IgKEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRp
bmF0ZWRHcmFwaGljc0xheWVyKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkTGF5
ZXJzLmJlZ2luKCk7IGl0ICE9IG1fcmVnaXN0ZXJlZExheWVycy5lbmQoKTsgKytpdCkKKyAgICAg
ICAgZXN0aW1hdGVkTWVtb3J5RGVtYW5kICs9ICgqaXQpLT5lc3RpbWF0ZWRNZW1vcnlEZW1hbmRG
b3JDb250ZW50VXBkYXRlKCk7CisKKyAgICBjb25zdCBpbnQgc2NyYXRjaEJ1ZmZlclNpemUgPSBT
Y3JhdGNoQnVmZmVyRGltZW5zaW9uICogU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbjsKKyAgICBpZiAo
ZXN0aW1hdGVkTWVtb3J5RGVtYW5kIDwgc2NyYXRjaEJ1ZmZlclNpemUpCisgICAgICAgIHJldHVy
bjsKKyAgICBpZiAodW5zaWduZWQgcmVtYWluZGVyID0gZXN0aW1hdGVkTWVtb3J5RGVtYW5kICUg
c2NyYXRjaEJ1ZmZlclNpemUpCisgICAgICAgIGVzdGltYXRlZE1lbW9yeURlbWFuZCArPSBzY3Jh
dGNoQnVmZmVyU2l6ZSAtIHJlbWFpbmRlcjsKKworICAgIGludCBtZW1vcnlVc2FnZSA9IG1fdXBk
YXRlQXRsYXNlcy5zaXplKCkgKiBzY3JhdGNoQnVmZmVyU2l6ZTsKKyAgICBpbnQgbWVtb3J5VG9S
ZWxlYXNlID0gbWVtb3J5VXNhZ2UgLSBlc3RpbWF0ZWRNZW1vcnlEZW1hbmQ7CisgICAgaWYgKG1l
bW9yeVRvUmVsZWFzZSA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBLZWVwIHVudXNl
ZCBidWZmZXJzIGZvciBhIHdoaWxlIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9uIGNodXJuLgor
ICAgIGNvbnN0IHVuc2lnbmVkIGtJbmFjdGl2ZUZyYW1lc1RvbGVyYW5jZSA9IDEwOworCisgICAg
VmVjdG9yPE93blB0cjxVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcj4gPiByZW1haW5p
bmdBdGxhc2VzOworICAgIGZvciAoaW50IGkgPSBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIC0gMTsg
aSA+PSAwOyAtLWkpIHsKKyAgICAgICAgT3duUHRyPFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlD
b3VudGVyPiYgYXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV07CisgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gYXRsYXMtPmluYWN0aXZpdHlDb3VudCgpOworICAgICAgICBpZiAoY291bnQgPj0ga0lu
YWN0aXZlRnJhbWVzVG9sZXJhbmNlICYmIG1lbW9yeVRvUmVsZWFzZSA+IDApCisgICAgICAgICAg
ICBtZW1vcnlUb1JlbGVhc2UgLT0gc2NyYXRjaEJ1ZmZlclNpemU7CisgICAgICAgIGVsc2UKKyAg
ICAgICAgICAgIHJlbWFpbmluZ0F0bGFzZXMucHJlcGVuZChhdGxhcy5yZWxlYXNlKCkpOworICAg
IH0KKworICAgIG1fdXBkYXRlQXRsYXNlcy5zd2FwKHJlbWFpbmluZ0F0bGFzZXMpOworfQorCiB2
b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZShXZWJMYXllcklEIGlkLCBj
b25zdCBXZWJMYXllckluZm8mIGluZm8pCiB7CiAgICAgaWYgKG1fc2hvdWxkU2VuZFNjcm9sbFBv
c2l0aW9uVXBkYXRlKSB7CkBAIC02MDAsOCArNjM5LDEwIEBAIHZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OnJlbmRlck5leHRGcmFtZSgpCiB7CiAgICAgbV93YWl0aW5nRm9yVUlQcm9jZXNzID0g
ZmFsc2U7CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci0gICAgZm9yIChpbnQgaSA9IDA7IGkg
PCBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpOyArK2kpCisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBt
X3VwZGF0ZUF0bGFzZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbV91cGRhdGVBdGxhc2VzW2ld
LT5kaWRTd2FwQnVmZmVycygpOworICAgICAgICBtX3VwZGF0ZUF0bGFzZXNbaV0tPmluY3JlbWVu
dENvdW50ZXIoKTsKKyAgICB9CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmxheWVy
VHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0CkBAIC02MjMsMTcgKzY2NCwxOCBAQCBQYXNz
T3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJl
Z2luQ29udGVudFVwZGF0ZShjbwogewogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRl
eHQ+IGdyYXBoaWNzQ29udGV4dDsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fdXBkYXRlQXRs
YXNlcy5zaXplKCk7ICsraSkgewotICAgICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSBtX3VwZGF0
ZUF0bGFzZXNbaV0uZ2V0KCk7CisgICAgICAgIFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3Vu
dGVyKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKGF0bGFz
LT5mbGFncygpID09IGZsYWdzKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcmV0dXJuIG51
bGwgaWYgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIGJ1ZmZlciBzcGFjZS4KICAgICAgICAgICAgIGdy
YXBoaWNzQ29udGV4dCA9IGF0bGFzLT5iZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaGFu
ZGxlLCBzaXplLCBvZmZzZXQpOwotICAgICAgICAgICAgaWYgKGdyYXBoaWNzQ29udGV4dCkKKyAg
ICAgICAgICAgIGlmIChncmFwaGljc0NvbnRleHQpIHsKKyAgICAgICAgICAgICAgICBhdGxhcy0+
cmVzZXRDb3VudGVyKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGdyYXBoaWNzQ29udGV4dC5y
ZWxlYXNlKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzdGF0aWMg
Y29uc3QgaW50IFNjcmF0Y2hCdWZmZXJEaW1lbnNpb24gPSAxMDI0OyAvLyBTaG91bGQgYmUgYSBw
b3dlciBvZiB0d28uCi0gICAgbV91cGRhdGVBdGxhc2VzLmFwcGVuZChhZG9wdFB0cihuZXcgVXBk
YXRlQXRsYXMoU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7CisgICAgbV91cGRhdGVB
dGxhc2VzLmFwcGVuZChhZG9wdFB0cihuZXcgVXBkYXRlQXRsYXNXaXRoSW5hY3Rpdml0eUNvdW50
ZXIoU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7CiAgICAgcmV0dXJuIG1fdXBkYXRl
QXRsYXNlcy5sYXN0KCktPmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihoYW5kbGUsIHNp
emUsIG9mZnNldCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5oCmluZGV4IGM4ZWY1NGE2ODZhYzhhZTBmMDgzZWMyMWFhZmMwNDM4YjRm
YzMwMDUuLjYxNjI0YjY0ZTg4MDdlYjllZDg2ODY3MjNkNDMxMDAwNzFiMjAyYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaApAQCAtMTEz
LDYgKzExMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJG
bHVzaCgpOwogICAgIHZvaWQgc3luY0Rpc3BsYXlTdGF0ZSgpOwogCisgICAgdm9pZCByZW1vdmVJ
bmFjdGl2ZUF0bGFzZXMoKTsKKwogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBt
X3Jvb3RMYXllcjsKIAogICAgIC8vIFRoZSBsYXllciB3aGljaCBjb250YWlucyBhbGwgbm9uLWNv
bXBvc2l0ZWQgY29udGVudC4KQEAgLTEyMyw3ICsxMjUsMjEgQEAgcHJpdmF0ZToKIAogICAgIEhh
c2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFwaGljc0xheWVyKj4gbV9yZWdpc3RlcmVkTGF5
ZXJzOwogICAgIEhhc2hNYXA8aW50NjRfdCwgaW50PiBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdl
UmVmQ291bnRzOwotICAgIFZlY3RvcjxPd25QdHI8VXBkYXRlQXRsYXM+ID4gbV91cGRhdGVBdGxh
c2VzOworCisgICAgY2xhc3MgVXBkYXRlQXRsYXNXaXRoSW5hY3Rpdml0eUNvdW50ZXIgOiBwdWJs
aWMgVXBkYXRlQXRsYXMgeworICAgIHB1YmxpYzoKKyAgICAgICAgVXBkYXRlQXRsYXNXaXRoSW5h
Y3Rpdml0eUNvdW50ZXIoaW50IGRpbWVuc2lvbiwgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFn
cykKKyAgICAgICAgICAgIDogVXBkYXRlQXRsYXMoZGltZW5zaW9uLCBmbGFncykKKyAgICAgICAg
ICAgICwgbV9pbmFjdGl2aXR5Q291bnRlcigwKQorICAgICAgICB7IH0KKyAgICAgICAgdm9pZCBp
bmNyZW1lbnRDb3VudGVyKCkgeyArK21faW5hY3Rpdml0eUNvdW50ZXI7IH0KKyAgICAgICAgdm9p
ZCByZXNldENvdW50ZXIoKSB7IG1faW5hY3Rpdml0eUNvdW50ZXIgPSAwOyB9CisgICAgICAgIHVu
c2lnbmVkIGluYWN0aXZpdHlDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1faW5hY3Rpdml0eUNvdW50
ZXI7IH0KKyAgICBwcml2YXRlOgorICAgICAgICB1bnNpZ25lZCBtX2luYWN0aXZpdHlDb3VudGVy
OworICAgIH07CisKKyAgICBWZWN0b3I8T3duUHRyPFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlD
b3VudGVyPiA+IG1fdXBkYXRlQXRsYXNlczsKIAogICAgIGJvb2wgbV9ub3RpZnlBZnRlclNjaGVk
dWxlZExheWVyRmx1c2g7CiAgICAgYm9vbCBtX2lzVmFsaWQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162488</attachid>
            <date>2012-09-06 06:16:07 -0700</date>
            <delta_ts>2012-09-10 08:25:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120906151546.patch</filename>
            <type>text/plain</type>
            <size>11852</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGY0ZTFkNjk1NGM4YjIx
MTQyYzVlOTRkZTIxODRmZTc1YThiNDkxNi4uYzEyNTlhZmUyZTFkMmEwNDllYzA1MWRjYjUzZjg4
NzMzN2I4NjFmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEyLTA5LTA1ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBUaWxlZEJhY2tp
bmdTdG9yZSBleHBvc2UgdGhlIHN1bW1hcml6ZWQgc2l6ZQorICAgICAgICBvZiBpdCdzIGN1cnJl
bnRseSBhbGxvY2F0ZWQgdGlsZXMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9UaWxl
ZEJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUaWxlZEJhY2tpbmdTdG9yZTo6
dGlsZUJ1ZmZlcnNTaXplKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChUaWxlZEJhY2tpbmdTdG9y
ZSk6CisKIDIwMTItMDktMDUgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMjc1NzMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggYmM3MTEwYWMxMTNhODA0YjVlZTNiM2U2ZGQ2ODU2ZDZkZDFjMzQ5Yi4uNmRmZDI0OGRl
NzFkMGQyYmI5MWJiYzI5NTY3ZmFiZTY5NjExYjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQy
IEBACiAyMDEyLTA5LTA1ICBCYWxhenMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAor
ICAgICAgICBbV0syXSBMYXllclRyZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQg
VXBkYXRlZEF0bGFzJ3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk1MDcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW52ZW50IGEgd2F5IHRvIHJlbGVhc2Ugc29tZSBtZW1vcnkgYWxsb2NhdGVkIGZvciBV
cGRhdGVBdGxhcydzCisgICAgICAgIHdoZW4gdGhlIHNpemUgb2YgdGhlIHZpc2libGUgcmVjdCBi
ZWNvbWUgc21hbGxlciwgZm9yIGV4YW1wbGUKKyAgICAgICAgd2hlbiB6b29taW5nIG91dC4gV2Ug
Y2FuIHJlbGVhc2UgdGhlIGF0bGFzIGJldHdlZW4gcmVuZGVyTmV4dEZyYW1lCisgICAgICAgIGFu
ZCBmbHVzaFBlbmRpbmdMYXllckNoYW5nZXMgaXQgd2FzIG5vdCB1c2VkIGZvciB0aGUgcmVuZGVy
aW5nIG9mCisgICAgICAgIHRoZSBjdXJyZW50IGZyYW1lLiBUbyBhdm9pZCBtZW1vcnkgYWxsb2Nh
dGlvbiBjaHVybiBpZiB0aGUgdmlzaWJsZQorICAgICAgICByZWN0IGlzIGNoYW5naW5nIHJhcGlk
bHkgd2Ugd2FpdCB1bnRpbCB0aGUgYXRsYXMgd2FzIGJlaW5nIHVudXNlZAorICAgICAgICBmb3Ig
YSBjb25zdGFudCBudW1iZXIgb2YgZnJhbWVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xheWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcjo6ZXN0aW1hdGVkTWVtb3J5
RGVtYW5kRm9yQ29udGVudFVwZGF0ZSk6CisgICAgICAgIFRoaXMgaXMgdGhlIG1heGltdW0gb2Yg
dGhlIG1lbW9yeSB0aGF0IGlzIG5lY2Vzc2FyeSBmb3IgdGhpcyBsYXllciBiZWNhdXNlCisgICAg
ICAgIHdlIGRvbid0IGtub3cgaW4gYWR2YW5jZSB3aGF0IHdpbGwgYmUgdGhlIGRpcmN0eSByZWN0
cyBpbiBlYWNoIHRpbGUuCisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuaDoK
KyAgICAgICAgKENvb3JkaW5hdGVkR3JhcGhpY3NMYXllcik6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6Zmx1c2hQZW5kaW5nTGF5ZXJD
aGFuZ2VzKToKKyAgICAgICAgV2UgZG8gdGhlIGhhdXNla2VlcGluZyBoZXJlIHdoZW4gd2Uga25v
dyB3aGljaCBhdGxhc2VzIHdlcmUgdXNlZC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZW1vdmVJbmFjdGl2ZUF0bGFzZXMpOgorICAg
ICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29udGVudFVwZGF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKyAgICAg
ICAgKFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyKToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyOjpV
cGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUNvb3JkaW5hdG9yOjpVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcjo6aW5jcmVt
ZW50Q291bnRlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpVcGRh
dGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcjo6cmVzZXRDb3VudGVyKToKKyAgICAgICAgKFdl
YktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3Vu
dGVyOjppbmFjdGl2aXR5Q291bnQpOgorCisyMDEyLTA5LTA1ICBCYWxhenMgS2VsZW1lbiAgPGti
YWxhenNAd2Via2l0Lm9yZz4KKwogICAgICAgICBbV0syXSBDcmFzaCBpbiBXZWJQYWdlUHJveHk6
OnNob3dQb3B1cE1lbnUgaWYgUGFnZUNsaWVudCBkb2VzIG5vdCBpbXBsZW1lbnQgY3JlYXRlUG9w
dXBNZW51UHJveHkKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTk1ODYyCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmNwcAppbmRleCBhMTlmNmE2MTY3OGRlZWY5Nzk1NDY5MjBkOGRk
ZDAxYjQxYjQ2Y2Y1Li5iMmNmZTRmODY4YjcyYjk4ZTFjNzk2YTNhNDlmNDQ4NjFiYjQzZTVmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGlsZWRCYWNr
aW5nU3RvcmUuY3BwCkBAIC01NDQsNiArNTQ0LDExIEBAIHZvaWQgVGlsZWRCYWNraW5nU3RvcmU6
OnNldFN1cHBvcnRzQWxwaGEoYm9vbCBhKQogICAgIGludmFsaWRhdGUobV9yZWN0KTsKIH0KIAor
dW5zaWduZWQgVGlsZWRCYWNraW5nU3RvcmU6OnRpbGVCdWZmZXJzU2l6ZSgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIG1fdGlsZXMuc2l6ZSgpICogbV90aWxlU2l6ZS53aWR0aCgpICogbV90aWxlU2l6
ZS5oZWlnaHQoKTsKK30KKwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RpbGVkQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9UaWxlZEJhY2tpbmdTdG9yZS5oCmluZGV4IDhkNjYyZTRjNGIyZGE2
NTRlMTYyMmFmMjk0NDMxYmQ5MjdmYzgwZmEuLjUxY2Q4ZmNmM2FlN2M3MTc3OTlhNzc2ZGU4OTFi
NjdhNTI2YWZhOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L1RpbGVkQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvVGlsZWRCYWNraW5nU3RvcmUuaApAQCAtNTYsNiArNTYsOCBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHVwZGF0ZVRpbGVCdWZmZXJzKCk7CiAKKyAgICB1bnNpZ25lZCB0aWxlQnVmZmVyc1NpemUo
KSBjb25zdDsKKwogICAgIHZvaWQgaW52YWxpZGF0ZShjb25zdCBJbnRSZWN0JiBkaXJ0eVJlY3Qp
OwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9Db29yZGluYXRlZEdyYXBoaWNzTGF5ZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvQ29vcmRpbmF0ZWRHcmFwaGljc0xh
eWVyLmNwcAppbmRleCA0ZjE3NmRkODZhNDU1YjM3NTA5MzFmMmNjOTRmYjljZTc4MTVhYjQ1Li5h
NTNkZjVjZWUzMGViNzU5NmFlMjE1YzBiZGZmZTZhYzkzNGIzMDkzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5jcHAKQEAg
LTgzMiw1ICs4MzIsMTIgQEAgdm9pZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OnNldEFuaW1h
dGVkT3BhY2l0eShmbG9hdCBvcGFjaXR5KQogICAgIGRpZENoYW5nZUFuaW1hdGVkUHJvcGVydGll
cygpOwogfQogCit1bnNpZ25lZCBDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXI6OmVzdGltYXRlZE1l
bW9yeURlbWFuZEZvckNvbnRlbnRVcGRhdGUoKSBjb25zdAoreworICAgIGlmICghbV9tYWluQmFj
a2luZ1N0b3JlKQorICAgICAgICByZXR1cm4gMDsKKyAgICByZXR1cm4gbV9tYWluQmFja2luZ1N0
b3JlLT50aWxlQnVmZmVyc1NpemUoKTsKK30KKwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9Db29yZGlu
YXRlZEdyYXBoaWNzTGF5ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCmluZGV4IGY0ZWEy
ZmI5MmZjYjNlNWE3YWE3MDY0MmFiYmY5OTljNzk4MGQ4NjQuLjJjMzZiMjIzZWY3ZjMxMWViZjk0
NzBmMmU5YTUwNzYxODQ5OGU5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0Nvb3JkaW5hdGVkR3JhcGhpY3NMYXllci5oCkBAIC0xNzMsNiArMTczLDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBwYXVzZUFuaW1hdGlvbihjb25zdCBTdHJpbmcmLCBkb3VibGUp
OwogICAgIHZpcnR1YWwgdm9pZCByZW1vdmVBbmltYXRpb24oY29uc3QgU3RyaW5nJik7CiAKKyAg
ICB1bnNpZ25lZCBlc3RpbWF0ZWRNZW1vcnlEZW1hbmRGb3JDb250ZW50VXBkYXRlKCkgY29uc3Q7
CisKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHdpbGxCZURlc3Ryb3llZCgpOwogICAgIFdl
YktpdDo6V2ViTGF5ZXJJRCBtX2lkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3Bw
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
TGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IGEzYTU3MjkwNzNiZGU5ZmY3MzM1ZTdjMmE3
YTg0Y2VhM2VkNTgzYzUuLmZiOGVjMTMyN2ZjYjNjMjJhOTc4NmU0ZTNlMDhkNWFkNDIxYzljYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAKQEAgLTI3OCw5ICsyNzgsNTAgQEAgYm9vbCBMYXllclRyZWVDb29yZGluYXRvcjo6Zmx1
c2hQZW5kaW5nTGF5ZXJDaGFuZ2VzKCkKICAgICAgICAgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxi
YWNrSUQgPSAwOwogICAgIH0KIAorICAgIHJlbGVhc2VJbmFjdGl2ZUF0bGFzZXMoKTsKKwogICAg
IHJldHVybiBkaWRTeW5jOwogfQogCitzdGF0aWMgY29uc3QgaW50IFNjcmF0Y2hCdWZmZXJEaW1l
bnNpb24gPSAxMDI0OyAvLyBTaG91bGQgYmUgYSBwb3dlciBvZiB0d28uCisKK3ZvaWQgTGF5ZXJU
cmVlQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXMoKQoreworICAgIGludCBlc3Rp
bWF0ZWRNZW1vcnlEZW1hbmQgPSBzdGF0aWNfY2FzdDxDb29yZGluYXRlZEdyYXBoaWNzTGF5ZXIq
PihtX25vbkNvbXBvc2l0ZWRDb250ZW50TGF5ZXIuZ2V0KCkpLT5lc3RpbWF0ZWRNZW1vcnlEZW1h
bmRGb3JDb250ZW50VXBkYXRlKCk7CisgICAgaWYgKG1fcGFnZU92ZXJsYXlMYXllcikKKyAgICAg
ICAgZXN0aW1hdGVkTWVtb3J5RGVtYW5kICs9IHN0YXRpY19jYXN0PENvb3JkaW5hdGVkR3JhcGhp
Y3NMYXllcio+KG1fcGFnZU92ZXJsYXlMYXllci5nZXQoKSktPmVzdGltYXRlZE1lbW9yeURlbWFu
ZEZvckNvbnRlbnRVcGRhdGUoKTsKKyAgICBmb3IgKEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0
ZWRHcmFwaGljc0xheWVyKj46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9yZWdpc3RlcmVkTGF5ZXJz
LmJlZ2luKCk7IGl0ICE9IG1fcmVnaXN0ZXJlZExheWVycy5lbmQoKTsgKytpdCkKKyAgICAgICAg
ZXN0aW1hdGVkTWVtb3J5RGVtYW5kICs9ICgqaXQpLT5lc3RpbWF0ZWRNZW1vcnlEZW1hbmRGb3JD
b250ZW50VXBkYXRlKCk7CisKKyAgICBjb25zdCBpbnQgc2NyYXRjaEJ1ZmZlclNpemUgPSBTY3Jh
dGNoQnVmZmVyRGltZW5zaW9uICogU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbjsKKyAgICBpZiAoZXN0
aW1hdGVkTWVtb3J5RGVtYW5kIDwgc2NyYXRjaEJ1ZmZlclNpemUpCisgICAgICAgIHJldHVybjsK
KyAgICBpZiAodW5zaWduZWQgcmVtYWluZGVyID0gZXN0aW1hdGVkTWVtb3J5RGVtYW5kICUgc2Ny
YXRjaEJ1ZmZlclNpemUpCisgICAgICAgIGVzdGltYXRlZE1lbW9yeURlbWFuZCArPSBzY3JhdGNo
QnVmZmVyU2l6ZSAtIHJlbWFpbmRlcjsKKworICAgIGludCBtZW1vcnlVc2FnZSA9IG1fdXBkYXRl
QXRsYXNlcy5zaXplKCkgKiBzY3JhdGNoQnVmZmVyU2l6ZTsKKyAgICBpbnQgbWVtb3J5VG9SZWxl
YXNlID0gbWVtb3J5VXNhZ2UgLSBlc3RpbWF0ZWRNZW1vcnlEZW1hbmQ7CisgICAgaWYgKG1lbW9y
eVRvUmVsZWFzZSA8PSAwKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBLZWVwIHVudXNlZCBi
dWZmZXJzIGZvciBhIHdoaWxlIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9uIGNodXJuLgorICAg
IGNvbnN0IHVuc2lnbmVkIGtJbmFjdGl2ZUZyYW1lc1RvbGVyYW5jZSA9IDEwOworCisgICAgVmVj
dG9yPE93blB0cjxVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcj4gPiByZW1haW5pbmdB
dGxhc2VzOworICAgIHJlbWFpbmluZ0F0bGFzZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShtX3Vw
ZGF0ZUF0bGFzZXMuc2l6ZSgpKTsKKworICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV91cGRhdGVB
dGxhc2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIE93blB0cjxVcGRhdGVBdGxhc1dpdGhJbmFj
dGl2aXR5Q291bnRlcj4mIGF0bGFzID0gbV91cGRhdGVBdGxhc2VzW2ldOworICAgICAgICB1bnNp
Z25lZCBjb3VudCA9IGF0bGFzLT5pbmFjdGl2aXR5Q291bnQoKTsKKyAgICAgICAgaWYgKGNvdW50
ID49IGtJbmFjdGl2ZUZyYW1lc1RvbGVyYW5jZSAmJiBtZW1vcnlUb1JlbGVhc2UgPiAwKQorICAg
ICAgICAgICAgbWVtb3J5VG9SZWxlYXNlIC09IHNjcmF0Y2hCdWZmZXJTaXplOworICAgICAgICBl
bHNlCisgICAgICAgICAgICByZW1haW5pbmdBdGxhc2VzLnVuY2hlY2tlZEFwcGVuZChhdGxhcy5y
ZWxlYXNlKCkpOworICAgIH0KKworICAgIG1fdXBkYXRlQXRsYXNlcy5zd2FwKHJlbWFpbmluZ0F0
bGFzZXMpOworfQorCiB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzeW5jTGF5ZXJTdGF0ZShX
ZWJMYXllcklEIGlkLCBjb25zdCBXZWJMYXllckluZm8mIGluZm8pCiB7CiAgICAgaWYgKG1fc2hv
dWxkU2VuZFNjcm9sbFBvc2l0aW9uVXBkYXRlKSB7CkBAIC02MDAsOCArNjQxLDEwIEBAIHZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbmRlck5leHRGcmFtZSgpCiB7CiAgICAgbV93YWl0aW5n
Rm9yVUlQcm9jZXNzID0gZmFsc2U7CiAgICAgc2NoZWR1bGVMYXllckZsdXNoKCk7Ci0gICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpOyArK2kpCisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgbV91
cGRhdGVBdGxhc2VzW2ldLT5kaWRTd2FwQnVmZmVycygpOworICAgICAgICBtX3VwZGF0ZUF0bGFz
ZXNbaV0tPmluY3JlbWVudENvdW50ZXIoKTsKKyAgICB9CiB9CiAKIGJvb2wgTGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OmxheWVyVHJlZVRpbGVVcGRhdGVzQWxsb3dlZCgpIGNvbnN0CkBAIC02MjMsMTcg
KzY2NiwxOCBAQCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OmJlZ2luQ29udGVudFVwZGF0ZShjbwogewogICAgIE93blB0cjxXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ+IGdyYXBoaWNzQ29udGV4dDsKICAgICBmb3IgKGludCBpID0gMDsg
aSA8IG1fdXBkYXRlQXRsYXNlcy5zaXplKCk7ICsraSkgewotICAgICAgICBVcGRhdGVBdGxhcyog
YXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV0uZ2V0KCk7CisgICAgICAgIFVwZGF0ZUF0bGFzV2l0
aEluYWN0aXZpdHlDb3VudGVyKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKICAg
ICAgICAgaWYgKGF0bGFzLT5mbGFncygpID09IGZsYWdzKSB7CiAgICAgICAgICAgICAvLyBUaGlz
IHdpbGwgcmV0dXJuIG51bGwgaWYgdGhlcmUgaXMgbm8gYXZhaWxhYmxlIGJ1ZmZlciBzcGFjZS4K
ICAgICAgICAgICAgIGdyYXBoaWNzQ29udGV4dCA9IGF0bGFzLT5iZWdpblBhaW50aW5nT25BdmFp
bGFibGVCdWZmZXIoaGFuZGxlLCBzaXplLCBvZmZzZXQpOwotICAgICAgICAgICAgaWYgKGdyYXBo
aWNzQ29udGV4dCkKKyAgICAgICAgICAgIGlmIChncmFwaGljc0NvbnRleHQpIHsKKyAgICAgICAg
ICAgICAgICBhdGxhcy0+cmVzZXRDb3VudGVyKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGdy
YXBoaWNzQ29udGV4dC5yZWxlYXNlKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9
CiAKLSAgICBzdGF0aWMgY29uc3QgaW50IFNjcmF0Y2hCdWZmZXJEaW1lbnNpb24gPSAxMDI0OyAv
LyBTaG91bGQgYmUgYSBwb3dlciBvZiB0d28uCi0gICAgbV91cGRhdGVBdGxhc2VzLmFwcGVuZChh
ZG9wdFB0cihuZXcgVXBkYXRlQXRsYXMoU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7
CisgICAgbV91cGRhdGVBdGxhc2VzLmFwcGVuZChhZG9wdFB0cihuZXcgVXBkYXRlQXRsYXNXaXRo
SW5hY3Rpdml0eUNvdW50ZXIoU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7CiAgICAg
cmV0dXJuIG1fdXBkYXRlQXRsYXNlcy5sYXN0KCktPmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1
ZmZlcihoYW5kbGUsIHNpemUsIG9mZnNldCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRH
cmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGM4ZWY1NGE2ODZhYzhhZTBmMDgz
ZWMyMWFhZmMwNDM4YjRmYzMwMDUuLjEyZDc4NjEwNTU5ZDBiNTljYjM3NzBhYWI2ZDgzMjA1ZjJh
OTM2NGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29y
ZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuaApAQCAtMTEzLDYgKzExMyw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRQZXJmb3Jt
U2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgc3luY0Rpc3BsYXlTdGF0ZSgpOwogCisg
ICAgdm9pZCByZWxlYXNlSW5hY3RpdmVBdGxhc2VzKCk7CisKICAgICBPd25QdHI8V2ViQ29yZTo6
R3JhcGhpY3NMYXllcj4gbV9yb290TGF5ZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgd2hpY2ggY29u
dGFpbnMgYWxsIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCkBAIC0xMjMsNyArMTI1LDIxIEBAIHBy
aXZhdGU6CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OkNvb3JkaW5hdGVkR3JhcGhpY3NMYXllcio+
IG1fcmVnaXN0ZXJlZExheWVyczsKICAgICBIYXNoTWFwPGludDY0X3QsIGludD4gbV9kaXJlY3Rs
eUNvbXBvc2l0ZWRJbWFnZVJlZkNvdW50czsKLSAgICBWZWN0b3I8T3duUHRyPFVwZGF0ZUF0bGFz
PiA+IG1fdXBkYXRlQXRsYXNlczsKKworICAgIGNsYXNzIFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZp
dHlDb3VudGVyIDogcHVibGljIFVwZGF0ZUF0bGFzIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFVw
ZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyKGludCBkaW1lbnNpb24sIFNoYXJlYWJsZUJp
dG1hcDo6RmxhZ3MgZmxhZ3MpCisgICAgICAgICAgICA6IFVwZGF0ZUF0bGFzKGRpbWVuc2lvbiwg
ZmxhZ3MpCisgICAgICAgICAgICAsIG1faW5hY3Rpdml0eUNvdW50ZXIoMCkKKyAgICAgICAgeyB9
CisgICAgICAgIHZvaWQgaW5jcmVtZW50Q291bnRlcigpIHsgKyttX2luYWN0aXZpdHlDb3VudGVy
OyB9CisgICAgICAgIHZvaWQgcmVzZXRDb3VudGVyKCkgeyBtX2luYWN0aXZpdHlDb3VudGVyID0g
MDsgfQorICAgICAgICB1bnNpZ25lZCBpbmFjdGl2aXR5Q291bnQoKSBjb25zdCB7IHJldHVybiBt
X2luYWN0aXZpdHlDb3VudGVyOyB9CisgICAgcHJpdmF0ZToKKyAgICAgICAgdW5zaWduZWQgbV9p
bmFjdGl2aXR5Q291bnRlcjsKKyAgICB9OworCisgICAgVmVjdG9yPE93blB0cjxVcGRhdGVBdGxh
c1dpdGhJbmFjdGl2aXR5Q291bnRlcj4gPiBtX3VwZGF0ZUF0bGFzZXM7CiAKICAgICBib29sIG1f
bm90aWZ5QWZ0ZXJTY2hlZHVsZWRMYXllckZsdXNoOwogICAgIGJvb2wgbV9pc1ZhbGlkOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163138</attachid>
            <date>2012-09-10 08:25:26 -0700</date>
            <delta_ts>2012-09-12 05:50:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120910172455.patch</filename>
            <type>text/plain</type>
            <size>7332</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3ODM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmJlNDE0OGI4NzBkNmRi
OWUzYzllMTc4OWU4ZWNlZTcyNmExNTg1Yi4uNjkwNTFjYzZmMTJhOGNlMDc0NzQ1YmJlNmUwNGFl
Y2ZhN2E2Y2U5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTA5LTEwICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSBncmFwaGlj
IGJ1ZmZlcnMgdGhhdCBhcmUgbm90IHVzZWQgZm9yIGEgd2hpbGUgaW4gb3JkZXIgdG8gc2F2ZSBt
ZW1vcnkuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNv
b3JkaW5hdG9yOjpMYXllclRyZWVDb29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVy
VHJlZUNvb3JkaW5hdG9yOjpyZW5kZXJOZXh0RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpMYXll
clRyZWVDb29yZGluYXRvcjo6YmVnaW5Db250ZW50VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlc0lmTmVj
ZXNzYXJ5KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNv
b3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJGaXJlZCk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5hdG9yKToKKyAgICAgICAgKFVwZGF0ZUF0
bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29v
cmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyOjpVcGRhdGVBdGxhc1dp
dGhJbmFjdGl2aXR5Q291bnRlcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yOjpVcGRhdGVBdGxhc1dpdGhJbmFjdGl2aXR5Q291bnRlcjo6aW5jcmVtZW50Q291bnRlcik6
CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpVcGRhdGVBdGxhc1dpdGhJ
bmFjdGl2aXR5Q291bnRlcjo6cmVzZXRDb3VudGVyKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJU
cmVlQ29vcmRpbmF0b3I6OlVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyOjppbmFjdGl2
aXR5Q291bnQpOgorCiAyMDEyLTA5LTA3ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBvcHRpb25hbCBkZWJ1ZyBsb2dnaW5nIHdoZW4gd2UgZmFs
bCBpbnRvL291dCBvZiB0aHJlYWRlZCBzY3JvbGxpbmcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAppbmRleCBkMDJjOWFiYjA3NDVkYzYz
YWI3Mzg3NjNiZmM5ZDFiY2M2ZDhjZDNjLi5iY2IzZjBkMzBhNDBmNTliOTRlYjc2OThhNGMyMTI0
NDI5NjEwZjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
Q29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuY3BwCkBAIC03OCw2ICs3OCw3IEBAIExheWVyVHJlZUNvb3JkaW5hdG9yOjpM
YXllclRyZWVDb29yZGluYXRvcihXZWJQYWdlKiB3ZWJQYWdlKQogICAgICwgbV9zaG91bGRTeW5j
RnJhbWUoZmFsc2UpCiAgICAgLCBtX3Nob3VsZFN5bmNSb290TGF5ZXIodHJ1ZSkKICAgICAsIG1f
bGF5ZXJGbHVzaFRpbWVyKHRoaXMsICZMYXllclRyZWVDb29yZGluYXRvcjo6bGF5ZXJGbHVzaFRp
bWVyRmlyZWQpCisgICAgLCBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lcih0aGlzLCAmTGF5
ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKQogICAg
ICwgbV9sYXllckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQodHJ1ZSkKICAgICAsIG1fZm9yY2VSZXBh
aW50QXN5bmNDYWxsYmFja0lEKDApCiB7CkBAIC02MDAsNiArNjAxLDcgQEAgdm9pZCBMYXllclRy
ZWVDb29yZGluYXRvcjo6cmVuZGVyTmV4dEZyYW1lKCkKIHsKICAgICBtX3dhaXRpbmdGb3JVSVBy
b2Nlc3MgPSBmYWxzZTsKICAgICBzY2hlZHVsZUxheWVyRmx1c2goKTsKKyAgICBzY2hlZHVsZVJl
bGVhc2VJbmFjdGl2ZUF0bGFzZXNJZk5lY2Vzc2FyeSgpOwogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbV91cGRhdGVBdGxhc2VzLnNpemUoKTsgKytpKQogICAgICAgICBtX3VwZGF0ZUF0bGFzZXNb
aV0tPmRpZFN3YXBCdWZmZXJzKCk7CiB9CkBAIC02MjMsMTkgKzYyNSw1MyBAQCBQYXNzT3duUHRy
PFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29u
dGVudFVwZGF0ZShjbwogewogICAgIE93blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+IGdy
YXBoaWNzQ29udGV4dDsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IG1fdXBkYXRlQXRsYXNlcy5z
aXplKCk7ICsraSkgewotICAgICAgICBVcGRhdGVBdGxhcyogYXRsYXMgPSBtX3VwZGF0ZUF0bGFz
ZXNbaV0uZ2V0KCk7CisgICAgICAgIFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyKiBh
dGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKGF0bGFzLT5mbGFn
cygpID09IGZsYWdzKSB7CiAgICAgICAgICAgICAvLyBUaGlzIHdpbGwgcmV0dXJuIG51bGwgaWYg
dGhlcmUgaXMgbm8gYXZhaWxhYmxlIGJ1ZmZlciBzcGFjZS4KICAgICAgICAgICAgIGdyYXBoaWNz
Q29udGV4dCA9IGF0bGFzLT5iZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaGFuZGxlLCBz
aXplLCBvZmZzZXQpOwotICAgICAgICAgICAgaWYgKGdyYXBoaWNzQ29udGV4dCkKKyAgICAgICAg
ICAgIGlmIChncmFwaGljc0NvbnRleHQpIHsKKyAgICAgICAgICAgICAgICBhdGxhcy0+cmVzZXRD
b3VudGVyKCk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGdyYXBoaWNzQ29udGV4dC5yZWxlYXNl
KCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAKICAgICBzdGF0aWMgY29uc3Qg
aW50IFNjcmF0Y2hCdWZmZXJEaW1lbnNpb24gPSAxMDI0OyAvLyBTaG91bGQgYmUgYSBwb3dlciBv
ZiB0d28uCi0gICAgbV91cGRhdGVBdGxhc2VzLmFwcGVuZChhZG9wdFB0cihuZXcgVXBkYXRlQXRs
YXMoU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7CisgICAgbV91cGRhdGVBdGxhc2Vz
LmFwcGVuZChhZG9wdFB0cihuZXcgVXBkYXRlQXRsYXNXaXRoSW5hY3Rpdml0eUNvdW50ZXIoU2Ny
YXRjaEJ1ZmZlckRpbWVuc2lvbiwgZmxhZ3MpKSk7CiAgICAgcmV0dXJuIG1fdXBkYXRlQXRsYXNl
cy5sYXN0KCktPmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihoYW5kbGUsIHNpemUsIG9m
ZnNldCk7CiB9CiAKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUlu
YWN0aXZlQXRsYXNlc0lmTmVjZXNzYXJ5KCkKK3sKKyAgICBjb25zdCBpbnQga0RlbGF5ID0gMC4y
OworICAgIGlmICghbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXIuaXNBY3RpdmUoKSkKKyAg
ICAgICAgbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXIuc3RhcnRSZXBlYXRpbmcoa0RlbGF5
KTsKK30KKwordm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0aXZlQXRsYXNl
c1RpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+KikKK3sKKyAg
ICAvLyBBbHdheXMga2VlcCBvbmUgYXRsYXMuCisgICAgaWYgKG1fdXBkYXRlQXRsYXNlcy5zaXpl
KCkgPD0gMSkgeworICAgICAgICBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5zdG9wKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBLZWVwIHVudXNlZCBidWZmZXJzIGZv
ciBhIHdoaWxlIHRvIGF2b2lkIG1lbW9yeSBhbGxvY2F0aW9uIGNodXJuLgorICAgIGNvbnN0IHVu
c2lnbmVkIGtJbmFjdGl2aXR5VG9sZXJhbmNlID0gMTA7CisKKyAgICBWZWN0b3I8T3duUHRyPFVw
ZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyPiA+IHJlbWFpbmluZ0F0bGFzZXM7CisgICAg
cmVtYWluaW5nQXRsYXNlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KG1fdXBkYXRlQXRsYXNlcy5z
aXplKCkpOworICAgIHJlbWFpbmluZ0F0bGFzZXMudW5jaGVja2VkQXBwZW5kKG1fdXBkYXRlQXRs
YXNlc1swXS5yZWxlYXNlKCkpOworCisgICAgZm9yIChpbnQgaSA9IDE7IGkgPCBtX3VwZGF0ZUF0
bGFzZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgT3duUHRyPFVwZGF0ZUF0bGFzV2l0aEluYWN0
aXZpdHlDb3VudGVyPiYgYXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV07CisgICAgICAgIGF0bGFz
LT5pbmNyZW1lbnRDb3VudGVyKCk7CisgICAgICAgIGlmIChhdGxhcy0+aW5hY3Rpdml0eUNvdW50
KCkgPCBrSW5hY3Rpdml0eVRvbGVyYW5jZSkKKyAgICAgICAgICAgIHJlbWFpbmluZ0F0bGFzZXMu
dW5jaGVja2VkQXBwZW5kKGF0bGFzLnJlbGVhc2UoKSk7CisgICAgfQorCisgICAgbV91cGRhdGVB
dGxhc2VzLnN3YXAocmVtYWluaW5nQXRsYXNlcyk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dAogI2VuZGlmIC8vIFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGM4ZWY1NGE2ODZhYzhh
ZTBmMDgzZWMyMWFhZmMwNDM4YjRmYzMwMDUuLmZmZTFkZGM2NTM2NjcxNzRmMDVlZTIzMTZkNzQy
MTZlZmYyM2NlNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVl
Q29vcmRpbmF0b3IuaApAQCAtMTEzLDYgKzExMywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UGVyZm9ybVNjaGVkdWxlZExheWVyRmx1c2goKTsKICAgICB2b2lkIHN5bmNEaXNwbGF5U3RhdGUo
KTsKIAorICAgIHZvaWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJU
cmVlQ29vcmRpbmF0b3I+Kik7CisKKyAgICB2b2lkIHNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRs
YXNlc0lmTmVjZXNzYXJ5KCk7CisgICAgdm9pZCByZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJG
aXJlZChXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKTsKKwogICAgIE93blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKIAogICAgIC8vIFRoZSBsYXll
ciB3aGljaCBjb250YWlucyBhbGwgbm9uLWNvbXBvc2l0ZWQgY29udGVudC4KQEAgLTEyMyw3ICsx
MjgsMjEgQEAgcHJpdmF0ZToKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6Q29vcmRpbmF0ZWRHcmFw
aGljc0xheWVyKj4gbV9yZWdpc3RlcmVkTGF5ZXJzOwogICAgIEhhc2hNYXA8aW50NjRfdCwgaW50
PiBtX2RpcmVjdGx5Q29tcG9zaXRlZEltYWdlUmVmQ291bnRzOwotICAgIFZlY3RvcjxPd25QdHI8
VXBkYXRlQXRsYXM+ID4gbV91cGRhdGVBdGxhc2VzOworCisgICAgY2xhc3MgVXBkYXRlQXRsYXNX
aXRoSW5hY3Rpdml0eUNvdW50ZXIgOiBwdWJsaWMgVXBkYXRlQXRsYXMgeworICAgIHB1YmxpYzoK
KyAgICAgICAgVXBkYXRlQXRsYXNXaXRoSW5hY3Rpdml0eUNvdW50ZXIoaW50IGRpbWVuc2lvbiwg
U2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFncykKKyAgICAgICAgICAgIDogVXBkYXRlQXRsYXMo
ZGltZW5zaW9uLCBmbGFncykKKyAgICAgICAgICAgICwgbV9pbmFjdGl2aXR5Q291bnRlcigwKQor
ICAgICAgICB7IH0KKyAgICAgICAgdm9pZCBpbmNyZW1lbnRDb3VudGVyKCkgeyArK21faW5hY3Rp
dml0eUNvdW50ZXI7IH0KKyAgICAgICAgdm9pZCByZXNldENvdW50ZXIoKSB7IG1faW5hY3Rpdml0
eUNvdW50ZXIgPSAwOyB9CisgICAgICAgIHVuc2lnbmVkIGluYWN0aXZpdHlDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1faW5hY3Rpdml0eUNvdW50ZXI7IH0KKyAgICBwcml2YXRlOgorICAgICAgICB1
bnNpZ25lZCBtX2luYWN0aXZpdHlDb3VudGVyOworICAgIH07CisKKyAgICBWZWN0b3I8T3duUHRy
PFVwZGF0ZUF0bGFzV2l0aEluYWN0aXZpdHlDb3VudGVyPiA+IG1fdXBkYXRlQXRsYXNlczsKIAog
ICAgIGJvb2wgbV9ub3RpZnlBZnRlclNjaGVkdWxlZExheWVyRmx1c2g7CiAgICAgYm9vbCBtX2lz
VmFsaWQ7CkBAIC0xMzcsOCArMTU2LDggQEAgcHJpdmF0ZToKICAgICBMYXllclRyZWVDb250ZXh0
IG1fbGF5ZXJUcmVlQ29udGV4dDsKICAgICBib29sIG1fc2hvdWxkU3luY0ZyYW1lOwogICAgIGJv
b2wgbV9zaG91bGRTeW5jUm9vdExheWVyOwotICAgIHZvaWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQo
V2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+Kik7CiAgICAgV2ViQ29yZTo6VGlt
ZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IG1fbGF5ZXJGbHVzaFRpbWVyOworICAgIFdlYkNvcmU6
OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
cjsKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkOwogICAgIHVpbnQ2NF90
IG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEOwogfTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163607</attachid>
            <date>2012-09-12 05:50:23 -0700</date>
            <delta_ts>2012-09-13 06:35:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120912144947.patch</filename>
            <type>text/plain</type>
            <size>9248</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGY3Yjk5OTZhMDIzOTQy
YWQ0MzQ0MTBjMDE1YmViYTMzOTBiYTZjNC4uNWE4N2Q1ZTgzZTViNGIyYjRhMzI1ZTRmYmU5YTVh
NmJiNDJlN2U1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTEyICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSBncmFwaGlj
IGJ1ZmZlcnMgdGhhdCBhcmUgbm90IHVzZWQgZm9yIGEgd2hpbGUgaW4gb3JkZXIgdG8gc2F2ZSBt
ZW1vcnkuCisgICAgICAgIFRoaXMgd2F5IHdlIGNhbiBnaXZlIGJhY2sgbWVtb3J5IHRvIHRoZSBz
eXN0ZW0gd2hlbiBubyB1c2VyIGludGVyYWN0aW9uIGhhcHBlbnMKKyAgICAgICAgYWZ0ZXIgYSBw
ZXJpb2Qgb2YgdGltZSwgZm9yIGV4YW1wbGUgd2hlbiB3ZSBhcmUgaW4gdGhlIGJhY2tncm91bmQu
CisKKyAgICAgICAgKiBTaGFyZWQvU2hhcmVhYmxlQml0bWFwLmg6CisgICAgICAgICogV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRp
bmF0b3IpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cmVuZGVyTmV4
dEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxl
UmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyRmly
ZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xh
eWVyVHJlZUNvb3JkaW5hdG9yLmg6CisgICAgICAgIChMYXllclRyZWVDb29yZGluYXRvcik6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRl
QXRsYXM6OmRpZFN3YXBCdWZmZXJzKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmJl
Z2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcik6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0
bGFzOjpyZWZyZXNoSW5hY3Rpdml0eSk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2Vi
S2l0OjpVcGRhdGVBdGxhczo6cmVzZXRJbmFjdGl2aXR5KToKKyAgICAgICAgKFdlYktpdDo6VXBk
YXRlQXRsYXM6OmlzSW5hY3RpdmUpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9VcGRh
dGVBdGxhcy5oOgorICAgICAgICAoVXBkYXRlQXRsYXMpOgorCiAyMDEyLTA5LTExICBSYXBoYWVs
IEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBSZXdy
aXRlIHRoZSBFRkwtcmVsYXRlZCBGaW5kIG1vZHVsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaAppbmRleCBlNWQxYTZkYzkxMmE2MTNjN2MxYWIxMjhjNWQ1YWFlZWIwM2Nh
MTJhLi5lMWViYzJlNGNkMGRjNzhiMTAyY2Q2ZjdjOWE5MDk1OTY1YjEzMTY5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dl
YktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC02MCw2ICs2MCw3IEBAIG5hbWVzcGFj
ZSBXZWJLaXQgewogY2xhc3MgU2hhcmVhYmxlQml0bWFwIDogcHVibGljIFJlZkNvdW50ZWQ8U2hh
cmVhYmxlQml0bWFwPiB7CiBwdWJsaWM6CiAgICAgZW51bSBGbGFnIHsKKyAgICAgICAgTm9GbGFn
cyA9IDAsCiAgICAgICAgIFN1cHBvcnRzQWxwaGEgPSAxIDw8IDAsCiAgICAgfTsKICAgICB0eXBl
ZGVmIHVuc2lnbmVkIEZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5
ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0MTEwNTFmNjZhMDI5ODcxMzQ2Y2U2MmI2MTg1
NzUwYzI4NWFmMzEuLmE1MmRhYzVjZmIyOTE1YzMyNmI3OTExOTk4Y2JjYmM2YjZjYjI0NGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5j
cHAKQEAgLTc4LDYgKzc4LDcgQEAgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OkxheWVyVHJlZUNvb3Jk
aW5hdG9yKFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgLCBtX3Nob3VsZFN5bmNGcmFtZShmYWxzZSkK
ICAgICAsIG1fc2hvdWxkU3luY1Jvb3RMYXllcih0cnVlKQogICAgICwgbV9sYXllckZsdXNoVGlt
ZXIodGhpcywgJkxheWVyVHJlZUNvb3JkaW5hdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCkKKyAg
ICAsIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyKHRoaXMsICZMYXllclRyZWVDb29yZGlu
YXRvcjo6cmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyRmlyZWQpCiAgICAgLCBtX2xheWVyRmx1
c2hTY2hlZHVsaW5nRW5hYmxlZCh0cnVlKQogICAgICwgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxi
YWNrSUQoMCkKIHsKQEAgLTYwMCw2ICs2MDEsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9y
OjpyZW5kZXJOZXh0RnJhbWUoKQogewogICAgIG1fd2FpdGluZ0ZvclVJUHJvY2VzcyA9IGZhbHNl
OwogICAgIHNjaGVkdWxlTGF5ZXJGbHVzaCgpOworICAgIHNjaGVkdWxlUmVsZWFzZUluYWN0aXZl
QXRsYXNlcygpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3VwZGF0ZUF0bGFzZXMu
c2l6ZSgpOyArK2kpCiAgICAgICAgIG1fdXBkYXRlQXRsYXNlc1tpXS0+ZGlkU3dhcEJ1ZmZlcnMo
KTsKIH0KQEAgLTYzNyw1ICs2MzksNDEgQEAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdpbkNvbnRlbnRVcGRhdGUoY28KICAgICBy
ZXR1cm4gbV91cGRhdGVBdGxhc2VzLmxhc3QoKS0+YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVm
ZmVyKGhhbmRsZSwgc2l6ZSwgb2Zmc2V0KTsKIH0KIAordm9pZCBMYXllclRyZWVDb29yZGluYXRv
cjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxhc2VzKCkKK3sKKyAgICBpZiAoIW1fcmVsZWFz
ZUluYWN0aXZlQXRsYXNlc1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIG1fcmVsZWFzZUluYWN0
aXZlQXRsYXNlc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDAuNSk7Cit9CisKK3ZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFRpbWVyPExheWVy
VHJlZUNvb3JkaW5hdG9yPiopCit7CisgICAgLy8gV2UgYWx3YXlzIHdhbnQgdG8ga2VlcCBvbmUg
YXRsYXMgZm9yIG5vcm1hbCBjb250ZW50IHRpbGVzLgorCisgICAgaWYgKG1fdXBkYXRlQXRsYXNl
cy5zaXplKCkgPD0gMSkgeworICAgICAgICBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5z
dG9wKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBPd25QdHI8VXBkYXRlQXRsYXM+
IGF0bGFzVG9LZWVwQW55d2F5OworICAgIGJvb2wgc2VlbkFjdGl2ZU5vcm1hbEF0bGFzOworICAg
IGZvciAoaW50IGkgPSBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIC0gMTsgIGkgPj0gMDsgLS1pKSB7
CisgICAgICAgIFVwZGF0ZUF0bGFzKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsK
KyAgICAgICAgYXRsYXMtPnJlZnJlc2hJbmFjdGl2aXR5KCk7CisgICAgICAgIGJvb2wgaXNOb3Jt
YWwgPSBhdGxhcy0+ZmxhZ3MoKSA9PSBTaGFyZWFibGVCaXRtYXA6Ok5vRmxhZ3M7CisgICAgICAg
IGlmIChhdGxhcy0+aXNJbmFjdGl2ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXNlZW5BY3RpdmVO
b3JtYWxBdGxhcyAmJiAhYXRsYXNUb0tlZXBBbnl3YXkgJiYgaXNOb3JtYWwpCisgICAgICAgICAg
ICAgICAgYXRsYXNUb0tlZXBBbnl3YXkgPSBtX3VwZGF0ZUF0bGFzZXNbaV0ucmVsZWFzZSgpOwor
ICAgICAgICAgICAgbV91cGRhdGVBdGxhc2VzLnJlbW92ZShpKTsKKyAgICAgICAgfSBlbHNlIGlm
IChpc05vcm1hbCkKKyAgICAgICAgICAgIHNlZW5BY3RpdmVOb3JtYWxBdGxhcyA9IHRydWU7Cisg
ICAgfQorCisgICAgaWYgKCFzZWVuQWN0aXZlTm9ybWFsQXRsYXMgJiYgISFhdGxhc1RvS2VlcEFu
eXdheSkKKyAgICAgICAgbV91cGRhdGVBdGxhc2VzLmFwcGVuZChhdGxhc1RvS2VlcEFueXdheS5y
ZWxlYXNlKCkpOworCisgICAgaWYgKG1fdXBkYXRlQXRsYXNlcy5zaXplKCkgPD0gMSkKKyAgICAg
ICAgbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKICNlbmRpZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBjOGVm
NTRhNjg2YWM4YWUwZjA4M2VjMjFhYWZjMDQzOGI0ZmMzMDA1Li43M2I4NGU1MjQwMjAxNTk1MDUw
OWFhMGYwYzU1ZjViZTdkYzIyYjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNz
L0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKQEAgLTExMyw2ICsxMTMsMTEgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGRpZFBlcmZvcm1TY2hlZHVsZWRMYXllckZsdXNoKCk7CiAgICAgdm9pZCBzeW5jRGlz
cGxheVN0YXRlKCk7CiAKKyAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRp
bWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiopOworCisgICAgdm9pZCBzY2hlZHVsZVJlbGVhc2VJ
bmFjdGl2ZUF0bGFzZXMoKTsKKyAgICB2b2lkIHJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZp
cmVkKFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiopOworCiAgICAgT3duUHRy
PFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXI+IG1fcm9vdExheWVyOwogCiAgICAgLy8gVGhlIGxheWVy
IHdoaWNoIGNvbnRhaW5zIGFsbCBub24tY29tcG9zaXRlZCBjb250ZW50LgpAQCAtMTM3LDggKzE0
Miw4IEBAIHByaXZhdGU6CiAgICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7
CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNGcmFtZTsKICAgICBib29sIG1fc2hvdWxkU3luY1Jvb3RM
YXllcjsKLSAgICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPExheWVy
VHJlZUNvb3JkaW5hdG9yPiopOwogICAgIFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5h
dG9yPiBtX2xheWVyRmx1c2hUaW1lcjsKKyAgICBXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVDb29y
ZGluYXRvcj4gbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXI7CiAgICAgYm9vbCBtX2xheWVy
Rmx1c2hTY2hlZHVsaW5nRW5hYmxlZDsKICAgICB1aW50NjRfdCBtX2ZvcmNlUmVwYWludEFzeW5j
Q2FsbGJhY2tJRDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvVXBkYXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1VwZGF0ZUF0bGFzLmNwcAppbmRleCAxMGEzNWQ4ODUzMzIxOWVjMWMyNDNkYjEzZTUyZmY0Mjhi
ZWQxMDVmLi42MGJlNjMyZjE4MDU4ZWVlMTViMWM4Mjg5OGZhNTU5MTgwNmE3NzNmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUg
IkludFJlY3QuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
TWF0aEV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTMyLDYgKzMzLDkg
QEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIFVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyhpbnQgZGlt
ZW5zaW9uLCBTaGFyZWFibGVCaXRtYXA6OkZsYWdzIGZsYWdzKQogICAgIDogbV9mbGFncyhmbGFn
cykKKyAgICAsIG1faXNVc2VkKGZhbHNlKQorICAgICwgbV90aW1lTGFzdFJlZnJlc2hlZCgwKQor
ICAgICwgbV9pbmFjdGl2ZVRpbWUoMCkKIHsKICAgICBJbnRTaXplIHNpemUgPSBuZXh0UG93ZXJP
ZlR3byhJbnRTaXplKGRpbWVuc2lvbiwgZGltZW5zaW9uKSk7CiAgICAgbV9zdXJmYWNlID0gU2hh
cmVhYmxlU3VyZmFjZTo6Y3JlYXRlKHNpemUsIGZsYWdzLCBTaGFyZWFibGVTdXJmYWNlOjpTdXBw
b3J0c0dyYXBoaWNzU3VyZmFjZSk7CkBAIC00OSw2ICs1Myw3IEBAIHZvaWQgVXBkYXRlQXRsYXM6
OmRpZFN3YXBCdWZmZXJzKCkKIHsKICAgICBtX2FyZWFBbGxvY2F0b3IuY2xlYXIoKTsKICAgICBi
dWlsZExheW91dElmTmVlZGVkKCk7CisgICAgbV9pc1VzZWQgPSBmYWxzZTsKIH0KIAogUGFzc093
blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFi
bGVCdWZmZXIoU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJiBoYW5kbGUsIGNvbnN0IFdlYkNvcmU6
OkludFNpemUmIHNpemUsIEludFBvaW50JiBvZmZzZXQpCkBAIC02Myw2ICs2OCw5IEBAIFBhc3NP
d25QdHI8R3JhcGhpY3NDb250ZXh0PiBVcGRhdGVBdGxhczo6YmVnaW5QYWludGluZ09uQXZhaWxh
YmxlQnVmZmVyKFNoYXJlYWJsCiAgICAgaWYgKCFtX3N1cmZhY2UtPmNyZWF0ZUhhbmRsZShoYW5k
bGUpKQogICAgICAgICByZXR1cm4gUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ+
KCk7CiAKKyAgICBtX2lzVXNlZCA9IHRydWU7CisgICAgcmVzZXRJbmFjdGl2aXR5KCk7CisKICAg
ICAvLyBGSVhNRTogVXNlIHRyaS1zdGF0ZSBidWZmZXJzLCB0byBhbGxvdyBmYXN0ZXIgdXBkYXRl
cy4KICAgICBvZmZzZXQgPSByZWN0LmxvY2F0aW9uKCk7CiAgICAgT3duUHRyPEdyYXBoaWNzQ29u
dGV4dD4gZ3JhcGhpY3NDb250ZXh0ID0gbV9zdXJmYWNlLT5jcmVhdGVHcmFwaGljc0NvbnRleHQo
cmVjdCk7CkBAIC03Niw1ICs4NCwyNCBAQCBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBk
YXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihTaGFyZWFibAogICAgIHJl
dHVybiBncmFwaGljc0NvbnRleHQucmVsZWFzZSgpOwogfQogCit2b2lkIFVwZGF0ZUF0bGFzOjpy
ZWZyZXNoSW5hY3Rpdml0eSgpCit7CisgICAgZG91YmxlIG5vdyA9IG1vbm90b25pY2FsbHlJbmNy
ZWFzaW5nVGltZSgpOworICAgIG1faW5hY3RpdmVUaW1lICs9IG5vdyAtIG1fdGltZUxhc3RSZWZy
ZXNoZWQ7CisgICAgbV90aW1lTGFzdFJlZnJlc2hlZCA9IG5vdzsKK30KKwordm9pZCBVcGRhdGVB
dGxhczo6cmVzZXRJbmFjdGl2aXR5KCkKK3sKKyAgICBtX3RpbWVMYXN0UmVmcmVzaGVkID0gbW9u
b3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCk7CisgICAgbV9pbmFjdGl2ZVRpbWUgPSAwOworfQor
Citib29sIFVwZGF0ZUF0bGFzOjppc0luYWN0aXZlKCkgY29uc3QKK3sKKyAgICBjb25zdCBkb3Vi
bGUgaW5hY3Rpdml0eVRvbGVyYW5jZUluU2Vjb25kcyA9IDM7CisgICAgcmV0dXJuICFtX2lzVXNl
ZCAmJiBtX2luYWN0aXZlVGltZSA+IGluYWN0aXZpdHlUb2xlcmFuY2VJblNlY29uZHM7Cit9CisK
IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRl
QXRsYXMuaAppbmRleCA3NzRjY2ZkZDNlZTk3YjAxNDZjOGRiMzE4MjlkNDkwZDljYTE0NjZjLi41
N2MwYzIzYjM4YTZhZDkwNmY2YjRmODcyOTUxNzEzNzk4NjIyNTFmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaApAQCAtNDQsMTMgKzQ0LDIw
IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN3YXBCdWZmZXJzKCk7CiAgICAgU2hhcmVhYmxlQml0
bWFwOjpGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7IH0KIAorICAgIHZvaWQg
cmVmcmVzaEluYWN0aXZpdHkoKTsKKyAgICBib29sIGlzSW5hY3RpdmUoKSBjb25zdDsKKwogcHJp
dmF0ZToKICAgICB2b2lkIGJ1aWxkTGF5b3V0SWZOZWVkZWQoKTsKKyAgICB2b2lkIHJlc2V0SW5h
Y3Rpdml0eSgpOwogCiBwcml2YXRlOgogICAgIE93blB0cjxHZW5lcmFsQXJlYUFsbG9jYXRvcj4g
bV9hcmVhQWxsb2NhdG9yOwogICAgIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgbV9mbGFnczsKICAg
ICBSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4gbV9zdXJmYWNlOworICAgIGJvb2wgbV9pc1VzZWQ7
CisgICAgZG91YmxlIG1fdGltZUxhc3RSZWZyZXNoZWQ7CisgICAgZG91YmxlIG1faW5hY3RpdmVU
aW1lOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163860</attachid>
            <date>2012-09-13 06:35:24 -0700</date>
            <delta_ts>2012-09-13 07:47:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120913153446.patch</filename>
            <type>text/plain</type>
            <size>8704</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGY3Yjk5OTZhMDIzOTQy
YWQ0MzQ0MTBjMDE1YmViYTMzOTBiYTZjNC4uZTRmNTU4MDAzNjMxYWY2ZDk0MmIxMzBjYTNkMjQw
YzBkMWE4NTNjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTA5LTEzICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzJ3MKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSBncmFwaGlj
IGJ1ZmZlcnMgdGhhdCBhcmUgbm90IHVzZWQgZm9yIGEgd2hpbGUgaW4gb3JkZXIgdG8gc2F2ZSBt
ZW1vcnkuCisgICAgICAgIFRoaXMgd2F5IHdlIGNhbiBnaXZlIGJhY2sgbWVtb3J5IHRvIHRoZSBz
eXN0ZW0gd2hlbiBubyB1c2VyIGludGVyYWN0aW9uIGhhcHBlbnMKKyAgICAgICAgYWZ0ZXIgYSBw
ZXJpb2Qgb2YgdGltZSwgZm9yIGV4YW1wbGUgd2hlbiB3ZSBhcmUgaW4gdGhlIGJhY2tncm91bmQu
CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXll
clRyZWVDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5h
dG9yOjpyZW5kZXJOZXh0RnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGlu
YXRvcjo6YmVnaW5Db250ZW50VXBkYXRlKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpzY2hlZHVsZVJlbGVhc2VJbmFjdGl2ZUF0bGFz
ZXMpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0
aXZlQXRsYXNlc1RpbWVyRmlyZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9VcGRh
dGVBdGxhcy5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyk6
CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFibGVC
dWZmZXIpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oOgorICAg
ICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6cmVjb3JkSW5hY3Rpdml0eSk6CisgICAgICAgIChX
ZWJLaXQ6OlVwZGF0ZUF0bGFzOjppc0luYWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRl
QXRsYXM6OnJlc2V0SW5hY3Rpdml0eSk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpp
c1VzZWQpOgorICAgICAgICAoVXBkYXRlQXRsYXMpOgorCiAyMDEyLTA5LTExICBSYXBoYWVsIEt1
Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbRUZMXSBSZXdyaXRl
IHRoZSBFRkwtcmVsYXRlZCBGaW5kIG1vZHVsZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFi
bGVCaXRtYXAuaAppbmRleCBlNWQxYTZkYzkxMmE2MTNjN2MxYWIxMjhjNWQ1YWFlZWIwM2NhMTJh
Li5lMWViYzJlNGNkMGRjNzhiMTAyY2Q2ZjdjOWE5MDk1OTY1YjEzMTY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKKysrIGIvU291cmNlL1dlYktp
dDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCkBAIC02MCw2ICs2MCw3IEBAIG5hbWVzcGFjZSBX
ZWJLaXQgewogY2xhc3MgU2hhcmVhYmxlQml0bWFwIDogcHVibGljIFJlZkNvdW50ZWQ8U2hhcmVh
YmxlQml0bWFwPiB7CiBwdWJsaWM6CiAgICAgZW51bSBGbGFnIHsKKyAgICAgICAgTm9GbGFncyA9
IDAsCiAgICAgICAgIFN1cHBvcnRzQWxwaGEgPSAxIDw8IDAsCiAgICAgfTsKICAgICB0eXBlZGVm
IHVuc2lnbmVkIEZsYWdzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJU
cmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDI0MTEwNTFmNjZhMDI5ODcxMzQ2Y2U2MmI2MTg1NzUw
YzI4NWFmMzEuLjc3ZjI3MjQ0NjRmNGFhODg5ODk3OGMwZDRmYjEyMTFlYWU1OGM4YmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBo
aWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAK
QEAgLTc4LDYgKzc4LDcgQEAgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OkxheWVyVHJlZUNvb3JkaW5h
dG9yKFdlYlBhZ2UqIHdlYlBhZ2UpCiAgICAgLCBtX3Nob3VsZFN5bmNGcmFtZShmYWxzZSkKICAg
ICAsIG1fc2hvdWxkU3luY1Jvb3RMYXllcih0cnVlKQogICAgICwgbV9sYXllckZsdXNoVGltZXIo
dGhpcywgJkxheWVyVHJlZUNvb3JkaW5hdG9yOjpsYXllckZsdXNoVGltZXJGaXJlZCkKKyAgICAs
IG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyKHRoaXMsICZMYXllclRyZWVDb29yZGluYXRv
cjo6cmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyRmlyZWQpCiAgICAgLCBtX2xheWVyRmx1c2hT
Y2hlZHVsaW5nRW5hYmxlZCh0cnVlKQogICAgICwgbV9mb3JjZVJlcGFpbnRBc3luY0NhbGxiYWNr
SUQoMCkKIHsKQEAgLTYzNCw4ICs2MzUsNDYgQEAgUGFzc093blB0cjxXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHQ+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdpbkNvbnRlbnRVcGRhdGUoY28KIAog
ICAgIHN0YXRpYyBjb25zdCBpbnQgU2NyYXRjaEJ1ZmZlckRpbWVuc2lvbiA9IDEwMjQ7IC8vIFNo
b3VsZCBiZSBhIHBvd2VyIG9mIHR3by4KICAgICBtX3VwZGF0ZUF0bGFzZXMuYXBwZW5kKGFkb3B0
UHRyKG5ldyBVcGRhdGVBdGxhcyhTY3JhdGNoQnVmZmVyRGltZW5zaW9uLCBmbGFncykpKTsKKyAg
ICBzY2hlZHVsZVJlbGVhc2VJbmFjdGl2ZUF0bGFzZXMoKTsKICAgICByZXR1cm4gbV91cGRhdGVB
dGxhc2VzLmxhc3QoKS0+YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKGhhbmRsZSwgc2l6
ZSwgb2Zmc2V0KTsKIH0KIAorY29uc3QgZG91YmxlIFJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
ckludGVydmFsID0gMC41OworCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpzY2hlZHVsZVJl
bGVhc2VJbmFjdGl2ZUF0bGFzZXMoKQoreworICAgIGlmICghbV9yZWxlYXNlSW5hY3RpdmVBdGxh
c2VzVGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGlt
ZXIuc3RhcnRSZXBlYXRpbmcoUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwpOwor
fQorCit2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGlt
ZXJGaXJlZChUaW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKQoreworICAgIC8vIFdlIGFsd2F5
cyB3YW50IHRvIGtlZXAgb25lIGF0bGFzIGZvciBub24gY29tcG9zaXRlZCBjb250ZW50LgorCisg
ICAgT3duUHRyPFVwZGF0ZUF0bGFzPiBhdGxhc1RvS2VlcEFueXdheTsKKyAgICBib29sIHNlZW5B
Y3RpdmVOb3JtYWxBdGxhcyA9IGZhbHNlOworICAgIGZvciAoaW50IGkgPSBtX3VwZGF0ZUF0bGFz
ZXMuc2l6ZSgpIC0gMTsgIGkgPj0gMDsgLS1pKSB7CisgICAgICAgIFVwZGF0ZUF0bGFzKiBhdGxh
cyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKKyAgICAgICAgaWYgKCFhdGxhcy0+aXNVc2Vk
KCkpCisgICAgICAgICAgICBhdGxhcy0+cmVjb3JkSW5hY3Rpdml0eShSZWxlYXNlSW5hY3RpdmVB
dGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgIGJvb2wgdXNhYmxlRm9yTm9uQ29tcG9zaXRl
ZENvbnRlbnQgPSBhdGxhcy0+ZmxhZ3MoKSA9PSBTaGFyZWFibGVCaXRtYXA6Ok5vRmxhZ3M7Cisg
ICAgICAgIGlmIChhdGxhcy0+aXNJbmFjdGl2ZSgpKSB7CisgICAgICAgICAgICBpZiAoIXNlZW5B
Y3RpdmVOb3JtYWxBdGxhcyAmJiAhYXRsYXNUb0tlZXBBbnl3YXkgJiYgdXNhYmxlRm9yTm9uQ29t
cG9zaXRlZENvbnRlbnQpCisgICAgICAgICAgICAgICAgYXRsYXNUb0tlZXBBbnl3YXkgPSBtX3Vw
ZGF0ZUF0bGFzZXNbaV0ucmVsZWFzZSgpOworICAgICAgICAgICAgbV91cGRhdGVBdGxhc2VzLnJl
bW92ZShpKTsKKyAgICAgICAgfSBlbHNlIGlmICh1c2FibGVGb3JOb25Db21wb3NpdGVkQ29udGVu
dCkKKyAgICAgICAgICAgIHNlZW5BY3RpdmVOb3JtYWxBdGxhcyA9IHRydWU7CisgICAgfQorCisg
ICAgaWYgKCFzZWVuQWN0aXZlTm9ybWFsQXRsYXMgJiYgYXRsYXNUb0tlZXBBbnl3YXkpCisgICAg
ICAgIG1fdXBkYXRlQXRsYXNlcy5hcHBlbmQoYXRsYXNUb0tlZXBBbnl3YXkucmVsZWFzZSgpKTsK
KworICAgIGlmIChtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIDw9IDEpIHsKKyAgICAgICAgaWYgKG1f
dXBkYXRlQXRsYXNlcy5zaXplKCkpCisgICAgICAgICAgICBtX3VwZGF0ZUF0bGFzZXMuZmlyc3Qo
KS0+cmVzZXRJbmFjdGl2aXR5KCk7CisgICAgICAgIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1Rp
bWVyLnN0b3AoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogI2VuZGlmIC8v
IFVTRShDT09SRElOQVRFRF9HUkFQSElDUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5oCmluZGV4IGM4ZWY1NGE2ODZhYzhhZTBmMDgzZWMyMWFh
ZmMwNDM4YjRmYzMwMDUuLjczYjg0ZTUyNDAyMDE1OTUwNTA5YWEwZjBjNTVmNWJlN2RjMjJiNzcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRl
ZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
aApAQCAtMTEzLDYgKzExMywxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUGVyZm9ybVNjaGVk
dWxlZExheWVyRmx1c2goKTsKICAgICB2b2lkIHN5bmNEaXNwbGF5U3RhdGUoKTsKIAorICAgIHZv
aWQgbGF5ZXJGbHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0
b3I+Kik7CisKKyAgICB2b2lkIHNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpOworICAg
IHZvaWQgcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5
ZXJUcmVlQ29vcmRpbmF0b3I+Kik7CisKICAgICBPd25QdHI8V2ViQ29yZTo6R3JhcGhpY3NMYXll
cj4gbV9yb290TGF5ZXI7CiAKICAgICAvLyBUaGUgbGF5ZXIgd2hpY2ggY29udGFpbnMgYWxsIG5v
bi1jb21wb3NpdGVkIGNvbnRlbnQuCkBAIC0xMzcsOCArMTQyLDggQEAgcHJpdmF0ZToKICAgICBM
YXllclRyZWVDb250ZXh0IG1fbGF5ZXJUcmVlQ29udGV4dDsKICAgICBib29sIG1fc2hvdWxkU3lu
Y0ZyYW1lOwogICAgIGJvb2wgbV9zaG91bGRTeW5jUm9vdExheWVyOwotICAgIHZvaWQgbGF5ZXJG
bHVzaFRpbWVyRmlyZWQoV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+Kik7CiAg
ICAgV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IG1fbGF5ZXJGbHVzaFRpbWVy
OworICAgIFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBtX3JlbGVhc2VJbmFj
dGl2ZUF0bGFzZXNUaW1lcjsKICAgICBib29sIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVk
OwogICAgIHVpbnQ2NF90IG1fZm9yY2VSZXBhaW50QXN5bmNDYWxsYmFja0lEOwogfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCmluZGV4
IDEwYTM1ZDg4NTMzMjE5ZWMxYzI0M2RiMTNlNTJmZjQyOGJlZDEwNWYuLmVmMmNlODcyYWY1Yjgy
NzFhZjRmMGJhMmM0ZTI4NDIyNWZiZTcxNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcApAQCAtMzIsNiArMzIsOCBAQCBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogVXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKGludCBkaW1lbnNpb24sIFNo
YXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBtX2ZsYWdzKGZsYWdzKQorICAgICwg
bV9pc1VzZWQoZmFsc2UpCisgICAgLCBtX2luYWN0aXZlU2Vjb25kcygwKQogewogICAgIEludFNp
emUgc2l6ZSA9IG5leHRQb3dlck9mVHdvKEludFNpemUoZGltZW5zaW9uLCBkaW1lbnNpb24pKTsK
ICAgICBtX3N1cmZhY2UgPSBTaGFyZWFibGVTdXJmYWNlOjpjcmVhdGUoc2l6ZSwgZmxhZ3MsIFNo
YXJlYWJsZVN1cmZhY2U6OlN1cHBvcnRzR3JhcGhpY3NTdXJmYWNlKTsKQEAgLTQ5LDYgKzUxLDcg
QEAgdm9pZCBVcGRhdGVBdGxhczo6ZGlkU3dhcEJ1ZmZlcnMoKQogewogICAgIG1fYXJlYUFsbG9j
YXRvci5jbGVhcigpOwogICAgIGJ1aWxkTGF5b3V0SWZOZWVkZWQoKTsKKyAgICBtX2lzVXNlZCA9
IGZhbHNlOwogfQogCiBQYXNzT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJl
Z2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihTaGFyZWFibGVTdXJmYWNlOjpIYW5kbGUmIGhh
bmRsZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6ZSwgSW50UG9pbnQmIG9mZnNldCkKQEAg
LTYzLDYgKzY2LDkgQEAgUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpi
ZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoU2hhcmVhYmwKICAgICBpZiAoIW1fc3VyZmFj
ZS0+Y3JlYXRlSGFuZGxlKGhhbmRsZSkpCiAgICAgICAgIHJldHVybiBQYXNzT3duUHRyPFdlYkNv
cmU6OkdyYXBoaWNzQ29udGV4dD4oKTsKIAorICAgIG1faXNVc2VkID0gdHJ1ZTsKKyAgICBtX2lu
YWN0aXZlU2Vjb25kcyA9IDA7CisKICAgICAvLyBGSVhNRTogVXNlIHRyaS1zdGF0ZSBidWZmZXJz
LCB0byBhbGxvdyBmYXN0ZXIgdXBkYXRlcy4KICAgICBvZmZzZXQgPSByZWN0LmxvY2F0aW9uKCk7
CiAgICAgT3duUHRyPEdyYXBoaWNzQ29udGV4dD4gZ3JhcGhpY3NDb250ZXh0ID0gbV9zdXJmYWNl
LT5jcmVhdGVHcmFwaGljc0NvbnRleHQocmVjdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oCmluZGV4IDc3NGNjZmRkM2VlOTdiMDE0NmM4ZGIz
MTgyOWQ0OTBkOWNhMTQ2NmMuLmMzZGU5NWQ5NDg3YWRmZDJjYzBiYzAwZjlkMjJjZTc2NjM4YmFl
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVB
dGxhcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxh
cy5oCkBAIC00NCw2ICs0NCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTd2FwQnVmZmVycygp
OwogICAgIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2Zs
YWdzOyB9CiAKKyAgICB2b2lkIHJlY29yZEluYWN0aXZpdHkoZG91YmxlIHNlY29uZHMpCisgICAg
eworICAgICAgICBBU1NFUlQoIW1faXNVc2VkKTsKKyAgICAgICAgbV9pbmFjdGl2ZVNlY29uZHMg
Kz0gc2Vjb25kczsKKyAgICB9CisgICAgYm9vbCBpc0luYWN0aXZlKCkgY29uc3QKKyAgICB7Cisg
ICAgICAgIGNvbnN0IGRvdWJsZSBpbmFjdGl2ZVNlY29uZHNUb2xlcmFuY2UgPSAzOworICAgICAg
ICByZXR1cm4gIW1faXNVc2VkICYmIG1faW5hY3RpdmVTZWNvbmRzID4gaW5hY3RpdmVTZWNvbmRz
VG9sZXJhbmNlOworICAgIH0KKyAgICB2b2lkIHJlc2V0SW5hY3Rpdml0eSgpIHsgbV9pbmFjdGl2
ZVNlY29uZHMgPSAwOyB9CisgICAgYm9vbCBpc1VzZWQoKSBjb25zdCB7IHJldHVybiBtX2lzVXNl
ZDsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgYnVpbGRMYXlvdXRJZk5lZWRlZCgpOwogCkBAIC01
MSw2ICs2NCw4IEBAIHByaXZhdGU6CiAgICAgT3duUHRyPEdlbmVyYWxBcmVhQWxsb2NhdG9yPiBt
X2FyZWFBbGxvY2F0b3I7CiAgICAgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBtX2ZsYWdzOwogICAg
IFJlZlB0cjxTaGFyZWFibGVTdXJmYWNlPiBtX3N1cmZhY2U7CisgICAgYm9vbCBtX2lzVXNlZDsK
KyAgICBkb3VibGUgbV9pbmFjdGl2ZVNlY29uZHM7CiB9OwogCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163872</attachid>
            <date>2012-09-13 07:47:38 -0700</date>
            <delta_ts>2012-09-13 08:47:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120913164700.patch</filename>
            <type>text/plain</type>
            <size>8532</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGY3Yjk5OTZhMDIzOTQy
YWQ0MzQ0MTBjMDE1YmViYTMzOTBiYTZjNC4uYWI3MjY2YjhiNGRkMmQ5ZGUzMzE2ZTJlODY2MGVm
NTUxNWYxMWU2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA5LTEzICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSBncmFwaGlj
IGJ1ZmZlcnMgdGhhdCBoYXZlbid0IGJlZW4gdXNlZCBmb3IgYSB3aGlsZSBpbiBvcmRlciB0byBz
YXZlIG1lbW9yeS4KKyAgICAgICAgVGhpcyB3YXkgd2UgY2FuIGdpdmUgYmFjayBtZW1vcnkgdG8g
dGhlIHN5c3RlbSB3aGVuIG5vIHVzZXIgaW50ZXJhY3Rpb24gaGFwcGVucworICAgICAgICBhZnRl
ciBhIHBlcmlvZCBvZiB0aW1lLCBmb3IgZXhhbXBsZSB3aGVuIHdlIGFyZSBpbiB0aGUgYmFja2dy
b3VuZC4KKworICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVD
b29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdp
bkNvbnRlbnRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2Vz
VGltZXJGaXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMpOgorICAgICAgICAoV2ViS2l0
OjpVcGRhdGVBdGxhczo6ZGlkU3dhcEJ1ZmZlcnMpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVB
dGxhczo6YmVnaW5QYWludGluZ09uQXZhaWxhYmxlQnVmZmVyKToKKyAgICAgICAgKiBXZWJQcm9j
ZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6
OnJlcG9ydEluYWN0aXZpdHkpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6aXNJbmFj
dGl2ZSk6CisgICAgICAgIChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpyZXNldEluYWN0aXZpdHkpOgor
ICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6aXNJblVzZSk6CisgICAgICAgIChVcGRhdGVB
dGxhcyk6CisKIDIwMTItMDktMTEgIFJhcGhhZWwgS3VibyBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIFtFRkxdIFJld3JpdGUgdGhlIEVGTC1yZWxhdGVkIEZpbmQgbW9k
dWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5o
IGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oCmluZGV4IGU1ZDFhNmRj
OTEyYTYxM2M3YzFhYjEyOGM1ZDVhYWVlYjAzY2ExMmEuLmUxZWJjMmU0Y2QwZGM3OGIxMDJjZDZm
N2M5YTkwOTU5NjViMTMxNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFy
ZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFw
LmgKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBTaGFyZWFibGVC
aXRtYXAgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWFibGVCaXRtYXA+IHsKIHB1YmxpYzoKICAg
ICBlbnVtIEZsYWcgeworICAgICAgICBOb0ZsYWdzID0gMCwKICAgICAgICAgU3VwcG9ydHNBbHBo
YSA9IDEgPDwgMCwKICAgICB9OwogICAgIHR5cGVkZWYgdW5zaWduZWQgRmxhZ3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXgg
MjQxMTA1MWY2NmEwMjk4NzEzNDZjZTYyYjYxODU3NTBjMjg1YWYzMS4uZDU4N2IzMThiYjAxYjM1
ZDg5N2I5MTg2OWIxZWExMGRjN2U2MTdhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdy
YXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApAQCAtNzgsNiArNzgsNyBAQCBMYXllclRy
ZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0b3IoV2ViUGFnZSogd2ViUGFnZSkKICAg
ICAsIG1fc2hvdWxkU3luY0ZyYW1lKGZhbHNlKQogICAgICwgbV9zaG91bGRTeW5jUm9vdExheWVy
KHRydWUpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcih0aGlzLCAmTGF5ZXJUcmVlQ29vcmRpbmF0
b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKQorICAgICwgbV9yZWxlYXNlSW5hY3RpdmVBdGxhc2Vz
VGltZXIodGhpcywgJkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2Vz
VGltZXJGaXJlZCkKICAgICAsIG1fbGF5ZXJGbHVzaFNjaGVkdWxpbmdFbmFibGVkKHRydWUpCiAg
ICAgLCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRCgwKQogewpAQCAtNjM0LDggKzYzNSw0
MiBAQCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OmJlZ2luQ29udGVudFVwZGF0ZShjbwogCiAgICAgc3RhdGljIGNvbnN0IGludCBTY3Jh
dGNoQnVmZmVyRGltZW5zaW9uID0gMTAyNDsgLy8gU2hvdWxkIGJlIGEgcG93ZXIgb2YgdHdvLgog
ICAgIG1fdXBkYXRlQXRsYXNlcy5hcHBlbmQoYWRvcHRQdHIobmV3IFVwZGF0ZUF0bGFzKFNjcmF0
Y2hCdWZmZXJEaW1lbnNpb24sIGZsYWdzKSkpOworICAgIHNjaGVkdWxlUmVsZWFzZUluYWN0aXZl
QXRsYXNlcygpOwogICAgIHJldHVybiBtX3VwZGF0ZUF0bGFzZXMubGFzdCgpLT5iZWdpblBhaW50
aW5nT25BdmFpbGFibGVCdWZmZXIoaGFuZGxlLCBzaXplLCBvZmZzZXQpOwogfQogCitjb25zdCBk
b3VibGUgUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwgPSAwLjU7CisKK3ZvaWQg
TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpCit7
CisgICAgaWYgKCFtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5pc0FjdGl2ZSgpKQorICAg
ICAgICBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5zdGFydFJlcGVhdGluZyhSZWxlYXNl
SW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7Cit9CisKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRp
bmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFRpbWVyPExheWVyVHJlZUNv
b3JkaW5hdG9yPiopCit7CisgICAgT3duUHRyPFVwZGF0ZUF0bGFzPiBhdGxhc1RvS2VlcEFueXdh
eTsKKyAgICBib29sIHNlZW5BY3RpdmVBdGxhc0Zvck5vbkNvbXBvc2l0ZWRDb250ZW50ID0gZmFs
c2U7CisgICAgZm9yIChpbnQgaSA9IG1fdXBkYXRlQXRsYXNlcy5zaXplKCkgLSAxOyAgaSA+PSAw
OyAtLWkpIHsKKyAgICAgICAgVXBkYXRlQXRsYXMqIGF0bGFzID0gbV91cGRhdGVBdGxhc2VzW2ld
LmdldCgpOworICAgICAgICBpZiAoIWF0bGFzLT5pc0luVXNlKCkpCisgICAgICAgICAgICBhdGxh
cy0+cmVwb3J0SW5hY3Rpdml0eShSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7
CisgICAgICAgIGJvb2wgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgPSBhdGxhcy0+Zmxh
Z3MoKSA9PSBTaGFyZWFibGVCaXRtYXA6Ok5vRmxhZ3M7CisgICAgICAgIGlmIChhdGxhcy0+aXNJ
bmFjdGl2ZSgpKSB7CisgICAgICAgICAgICAvLyBXZSBhbHdheXMgd2FudCB0byBrZWVwIG9uZSBh
dGxhcyBmb3Igbm9uIGNvbXBvc2l0ZWQgY29udGVudC4KKyAgICAgICAgICAgIGlmICghc2VlbkFj
dGl2ZUF0bGFzRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgJiYgIWF0bGFzVG9LZWVwQW55d2F5ICYm
IHVzYWJsZUZvck5vbkNvbXBvc2l0ZWRDb250ZW50KQorICAgICAgICAgICAgICAgIGF0bGFzVG9L
ZWVwQW55d2F5ID0gbV91cGRhdGVBdGxhc2VzW2ldLnJlbGVhc2UoKTsKKyAgICAgICAgICAgIG1f
dXBkYXRlQXRsYXNlcy5yZW1vdmUoaSk7CisgICAgICAgIH0gZWxzZSBpZiAodXNhYmxlRm9yTm9u
Q29tcG9zaXRlZENvbnRlbnQpCisgICAgICAgICAgICBzZWVuQWN0aXZlQXRsYXNGb3JOb25Db21w
b3NpdGVkQ29udGVudCA9IHRydWU7CisgICAgfQorCisgICAgaWYgKCFzZWVuQWN0aXZlQXRsYXNG
b3JOb25Db21wb3NpdGVkQ29udGVudCAmJiBhdGxhc1RvS2VlcEFueXdheSkKKyAgICAgICAgbV91
cGRhdGVBdGxhc2VzLmFwcGVuZChhdGxhc1RvS2VlcEFueXdheS5yZWxlYXNlKCkpOworCisgICAg
aWYgKG1fdXBkYXRlQXRsYXNlcy5zaXplKCkgPD0gMSkKKyAgICAgICAgbV9yZWxlYXNlSW5hY3Rp
dmVBdGxhc2VzVGltZXIuc3RvcCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKICNlbmRp
ZiAvLyBVU0UoQ09PUkRJTkFURURfR1JBUEhJQ1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGlu
YXRvci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAppbmRleCBjOGVmNTRhNjg2YWM4YWUwZjA4M2Vj
MjFhYWZjMDQzOGI0ZmMzMDA1Li43M2I4NGU1MjQwMjAxNTk1MDUwOWFhMGYwYzU1ZjViZTdkYzIy
Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRp
bmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5h
dG9yLmgKQEAgLTExMyw2ICsxMTMsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFBlcmZvcm1T
Y2hlZHVsZWRMYXllckZsdXNoKCk7CiAgICAgdm9pZCBzeW5jRGlzcGxheVN0YXRlKCk7CiAKKyAg
ICB2b2lkIGxheWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3Jk
aW5hdG9yPiopOworCisgICAgdm9pZCBzY2hlZHVsZVJlbGVhc2VJbmFjdGl2ZUF0bGFzZXMoKTsK
KyAgICB2b2lkIHJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVy
PExheWVyVHJlZUNvb3JkaW5hdG9yPiopOworCiAgICAgT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNz
TGF5ZXI+IG1fcm9vdExheWVyOwogCiAgICAgLy8gVGhlIGxheWVyIHdoaWNoIGNvbnRhaW5zIGFs
bCBub24tY29tcG9zaXRlZCBjb250ZW50LgpAQCAtMTM3LDggKzE0Miw4IEBAIHByaXZhdGU6CiAg
ICAgTGF5ZXJUcmVlQ29udGV4dCBtX2xheWVyVHJlZUNvbnRleHQ7CiAgICAgYm9vbCBtX3Nob3Vs
ZFN5bmNGcmFtZTsKICAgICBib29sIG1fc2hvdWxkU3luY1Jvb3RMYXllcjsKLSAgICB2b2lkIGxh
eWVyRmx1c2hUaW1lckZpcmVkKFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiop
OwogICAgIFdlYkNvcmU6OlRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBtX2xheWVyRmx1c2hU
aW1lcjsKKyAgICBXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4gbV9yZWxlYXNl
SW5hY3RpdmVBdGxhc2VzVGltZXI7CiAgICAgYm9vbCBtX2xheWVyRmx1c2hTY2hlZHVsaW5nRW5h
YmxlZDsKICAgICB1aW50NjRfdCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJRDsKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMu
Y3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcApp
bmRleCAxMGEzNWQ4ODUzMzIxOWVjMWMyNDNkYjEzZTUyZmY0MjhiZWQxMDVmLi44YzY1ZjVhZjI2
NTkxOWYxOTA4ZGY0OTlhMWVhZDJjMTE5MTAxYTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKQEAgLTMyLDYgKzMyLDcgQEAgbmFt
ZXNwYWNlIFdlYktpdCB7CiAKIFVwZGF0ZUF0bGFzOjpVcGRhdGVBdGxhcyhpbnQgZGltZW5zaW9u
LCBTaGFyZWFibGVCaXRtYXA6OkZsYWdzIGZsYWdzKQogICAgIDogbV9mbGFncyhmbGFncykKKyAg
ICAsIG1faW5hY3RpdmVTZWNvbmRzKDApCiB7CiAgICAgSW50U2l6ZSBzaXplID0gbmV4dFBvd2Vy
T2ZUd28oSW50U2l6ZShkaW1lbnNpb24sIGRpbWVuc2lvbikpOwogICAgIG1fc3VyZmFjZSA9IFNo
YXJlYWJsZVN1cmZhY2U6OmNyZWF0ZShzaXplLCBmbGFncywgU2hhcmVhYmxlU3VyZmFjZTo6U3Vw
cG9ydHNHcmFwaGljc1N1cmZhY2UpOwpAQCAtNDgsMTEgKzQ5LDExIEBAIHZvaWQgVXBkYXRlQXRs
YXM6OmJ1aWxkTGF5b3V0SWZOZWVkZWQoKQogdm9pZCBVcGRhdGVBdGxhczo6ZGlkU3dhcEJ1ZmZl
cnMoKQogewogICAgIG1fYXJlYUFsbG9jYXRvci5jbGVhcigpOwotICAgIGJ1aWxkTGF5b3V0SWZO
ZWVkZWQoKTsKIH0KIAogUGFzc093blB0cjxHcmFwaGljc0NvbnRleHQ+IFVwZGF0ZUF0bGFzOjpi
ZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoU2hhcmVhYmxlU3VyZmFjZTo6SGFuZGxlJiBo
YW5kbGUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUsIEludFBvaW50JiBvZmZzZXQpCiB7
CisgICAgbV9pbmFjdGl2ZVNlY29uZHMgPSAwOwogICAgIGJ1aWxkTGF5b3V0SWZOZWVkZWQoKTsK
ICAgICBJbnRSZWN0IHJlY3QgPSBtX2FyZWFBbGxvY2F0b3ItPmFsbG9jYXRlKHNpemUpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oCmluZGV4
IDc3NGNjZmRkM2VlOTdiMDE0NmM4ZGIzMTgyOWQ0OTBkOWNhMTQ2NmMuLjdlZDkwODMzMGZmMzdj
N2IzZmU1ZDNkNjBiOTZjMmMyYTliMjMxYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oCkBAIC00NCw2ICs0NCwxOSBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBkaWRTd2FwQnVmZmVycygpOwogICAgIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxh
Z3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9CiAKKyAgICB2b2lkIHJlcG9ydEluYWN0aXZp
dHkoZG91YmxlIHNlY29uZHMpCisgICAgeworICAgICAgICBBU1NFUlQoIW1faXNVc2VkKTsKKyAg
ICAgICAgbV9pbmFjdGl2ZVNlY29uZHMgKz0gc2Vjb25kczsKKyAgICB9CisgICAgYm9vbCBpc0lu
YWN0aXZlKCkgY29uc3QKKyAgICB7CisgICAgICAgIGNvbnN0IGRvdWJsZSBpbmFjdGl2ZVNlY29u
ZHNUb2xlcmFuY2UgPSAzOworICAgICAgICByZXR1cm4gbV9pbmFjdGl2ZVNlY29uZHMgPiBpbmFj
dGl2ZVNlY29uZHNUb2xlcmFuY2U7CisgICAgfQorICAgIHZvaWQgcmVzZXRJbmFjdGl2aXR5KCkg
eyBtX2luYWN0aXZlU2Vjb25kcyA9IDA7IH0KKyAgICBib29sIGlzSW5Vc2UoKSBjb25zdCB7IHJl
dHVybiBtX2FyZWFBbGxvY2F0b3I7IH0KKwogcHJpdmF0ZToKICAgICB2b2lkIGJ1aWxkTGF5b3V0
SWZOZWVkZWQoKTsKIApAQCAtNTEsNiArNjQsNyBAQCBwcml2YXRlOgogICAgIE93blB0cjxHZW5l
cmFsQXJlYUFsbG9jYXRvcj4gbV9hcmVhQWxsb2NhdG9yOwogICAgIFNoYXJlYWJsZUJpdG1hcDo6
RmxhZ3MgbV9mbGFnczsKICAgICBSZWZQdHI8U2hhcmVhYmxlU3VyZmFjZT4gbV9zdXJmYWNlOwor
ICAgIGRvdWJsZSBtX2luYWN0aXZlU2Vjb25kczsKIH07CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163884</attachid>
            <date>2012-09-13 08:47:45 -0700</date>
            <delta_ts>2012-09-14 02:32:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120913174707.patch</filename>
            <type>text/plain</type>
            <size>8630</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGY3Yjk5OTZhMDIzOTQy
YWQ0MzQ0MTBjMDE1YmViYTMzOTBiYTZjNC4uY2M1YTUxZmI5ZmFkODdhNjhlNmFlMjgxNzczZWI0
OGE2M2MzN2MyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDEyLTA5LTEzICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVsZWFzZSBncmFwaGlj
IGJ1ZmZlcnMgdGhhdCBoYXZlbid0IGJlZW4gdXNlZCBmb3IgYSB3aGlsZSBpbiBvcmRlciB0byBz
YXZlIG1lbW9yeS4KKyAgICAgICAgVGhpcyB3YXkgd2UgY2FuIGdpdmUgYmFjayBtZW1vcnkgdG8g
dGhlIHN5c3RlbSB3aGVuIG5vIHVzZXIgaW50ZXJhY3Rpb24gaGFwcGVucworICAgICAgICBhZnRl
ciBhIHBlcmlvZCBvZiB0aW1lLCBmb3IgZXhhbXBsZSB3aGVuIHdlIGFyZSBpbiB0aGUgYmFja2dy
b3VuZC4KKworICAgICAgICAqIFNoYXJlZC9TaGFyZWFibGVCaXRtYXAuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpMYXllclRyZWVD
b29yZGluYXRvcik6CisgICAgICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpiZWdp
bkNvbnRlbnRVcGRhdGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5
ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAg
ICAgIChXZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2Vz
VGltZXJGaXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3Jh
cGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaDoKKyAgICAgICAgKExheWVyVHJlZUNvb3JkaW5h
dG9yKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6VXBkYXRlQXRsYXMpOgorICAgICAgICAoV2ViS2l0
OjpVcGRhdGVBdGxhczo6ZGlkU3dhcEJ1ZmZlcnMpOgorICAgICAgICBEb24ndCBjYWxsIGJ1aWxk
TGF5b3V0SWZOZWVkZWQgaGVyZS4gSXQncyBlbm91Z2h0IHRvIGNhbGwgaXQgaW4gYmVnaW5QYWlu
dGluZ09uQXZhaWxhYmxlQnVmZmVyCisgICAgICAgIGFuZCB0aGlzIHdheSB3ZSBjYW4gdHJhY2sg
d2hldGhlciB0aGlzIGF0bGFzIGlzIHVzZWQgd2l0aCBtX2FyZWFBbGxvY2F0b3IuCisgICAgICAg
IChXZWJLaXQ6OlVwZGF0ZUF0bGFzOjpiZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIpOgor
ICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oOgorICAgICAgICAoV2Vi
S2l0OjpVcGRhdGVBdGxhczo6YWRkVGltZUluYWN0aXZlKToKKyAgICAgICAgKFdlYktpdDo6VXBk
YXRlQXRsYXM6OmlzSW5hY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpVcGRhdGVBdGxhczo6aXNJ
blVzZSk6CisgICAgICAgIChVcGRhdGVBdGxhcyk6CisKIDIwMTItMDktMTEgIFJhcGhhZWwgS3Vi
byBkYSBDb3N0YSAgPHJha3Vjb0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtFRkxdIFJld3JpdGUg
dGhlIEVGTC1yZWxhdGVkIEZpbmQgbW9kdWxlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1NoYXJlYWJsZUJpdG1hcC5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1NoYXJlYWJs
ZUJpdG1hcC5oCmluZGV4IGU1ZDFhNmRjOTEyYTYxM2M3YzFhYjEyOGM1ZDVhYWVlYjAzY2ExMmEu
LmUxZWJjMmU0Y2QwZGM3OGIxMDJjZDZmN2M5YTkwOTU5NjViMTMxNjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9TaGFyZWFibGVCaXRtYXAuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvU2hhcmVhYmxlQml0bWFwLmgKQEAgLTYwLDYgKzYwLDcgQEAgbmFtZXNwYWNlIFdl
YktpdCB7CiBjbGFzcyBTaGFyZWFibGVCaXRtYXAgOiBwdWJsaWMgUmVmQ291bnRlZDxTaGFyZWFi
bGVCaXRtYXA+IHsKIHB1YmxpYzoKICAgICBlbnVtIEZsYWcgeworICAgICAgICBOb0ZsYWdzID0g
MCwKICAgICAgICAgU3VwcG9ydHNBbHBoYSA9IDEgPDwgMCwKICAgICB9OwogICAgIHR5cGVkZWYg
dW5zaWduZWQgRmxhZ3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRy
ZWVDb29yZGluYXRvci5jcHAKaW5kZXggMjQxMTA1MWY2NmEwMjk4NzEzNDZjZTYyYjYxODU3NTBj
Mjg1YWYzMS4uMGQyYmQ0ZDNmNGM3NTQzNjk4YWMwMWJkMzhiY2I5OTdhMGEwNWE0NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcApA
QCAtNzgsNiArNzgsNyBAQCBMYXllclRyZWVDb29yZGluYXRvcjo6TGF5ZXJUcmVlQ29vcmRpbmF0
b3IoV2ViUGFnZSogd2ViUGFnZSkKICAgICAsIG1fc2hvdWxkU3luY0ZyYW1lKGZhbHNlKQogICAg
ICwgbV9zaG91bGRTeW5jUm9vdExheWVyKHRydWUpCiAgICAgLCBtX2xheWVyRmx1c2hUaW1lcih0
aGlzLCAmTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmxheWVyRmx1c2hUaW1lckZpcmVkKQorICAgICwg
bV9yZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXIodGhpcywgJkxheWVyVHJlZUNvb3JkaW5hdG9y
OjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJGaXJlZCkKICAgICAsIG1fbGF5ZXJGbHVzaFNj
aGVkdWxpbmdFbmFibGVkKHRydWUpCiAgICAgLCBtX2ZvcmNlUmVwYWludEFzeW5jQ2FsbGJhY2tJ
RCgwKQogewpAQCAtNjM0LDggKzYzNSw0MiBAQCBQYXNzT3duUHRyPFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dD4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29udGVudFVwZGF0ZShjbwogCiAg
ICAgc3RhdGljIGNvbnN0IGludCBTY3JhdGNoQnVmZmVyRGltZW5zaW9uID0gMTAyNDsgLy8gU2hv
dWxkIGJlIGEgcG93ZXIgb2YgdHdvLgogICAgIG1fdXBkYXRlQXRsYXNlcy5hcHBlbmQoYWRvcHRQ
dHIobmV3IFVwZGF0ZUF0bGFzKFNjcmF0Y2hCdWZmZXJEaW1lbnNpb24sIGZsYWdzKSkpOworICAg
IHNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpOwogICAgIHJldHVybiBtX3VwZGF0ZUF0
bGFzZXMubGFzdCgpLT5iZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaGFuZGxlLCBzaXpl
LCBvZmZzZXQpOwogfQogCitjb25zdCBkb3VibGUgUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVy
SW50ZXJ2YWwgPSAwLjU7CisKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVs
ZWFzZUluYWN0aXZlQXRsYXNlcygpCit7CisgICAgaWYgKCFtX3JlbGVhc2VJbmFjdGl2ZUF0bGFz
ZXNUaW1lci5pc0FjdGl2ZSgpKQorICAgICAgICBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
ci5zdGFydFJlcGVhdGluZyhSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7Cit9
CisKK3ZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
ckZpcmVkKFRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiopCit7CisgICAgLy8gV2UgYWx3YXlz
IHdhbnQgdG8ga2VlcCBvbmUgYXRsYXMgZm9yIG5vbi1jb21wb3NpdGVkIGNvbnRlbnQuCisgICAg
T3duUHRyPFVwZGF0ZUF0bGFzPiBhdGxhc1RvS2VlcEFueXdheTsKKyAgICBib29sIGZvdW5kQWN0
aXZlQXRsYXNGb3JOb25Db21wb3NpdGVkQ29udGVudCA9IGZhbHNlOworICAgIGZvciAoaW50IGkg
PSBtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIC0gMTsgIGkgPj0gMDsgLS1pKSB7CisgICAgICAgIFVw
ZGF0ZUF0bGFzKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKKyAgICAgICAgaWYg
KCFhdGxhcy0+aXNJblVzZSgpKQorICAgICAgICAgICAgYXRsYXMtPmFkZFRpbWVJbmFjdGl2ZShS
ZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgIGJvb2wgdXNhYmxl
Rm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgPSBhdGxhcy0+ZmxhZ3MoKSA9PSBTaGFyZWFibGVCaXRt
YXA6Ok5vRmxhZ3M7CisgICAgICAgIGlmIChhdGxhcy0+aXNJbmFjdGl2ZSgpKSB7CisgICAgICAg
ICAgICBpZiAoIWZvdW5kQWN0aXZlQXRsYXNGb3JOb25Db21wb3NpdGVkQ29udGVudCAmJiAhYXRs
YXNUb0tlZXBBbnl3YXkgJiYgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQpCisgICAgICAg
ICAgICAgICAgYXRsYXNUb0tlZXBBbnl3YXkgPSBtX3VwZGF0ZUF0bGFzZXNbaV0ucmVsZWFzZSgp
OworICAgICAgICAgICAgbV91cGRhdGVBdGxhc2VzLnJlbW92ZShpKTsKKyAgICAgICAgfSBlbHNl
IGlmICh1c2FibGVGb3JOb25Db21wb3NpdGVkQ29udGVudCkKKyAgICAgICAgICAgIGZvdW5kQWN0
aXZlQXRsYXNGb3JOb25Db21wb3NpdGVkQ29udGVudCA9IHRydWU7CisgICAgfQorCisgICAgaWYg
KCFmb3VuZEFjdGl2ZUF0bGFzRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgJiYgYXRsYXNUb0tlZXBB
bnl3YXkpCisgICAgICAgIG1fdXBkYXRlQXRsYXNlcy5hcHBlbmQoYXRsYXNUb0tlZXBBbnl3YXku
cmVsZWFzZSgpKTsKKworICAgIGlmIChtX3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIDw9IDEpCisgICAg
ICAgIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyLnN0b3AoKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAjZW5kaWYgLy8gVVNFKENPT1JESU5BVEVEX0dSQVBISUNTKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmgKaW5kZXggYzhl
ZjU0YTY4NmFjOGFlMGYwODNlYzIxYWFmYzA0MzhiNGZjMzAwNS4uNzNiODRlNTI0MDIwMTU5NTA1
MDlhYTBmMGM1NWY1YmU3ZGMyMmI3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5oCkBAIC0xMTMsNiArMTEzLDExIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBkaWRQZXJmb3JtU2NoZWR1bGVkTGF5ZXJGbHVzaCgpOwogICAgIHZvaWQgc3luY0Rp
c3BsYXlTdGF0ZSgpOwogCisgICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpU
aW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKTsKKworICAgIHZvaWQgc2NoZWR1bGVSZWxlYXNl
SW5hY3RpdmVBdGxhc2VzKCk7CisgICAgdm9pZCByZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJG
aXJlZChXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVDb29yZGluYXRvcj4qKTsKKwogICAgIE93blB0
cjxXZWJDb3JlOjpHcmFwaGljc0xheWVyPiBtX3Jvb3RMYXllcjsKIAogICAgIC8vIFRoZSBsYXll
ciB3aGljaCBjb250YWlucyBhbGwgbm9uLWNvbXBvc2l0ZWQgY29udGVudC4KQEAgLTEzNyw4ICsx
NDIsOCBAQCBwcml2YXRlOgogICAgIExheWVyVHJlZUNvbnRleHQgbV9sYXllclRyZWVDb250ZXh0
OwogICAgIGJvb2wgbV9zaG91bGRTeW5jRnJhbWU7CiAgICAgYm9vbCBtX3Nob3VsZFN5bmNSb290
TGF5ZXI7Ci0gICAgdm9pZCBsYXllckZsdXNoVGltZXJGaXJlZChXZWJDb3JlOjpUaW1lcjxMYXll
clRyZWVDb29yZGluYXRvcj4qKTsKICAgICBXZWJDb3JlOjpUaW1lcjxMYXllclRyZWVDb29yZGlu
YXRvcj4gbV9sYXllckZsdXNoVGltZXI7CisgICAgV2ViQ29yZTo6VGltZXI8TGF5ZXJUcmVlQ29v
cmRpbmF0b3I+IG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyOwogICAgIGJvb2wgbV9sYXll
ckZsdXNoU2NoZWR1bGluZ0VuYWJsZWQ7CiAgICAgdWludDY0X3QgbV9mb3JjZVJlcGFpbnRBc3lu
Y0NhbGxiYWNrSUQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9VcGRhdGVBdGxhcy5jcHAKaW5kZXggMTBhMzVkODg1MzMyMTllYzFjMjQzZGIxM2U1MmZmNDI4
YmVkMTA1Zi4uMjc1MDA2MzVkMjc1ZTI4MzJkZTdhMTc5MjNjZTk4OTZiYjg4MzNhYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCkBA
IC0zMiw2ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBVcGRhdGVBdGxhczo6VXBkYXRl
QXRsYXMoaW50IGRpbWVuc2lvbiwgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFncykKICAgICA6
IG1fZmxhZ3MoZmxhZ3MpCisgICAgLCBtX2luYWN0aXZpdHlJblNlY29uZHMoMCkKIHsKICAgICBJ
bnRTaXplIHNpemUgPSBuZXh0UG93ZXJPZlR3byhJbnRTaXplKGRpbWVuc2lvbiwgZGltZW5zaW9u
KSk7CiAgICAgbV9zdXJmYWNlID0gU2hhcmVhYmxlU3VyZmFjZTo6Y3JlYXRlKHNpemUsIGZsYWdz
LCBTaGFyZWFibGVTdXJmYWNlOjpTdXBwb3J0c0dyYXBoaWNzU3VyZmFjZSk7CkBAIC00OCwxMSAr
NDksMTEgQEAgdm9pZCBVcGRhdGVBdGxhczo6YnVpbGRMYXlvdXRJZk5lZWRlZCgpCiB2b2lkIFVw
ZGF0ZUF0bGFzOjpkaWRTd2FwQnVmZmVycygpCiB7CiAgICAgbV9hcmVhQWxsb2NhdG9yLmNsZWFy
KCk7Ci0gICAgYnVpbGRMYXlvdXRJZk5lZWRlZCgpOwogfQogCiBQYXNzT3duUHRyPEdyYXBoaWNz
Q29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihTaGFy
ZWFibGVTdXJmYWNlOjpIYW5kbGUmIGhhbmRsZSwgY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgc2l6
ZSwgSW50UG9pbnQmIG9mZnNldCkKIHsKKyAgICBtX2luYWN0aXZpdHlJblNlY29uZHMgPSAwOwog
ICAgIGJ1aWxkTGF5b3V0SWZOZWVkZWQoKTsKICAgICBJbnRSZWN0IHJlY3QgPSBtX2FyZWFBbGxv
Y2F0b3ItPmFsbG9jYXRlKHNpemUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9VcGRhdGVBdGxhcy5oCmluZGV4IDc3NGNjZmRkM2VlOTdiMDE0NmM4ZGIzMTgyOWQ0
OTBkOWNhMTQ2NmMuLjAwZTg1MGI4MzFiZDcyZTk5YmJhNDExYTIzNzA4YWJhOTg0NDU0ODYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oCkBA
IC00NCw2ICs0NCwxOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRTd2FwQnVmZmVycygpOwogICAg
IFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MoKSBjb25zdCB7IHJldHVybiBtX2ZsYWdzOyB9
CiAKKyAgICB2b2lkIGFkZFRpbWVJbmFjdGl2ZShkb3VibGUgc2Vjb25kcykKKyAgICB7CisgICAg
ICAgIEFTU0VSVCghaXNJblVzZSgpKTsKKyAgICAgICAgbV9pbmFjdGl2aXR5SW5TZWNvbmRzICs9
IHNlY29uZHM7CisgICAgfQorICAgIGJvb2wgaXNJbmFjdGl2ZSgpIGNvbnN0CisgICAgeworICAg
ICAgICBjb25zdCBkb3VibGUgaW5hY3RpdmVTZWNvbmRzVG9sZXJhbmNlID0gMzsKKyAgICAgICAg
cmV0dXJuIG1faW5hY3Rpdml0eUluU2Vjb25kcyA+IGluYWN0aXZlU2Vjb25kc1RvbGVyYW5jZTsK
KyAgICB9CisgICAgYm9vbCBpc0luVXNlKCkgY29uc3QgeyByZXR1cm4gbV9hcmVhQWxsb2NhdG9y
OyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBidWlsZExheW91dElmTmVlZGVkKCk7CiAKQEAgLTUx
LDYgKzYzLDcgQEAgcHJpdmF0ZToKICAgICBPd25QdHI8R2VuZXJhbEFyZWFBbGxvY2F0b3I+IG1f
YXJlYUFsbG9jYXRvcjsKICAgICBTaGFyZWFibGVCaXRtYXA6OkZsYWdzIG1fZmxhZ3M7CiAgICAg
UmVmUHRyPFNoYXJlYWJsZVN1cmZhY2U+IG1fc3VyZmFjZTsKKyAgICBkb3VibGUgbV9pbmFjdGl2
aXR5SW5TZWNvbmRzOwogfTsKIAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164078</attachid>
            <date>2012-09-14 02:32:15 -0700</date>
            <delta_ts>2012-09-14 02:47:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120914113135.patch</filename>
            <type>text/plain</type>
            <size>4826</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYjY1OGQ5MTBlMTdlYmMy
MWQyYWU1NDVlM2EzZjFkZjgyM2NkNzk4MC4uNWQzM2IzOWRlMzQ5MWViMThhMmU2NDNlZDI1ZDVj
MDM3NWFjN2RhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbW1lbnRzIGFi
b3V0IHRoZSBtYWdpYyBjb25zdGFudHMgYXMgc3VnZ2VzdGVkIGJ5IERhcmluIEFkbGVyLgorICAg
ICAgICBBbHNvIHVuaWZpZWQgdGhlIG5hbWluZyBvZiB0aGUgY29uc3RhbnRzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmlzSW5hY3RpdmUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAg
KFVwZGF0ZUF0bGFzKToKKwogMjAxMi0wOS0xMyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgW1dLMl0gTGF5ZXJUcmVlQ29vcmRpbmF0b3Igc2hvdWxkIHJl
bGVhc2UgdW51c2VkIFVwZGF0ZWRBdGxhc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFw
aGljcy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKaW5kZXggMGQyYmQ0ZDNmNGM3NTQzNjk4YWMw
MWJkMzhiY2I5OTdhMGEwNWE0NC4uMTQ1YTlmNDU2NTY4ZTcxY2QxMmU4MWUwZDc2NDQxNTM1NTZk
Mjg4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3Jk
aW5hdG9yLmNwcApAQCAtNTEsNiArNTEsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCisvLyBPdXIgc2NyYXRjaCBidWZmZXJzIGJlY29tZSB1bnVz
ZWQgaWYgbm8gdXNlciBpbnRlcmFjdGlvbiBoYXBwZW5zIGZvciBhIHdoaWxlIHNvIHdlIGNhbiBy
ZWxlYXNlIHRoZW0uCisvLyBXZSB3YW50IHRvIGtlZXAgdGhlIG51bWJlciBvZiBhbGxvY2F0aW9u
cyBsb3cgc28gd2UgZG9uJ3QgY2hlY2sgdGhpcyB0b28gb2Z0ZW4uCitjb25zdCBkb3VibGUga1Jl
bGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckludGVydmFsID0gMC41OworCiBQYXNzUmVmUHRyPExh
eWVyVHJlZUNvb3JkaW5hdG9yPiBMYXllclRyZWVDb29yZGluYXRvcjo6Y3JlYXRlKFdlYlBhZ2Uq
IHdlYlBhZ2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBMYXllclRyZWVDb29yZGluYXRv
cih3ZWJQYWdlKSk7CkBAIC02MzksMTIgKzY0MywxMCBAQCBQYXNzT3duUHRyPFdlYkNvcmU6Okdy
YXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJlZ2luQ29udGVudFVwZGF0ZShj
bwogICAgIHJldHVybiBtX3VwZGF0ZUF0bGFzZXMubGFzdCgpLT5iZWdpblBhaW50aW5nT25BdmFp
bGFibGVCdWZmZXIoaGFuZGxlLCBzaXplLCBvZmZzZXQpOwogfQogCi1jb25zdCBkb3VibGUgUmVs
ZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwgPSAwLjU7Ci0KIHZvaWQgTGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcygpCiB7CiAgICAgaWYg
KCFtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5pc0FjdGl2ZSgpKQotICAgICAgICBtX3Jl
bGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5zdGFydFJlcGVhdGluZyhSZWxlYXNlSW5hY3RpdmVB
dGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1Rp
bWVyLnN0YXJ0UmVwZWF0aW5nKGtSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7
CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNU
aW1lckZpcmVkKFRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiopCkBAIC02NTUsNyArNjU3LDcg
QEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVy
RmlyZWQoVGltZXI8TGF5ZXJUcmVlQ29vcmQKICAgICBmb3IgKGludCBpID0gbV91cGRhdGVBdGxh
c2VzLnNpemUoKSAtIDE7ICBpID49IDA7IC0taSkgewogICAgICAgICBVcGRhdGVBdGxhcyogYXRs
YXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV0uZ2V0KCk7CiAgICAgICAgIGlmICghYXRsYXMtPmlzSW5V
c2UoKSkKLSAgICAgICAgICAgIGF0bGFzLT5hZGRUaW1lSW5hY3RpdmUoUmVsZWFzZUluYWN0aXZl
QXRsYXNlc1RpbWVySW50ZXJ2YWwpOworICAgICAgICAgICAgYXRsYXMtPmFkZFRpbWVJbmFjdGl2
ZShrUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwpOwogICAgICAgICBib29sIHVz
YWJsZUZvck5vbkNvbXBvc2l0ZWRDb250ZW50ID0gYXRsYXMtPmZsYWdzKCkgPT0gU2hhcmVhYmxl
Qml0bWFwOjpOb0ZsYWdzOwogICAgICAgICBpZiAoYXRsYXMtPmlzSW5hY3RpdmUoKSkgewogICAg
ICAgICAgICAgaWYgKCFmb3VuZEFjdGl2ZUF0bGFzRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgJiYg
IWF0bGFzVG9LZWVwQW55d2F5ICYmIHVzYWJsZUZvck5vbkNvbXBvc2l0ZWRDb250ZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKaW5k
ZXggMjc1MDA2MzVkMjc1ZTI4MzJkZTdhMTc5MjNjZTk4OTZiYjg4MzNhYS4uODA5Y2U2OTQ3NGE1
MTVlOGY1ZTM0MDllMjdiOTY5YTQ4NzdiOTdkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCkBAIC03Nyw1ICs3NywxMyBAQCBQYXNz
T3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWls
YWJsZUJ1ZmZlcihTaGFyZWFibAogICAgIHJldHVybiBncmFwaGljc0NvbnRleHQucmVsZWFzZSgp
OwogfQogCitib29sIFVwZGF0ZUF0bGFzOjppc0luYWN0aXZlKCkgY29uc3QKK3sKKyAgICAvLyBX
ZSB3YW50IHRvIGtlZXAgdGhlIG51bWJlciBvZiBhbGxvY2F0aW9ucyBsb3cgc28gd2UgY29uc2lk
ZXIgYW4gYXRsYXMgaW5hY3RpdmUgb25seSBpZiBpdAorICAgIC8vIHdhcyB1bnVzZWQgZm9yIGEg
cmVsYXRpdmVseSBsb25nIHRpbWUuCisgICAgY29uc3QgZG91YmxlIGtJbmFjdGl2aXR5VG9sZXJh
bmNlSW5TZWNvbmRzID0gMzsKKyAgICByZXR1cm4gbV9pbmFjdGl2aXR5SW5TZWNvbmRzID4ga0lu
YWN0aXZpdHlUb2xlcmFuY2VJblNlY29uZHM7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaAppbmRleCAwMGU4NTBiODMx
YmQ3MmU5OWJiYTQxMWEyMzcwOGFiYTk4NDQ1NDg2Li45NzE0Y2ZhMmRmMDUyMmMxZGJhNTViMzNj
ZjYwY2M0N2Y1NmZjYTU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvVXBkYXRlQXRsYXMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvVXBkYXRlQXRsYXMuaApAQCAtNDksMTEgKzQ5LDcgQEAgcHVibGljOgogICAgICAgICBBU1NF
UlQoIWlzSW5Vc2UoKSk7CiAgICAgICAgIG1faW5hY3Rpdml0eUluU2Vjb25kcyArPSBzZWNvbmRz
OwogICAgIH0KLSAgICBib29sIGlzSW5hY3RpdmUoKSBjb25zdAotICAgIHsKLSAgICAgICAgY29u
c3QgZG91YmxlIGluYWN0aXZlU2Vjb25kc1RvbGVyYW5jZSA9IDM7Ci0gICAgICAgIHJldHVybiBt
X2luYWN0aXZpdHlJblNlY29uZHMgPiBpbmFjdGl2ZVNlY29uZHNUb2xlcmFuY2U7Ci0gICAgfQor
ICAgIGJvb2wgaXNJbmFjdGl2ZSgpIGNvbnN0OwogICAgIGJvb2wgaXNJblVzZSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXJlYUFsbG9jYXRvcjsgfQogCiBwcml2YXRlOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164079</attachid>
            <date>2012-09-14 02:47:42 -0700</date>
            <delta_ts>2012-09-14 08:47:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120914114702.patch</filename>
            <type>text/plain</type>
            <size>5335</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVkYjgzMWRhNzEyMDY4
ZDAyYjEyZTQ2ZGI4OTEzMTYzNzI4NDJkOS4uMmM1ZmFlNDAzM2IwOTIzZDViNjg0MzI1YzkxYzAw
YTdjYWM4NzE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbW1lbnRzIGFi
b3V0IHRoZSBtYWdpYyBjb25zdGFudHMgYXMgc3VnZ2VzdGVkIGJ5IERhcmluIEFkbGVyLgorICAg
ICAgICBBbHNvIHVuaWZpZWQgdGhlIG5hbWluZyBvZiB0aGUgY29uc3RhbnRzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmlzSW5hY3RpdmUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAg
KFVwZGF0ZUF0bGFzKToKKwogMjAxMi0wOS0xNCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3ph
amtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgbWV0aG9kIHRvIGdldCB0aGUgbGlz
dCBvZiBhbGwgYXZhaWxhYmxlIGRpY3Rpb25hcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDBkMmJkNGQzZjRjNzU0MzY5
OGFjMDFiZDM4YmNiOTk3YTBhMDVhNDQuLmU2ODFlNWQ1Nzc3NDhhOTgyZThjZmJjMjZlNmIzN2Qy
ZjI0NDU5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5jcHAKQEAgLTUxLDYgKzUxLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorLy8gT3VyIHNjcmF0Y2ggYnVmZmVycyBiZWNvbWUg
dW51c2VkIGlmIG5vIHVzZXIgaW50ZXJhY3Rpb24gaGFwcGVucyBmb3IgYSB3aGlsZSBzbyB3ZSBj
YW4gcmVsZWFzZSB0aGVtLgorLy8gV2Ugd2FudCB0byBrZWVwIHRoZSBudW1iZXIgb2YgYWxsb2Nh
dGlvbnMgbG93IHNvIHdlIGRvbid0IGNoZWNrIHRoaXMgdG9vIG9mdGVuLgorc3RhdGljIGNvbnN0
IGRvdWJsZSBrUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwgPSAwLjU7CisKIFBh
c3NSZWZQdHI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVh
dGUoV2ViUGFnZSogd2ViUGFnZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IExheWVyVHJl
ZUNvb3JkaW5hdG9yKHdlYlBhZ2UpKTsKQEAgLTYzOSwxMiArNjQzLDEwIEBAIFBhc3NPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBMYXllclRyZWVDb29yZGluYXRvcjo6YmVnaW5Db250
ZW50VXBkYXRlKGNvCiAgICAgcmV0dXJuIG1fdXBkYXRlQXRsYXNlcy5sYXN0KCktPmJlZ2luUGFp
bnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihoYW5kbGUsIHNpemUsIG9mZnNldCk7CiB9CiAKLWNvbnN0
IGRvdWJsZSBSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCA9IDAuNTsKLQogdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxhc2VzKCkK
IHsKICAgICBpZiAoIW1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyLmlzQWN0aXZlKCkpCi0g
ICAgICAgIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKFJlbGVh
c2VJbmFjdGl2ZUF0bGFzZXNUaW1lckludGVydmFsKTsKKyAgICAgICAgbV9yZWxlYXNlSW5hY3Rp
dmVBdGxhc2VzVGltZXIuc3RhcnRSZXBlYXRpbmcoa1JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
ckludGVydmFsKTsKIH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0
aXZlQXRsYXNlc1RpbWVyRmlyZWQoVGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+KikKQEAgLTY1
NSw3ICs2NTcsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVB
dGxhc2VzVGltZXJGaXJlZChUaW1lcjxMYXllclRyZWVDb29yZAogICAgIGZvciAoaW50IGkgPSBt
X3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIC0gMTsgIGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIFVwZGF0
ZUF0bGFzKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKCFh
dGxhcy0+aXNJblVzZSgpKQotICAgICAgICAgICAgYXRsYXMtPmFkZFRpbWVJbmFjdGl2ZShSZWxl
YXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgICAgICBhdGxhcy0+YWRk
VGltZUluYWN0aXZlKGtSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CiAgICAg
ICAgIGJvb2wgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgPSBhdGxhcy0+ZmxhZ3MoKSA9
PSBTaGFyZWFibGVCaXRtYXA6Ok5vRmxhZ3M7CiAgICAgICAgIGlmIChhdGxhcy0+aXNJbmFjdGl2
ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIWZvdW5kQWN0aXZlQXRsYXNGb3JOb25Db21wb3NpdGVk
Q29udGVudCAmJiAhYXRsYXNUb0tlZXBBbnl3YXkgJiYgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENv
bnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBk
YXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0
bGFzLmNwcAppbmRleCAyNzUwMDYzNWQyNzVlMjgzMmRlN2ExNzkyM2NlOTg5NmJiODgzM2FhLi5i
Yzc0M2JjODMxZWY2MTY0MTgxZGFlYjk0MTllNTkxYTMyNjFiNWFiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKQEAgLTMwLDYgKzMw
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
Ly8gV2Ugd2FudCB0byBrZWVwIHRoZSBudW1iZXIgb2YgYWxsb2NhdGlvbnMgbG93IHNvIHdlIGNv
bnNpZGVyIGFuIGF0bGFzIGluYWN0aXZlIG9ubHkgaWYgaXQKKy8vIHdhcyB1bnVzZWQgZm9yIGEg
cmVsYXRpdmVseSBsb25nIHRpbWUuCitzdGF0aWMgY29uc3QgZG91YmxlIGtJbmFjdGl2aXR5VG9s
ZXJhbmNlSW5TZWNvbmRzID0gMzsKKwogVXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKGludCBkaW1l
bnNpb24sIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBtX2ZsYWdzKGZsYWdz
KQogICAgICwgbV9pbmFjdGl2aXR5SW5TZWNvbmRzKDApCkBAIC03Nyw1ICs4MSwxNiBAQCBQYXNz
T3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWls
YWJsZUJ1ZmZlcihTaGFyZWFibAogICAgIHJldHVybiBncmFwaGljc0NvbnRleHQucmVsZWFzZSgp
OwogfQogCit2b2lkIFVwZGF0ZUF0bGFzOjphZGRUaW1lSW5hY3RpdmUoZG91YmxlIHNlY29uZHMp
OworeworICAgIEFTU0VSVCghaXNJblVzZSgpKTsKKyAgICBtX2luYWN0aXZpdHlJblNlY29uZHMg
Kz0gc2Vjb25kczsKK30KKworYm9vbCBVcGRhdGVBdGxhczo6aXNJbmFjdGl2ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1faW5hY3Rpdml0eUluU2Vjb25kcyA+IGtJbmFjdGl2aXR5VG9sZXJhbmNl
SW5TZWNvbmRzOworfQorCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmgKaW5kZXggMDBlODUwYjgzMWJkNzJlOTliYmE0MTFhMjM3
MDhhYmE5ODQ0NTQ4Ni4uMjY5M2M0ZjViNWEyOTE4NjNjODE1NTdlYjFiZDRhYTk2ODRlOWY1NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFz
LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmgK
QEAgLTQ0LDE2ICs0NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFN3YXBCdWZmZXJzKCk7CiAg
ICAgU2hhcmVhYmxlQml0bWFwOjpGbGFncyBmbGFncygpIGNvbnN0IHsgcmV0dXJuIG1fZmxhZ3M7
IH0KIAotICAgIHZvaWQgYWRkVGltZUluYWN0aXZlKGRvdWJsZSBzZWNvbmRzKQotICAgIHsKLSAg
ICAgICAgQVNTRVJUKCFpc0luVXNlKCkpOwotICAgICAgICBtX2luYWN0aXZpdHlJblNlY29uZHMg
Kz0gc2Vjb25kczsKLSAgICB9Ci0gICAgYm9vbCBpc0luYWN0aXZlKCkgY29uc3QKLSAgICB7Ci0g
ICAgICAgIGNvbnN0IGRvdWJsZSBpbmFjdGl2ZVNlY29uZHNUb2xlcmFuY2UgPSAzOwotICAgICAg
ICByZXR1cm4gbV9pbmFjdGl2aXR5SW5TZWNvbmRzID4gaW5hY3RpdmVTZWNvbmRzVG9sZXJhbmNl
OwotICAgIH0KKyAgICB2b2lkIGFkZFRpbWVJbmFjdGl2ZShkb3VibGUgc2Vjb25kcyk7CisgICAg
Ym9vbCBpc0luYWN0aXZlKCkgY29uc3Q7CiAgICAgYm9vbCBpc0luVXNlKCkgY29uc3QgeyByZXR1
cm4gbV9hcmVhQWxsb2NhdG9yOyB9CiAKIHByaXZhdGU6Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164164</attachid>
            <date>2012-09-14 08:47:49 -0700</date>
            <delta_ts>2012-09-18 07:11:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120914174709.patch</filename>
            <type>text/plain</type>
            <size>5334</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVkYjgzMWRhNzEyMDY4
ZDAyYjEyZTQ2ZGI4OTEzMTYzNzI4NDJkOS4uMmM1ZmFlNDAzM2IwOTIzZDViNjg0MzI1YzkxYzAw
YTdjYWM4NzE0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDEyLTA5LTE0ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGNvbW1lbnRzIGFi
b3V0IHRoZSBtYWdpYyBjb25zdGFudHMgYXMgc3VnZ2VzdGVkIGJ5IERhcmluIEFkbGVyLgorICAg
ICAgICBBbHNvIHVuaWZpZWQgdGhlIG5hbWluZyBvZiB0aGUgY29uc3RhbnRzLgorCisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKFdlYktpdDo6TGF5ZXJUcmVl
Q29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRsYXNlcyk6CisgICAgICAgIChX
ZWJLaXQ6OkxheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJG
aXJlZCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmlzSW5hY3RpdmUpOgorICAgICAgICAoV2ViS2l0
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAg
KFVwZGF0ZUF0bGFzKToKKwogMjAxMi0wOS0xNCAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3ph
amtvd3NraUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBBZGQgbWV0aG9kIHRvIGdldCB0aGUgbGlz
dCBvZiBhbGwgYXZhaWxhYmxlIGRpY3Rpb25hcmllcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRp
bmF0b3IuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCmluZGV4IDBkMmJkNGQzZjRjNzU0MzY5
OGFjMDFiZDM4YmNiOTk3YTBhMDVhNDQuLmU2ODFlNWQ1Nzc3NDhhOTgyZThjZmJjMjZlNmIzN2Qy
ZjI0NDU5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9D
b29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVD
b29yZGluYXRvci5jcHAKQEAgLTUxLDYgKzUxLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorLy8gT3VyIHNjcmF0Y2ggYnVmZmVycyBiZWNvbWUg
dW51c2VkIGlmIG5vIHVzZXIgaW50ZXJhY3Rpb24gaGFwcGVucyBmb3IgYSB3aGlsZSBzbyB3ZSBj
YW4gcmVsZWFzZSB0aGVtLgorLy8gV2Ugd2FudCB0byBrZWVwIHRoZSBudW1iZXIgb2YgYWxsb2Nh
dGlvbnMgbG93IHNvIHdlIGRvbid0IGNoZWNrIHRoaXMgdG9vIG9mdGVuLgorc3RhdGljIGNvbnN0
IGRvdWJsZSBrUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwgPSAwLjU7CisKIFBh
c3NSZWZQdHI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+IExheWVyVHJlZUNvb3JkaW5hdG9yOjpjcmVh
dGUoV2ViUGFnZSogd2ViUGFnZSkKIHsKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IExheWVyVHJl
ZUNvb3JkaW5hdG9yKHdlYlBhZ2UpKTsKQEAgLTYzOSwxMiArNjQzLDEwIEBAIFBhc3NPd25QdHI8
V2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0PiBMYXllclRyZWVDb29yZGluYXRvcjo6YmVnaW5Db250
ZW50VXBkYXRlKGNvCiAgICAgcmV0dXJuIG1fdXBkYXRlQXRsYXNlcy5sYXN0KCktPmJlZ2luUGFp
bnRpbmdPbkF2YWlsYWJsZUJ1ZmZlcihoYW5kbGUsIHNpemUsIG9mZnNldCk7CiB9CiAKLWNvbnN0
IGRvdWJsZSBSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCA9IDAuNTsKLQogdm9p
ZCBMYXllclRyZWVDb29yZGluYXRvcjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxhc2VzKCkK
IHsKICAgICBpZiAoIW1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyLmlzQWN0aXZlKCkpCi0g
ICAgICAgIG1fcmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKFJlbGVh
c2VJbmFjdGl2ZUF0bGFzZXNUaW1lckludGVydmFsKTsKKyAgICAgICAgbV9yZWxlYXNlSW5hY3Rp
dmVBdGxhc2VzVGltZXIuc3RhcnRSZXBlYXRpbmcoa1JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1l
ckludGVydmFsKTsKIH0KIAogdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUluYWN0
aXZlQXRsYXNlc1RpbWVyRmlyZWQoVGltZXI8TGF5ZXJUcmVlQ29vcmRpbmF0b3I+KikKQEAgLTY1
NSw3ICs2NTcsNyBAQCB2b2lkIExheWVyVHJlZUNvb3JkaW5hdG9yOjpyZWxlYXNlSW5hY3RpdmVB
dGxhc2VzVGltZXJGaXJlZChUaW1lcjxMYXllclRyZWVDb29yZAogICAgIGZvciAoaW50IGkgPSBt
X3VwZGF0ZUF0bGFzZXMuc2l6ZSgpIC0gMTsgIGkgPj0gMDsgLS1pKSB7CiAgICAgICAgIFVwZGF0
ZUF0bGFzKiBhdGxhcyA9IG1fdXBkYXRlQXRsYXNlc1tpXS5nZXQoKTsKICAgICAgICAgaWYgKCFh
dGxhcy0+aXNJblVzZSgpKQotICAgICAgICAgICAgYXRsYXMtPmFkZFRpbWVJbmFjdGl2ZShSZWxl
YXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgICAgICBhdGxhcy0+YWRk
VGltZUluYWN0aXZlKGtSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CiAgICAg
ICAgIGJvb2wgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENvbnRlbnQgPSBhdGxhcy0+ZmxhZ3MoKSA9
PSBTaGFyZWFibGVCaXRtYXA6Ok5vRmxhZ3M7CiAgICAgICAgIGlmIChhdGxhcy0+aXNJbmFjdGl2
ZSgpKSB7CiAgICAgICAgICAgICBpZiAoIWZvdW5kQWN0aXZlQXRsYXNGb3JOb25Db21wb3NpdGVk
Q29udGVudCAmJiAhYXRsYXNUb0tlZXBBbnl3YXkgJiYgdXNhYmxlRm9yTm9uQ29tcG9zaXRlZENv
bnRlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBk
YXRlQXRsYXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0
bGFzLmNwcAppbmRleCAyNzUwMDYzNWQyNzVlMjgzMmRlN2ExNzkyM2NlOTg5NmJiODgzM2FhLi4w
OGE3ZTM2ZjE0OThlMzg2M2I2Y2Y1MjJmNjIzMjNhNDNiMzNmNGYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9VcGRhdGVBdGxhcy5jcHAKQEAgLTMwLDYgKzMw
LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAor
Ly8gV2Ugd2FudCB0byBrZWVwIHRoZSBudW1iZXIgb2YgYWxsb2NhdGlvbnMgbG93IHNvIHdlIGNv
bnNpZGVyIGFuIGF0bGFzIGluYWN0aXZlIG9ubHkgaWYgaXQKKy8vIHdhcyB1bnVzZWQgZm9yIGEg
cmVsYXRpdmVseSBsb25nIHRpbWUuCitzdGF0aWMgY29uc3QgZG91YmxlIGtJbmFjdGl2aXR5VG9s
ZXJhbmNlSW5TZWNvbmRzID0gMzsKKwogVXBkYXRlQXRsYXM6OlVwZGF0ZUF0bGFzKGludCBkaW1l
bnNpb24sIFNoYXJlYWJsZUJpdG1hcDo6RmxhZ3MgZmxhZ3MpCiAgICAgOiBtX2ZsYWdzKGZsYWdz
KQogICAgICwgbV9pbmFjdGl2aXR5SW5TZWNvbmRzKDApCkBAIC03Nyw1ICs4MSwxNiBAQCBQYXNz
T3duUHRyPEdyYXBoaWNzQ29udGV4dD4gVXBkYXRlQXRsYXM6OmJlZ2luUGFpbnRpbmdPbkF2YWls
YWJsZUJ1ZmZlcihTaGFyZWFibAogICAgIHJldHVybiBncmFwaGljc0NvbnRleHQucmVsZWFzZSgp
OwogfQogCit2b2lkIFVwZGF0ZUF0bGFzOjphZGRUaW1lSW5hY3RpdmUoZG91YmxlIHNlY29uZHMp
Cit7CisgICAgQVNTRVJUKCFpc0luVXNlKCkpOworICAgIG1faW5hY3Rpdml0eUluU2Vjb25kcyAr
PSBzZWNvbmRzOworfQorCitib29sIFVwZGF0ZUF0bGFzOjppc0luYWN0aXZlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9pbmFjdGl2aXR5SW5TZWNvbmRzID4ga0luYWN0aXZpdHlUb2xlcmFuY2VJ
blNlY29uZHM7Cit9CisKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlBhZ2UvVXBkYXRlQXRsYXMuaAppbmRleCAwMGU4NTBiODMxYmQ3MmU5OWJiYTQxMWEyMzcw
OGFiYTk4NDQ1NDg2Li4yNjkzYzRmNWI1YTI5MTg2M2M4MTU1N2ViMWJkNGFhOTY4NGU5ZjU3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaApA
QCAtNDQsMTYgKzQ0LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3dhcEJ1ZmZlcnMoKTsKICAg
ICBTaGFyZWFibGVCaXRtYXA6OkZsYWdzIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsg
fQogCi0gICAgdm9pZCBhZGRUaW1lSW5hY3RpdmUoZG91YmxlIHNlY29uZHMpCi0gICAgewotICAg
ICAgICBBU1NFUlQoIWlzSW5Vc2UoKSk7Ci0gICAgICAgIG1faW5hY3Rpdml0eUluU2Vjb25kcyAr
PSBzZWNvbmRzOwotICAgIH0KLSAgICBib29sIGlzSW5hY3RpdmUoKSBjb25zdAotICAgIHsKLSAg
ICAgICAgY29uc3QgZG91YmxlIGluYWN0aXZlU2Vjb25kc1RvbGVyYW5jZSA9IDM7Ci0gICAgICAg
IHJldHVybiBtX2luYWN0aXZpdHlJblNlY29uZHMgPiBpbmFjdGl2ZVNlY29uZHNUb2xlcmFuY2U7
Ci0gICAgfQorICAgIHZvaWQgYWRkVGltZUluYWN0aXZlKGRvdWJsZSBzZWNvbmRzKTsKKyAgICBi
b29sIGlzSW5hY3RpdmUoKSBjb25zdDsKICAgICBib29sIGlzSW5Vc2UoKSBjb25zdCB7IHJldHVy
biBtX2FyZWFBbGxvY2F0b3I7IH0KIAogcHJpdmF0ZToK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164553</attachid>
            <date>2012-09-18 07:12:01 -0700</date>
            <delta_ts>2012-10-25 07:48:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-95072-20120918161111.patch</filename>
            <type>text/plain</type>
            <size>4269</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NzYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2YxY2RlNTI4MWY0ZmM3
MmJkYzJmZDU1MmQ2NGM2MTAwOTlkOWJjZi4uZTdhMjAzYmVjMDcwNTNmNTc1NTM0ZDg4ZGU1ODY0
OTU0N2EwYmQxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEyLTA5LTE4ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KKworICAgICAgICBbV0syXSBMYXllclRy
ZWVDb29yZGluYXRvciBzaG91bGQgcmVsZWFzZSB1bnVzZWQgVXBkYXRlZEF0bGFzZXMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk1MDcyCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JlZCB0byBn
aXZlIGEgYmV0dGVyIHVuZGVyc3RhbmRpbmcgZm9yIHRoZSByZWFkZXIgYWJvdXQKKyAgICAgICAg
dGhlIGNvbnN0YW50cyBhcyBzdWdnZXN0ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGljcy9MYXllclRyZWVDb29yZGluYXRv
ci5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAoV2ViS2l0OjpMYXllclRyZWVDb29y
ZGluYXRvcjo6c2NoZWR1bGVSZWxlYXNlSW5hY3RpdmVBdGxhc2VzKToKKyAgICAgICAgKFdlYktp
dDo6TGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVk
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaDoKKyAgICAgICAg
KFVwZGF0ZUF0bGFzKToKKyAgICAgICAgKFdlYktpdDo6VXBkYXRlQXRsYXM6OmlzSW5hY3RpdmUp
OgorCiAyMDEyLTA5LTE3ICBUb3IgQXJuZSBWZXN0YsO4ICA8dG9yLmFybmUudmVzdGJvQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdIFJlbW92ZSAndXNpbmcgbmFtZXNwYWNlIFdlYkNvcmUnIGZy
b20gaGVhZGVyIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJlZUNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9Db29yZGluYXRlZEdyYXBoaWNzL0xheWVyVHJl
ZUNvb3JkaW5hdG9yLmNwcAppbmRleCAwZDJiZDRkM2Y0Yzc1NDM2OThhYzAxYmQzOGJjYjk5N2Ew
YTA1YTQ0Li4zOWUzYzJmMDNhMzM4MzllM2ZiNjZiNjQzMTJjMDE3MGNlYmY3NWQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9MYXllclRyZWVDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL0Nvb3JkaW5hdGVkR3JhcGhpY3MvTGF5ZXJUcmVlQ29vcmRpbmF0b3IuY3BwCkBA
IC01MSw2ICs1MSw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorc3RhdGljIGNvbnN0IGRvdWJsZSBrUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVy
SW50ZXJ2YWwgPSBVcGRhdGVBdGxhczo6a0luYWN0aXZpdHlUb2xlcmFuY2VJblNlY29uZHMgLyA2
OworCiBQYXNzUmVmUHRyPExheWVyVHJlZUNvb3JkaW5hdG9yPiBMYXllclRyZWVDb29yZGluYXRv
cjo6Y3JlYXRlKFdlYlBhZ2UqIHdlYlBhZ2UpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBM
YXllclRyZWVDb29yZGluYXRvcih3ZWJQYWdlKSk7CkBAIC02MzksMTIgKzY0MSwxMCBAQCBQYXNz
T3duUHRyPFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dD4gTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OmJl
Z2luQ29udGVudFVwZGF0ZShjbwogICAgIHJldHVybiBtX3VwZGF0ZUF0bGFzZXMubGFzdCgpLT5i
ZWdpblBhaW50aW5nT25BdmFpbGFibGVCdWZmZXIoaGFuZGxlLCBzaXplLCBvZmZzZXQpOwogfQog
Ci1jb25zdCBkb3VibGUgUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwgPSAwLjU7
Ci0KIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnNjaGVkdWxlUmVsZWFzZUluYWN0aXZlQXRs
YXNlcygpCiB7CiAgICAgaWYgKCFtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5pc0FjdGl2
ZSgpKQotICAgICAgICBtX3JlbGVhc2VJbmFjdGl2ZUF0bGFzZXNUaW1lci5zdGFydFJlcGVhdGlu
ZyhSZWxlYXNlSW5hY3RpdmVBdGxhc2VzVGltZXJJbnRlcnZhbCk7CisgICAgICAgIG1fcmVsZWFz
ZUluYWN0aXZlQXRsYXNlc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKGtSZWxlYXNlSW5hY3RpdmVBdGxh
c2VzVGltZXJJbnRlcnZhbCk7CiB9CiAKIHZvaWQgTGF5ZXJUcmVlQ29vcmRpbmF0b3I6OnJlbGVh
c2VJbmFjdGl2ZUF0bGFzZXNUaW1lckZpcmVkKFRpbWVyPExheWVyVHJlZUNvb3JkaW5hdG9yPiop
CkBAIC02NTUsNyArNjU1LDcgQEAgdm9pZCBMYXllclRyZWVDb29yZGluYXRvcjo6cmVsZWFzZUlu
YWN0aXZlQXRsYXNlc1RpbWVyRmlyZWQoVGltZXI8TGF5ZXJUcmVlQ29vcmQKICAgICBmb3IgKGlu
dCBpID0gbV91cGRhdGVBdGxhc2VzLnNpemUoKSAtIDE7ICBpID49IDA7IC0taSkgewogICAgICAg
ICBVcGRhdGVBdGxhcyogYXRsYXMgPSBtX3VwZGF0ZUF0bGFzZXNbaV0uZ2V0KCk7CiAgICAgICAg
IGlmICghYXRsYXMtPmlzSW5Vc2UoKSkKLSAgICAgICAgICAgIGF0bGFzLT5hZGRUaW1lSW5hY3Rp
dmUoUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwpOworICAgICAgICAgICAgYXRs
YXMtPmFkZFRpbWVJbmFjdGl2ZShrUmVsZWFzZUluYWN0aXZlQXRsYXNlc1RpbWVySW50ZXJ2YWwp
OwogICAgICAgICBib29sIHVzYWJsZUZvck5vbkNvbXBvc2l0ZWRDb250ZW50ID0gYXRsYXMtPmZs
YWdzKCkgPT0gU2hhcmVhYmxlQml0bWFwOjpOb0ZsYWdzOwogICAgICAgICBpZiAoYXRsYXMtPmlz
SW5hY3RpdmUoKSkgewogICAgICAgICAgICAgaWYgKCFmb3VuZEFjdGl2ZUF0bGFzRm9yTm9uQ29t
cG9zaXRlZENvbnRlbnQgJiYgIWF0bGFzVG9LZWVwQW55d2F5ICYmIHVzYWJsZUZvck5vbkNvbXBv
c2l0ZWRDb250ZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1VwZGF0ZUF0bGFzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBk
YXRlQXRsYXMuaAppbmRleCAwMGU4NTBiODMxYmQ3MmU5OWJiYTQxMWEyMzcwOGFiYTk4NDQ1NDg2
Li4yMDc4ZTlkODIzZmY1OTk2NDZiZTBjMGZhYTJlOTE4NWE1Mzg0MzAwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvVXBkYXRlQXRsYXMuaApAQCAtNDQsNiArNDQs
MTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU3dhcEJ1ZmZlcnMoKTsKICAgICBTaGFyZWFibGVC
aXRtYXA6OkZsYWdzIGZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9mbGFnczsgfQogCisgICAgLy8g
QXRsYXNlcyBhcmUgdXNlZCBhcyBzY3JhdGNoIGJ1ZmZlcnMuIFdlIHdhbnQgdG8ga2VlcCB0aGVt
IGFsaXZlIHVudGlsIHRoZSB1c2VyIGhhcyBmaW5pc2hlZCBpbnRlcmFjdGluZyB3aXRoIHRoZSBw
YWdlLgorICAgIC8vIDMgc2Vjb25kcyBzb3VuZHMgc2hvdWxkIGJlIGEgcHJvcGVyIGxpbWl0IHRv
IGdyb3VwIHN1Y2Nlc3NpdmUgdXNlciBpbnRlcmFjdGlvbnMgdG9nZXRoZXIuCisgICAgc3RhdGlj
IGNvbnN0IGRvdWJsZSBrSW5hY3Rpdml0eVRvbGVyYW5jZUluU2Vjb25kcyA9IDM7CisKICAgICB2
b2lkIGFkZFRpbWVJbmFjdGl2ZShkb3VibGUgc2Vjb25kcykKICAgICB7CiAgICAgICAgIEFTU0VS
VCghaXNJblVzZSgpKTsKQEAgLTUxLDggKzU1LDcgQEAgcHVibGljOgogICAgIH0KICAgICBib29s
IGlzSW5hY3RpdmUoKSBjb25zdAogICAgIHsKLSAgICAgICAgY29uc3QgZG91YmxlIGluYWN0aXZl
U2Vjb25kc1RvbGVyYW5jZSA9IDM7Ci0gICAgICAgIHJldHVybiBtX2luYWN0aXZpdHlJblNlY29u
ZHMgPiBpbmFjdGl2ZVNlY29uZHNUb2xlcmFuY2U7CisgICAgICAgIHJldHVybiBtX2luYWN0aXZp
dHlJblNlY29uZHMgPiBrSW5hY3Rpdml0eVRvbGVyYW5jZUluU2Vjb25kczsKICAgICB9CiAgICAg
Ym9vbCBpc0luVXNlKCkgY29uc3QgeyByZXR1cm4gbV9hcmVhQWxsb2NhdG9yOyB9CiAK
</data>
<flag name="review"
          id="176343"
          type_id="1"
          status="-"
          setter="jturcotte"
    />
          </attachment>
      

    </bug>

</bugzilla>