<?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>94756</bug_id>
          
          <creation_ts>2012-08-22 16:33:48 -0700</creation_ts>
          <short_desc>Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat</short_desc>
          <delta_ts>2012-10-26 18:20:52 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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="Nico Weber">thakis</reporter>
          <assigned_to name="Nico Weber">thakis</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>d-r</cc>
    
    <cc>eric</cc>
    
    <cc>fmalita</cc>
    
    <cc>hans</cc>
    
    <cc>inferno</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>krit</cc>
    
    <cc>pdr</cc>
    
    <cc>peter+ews</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>schenney</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>702508</commentid>
    <comment_count>0</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-08-22 16:33:48 -0700</bug_when>
    <thetext>Fix a operator ordering bug in SVGSMILElement::calculateAnimationPercentAndRepeat</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>702512</commentid>
    <comment_count>1</comment_count>
      <attachid>160032</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-08-22 16:35:53 -0700</bug_when>
    <thetext>Created attachment 160032
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703164</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-08-23 11:08:00 -0700</bug_when>
    <thetext>Can we test this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>703186</commentid>
    <comment_count>3</comment_count>
      <attachid>160032</attachid>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-08-23 11:33:05 -0700</bug_when>
    <thetext>Comment on attachment 160032
Patch

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

&gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:969
&gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());

I would propose avoiding the fmod entirely. It apparently is being used to determine if the fractional amount of repeatingDuration.value() / simpleDuration.value() is zero. Instead:
float repeatFloat = repeatingDuration.value() / simpleDuration.value();
repeat = static_cast&lt;unsigned&gt;(repeatFloat);
if (!(repeatFloat - repeat))
    repeat--;

No idea how to test it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705650</commentid>
    <comment_count>4</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-08-27 14:04:55 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 160032 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=160032&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:969
&gt; &gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());
&gt; 
&gt; I would propose avoiding the fmod entirely. It apparently is being used to determine if the fractional amount of repeatingDuration.value() / simpleDuration.value() is zero. Instead:
&gt; float repeatFloat = repeatingDuration.value() / simpleDuration.value();
&gt; repeat = static_cast&lt;unsigned&gt;(repeatFloat);
&gt; if (!(repeatFloat - repeat))
&gt;     repeat--;

How is that simpler than what&apos;s currently there?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705654</commentid>
    <comment_count>5</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-08-27 14:10:15 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (In reply to comment #3)
&gt; &gt; (From update of attachment 160032 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=160032&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:969
&gt; &gt; &gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());
&gt; &gt; 
&gt; &gt; I would propose avoiding the fmod entirely. It apparently is being used to determine if the fractional amount of repeatingDuration.value() / simpleDuration.value() is zero. Instead:
&gt; &gt; float repeatFloat = repeatingDuration.value() / simpleDuration.value();
&gt; &gt; repeat = static_cast&lt;unsigned&gt;(repeatFloat);
&gt; &gt; if (!(repeatFloat - repeat))
&gt; &gt;     repeat--;
&gt; 
&gt; How is that simpler than what&apos;s currently there?

It&apos;s not really simpler, but it does less work, I think, and does not have 
numerical accuracy issues. Actually, this is probably better:

float repeatFloat = repeatingDuration.value() / simpleDuration.value();
repeat = static_cast&lt;unsigned&gt;(repeatFloat);
if (repeatFloat == repeat)
    repeat--;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>705667</commentid>
    <comment_count>6</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-08-27 14:19:23 -0700</bug_when>
    <thetext>&gt; &gt; How is that simpler than what&apos;s currently there?
&gt; 
&gt; It&apos;s not really simpler, but it does less work, I think, and does not have 
&gt; numerical accuracy issues. Actually, this is probably better:
&gt; 
&gt; float repeatFloat = repeatingDuration.value() / simpleDuration.value();
&gt; repeat = static_cast&lt;unsigned&gt;(repeatFloat);
&gt; if (repeatFloat == repeat)
&gt;     repeat--;

I don&apos;t think this is performance-sensitive code. I would assume that fmod is at least as smart as any reimplementation we attempt to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714485</commentid>
    <comment_count>7</comment_count>
    <who name="Hans Wennborg">hans</who>
    <bug_when>2012-09-07 07:06:52 -0700</bug_when>
    <thetext>*** Bug 96093 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714603</commentid>
    <comment_count>8</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-07 09:35:56 -0700</bug_when>
    <thetext>This is blocking our next clang roll. Can this go in? The alternative is to disable this new warning for webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>714614</commentid>
    <comment_count>9</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-09-07 09:41:28 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; This is blocking our next clang roll. Can this go in? The alternative is to disable this new warning for webkit.

I think it&apos;s fine to go in, but you&apos;ll have to find an r+ somewhere else.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715401</commentid>
    <comment_count>10</comment_count>
      <attachid>160032</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-08 19:46:53 -0700</bug_when>
    <thetext>Comment on attachment 160032
Patch

I would be in favor of doing it better from the beginning.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715455</commentid>
    <comment_count>11</comment_count>
      <attachid>162986</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-09 01:46:05 -0700</bug_when>
    <thetext>Created attachment 162986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715456</commentid>
    <comment_count>12</comment_count>
      <attachid>162986</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-09 01:52:34 -0700</bug_when>
    <thetext>Comment on attachment 162986
Patch

Attachment 162986 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/13794495</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715457</commentid>
    <comment_count>13</comment_count>
      <attachid>162986</attachid>
    <who name="Peter Beverloo (cr-android ews)">peter+ews</who>
    <bug_when>2012-09-09 01:54:11 -0700</bug_when>
    <thetext>Comment on attachment 162986
Patch

Attachment 162986 did not pass cr-android-ews (chromium-android):
Output: http://queues.webkit.org/results/13788812</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715458</commentid>
    <comment_count>14</comment_count>
      <attachid>162986</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-09-09 01:54:26 -0700</bug_when>
    <thetext>Comment on attachment 162986
Patch

Attachment 162986 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/13794496</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715460</commentid>
    <comment_count>15</comment_count>
      <attachid>162986</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-09 02:00:44 -0700</bug_when>
    <thetext>Comment on attachment 162986
Patch

Attachment 162986 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13797410</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715465</commentid>
    <comment_count>16</comment_count>
      <attachid>162988</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-09 02:59:28 -0700</bug_when>
    <thetext>Created attachment 162988
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715494</commentid>
    <comment_count>17</comment_count>
      <attachid>162988</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-09 07:04:59 -0700</bug_when>
    <thetext>Comment on attachment 162988
Patch

Well, wait. Instead of fixing the bug you surround it with a flag? Don&apos;t think that this is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715658</commentid>
    <comment_count>18</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-09 18:38:16 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (From update of attachment 162988 [details])
&gt; Well, wait. Instead of fixing the bug you surround it with a flag? Don&apos;t think that this is a good idea.

The fix was in the first patch, which was rejected as far as I understand due to lack of test (which is reasonable).

So, here&apos;s the background: We update clang in chromium every 1-2 weeks. Every now and then, clang has a new warning, and we need to make sure all our code compiles with that new warning (we build with -Werror). If the warning is noisy, we just disable it globally, but since the clang people have a very reasonable warning policy, this happens rarely.

This specific warning warns when someone writes `if (f(a, b, c &gt; 0))` if they meant to write `if (f(a, b, c) &gt; 0)` (see http://permalink.gmane.org/gmane.comp.compilers.clang.scm/55995 for more information if you&apos;re curious). This is exactly what happened here, see the ChangeLog entry in the first patch for more information, where I looked at the history of this file.

I had hoped that the original author of this code (anttik) would chime in. Maybe he&apos;s on vacation, or busy with other things.

I&apos;m not familiar with the svg code, and I currently don&apos;t have time to work on a test. (Someone familiar with the svg code mentioned earlier on this bug that it&apos;s not obvious how to test this.) I do want to update clang in chromium though, so I need some way forward. I could disable this new warning for all of chrome, but then it won&apos;t catch new bugs that it could prevent. I could disable it just for webkit&apos;s svg gyp target, but then it won&apos;t prevent new bugs it could&apos;ve prevented in the svg code (also, if someone who didn&apos;t use gyp used a new clang, they&apos;d get this warning, and they might even fix this the wrong way -- see e.g. bug 96093). So suppressing the warning just locally in this file seems like the best way forward to me.

Let me know if you still disagree, then I&apos;ll disable it somewhere further up the stack.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716712</commentid>
    <comment_count>19</comment_count>
      <attachid>162988</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-10 17:16:41 -0700</bug_when>
    <thetext>Comment on attachment 162988
Patch

(In reply to comment #18)
&gt; Let me know if you still disagree, then I&apos;ll disable it somewhere further up the stack.

I just asked you to address the code suggestions from stephen. Adding ifdef&apos;s is not a good solution at all, especially  when you can easily fix it. r- because of ifdef instead of fixing the problem.

It is ok not to add a test, since it is build system related IMO.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716754</commentid>
    <comment_count>20</comment_count>
      <attachid>163260</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-10 18:24:16 -0700</bug_when>
    <thetext>Created attachment 163260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716758</commentid>
    <comment_count>21</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-10 18:25:48 -0700</bug_when>
    <thetext>Back to patch set 1 then. As mentioned above, I don&apos;t think Stephen&apos;s suggestion make the code better.

I&apos;m happy to do the changes he&apos;s asking for in a follow-up patch if he really likes to see them. In this patch, I just want to fix a compiler warning and put the code in the form the original author intended. (See the ChangeLog entry.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716829</commentid>
    <comment_count>22</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-09-10 21:46:49 -0700</bug_when>
    <thetext>Our project goal is to clean up code that we touch. The second code suggestion from Stephen looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716830</commentid>
    <comment_count>23</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-09-10 21:48:03 -0700</bug_when>
    <thetext>It looks worse to me. I&apos;m happy to discuss this on irc (thakis).

I&apos;m about to globally disable the warning instead: http://codereview.chromium.org/10917180/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716870</commentid>
    <comment_count>24</comment_count>
      <attachid>163260</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-09-10 23:03:38 -0700</bug_when>
    <thetext>Comment on attachment 163260
Patch

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

&gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:969
&gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());

Due to this line it&apos;s fairly safe to assume simpleDuration.value() is not zero...

&gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:-970
&gt; -        if (fmod(repeatingDuration.value(), !simpleDuration.value()))

so !simpleDuration.value() simplifies to false which means this can be simplified to:

if (fmodf(repeatingDuration.value(), 0))

which according to man fmodf raises a floating point exception and returns NaN

so I&apos;m guessing this code is somehow not reachable at all in practice. perhaps we can just nuke this whole if</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717142</commentid>
    <comment_count>25</comment_count>
    <who name="Stephen Chenney">schenney</who>
    <bug_when>2012-09-11 07:31:05 -0700</bug_when>
    <thetext>(In reply to comment #24)
&gt; (From update of attachment 163260 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=163260&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:969
&gt; &gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());
&gt; 
&gt; Due to this line it&apos;s fairly safe to assume simpleDuration.value() is not zero...

simpleDuration.value() is not zero. That is checked for at the beginning of the method.

&gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:-970
&gt; &gt; -        if (fmod(repeatingDuration.value(), !simpleDuration.value()))
&gt; 
&gt; so !simpleDuration.value() simplifies to false which means this can be simplified to:
&gt; 
&gt; if (fmodf(repeatingDuration.value(), 0))
&gt; 
&gt; which according to man fmodf raises a floating point exception and returns NaN
&gt; 
&gt; so I&apos;m guessing this code is somehow not reachable at all in practice. perhaps we can just nuke this whole if

I believe that the code is intended to catch the case where the repeatingDuration is an exact multiple of the simpleDuration, in which case we need to add one to the repeat count. It might be possible to hit it with a test - I can try in my quiet moments today.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752521</commentid>
    <comment_count>26</comment_count>
      <attachid>171036</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-26 15:59:11 -0700</bug_when>
    <thetext>Created attachment 171036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752523</commentid>
    <comment_count>27</comment_count>
      <attachid>171036</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-10-26 16:02:41 -0700</bug_when>
    <thetext>Comment on attachment 171036
Patch

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

&gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:1006
&gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());
&gt; -        if (fmod(repeatingDuration.value(), !simpleDuration.value()))
&gt; -            repeat--;
&gt; +        repeat--;

fold into the line above?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752526</commentid>
    <comment_count>28</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-26 16:05:15 -0700</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 171036 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=171036&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/svg/animation/SVGSMILElement.cpp:1006
&gt; &gt;          repeat = static_cast&lt;unsigned&gt;(repeatingDuration.value() / simpleDuration.value());
&gt; &gt; -        if (fmod(repeatingDuration.value(), !simpleDuration.value()))
&gt; &gt; -            repeat--;
&gt; &gt; +        repeat--;
&gt; 
&gt; fold into the line above?

Done. (Didn&apos;t do it for somewhat nicer blame output, but meh)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752528</commentid>
    <comment_count>29</comment_count>
      <attachid>171037</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-26 16:05:29 -0700</bug_when>
    <thetext>Created attachment 171037
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752544</commentid>
    <comment_count>30</comment_count>
      <attachid>171037</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-26 16:15:45 -0700</bug_when>
    <thetext>Comment on attachment 171037
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752546</commentid>
    <comment_count>31</comment_count>
      <attachid>171037</attachid>
    <who name="Nico Weber">thakis</who>
    <bug_when>2012-10-26 16:18:24 -0700</bug_when>
    <thetext>Comment on attachment 171037
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752634</commentid>
    <comment_count>32</comment_count>
      <attachid>171037</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 18:20:45 -0700</bug_when>
    <thetext>Comment on attachment 171037
Patch

Clearing flags on attachment: 171037

Committed r132715: &lt;http://trac.webkit.org/changeset/132715&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752636</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-26 18:20:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>160032</attachid>
            <date>2012-08-22 16:35:53 -0700</date>
            <delta_ts>2012-09-09 01:46:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20120822163551.patch</filename>
            <type>text/plain</type>
            <size>2285</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI2MjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzZDY3MTAzYzJhZDkx
ZWMxMTQ1M2IxOWRiM2QyOGJhYWFiMWZiZi4uOGQzZmJhM2MwN2ExNmFkOWNhOWVjMDU5OGFmZDhj
YTVmNTk3M2ZhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYSBvcGVyYXRvciBv
cmRlcmluZyBidWcgaW4gU1ZHU01JTEVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRB
bmRSZXBlYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBjb2RlIHdhcyBvcmlnaW5hbGx5IGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
YnJvd3Nlci90cnVuay9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwP3Jl
dj0zMTgwMSBhcworCisgICAgICAgICAgaWYgKGZtb2QocmVwZWF0aW5nRHVyYXRpb24udmFsdWUo
KSwgc2ltcGxlRHVyYXRpb24udmFsdWUoKSA9PSAwLikpCisKKyAgICAgICAgSXQgbG9va3MgbGlr
ZSB0aGF0IHdhcyBzdXBwb3NlZCB0byByZWFkIGBpZiAoZm1vZCguLi4pID09IDApYCwgYnV0IHRo
ZSA9PSBzbGlwcGVkIGludG8gdGhlIGZtb2QgY2FsbC4KKworICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC83NDc4MiBtaW5kbGVzc2x5IHJlZmFjdG9yZWQgdGhpcyB0byB0
aGUgY3VycmVudCBmb3JtLiBJbnN0ZWFkLAorICAgICAgICBkbyB3aGF0IHRoZSBjb2RlIHByb2Jh
Ymx5IGludGVuZGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KKworICAgICAgICBGb3VuZCBieSAtV2lt
cGxpY2l0LWNvbnZlcnNpb24tZmxvYXRpbmctcG9pbnQtdG8tYm9vbCwgYSB3YXJuaW5nIGN1cnJl
bnRseSBiZWluZyBwcm90b3R5cGVkIGluIGNsYW5nLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6
Y2FsY3VsYXRlQW5pbWF0aW9uUGVyY2VudEFuZFJlcGVhdCk6CisKIDIwMTItMDgtMjIgIEFuZHJl
eSBBZGFpa2luICA8YWFuZHJleUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3Rv
cjogW1dlYkdMXSBHZW5lcmljIGZyYW1ld29yayBkcmFmdCBmb3IgdHJhY2tpbmcgV2ViR0wgcmVz
b3VyY2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQu
Y3BwCmluZGV4IDQzZTg0YjFiMzViZDA1ZWM3MjFmMjM4Zjc1NTZlNzhlMTgwZTk4MzcuLjkwMTMy
ZTY2M2UwNDI3NDFhMDA2MzQ3ZThjYjBkMzE1MjljMTY2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC05NjcsNyArOTY3LDcgQEAg
ZmxvYXQgU1ZHU01JTEVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQo
U01JTFRpbWUgZWxhcHNlZCwgdW5zaWcKICAgICBTTUlMVGltZSByZXBlYXRpbmdEdXJhdGlvbiA9
IHRoaXMtPnJlcGVhdGluZ0R1cmF0aW9uKCk7CiAgICAgaWYgKGVsYXBzZWQgPj0gbV9pbnRlcnZh
bEVuZCB8fCBhY3RpdmVUaW1lID4gcmVwZWF0aW5nRHVyYXRpb24pIHsKICAgICAgICAgcmVwZWF0
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlcGVhdGluZ0R1cmF0aW9uLnZhbHVlKCkgLyBzaW1w
bGVEdXJhdGlvbi52YWx1ZSgpKTsKLSAgICAgICAgaWYgKGZtb2QocmVwZWF0aW5nRHVyYXRpb24u
dmFsdWUoKSwgIXNpbXBsZUR1cmF0aW9uLnZhbHVlKCkpKQorICAgICAgICBpZiAoIWZtb2QocmVw
ZWF0aW5nRHVyYXRpb24udmFsdWUoKSwgc2ltcGxlRHVyYXRpb24udmFsdWUoKSkpCiAgICAgICAg
ICAgICByZXBlYXQtLTsKIAogICAgICAgICBkb3VibGUgcGVyY2VudCA9IChtX2ludGVydmFsRW5k
LnZhbHVlKCkgLSBtX2ludGVydmFsQmVnaW4udmFsdWUoKSkgLyBzaW1wbGVEdXJhdGlvbi52YWx1
ZSgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162986</attachid>
            <date>2012-09-09 01:46:05 -0700</date>
            <delta_ts>2012-09-09 02:59:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20120909174542.patch</filename>
            <type>text/plain</type>
            <size>2183</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY2NGExNWYwODM4NWFk
YjM5OGE5OGZmMDBjNTJjYTFjZmZkN2EzNS4uNDhmY2NjNjUzMjJiMzM3ZmVkMDRkYjIwZjczNzVj
OGQyZDAxY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTA5ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwcmVzcyBhIHdhcm5p
bmcgYWJvdXQgYW4gb3BlcmF0b3Igb3JkZXJpbmcgYnVnIGluIFNWR1NNSUxFbGVtZW50OjpjYWxj
dWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBhbHRlcm5hdGl2ZSBpcyB0byBkaXNhYmxlIHRoZSB3
YXJuaW5nIGdsb2JhbGx5IGV2ZXJ5d2hlcmUgaW4KKyAgICAgICAgV2ViS2l0LiBCdXQgc2luY2Ug
aXQgZmluZHMgcmVhbCBidWdzIGluIHByYWN0aWNlIChzZWUgdGhpcyBvbmUpLAorICAgICAgICBp
dCdzIGJldHRlciB0byBqdXN0IHN1cHByZXNzIGl0IGhlcmUuCisKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVt
ZW50OjpjYWxjdWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0KToKKwogMjAxMi0wOS0wNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkOyByZXZlcnQgYSBjaGFuZ2UgdG8gU2Nyb2xsaW5nVHJlZU5vZGVNYWMgd2hpY2ggYWNjaWRl
bnRhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQu
Y3BwCmluZGV4IGE1MTMyYTA1ZmVmYzZlNTY2MzFkNzUwNjAzYjU4MDE3YjgxNjI5ZDQuLjI1Nzk5
NjhiZmZiMTBiMTQwNzU2NDFkN2Q5MWE3ZjY4YmZhOTVjNmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC05NjcsOCArOTY3LDE0IEBA
IGZsb2F0IFNWR1NNSUxFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0
KFNNSUxUaW1lIGVsYXBzZWQsIHVuc2lnCiAgICAgU01JTFRpbWUgcmVwZWF0aW5nRHVyYXRpb24g
PSB0aGlzLT5yZXBlYXRpbmdEdXJhdGlvbigpOwogICAgIGlmIChlbGFwc2VkID49IG1faW50ZXJ2
YWxFbmQgfHwgYWN0aXZlVGltZSA+IHJlcGVhdGluZ0R1cmF0aW9uKSB7CiAgICAgICAgIHJlcGVh
dCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXBlYXRpbmdEdXJhdGlvbi52YWx1ZSgpIC8gc2lt
cGxlRHVyYXRpb24udmFsdWUoKSk7CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtY29udmVyc2lvbi1mbG9h
dGluZy1wb2ludC10by1ib29sIgorICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgaWYg
KCFmbW9kKC4uLiwgc2ltcGxlRHVyYXRpb24udmFsdWUoKSkpLCBzZWUKKyAgICAgICAgLy8gdGhl
IGZpcnN0IGJhdGNoIGF0IGh0dHA6Ly93a2IudWcvOTQ3NTYuIEJ1dCBtYWtpbmcgdGhhdCBjaGFu
Z2UgbmVlZHMKKyAgICAgICAgLy8gYSB0ZXN0LgogICAgICAgICBpZiAoZm1vZChyZXBlYXRpbmdE
dXJhdGlvbi52YWx1ZSgpLCAhc2ltcGxlRHVyYXRpb24udmFsdWUoKSkpCiAgICAgICAgICAgICBy
ZXBlYXQtLTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogICAgICAgICBkb3VibGUg
cGVyY2VudCA9IChtX2ludGVydmFsRW5kLnZhbHVlKCkgLSBtX2ludGVydmFsQmVnaW4udmFsdWUo
KSkgLyBzaW1wbGVEdXJhdGlvbi52YWx1ZSgpOwogICAgICAgICBwZXJjZW50ID0gcGVyY2VudCAt
IGZsb29yKHBlcmNlbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162988</attachid>
            <date>2012-09-09 02:59:28 -0700</date>
            <delta_ts>2012-09-10 18:24:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20120909185905.patch</filename>
            <type>text/plain</type>
            <size>2235</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3Njk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWY2NGExNWYwODM4NWFk
YjM5OGE5OGZmMDBjNTJjYTFjZmZkN2EzNS4uNDhmY2NjNjUzMjJiMzM3ZmVkMDRkYjIwZjczNzVj
OGQyZDAxY2FmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEyLTA5LTA5ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBTdXBwcmVzcyBhIHdhcm5p
bmcgYWJvdXQgYW4gb3BlcmF0b3Igb3JkZXJpbmcgYnVnIGluIFNWR1NNSUxFbGVtZW50OjpjYWxj
dWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDc1NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoZSBhbHRlcm5hdGl2ZSBpcyB0byBkaXNhYmxlIHRoZSB3
YXJuaW5nIGdsb2JhbGx5IGV2ZXJ5d2hlcmUgaW4KKyAgICAgICAgV2ViS2l0LiBCdXQgc2luY2Ug
aXQgZmluZHMgcmVhbCBidWdzIGluIHByYWN0aWNlIChzZWUgdGhpcyBvbmUpLAorICAgICAgICBp
dCdzIGJldHRlciB0byBqdXN0IHN1cHByZXNzIGl0IGhlcmUuCisKKyAgICAgICAgKiBzdmcvYW5p
bWF0aW9uL1NWR1NNSUxFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NNSUxFbGVt
ZW50OjpjYWxjdWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0KToKKwogMjAxMi0wOS0wNSAg
VGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkOyByZXZlcnQgYSBjaGFuZ2UgdG8gU2Nyb2xsaW5nVHJlZU5vZGVNYWMgd2hpY2ggYWNjaWRl
bnRhbGx5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxF
bGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQu
Y3BwCmluZGV4IGE1MTMyYTA1ZmVmYzZlNTY2MzFkNzUwNjAzYjU4MDE3YjgxNjI5ZDQuLjIyMjU0
ZWQ1MTlhYjNiZDY0OGIwODdiYTMxNzdmZDRjNGQ0OGI5ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC05NjcsOCArOTY3LDE4IEBA
IGZsb2F0IFNWR1NNSUxFbGVtZW50OjpjYWxjdWxhdGVBbmltYXRpb25QZXJjZW50QW5kUmVwZWF0
KFNNSUxUaW1lIGVsYXBzZWQsIHVuc2lnCiAgICAgU01JTFRpbWUgcmVwZWF0aW5nRHVyYXRpb24g
PSB0aGlzLT5yZXBlYXRpbmdEdXJhdGlvbigpOwogICAgIGlmIChlbGFwc2VkID49IG1faW50ZXJ2
YWxFbmQgfHwgYWN0aXZlVGltZSA+IHJlcGVhdGluZ0R1cmF0aW9uKSB7CiAgICAgICAgIHJlcGVh
dCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihyZXBlYXRpbmdEdXJhdGlvbi52YWx1ZSgpIC8gc2lt
cGxlRHVyYXRpb24udmFsdWUoKSk7CisjaWZkZWYgX19jbGFuZ19fCisjcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGlj
aXQtY29udmVyc2lvbi1mbG9hdGluZy1wb2ludC10by1ib29sIgorI2VuZGlmCisgICAgICAgIC8v
IEZJWE1FOiBUaGlzIHNob3VsZCBiZSBpZiAoIWZtb2QoLi4uLCBzaW1wbGVEdXJhdGlvbi52YWx1
ZSgpKSksIHNlZQorICAgICAgICAvLyB0aGUgZmlyc3QgYmF0Y2ggYXQgaHR0cDovL3drYi51Zy85
NDc1Ni4gQnV0IG1ha2luZyB0aGF0IGNoYW5nZSBuZWVkcworICAgICAgICAvLyBhIHRlc3QuCiAg
ICAgICAgIGlmIChmbW9kKHJlcGVhdGluZ0R1cmF0aW9uLnZhbHVlKCksICFzaW1wbGVEdXJhdGlv
bi52YWx1ZSgpKSkKICAgICAgICAgICAgIHJlcGVhdC0tOworI2lmZGVmIF9fY2xhbmdfXworI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorI2VuZGlmCiAKICAgICAgICAgZG91YmxlIHBlcmNl
bnQgPSAobV9pbnRlcnZhbEVuZC52YWx1ZSgpIC0gbV9pbnRlcnZhbEJlZ2luLnZhbHVlKCkpIC8g
c2ltcGxlRHVyYXRpb24udmFsdWUoKTsKICAgICAgICAgcGVyY2VudCA9IHBlcmNlbnQgLSBmbG9v
cihwZXJjZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163260</attachid>
            <date>2012-09-10 18:24:16 -0700</date>
            <delta_ts>2012-10-26 15:59:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20120911102352.patch</filename>
            <type>text/plain</type>
            <size>2254</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWNhZTY2ZjExM2ExZjk5
NWQxY2NiMDY4YzY2YjViOTQwMTY5NjI4OC4uNzM2ZmM1MmRjNDIyNTNjZmEzMThmNzM5NjdiMmZj
ZDBlY2MwMjBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTA4LTIyICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYSBvcGVyYXRvciBv
cmRlcmluZyBidWcgaW4gU1ZHU01JTEVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRB
bmRSZXBlYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBjb2RlIHdhcyBvcmlnaW5hbGx5IGFkZGVkIGluIGh0dHA6Ly90cmFjLndlYmtpdC5vcmcv
YnJvd3Nlci90cnVuay9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwP3Jl
dj0zMTgwMSBhcworCisgICAgICAgICAgaWYgKGZtb2QocmVwZWF0aW5nRHVyYXRpb24udmFsdWUo
KSwgc2ltcGxlRHVyYXRpb24udmFsdWUoKSA9PSAwLikpCisKKyAgICAgICAgSXQgbG9va3MgbGlr
ZSB0aGF0IHdhcyBzdXBwb3NlZCB0byByZWFkIGBpZiAoZm1vZCguLi4pID09IDApYCwgYnV0IHRo
ZSA9PSBzbGlwcGVkIGludG8gdGhlIGZtb2QgY2FsbC4KKworICAgICAgICBodHRwOi8vdHJhYy53
ZWJraXQub3JnL2NoYW5nZXNldC83NDc4MiBtaW5kbGVzc2x5IHJlZmFjdG9yZWQgdGhpcyB0byB0
aGUgY3VycmVudCBmb3JtLiBJbnN0ZWFkLAorICAgICAgICBkbyB3aGF0IHRoZSBjb2RlIHByb2Jh
Ymx5IGludGVuZGVkIGluIHRoZSBmaXJzdCBwbGFjZS4KKworICAgICAgICBGb3VuZCBieSAtV2lt
cGxpY2l0LWNvbnZlcnNpb24tZmxvYXRpbmctcG9pbnQtdG8tYm9vbCwgYSB3YXJuaW5nIGN1cnJl
bnRseSBiZWluZyBwcm90b3R5cGVkIGluIGNsYW5nLgorCisgICAgICAgICogc3ZnL2FuaW1hdGlv
bi9TVkdTTUlMRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdTTUlMRWxlbWVudDo6
Y2FsY3VsYXRlQW5pbWF0aW9uUGVyY2VudEFuZFJlcGVhdCk6CisKIDIwMTItMDktMDkgIFBhdHJp
Y2sgR2Fuc3RlcmVyICA8cGFyb2dhQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQWRkIFN0cmluZ0J1
aWxkZXI6OmFwcGVuZE51bWJlcigpIGFuZCB1c2UgaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVudC5jcHAKaW5kZXggYTUxMzJhMDVmZWZjNmU1NjYzMWQ3
NTA2MDNiNTgwMTdiODE2MjlkNC4uNzQwMTk0NTQyNWFhMTU4MjQyNWI3MDY0YzQxNGVmOTI0NDg4
MDM0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL2FuaW1hdGlvbi9TVkdTTUlMRWxlbWVu
dC5jcHAKQEAgLTk2Nyw3ICs5NjcsNyBAQCBmbG9hdCBTVkdTTUlMRWxlbWVudDo6Y2FsY3VsYXRl
QW5pbWF0aW9uUGVyY2VudEFuZFJlcGVhdChTTUlMVGltZSBlbGFwc2VkLCB1bnNpZwogICAgIFNN
SUxUaW1lIHJlcGVhdGluZ0R1cmF0aW9uID0gdGhpcy0+cmVwZWF0aW5nRHVyYXRpb24oKTsKICAg
ICBpZiAoZWxhcHNlZCA+PSBtX2ludGVydmFsRW5kIHx8IGFjdGl2ZVRpbWUgPiByZXBlYXRpbmdE
dXJhdGlvbikgewogICAgICAgICByZXBlYXQgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVwZWF0
aW5nRHVyYXRpb24udmFsdWUoKSAvIHNpbXBsZUR1cmF0aW9uLnZhbHVlKCkpOwotICAgICAgICBp
ZiAoZm1vZChyZXBlYXRpbmdEdXJhdGlvbi52YWx1ZSgpLCAhc2ltcGxlRHVyYXRpb24udmFsdWUo
KSkpCisgICAgICAgIGlmICghZm1vZChyZXBlYXRpbmdEdXJhdGlvbi52YWx1ZSgpLCBzaW1wbGVE
dXJhdGlvbi52YWx1ZSgpKSkKICAgICAgICAgICAgIHJlcGVhdC0tOwogCiAgICAgICAgIGRvdWJs
ZSBwZXJjZW50ID0gKG1faW50ZXJ2YWxFbmQudmFsdWUoKSAtIG1faW50ZXJ2YWxCZWdpbi52YWx1
ZSgpKSAvIHNpbXBsZUR1cmF0aW9uLnZhbHVlKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171036</attachid>
            <date>2012-10-26 15:59:11 -0700</date>
            <delta_ts>2012-10-26 16:05:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20121026155742.patch</filename>
            <type>text/plain</type>
            <size>2049</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1ZGMyN2YzYjg5ODIz
ODI5ODRkNDJjYmYwZTA2YjRiMTI3YWFhMi4uZjc5YWE4MGY0ODgxMzM0ZmE2NzExYjIxMjVmNjY3
MmY5ODBhNTFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTI2ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYSBvcGVyYXRvciBv
cmRlcmluZyBidWcgaW4gU1ZHU01JTEVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRB
bmRSZXBlYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIGZ1bmN0aW9uIGhhcyBhbiBlYXJseSBleGl0IGZvciAhc2ltcGxlRHVyYXRpb24udmFsdWUo
KSwgc28KKyAgICAgICAgIXNpbXBsZUR1cmF0aW9uLnZhbHVlKCkgYWx3YXlzIGlzIDAgd2hlbiBw
YXNzZWQgYXMgc2Vjb25kIHBhcmFtZXRlciB0bworICAgICAgICBmbW9kKCksIHdoaWNoIG1lYW5z
IGZtb2QoKSBhbHdheXMgcmV0dXJucyBOYU4sIHdoaWNoIGFsd2F5cyBldmFsdWF0ZXMKKyAgICAg
ICAgdG8gdHJ1ZS4gU2ltcGxpZnkgdGhlIGNvZGUgYnkgcmVtb3ZpbmcgdGhhdCBleHBsaWNpdCBj
aGVjay4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHN2ZyB0ZXN0cy4KKworICAgICAgICAqIHN2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQpOgorCiAyMDEyLTEwLTI2ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBQ
cmludGluZyBzaG91bGQgdXNlIHVzZSBoaWdoIHJlc29sdXRpb24gaW1hZ2VzIHdoZW4gYXZhaWxh
YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3Bw
CmluZGV4IGY0ZGVmZjU0MDljYjIyY2IxNzVhZWI4N2RjMjA4YjdmZGJjMmFkMmMuLmUyMmM0YjE3
ZjAwZDZkNGRhYTVkZDE0MDM0YjI3YzA4ZWQxNmEyN2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC0xMDAzLDggKzEwMDMsNyBAQCBm
bG9hdCBTVkdTTUlMRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0aW9uUGVyY2VudEFuZFJlcGVhdChT
TUlMVGltZSBlbGFwc2VkLCB1bnNpZwogICAgIFNNSUxUaW1lIHJlcGVhdGluZ0R1cmF0aW9uID0g
dGhpcy0+cmVwZWF0aW5nRHVyYXRpb24oKTsKICAgICBpZiAoZWxhcHNlZCA+PSBtX2ludGVydmFs
RW5kIHx8IGFjdGl2ZVRpbWUgPiByZXBlYXRpbmdEdXJhdGlvbikgewogICAgICAgICByZXBlYXQg
PSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVwZWF0aW5nRHVyYXRpb24udmFsdWUoKSAvIHNpbXBs
ZUR1cmF0aW9uLnZhbHVlKCkpOwotICAgICAgICBpZiAoZm1vZChyZXBlYXRpbmdEdXJhdGlvbi52
YWx1ZSgpLCAhc2ltcGxlRHVyYXRpb24udmFsdWUoKSkpCi0gICAgICAgICAgICByZXBlYXQtLTsK
KyAgICAgICAgcmVwZWF0LS07CiAKICAgICAgICAgZG91YmxlIHBlcmNlbnQgPSAobV9pbnRlcnZh
bEVuZC52YWx1ZSgpIC0gbV9pbnRlcnZhbEJlZ2luLnZhbHVlKCkpIC8gc2ltcGxlRHVyYXRpb24u
dmFsdWUoKTsKICAgICAgICAgcGVyY2VudCA9IHBlcmNlbnQgLSBmbG9vcihwZXJjZW50KTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171037</attachid>
            <date>2012-10-26 16:05:29 -0700</date>
            <delta_ts>2012-10-26 18:20:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94756-20121026160400.patch</filename>
            <type>text/plain</type>
            <size>2181</size>
            <attacher name="Nico Weber">thakis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMyNjMzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjI1ZGMyN2YzYjg5ODIz
ODI5ODRkNDJjYmYwZTA2YjRiMTI3YWFhMi4uZjc5YWE4MGY0ODgxMzM0ZmE2NzExYjIxMjVmNjY3
MmY5ODBhNTFiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEyLTEwLTI2ICBOaWNv
IFdlYmVyICA8dGhha2lzQGNocm9taXVtLm9yZz4KKworICAgICAgICBGaXggYSBvcGVyYXRvciBv
cmRlcmluZyBidWcgaW4gU1ZHU01JTEVsZW1lbnQ6OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRB
bmRSZXBlYXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk0NzU2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhlIGZ1bmN0aW9uIGhhcyBhbiBlYXJseSBleGl0IGZvciAhc2ltcGxlRHVyYXRpb24udmFsdWUo
KSwgc28KKyAgICAgICAgIXNpbXBsZUR1cmF0aW9uLnZhbHVlKCkgYWx3YXlzIGlzIDAgd2hlbiBw
YXNzZWQgYXMgc2Vjb25kIHBhcmFtZXRlciB0bworICAgICAgICBmbW9kKCksIHdoaWNoIG1lYW5z
IGZtb2QoKSBhbHdheXMgcmV0dXJucyBOYU4sIHdoaWNoIGFsd2F5cyBldmFsdWF0ZXMKKyAgICAg
ICAgdG8gdHJ1ZS4gU2ltcGxpZnkgdGhlIGNvZGUgYnkgcmVtb3ZpbmcgdGhhdCBleHBsaWNpdCBj
aGVjay4KKworICAgICAgICBObyBvYnNlcnZhYmxlIGJlaGF2aW9yIGNoYW5nZS4KKworICAgICAg
ICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHN2ZyB0ZXN0cy4KKworICAgICAgICAqIHN2Zy9hbmltYXRp
b24vU1ZHU01JTEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHU01JTEVsZW1lbnQ6
OmNhbGN1bGF0ZUFuaW1hdGlvblBlcmNlbnRBbmRSZXBlYXQpOgorCiAyMDEyLTEwLTI2ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBQ
cmludGluZyBzaG91bGQgdXNlIHVzZSBoaWdoIHJlc29sdXRpb24gaW1hZ2VzIHdoZW4gYXZhaWxh
YmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NWR1NNSUxFbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3Bw
CmluZGV4IGY0ZGVmZjU0MDljYjIyY2IxNzVhZWI4N2RjMjA4YjdmZGJjMmFkMmMuLjg3ODE3M2I5
OWNlNWVlMTBmY2Y1YWU1ODIyNjRmOGYxMGNjMjMwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9hbmltYXRpb24vU1ZHU01JTEVsZW1lbnQuY3BwCkBAIC0xMDAyLDkgKzEwMDIsNyBAQCBm
bG9hdCBTVkdTTUlMRWxlbWVudDo6Y2FsY3VsYXRlQW5pbWF0aW9uUGVyY2VudEFuZFJlcGVhdChT
TUlMVGltZSBlbGFwc2VkLCB1bnNpZwogICAgIFNNSUxUaW1lIGFjdGl2ZVRpbWUgPSBlbGFwc2Vk
IC0gbV9pbnRlcnZhbEJlZ2luOwogICAgIFNNSUxUaW1lIHJlcGVhdGluZ0R1cmF0aW9uID0gdGhp
cy0+cmVwZWF0aW5nRHVyYXRpb24oKTsKICAgICBpZiAoZWxhcHNlZCA+PSBtX2ludGVydmFsRW5k
IHx8IGFjdGl2ZVRpbWUgPiByZXBlYXRpbmdEdXJhdGlvbikgewotICAgICAgICByZXBlYXQgPSBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVwZWF0aW5nRHVyYXRpb24udmFsdWUoKSAvIHNpbXBsZUR1
cmF0aW9uLnZhbHVlKCkpOwotICAgICAgICBpZiAoZm1vZChyZXBlYXRpbmdEdXJhdGlvbi52YWx1
ZSgpLCAhc2ltcGxlRHVyYXRpb24udmFsdWUoKSkpCi0gICAgICAgICAgICByZXBlYXQtLTsKKyAg
ICAgICAgcmVwZWF0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlcGVhdGluZ0R1cmF0aW9uLnZh
bHVlKCkgLyBzaW1wbGVEdXJhdGlvbi52YWx1ZSgpKSAtIDE7CiAKICAgICAgICAgZG91YmxlIHBl
cmNlbnQgPSAobV9pbnRlcnZhbEVuZC52YWx1ZSgpIC0gbV9pbnRlcnZhbEJlZ2luLnZhbHVlKCkp
IC8gc2ltcGxlRHVyYXRpb24udmFsdWUoKTsKICAgICAgICAgcGVyY2VudCA9IHBlcmNlbnQgLSBm
bG9vcihwZXJjZW50KTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>