<?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>68457</bug_id>
          
          <creation_ts>2011-09-20 12:07:47 -0700</creation_ts>
          <short_desc>Style changes applied to filtered elements do not invalidate the element</short_desc>
          <delta_ts>2011-09-27 15:10:50 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>krit</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>470241</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-20 12:07:47 -0700</bug_when>
    <thetext>Open the attached test case. Note how the color of the blurred ellipse doesn&apos;t pulse.

Remove the filter. Note how the animation works fine.

Open the original test case in Opera. Also works fine, and is blurred!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470243</commentid>
    <comment_count>1</comment_count>
      <attachid>108039</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-20 12:08:07 -0700</bug_when>
    <thetext>Created attachment 108039
repro</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470244</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-09-20 12:08:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/10154777&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>470245</commentid>
    <comment_count>3</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-20 12:08:46 -0700</bug_when>
    <thetext>Note, the &quot;from&quot; color (the initial color of the animation) *is* getting applied.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>471400</commentid>
    <comment_count>4</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-22 00:28:32 -0700</bug_when>
    <thetext>Without looking into the code, I assume that we do not invalidate the filter for the example.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>472679</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-23 18:20:46 -0700</bug_when>
    <thetext>So it looks like most style changes don&apos;t cause filter invalidation. Anything that requires relayout does, because then we go SVGResourcesCache::clientLayoutChanged -&gt; RenderSVGResourceFilter::removeClientFromCache and remove the filter from RenderSVGResourceFilter::m_filter, which then causes us not to bail early in RenderSVGResourceFilter::applyResource (if we don&apos;t removeClientFromCache, we bail in the m_filter.contains(object) check).

Style changes don&apos;t end up calling removeClientFromCache, so the filter is still in m_filter, so we don&apos;t invalidate.

I&apos;m not sure what the downsides to calling removeClientFromCache from SVGResourcesCache::clientStyleChanged might be (but have confirmed that copying the body of SVGResourcesCache::clientLayoutChanged (which does call removeClientFromCache) does solve this problem).

I&apos;ll fix it next week.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473348</commentid>
    <comment_count>6</comment_count>
      <attachid>108717</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 13:47:25 -0700</bug_when>
    <thetext>Created attachment 108717
patch!

Happens with all style changes, not just &lt;animateColor&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473359</commentid>
    <comment_count>7</comment_count>
      <attachid>108717</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-09-26 13:57:43 -0700</bug_when>
    <thetext>Comment on attachment 108717
patch!

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

&gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:131
&gt; +    // In this case the proper SVGFE*Element will imply whether the modified CSS properties require a relayout or repaint.

I don&apos;t understand the comment. How does an element imply anything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473363</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 14:00:19 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 108717 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108717&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:131
&gt; &gt; +    // In this case the proper SVGFE*Element will imply whether the modified CSS properties require a relayout or repaint.
&gt; 
&gt; I don&apos;t understand the comment. How does an element imply anything?

Ooh, good point, I meant to change that word while I was fixing the comment too. Pretty sure &quot;determine&quot; (or &quot;decide&quot;) is the intended word.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473368</commentid>
    <comment_count>9</comment_count>
      <attachid>108717</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-26 14:05:21 -0700</bug_when>
    <thetext>Comment on attachment 108717
patch!

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

r- because I&apos;d like an even more reduced test case. Also have a question to your patch itself.

Btw. Don&apos;t you have commit rights? Why do you set cq?

&gt; LayoutTests/svg/filters/animate-fill.svg:6
&gt; +    &lt;filter id=&quot;filt&quot;&gt;
&gt; +        &lt;feGaussianBlur stdDeviation=&quot;3&quot; /&gt;
&gt; +    &lt;/filter&gt;

Shouldn&apos;t we still use the filter code path if we don&apos;t have an effect at all? If not, even an offset effect (feOffset) without attributes would be enough.

&gt; LayoutTests/svg/filters/animate-fill.svg:9
&gt; +    &lt;clipPath id=&quot;clip&quot;&gt;
&gt; +        &lt;rect width=&quot;50px&quot; height=&quot;50px&quot; x=&quot;25&quot; y=&quot;25&quot; /&gt;
&gt; +    &lt;/clipPath&gt;

Is it just reproducible with a clipPath? If you just used it to have a solid filled rect, the suggestion above should help.

&gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:152
&gt; +    SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer);
&gt; +    if (!resources)
&gt; +        return;
&gt; +
&gt; +    resources-&gt;removeClientFromCache(renderer);

Do we still need to invalidate the client for clipPath? Is there a CSS property that could influence any visual affect on clipPath? IIRC SVGResourceCache is used for PaintServers as well (pattern and gradient), can you reproduce the problem for these resources as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473373</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 14:12:23 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 108717 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108717&amp;action=review
&gt; 
&gt; r- because I&apos;d like an even more reduced test case. Also have a question to your patch itself.

Ok.

&gt; Btw. Don&apos;t you have commit rights? Why do you set cq?

I don&apos;t know, good question! Habit? Convenience? (is there any downside?)

&gt; &gt; LayoutTests/svg/filters/animate-fill.svg:6
&gt; &gt; +    &lt;filter id=&quot;filt&quot;&gt;
&gt; &gt; +        &lt;feGaussianBlur stdDeviation=&quot;3&quot; /&gt;
&gt; &gt; +    &lt;/filter&gt;
&gt; 
&gt; Shouldn&apos;t we still use the filter code path if we don&apos;t have an effect at all?

But then we won&apos;t draw anything!

&gt; If not, even an offset effect (feOffset) without attributes would be enough.
&gt; 
&gt; &gt; LayoutTests/svg/filters/animate-fill.svg:9
&gt; &gt; +    &lt;clipPath id=&quot;clip&quot;&gt;
&gt; &gt; +        &lt;rect width=&quot;50px&quot; height=&quot;50px&quot; x=&quot;25&quot; y=&quot;25&quot; /&gt;
&gt; &gt; +    &lt;/clipPath&gt;
&gt; 
&gt; Is it just reproducible with a clipPath? If you just used it to have a solid filled rect, the suggestion above should help.

You&apos;re inside my head! (i.e., I just used it to have a solid filled rect and make the test work more places).

It does appear to reproduce with feOffset, so I&apos;ll use that; that&apos;ll make the test a lot cleaner.

&gt; &gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:152
&gt; &gt; +    SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer);
&gt; &gt; +    if (!resources)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    resources-&gt;removeClientFromCache(renderer);
&gt; 
&gt; Do we still need to invalidate the client for clipPath? Is there a CSS property that could influence any visual affect on clipPath? IIRC SVGResourceCache is used for PaintServers as well (pattern and gradient), can you reproduce the problem for these resources as well?

Hmm, that&apos;s a good question. I&apos;ll take a look and report back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473429</commentid>
    <comment_count>11</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 15:14:54 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 108717 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=108717&amp;action=review
&gt; 
&gt; r- because I&apos;d like an even more reduced test case. Also have a question to your patch itself.
&gt; 
&gt; Btw. Don&apos;t you have commit rights? Why do you set cq?
&gt; 
&gt; &gt; LayoutTests/svg/filters/animate-fill.svg:6
&gt; &gt; +    &lt;filter id=&quot;filt&quot;&gt;
&gt; &gt; +        &lt;feGaussianBlur stdDeviation=&quot;3&quot; /&gt;
&gt; &gt; +    &lt;/filter&gt;
&gt; 
&gt; Shouldn&apos;t we still use the filter code path if we don&apos;t have an effect at all? If not, even an offset effect (feOffset) without attributes would be enough.
&gt; 
&gt; &gt; LayoutTests/svg/filters/animate-fill.svg:9
&gt; &gt; +    &lt;clipPath id=&quot;clip&quot;&gt;
&gt; &gt; +        &lt;rect width=&quot;50px&quot; height=&quot;50px&quot; x=&quot;25&quot; y=&quot;25&quot; /&gt;
&gt; &gt; +    &lt;/clipPath&gt;
&gt; 
&gt; Is it just reproducible with a clipPath? If you just used it to have a solid filled rect, the suggestion above should help.
&gt; 
&gt; &gt; Source/WebCore/rendering/svg/SVGResourcesCache.cpp:152
&gt; &gt; +    SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer);
&gt; &gt; +    if (!resources)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    resources-&gt;removeClientFromCache(renderer);
&gt; 
&gt; Do we still need to invalidate the client for clipPath? Is there a CSS property that could influence any visual affect on clipPath? IIRC SVGResourceCache is used for PaintServers as well (pattern and gradient), can you reproduce the problem for these resources as well?

Doesn&apos;t reproduce with the others. Perhaps a better approach would be to change the way we check for invalidation in RenderSVGResourceFilter::applyResource? Or clear the resource from m_filter elsewhere? I&apos;ll look for a different solution if you think this one is overkill.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473431</commentid>
    <comment_count>12</comment_count>
      <attachid>108730</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 15:16:13 -0700</bug_when>
    <thetext>Created attachment 108730
patch, fixed the comment and the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473576</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-26 17:35:56 -0700</bug_when>
    <thetext>Landed in 96052.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>473721</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-09-26 23:55:11 -0700</bug_when>
    <thetext>Sad that it was landed. I indeed think that this is overkilling! We definitely don&apos;t need to invalidate masker, pattern, gradients and clip path on style changes of the target!

Can you please come up with a followup patch that would just clean the resource if it is a filter?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474123</commentid>
    <comment_count>15</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-09-27 11:55:08 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; Sad that it was landed. I indeed think that this is overkilling! We definitely don&apos;t need to invalidate masker, pattern, gradients and clip path on style changes of the target!
&gt; 
&gt; Can you please come up with a followup patch that would just clean the resource if it is a filter?

I share Dirks concerns as well. Sorry for not commenting earlier, I took some days off...
Anyhow: We have to be very careful when we release anything from the cache, style changes may happen more frequently than you&apos;d expect!

An easy test would be to add a fprintf(stderr, &quot;INVALIDATE!&quot;) before your newly added removeClientFromCache() call - then run all SVG pixel tests and look in the layout-test-results directory for all *stderr.txt files containing &quot;INVALIDATE&quot;. I bet it&apos;s now firing a lot more often than desired.

Can you please find this out? I fear this is a large perf regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474131</commentid>
    <comment_count>16</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-27 12:02:22 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #14)
&gt; &gt; Sad that it was landed. I indeed think that this is overkilling! We definitely don&apos;t need to invalidate masker, pattern, gradients and clip path on style changes of the target!
&gt; &gt; 
&gt; &gt; Can you please come up with a followup patch that would just clean the resource if it is a filter?
&gt; 
&gt; I share Dirks concerns as well. Sorry for not commenting earlier, I took some days off...
&gt; Anyhow: We have to be very careful when we release anything from the cache, style changes may happen more frequently than you&apos;d expect!
&gt; 
&gt; An easy test would be to add a fprintf(stderr, &quot;INVALIDATE!&quot;) before your newly added removeClientFromCache() call - then run all SVG pixel tests and look in the layout-test-results directory for all *stderr.txt files containing &quot;INVALIDATE&quot;. I bet it&apos;s now firing a lot more often than desired.
&gt; 
&gt; Can you please find this out? I fear this is a large perf regression.

Ok, I&apos;ll fix this today. I&apos;ve been looking around trying to come up with cases where target style changes would require a master/pattern/gradient/clipPath and could come up with nothing, so sure, we&apos;ll only do it in the case of filters. Does that work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>474276</commentid>
    <comment_count>17</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2011-09-27 15:10:50 -0700</bug_when>
    <thetext>Performance fix goes here ---&gt; https://bugs.webkit.org/show_bug.cgi?id=68941</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>108039</attachid>
            <date>2011-09-20 12:08:07 -0700</date>
            <delta_ts>2011-09-20 12:08:07 -0700</delta_ts>
            <desc>repro</desc>
            <filename>testFEGaussianBlur.svg</filename>
            <type>image/svg+xml</type>
            <size>525</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iCiJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9T
VkcvMS4xL0RURC9zdmcxMS5kdGQiPgoKPHN2ZyB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2
ZXJzaW9uPSIxLjEiCnhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+Cgo8ZGVmcz4K
PGZpbHRlciBpZD0iR2F1c3NpYW5fQmx1ciI+CjxmZUdhdXNzaWFuQmx1ciBpbj0iU291cmNlR3Jh
cGhpYyIgc3RkRGV2aWF0aW9uPSI1Ii8+CjwvZmlsdGVyPgo8L2RlZnM+Cgo8ZWxsaXBzZSBjeD0i
MjAwIiBjeT0iMTUwIiByeD0iNzAiIHJ5PSI0MCIgZmlsdGVyPSJ1cmwoI0dhdXNzaWFuX0JsdXIp
Ij4KPGFuaW1hdGVDb2xvciBhdHRyaWJ1dGVOYW1lPSJmaWxsIiAKICAgICAgICAgZnJvbT0icmVk
IiB0bz0iYmx1ZSIgZHVyPSIwLjVzIiByZXBlYXRDb3VudD0iaW5kZWZpbml0ZSIgLz4KPC9lbGxp
cHNlPgoKPC9zdmc+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108717</attachid>
            <date>2011-09-26 13:47:25 -0700</date>
            <delta_ts>2011-09-26 14:05:21 -0700</delta_ts>
            <desc>patch!</desc>
            <filename>68457.patch</filename>
            <type>text/plain</type>
            <size>7540</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NzExMTBkLi5hNTIyNWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDkt
MjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgPGFu
aW1hdGVDb2xvcj4gYXBwbGllZCB0byBmaWx0ZXJlZCBlbGxpcHNlIGRvZXMgbm90IHVwZGF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NTcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMTU0Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBjaGFuZ2luZyB0aGUgZmlsbCBvbiBh
IGZpbHRlcmVkIHNoYXBlIHByb3Blcmx5IGludmFsaWRhdGVzIHRoZSBmaWx0ZXJlZCByZXN1bHQu
CisKKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwuc3ZnOiBBZGRlZC4KKwogMjAx
MS0wOS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
ZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRl
cnMvYW5pbWF0ZS1maWxsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YmVlY2RiNDIxMTA3NzZi
ZWE3NmE2ZTIwODRhMjNlYjJkZDEyNThmCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM1OQp6
Y21lSE5lSz1IRTlLTHNFVmxaVzdoLURleWlacVB4TnxQfX5ETVQ5N18/U0A/TWo1NXVIWnhrZzd6
IXloTVY3V04KejVvKkgtbGtse1A5dG1sLWtndW5tb3dBQTh0bGU5LXgmNklRYGA0Ym8/dFJYNC1n
QUhWY2khe2ZiS2MpZ191YWdICnpxM1JjXjVDa3BzXjdQbU9MMEI+YlZWSE8mcSghdHBCXzZwZjx1
UkIlYzJwI0xQZU5pVyNJfCh8WEgjOHZhd3JyaAp6Q3dtOEhyJHxTTm9qcDV9PmZ9aFZ3V21mZlp3
IXFncVptWmY+QXFmY0lAeHowY1Z+MT1CbV5iRnNSOHxheF9uNzwKelBhK0V7MjhGSj5HKnNOOGFe
Zzd0Sm8/JDJkJHgoJmdNVzNiSHU1fWtBJEdmeylsYDFDTGIqQEtiIXxFRHlSekdpCnpHTkpEWF92
X3ErdCklZWp0NypwR1Fed1p8Jik5RldAVzxBXnQ/UXE4PjAmVzklcXA3TTh7OT0mcC0kVEJANip5
Vwp6K2RORl9lK3skcj1+bEIqbn1wd0taIWxqXlF9MyFlYDBEel5CN0BjIy1iLSRPPV5WUlRiYl9F
VXUxe3tyYjcoZG0KejNAVkQ9eyluZUooM0FlRXp9Qkl1LTgrR0s1dk85ZiViQ2otM30kQVRvWk07
ZUtvaEFuRFl2LTBabWdqPnBOYnhzCnpTb3BYQEtwTTYlem5wNiRUdmZ7MHZTTmg4czNKXl84enZs
aTlhP2NJQDVQejJGPUFHJU5PeURScF5Sc1NGNWtwdwp6anpabkgqTSNjU3VkT01GWEYzaipJMj85
d0ghYXNOdU9FQktpI3tjZjZ5Km1rVTJMWHJkTWhISm9FajU3cylrSiQKempkc2MzX351cmV2djBK
ZzIyQmpmZU5XKEl3az94VzhgciVOKllgP3Vqdz1zMnhMc1ZAbFQ0ZWRlPj1HXlc4YDQmCnp4YUB7
T1JgOzhiVC1RTFViaCFQMyQoYGx7ZXJ2RnY/a1B3MEloRiVDP3Uyaj15Wk9xcngzO2VGaFZ1YGpj
PnhFagp6b09AUFU5elFBOVUhVX1JPSVOfnlfR0N5XiZENmxWIWwhMXZNe2pBUndwNW9xX0xLaTRj
cDxMUjZ6TEA9aFd9VSsKekh8U0o1YXotejxSMU5QcG1vWlo1JCU8X0FOJThBVmJSNW4wJiEwX0hk
dGpJTShyb2A/Q1A5MzRvSGV+SE0lNT5FCnpObUc4fnFxYGw/JH41bHJfZ2NHXjdXJWloeyR9Pmpg
PU58ZSkwaT5vLWx7V2BaQSVYPlhmV00kSHBBdWg2SklxOAp6cjJ7RmwoZFhNJl5lUHdELVFPfHpN
PWllMFd9bkg/clhgYiVMcV84YilDUlpFWUhuS2lNUUtBOU1ePDdSRVVXOXYKejVmQGl9bTNLXlBG
fTM+VzY7MGkkJTcpNnJmcTFKTSNxOFoxdUplMiN0WGJebHtEfXB9VXVrQCtifHxmVWRIUyleCnpo
OzcrRVI7dHw3MVhlITU+elpldU9+dU0lYV9tazJvKmtwbnAkUlMlJWk+Pz97ZHFAYjxGcitZcjdQ
KTd1dnQ8Pgp6TyZuSUtJSztBK1gtTiVONjt8X2VSIVo0cnQ3RjUoTGJ0JEREYkZVdjBJcExuP0xQ
UDVPODMqVDtiZ1U+bDNBdDgKekNhT0o2S1pNI3I1RT02RlNSMFQ4JWxrU3YoZng/QHdGYnBwan1m
Q3s8LW5mS144KHFJamZQZWFXUGlSSkg9KiQlCno3PXl6VCR1eiExQVFgKUBTQlR1OVAzUVJWYk5W
TU8xS3R3SXJEVGZ1NXJnenBPNT5zY05JLT9MITxrUiReRnd8Wgp6TlFkMDtOcTFaYWoqdn49dCoo
S044cGZZaWBWaGhWYkRjRlF3Mm4pd0o8dzUrQW9TNGd3RXN+TSk4ZUVUR1k0JTcKelhXbHhvYG1a
Rz8tQCY0WlpOdHBMT1JIcyR8NGJpfUpUXndARjRPNHdgXmxWN3JLT3E8ZDFVfDdiJjZEbUFAaXFl
Cno8KU0jYUI0TzxMVSZeSXV7eGVseyRuNFpLeCZsKlY5bWRhLUNoOTNCUUQ2JldJYWk1JFFCMitm
TGlXRDhJRndCawp6XkR1czxtaG1ES1Fea2szI1AhQ2E7a1AwQHNCfntPYFdQJE9TRFFqPmxaJihG
THIzMDBhKjdZejEqU1FwbV5PQCgKelhZR3pebHNoXklTNldweXpFQHlxS0B0Y2cxdGpJKUYkS3s/
eT9kcjhZaGpFWnsxQEx0bjVjfnNuU3FlTVF0TEVJCnplaC1CRlFJI0ZXM0w7bG5oVmlYJDhmJjdN
T01IMG9AfTN9KyRsM158QzZJJCtoKn1ne2FmXz1eTDFhbFdBRmdfdwp6O2YtUjc1JVMrKT9uMjRX
QnZFTUVBdngmXjNAdHpjckVBTnEoYlgrUDZkfVVPNCNsTFk+WDE3bDNLKXZqOXApIzIKemY/Xm92
RDg+KVFuZyhDSmo9ckVaZilTUzhNRnA5PkVEUihDQm40UjxmR0pANDVQX3peNyRDSEtAYiRxSCE2
ekFtCnoxTiMmeyp0YCtSVWBMQz1mbyhuezBCMFhFSTF1OVM7RkpzcmZPUzl2KSZVTD17Rkx7Ozhu
Nno0YnBXZ2IjSmRJNwp6MGs5NGJtbWdSTXomZHplXiEkdTxBTDBGZVg5JlhBejVmPmcpUE8pPzN7
KHEyM0g1WDgzKHlweERMXyt6cnU9N2AKYkdLKFBedDYkemJhRyEreUYke1N6SGhZeDJobyRAdD5M
OFRnCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
ZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRl
cnMvYW5pbWF0ZS1maWxsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5hYmM2MjQ3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRl
cnMvYW5pbWF0ZS1maWxsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xh
eWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgyNSwy
NSkgc2l6ZSA1MHg1MAorICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAs
MCkgc2l6ZSAweDAKKyAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0i
ZmlsdCJdIFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVz
ZXJTcGFjZU9uVXNlXQorICAgICAgICBbZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIzLjAw
LCAzLjAwIl0KKyAgICAgICAgICBbU291cmNlR3JhcGhpY10KKyAgICAgIFJlbmRlclNWR1Jlc291
cmNlQ2xpcHBlciB7Y2xpcFBhdGh9IFtpZD0iY2xpcCJdIFtjbGlwUGF0aFVuaXRzPXVzZXJTcGFj
ZU9uVXNlXQorICAgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMjUsMjUpIHNpemUgNTB4
NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwMDAwMF19XSBbeD0yNS4wMF0gW3k9MjUu
MDBdIFt3aWR0aD01MC4wMF0gW2hlaWdodD01MC4wMF0KKyAgICBSZW5kZXJTVkdQYXRoIHtyZWN0
fSBhdCAoMjUsMjUpIHNpemUgNTB4NTAgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAw
MF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9MTAwLjAwXSBbaGVpZ2h0PTEwMC4wMF0KKyAg
ICAgIFtjbGlwUGF0aD0iY2xpcCJdIFJlbmRlclNWR1Jlc291cmNlQ2xpcHBlciB7Y2xpcFBhdGh9
IGF0ICgyNSwyNSkgc2l6ZSA1MHg1MAorICAgICAgW2ZpbHRlcj0iZmlsdCJdIFJlbmRlclNWR1Jl
c291cmNlRmlsdGVyIHtmaWx0ZXJ9IGF0ICgtMTAsLTEwKSBzaXplIDEyMHgxMjAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2FuaW1hdGUtZmlsbC5zdmcgYi9MYXlvdXRUZXN0
cy9zdmcvZmlsdGVycy9hbmltYXRlLWZpbGwuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAuLjA5Y2RhMTYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvZmls
dGVycy9hbmltYXRlLWZpbGwuc3ZnCkBAIC0wLDAgKzEsMjYgQEAKKzxzdmcgeG1sbnM9Imh0dHA6
Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5
OS94bGluayI+CisgICAgPHRpdGxlPlRoZSByZWN0YW5nbGUgc2hvdWxkIHJhcGlkbHkgYW5pbWF0
ZSB0byBncmVlbi48L3RpdGxlPgorPGRlZnM+CisgICAgPGZpbHRlciBpZD0iZmlsdCI+CisgICAg
ICAgIDxmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249IjMiIC8+CisgICAgPC9maWx0ZXI+Cisg
ICAgPGNsaXBQYXRoIGlkPSJjbGlwIj4KKyAgICAgICAgPHJlY3Qgd2lkdGg9IjUwcHgiIGhlaWdo
dD0iNTBweCIgeD0iMjUiIHk9IjI1IiAvPgorICAgIDwvY2xpcFBhdGg+Cis8L2RlZnM+Cis8cmVj
dCBpZD0icmVjdCIgd2lkdGg9IjEwMHB4IiBoZWlnaHQ9IjEwMHB4IiB4PSIwIiB5PSIwIiBmaWxs
PSJyZWQiIGZpbHRlcj0idXJsKCNmaWx0KSIgY2xpcC1wYXRoPSJ1cmwoI2NsaXApIiAvPgorPHNj
cmlwdD4KKyAgICBmdW5jdGlvbiBmaW5pc2goKQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3JlY3QnKS5zZXRBdHRyaWJ1dGUoJ2ZpbGwnLCAnZ3JlZW4nKTsKKyAgICAg
ICAgCisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorCisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworCisgICAgc2V0VGltZW91dChmaW5pc2gsIDApOworPC9zY3JpcHQ+
Cis8L3N2Zz4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYmNjYTRjLi43ZWM4ZmM2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTEtMDktMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBs
ZS5jb20+CisKKyAgICAgICAgPGFuaW1hdGVDb2xvcj4gYXBwbGllZCB0byBmaWx0ZXJlZCBlbGxp
cHNlIGRvZXMgbm90IHVwZGF0ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Njg0NTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMTU0Nzc3PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUg
dGhlIGZpbHRlcidzIGNhY2hlIHdoZW4gc3R5bGUgY2hhbmdlcyB0YWtlIHBsYWNlIHNvIHRoYXQg
c3R5bGUgY2hhbmdlcyBhcmUgcmVzcGVjdGVkLgorCisgICAgICAgIFRlc3Q6IHN2Zy9maWx0ZXJz
L2FuaW1hdGUtZmlsbC5zdmcKKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFN0
eWxlQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50
VXBkYXRlZEZyb21FbGVtZW50KToKKwogMjAxMS0wOS0yNiAgU2hlcmlmZiBCb3QgIDx3ZWJraXQu
cmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQg
cjk1MjU2LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZXNv
dXJjZXNDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNl
c0NhY2hlLmNwcAppbmRleCAzMGY4NmMzLi5lNzEyZmI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcApAQCAtMTI4LDcgKzEyOCw3
IEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFN0eWxlQ2hhbmdlZChSZW5kZXJPYmpl
Y3QqIHJlbmRlcmVyLCBTdHlsZURpZmZlcmVuCiAgICAgaWYgKGRpZmYgPT0gU3R5bGVEaWZmZXJl
bmNlRXF1YWwpCiAgICAgICAgIHJldHVybjsKIAotICAgIC8vIEluIHRoaXMgY2FzZSB0aGUgcHJv
cGVyIFNWR0ZFKkVsZW1lbnQgd2lsbCBpbXBseSB3aGV0aGVyIHRoZSBtb2RpZmlkZWQgQ1NTIHBy
b3BlcnRpZXMgaW1wbGllcyBhIHJlbGF5b3V0IG9yIHJlcGFpbnQuCisgICAgLy8gSW4gdGhpcyBj
YXNlIHRoZSBwcm9wZXIgU1ZHRkUqRWxlbWVudCB3aWxsIGltcGx5IHdoZXRoZXIgdGhlIG1vZGlm
aWVkIENTUyBwcm9wZXJ0aWVzIHJlcXVpcmUgYSByZWxheW91dCBvciByZXBhaW50LgogICAgIGlm
IChyZW5kZXJlci0+aXNTVkdSZXNvdXJjZUZpbHRlclByaW1pdGl2ZSgpICYmIGRpZmYgPT0gU3R5
bGVEaWZmZXJlbmNlUmVwYWludCkKICAgICAgICAgcmV0dXJuOwogCkBAIC0xNDQsNiArMTQ0LDEy
IEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNsaWVudFVwZGF0ZWRGcm9tRWxlbWVudChSZW5k
ZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBSCiAgICAgU1ZHUmVzb3VyY2VzQ2FjaGUqIGNhY2hl
ID0gcmVzb3VyY2VzQ2FjaGVGcm9tUmVuZGVyT2JqZWN0KHJlbmRlcmVyKTsKICAgICBjYWNoZS0+
cmVtb3ZlUmVzb3VyY2VzRnJvbVJlbmRlck9iamVjdChyZW5kZXJlcik7CiAgICAgY2FjaGUtPmFk
ZFJlc291cmNlc0Zyb21SZW5kZXJPYmplY3QocmVuZGVyZXIsIG5ld1N0eWxlKTsKKworICAgIFNW
R1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNl
c0ZvclJlbmRlck9iamVjdChyZW5kZXJlcik7CisgICAgaWYgKCFyZXNvdXJjZXMpCisgICAgICAg
IHJldHVybjsKKworICAgIHJlc291cmNlcy0+cmVtb3ZlQ2xpZW50RnJvbUNhY2hlKHJlbmRlcmVy
KTsKIH0KIAogdm9pZCBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50RGVzdHJveWVkKFJlbmRlck9i
amVjdCogcmVuZGVyZXIpCg==
</data>
<flag name="review"
          id="105748"
          type_id="1"
          status="-"
          setter="krit"
    />
    <flag name="commit-queue"
          id="105749"
          type_id="3"
          status="-"
          setter="simon.fraser"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>108730</attachid>
            <date>2011-09-26 15:16:13 -0700</date>
            <delta_ts>2011-09-26 15:30:17 -0700</delta_ts>
            <desc>patch, fixed the comment and the test</desc>
            <filename>68457.patch</filename>
            <type>text/plain</type>
            <size>6826</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0NzExMTBkLi5hNTIyNWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMDkt
MjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgPGFu
aW1hdGVDb2xvcj4gYXBwbGllZCB0byBmaWx0ZXJlZCBlbGxpcHNlIGRvZXMgbm90IHVwZGF0ZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg0NTcKKyAg
ICAgICAgPHJkYXI6Ly9wcm9ibGVtLzEwMTU0Nzc3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3QgdGhhdCBjaGFuZ2luZyB0aGUgZmlsbCBvbiBh
IGZpbHRlcmVkIHNoYXBlIHByb3Blcmx5IGludmFsaWRhdGVzIHRoZSBmaWx0ZXJlZCByZXN1bHQu
CisKKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvZmlsdGVycy9hbmltYXRlLWZpbGwuc3ZnOiBBZGRlZC4KKwogMjAx
MS0wOS0yNiAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtRdF0gVW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcv
ZmlsdGVycy9hbmltYXRlLWZpbGwtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRl
cnMvYW5pbWF0ZS1maWxsLWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMGQ3ZWU0YzJmN2Q1ZjIx
MWIzZTRhMGNjZDdhZWQxOTEzODAxY2I3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxMTM4OAp6
Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkxQiVRbFlicFJ6bmtCOWdDQ000NyQ9
U3VGeGVWcyEKejc4VkFeRFFPMFk3RGd0aURIZHIpJD51MyhpM2FBJHJlK3EjTXlWT3xfcFNrJkJB
NG14OU5fOGZ0UG9JP3BPJUBFCnolRF87OypjeCZfYCpNS0R6Z3d3dUgkM2ROTipDbWAlYjF2IzU/
dGF1WElwbW91Q3IwRSUoZzNmJXdDb29Hd1liagp6K3F3PHhIQG93I2orVEY5eEJKUD9iRig/V2RK
XnczaztFVHNJK1QzQURRJXVOK3IoRXJuMGU+LS1TPmFLdnM4Y24KekJ5UGRhIWw9dDRgdXJsSCFU
dmBOe1c8YlA8bytrZEkybVd7S04tSD1aREwrKD9oZ0V5SCZ3cGh7RnpWZ1NXZH5pCnp7UUlsX0Mx
MEkybH1HU3tqS2FQdHJibTw+TWxRJlZ4bCR0aDs5QlNWeHJVflAmaVdLYkVOOWBBUHEpWlZaaFk5
Jgp6dDJgfnUjTUVJSD1PT2xeUEZDSks5NHV5SktLUlVnPDZOVzI2THF6ZmxrfmM2Uj1XbzJLVFVE
biNQaldnZH54JXEKel96ZiRqeXF2eEV4aj05M0VKP3FNSENefVFFbyUjVW8tdGZLWGRmQEoqS3g8
KGYoV3o2aSVzakMmWj97dlJOTVJmCnpUfWtHUXgyZHpITWB7WUclQmJ1fjNSITJJbGxoRkJ4cFVV
RCVXdUJ+T3hpSHRXV1J9VjxtYm40MUUjWFBIYXo8RQp6bzQ0RFNVMzsoSm87YUVQdjhtbTEmMT59
enxNcV9XVEdhS2xhPyojX1RqWUFMZXU8dUI2P1hnZmxlNWN8NDw5S0gKenZ9ZzhrWVUtMG8oUmVW
P2k2P1BaQHt2X1BlOGVQYHlwfitiRUQ1UkhXTzI8fVdBZTFPR1ZUPjg8TjA+UGlHN1hVCnp3QnlA
QC19Q09PVWhtckArSW4+Ujt2MGMpdz5HfXF3TWxyRWJiVj4hKCMzZlgmMzhWWEV1RmlYbjxNYUYq
VkJ6Mgp6YWpCPkxuKnkod25td0JrSnBFNThfaiNpIT9eTWYjQjZ4UEtgNElPKkR+SFIhUnM3S097
Wn4kJHlTRztHYlZIJHoKei1SZ1A0WE9GIzZ6MnROMGI7XiRZVTA8RCFOJks4KD1vfmU3cE5qOUNG
M1Y1MTA9VSlMJTl+ejRkbGFMOG9xZ1chCnpHcURlVT9jYFhpU0VTcmBOY15qN2pwQiFXI3syQnp4
OTR7eEYyQjkrYT8weiloRWNDflUhSiZZKFo7R057a1BTPgp6KzRpanhtZlc7KS1eUkt5NCglPEFs
QyEpdm0tc1U8dExGTW18STlsMXk8aUo+T34qUmomaT5VJjtTPkN8eCQ8WjcKeiM3KmIlVDw+dkha
LWFJSlRqcClTKko3ViMjdXI8RCkrJUBAe3JCKXxKQFpodUlMUU1TaX1sMTg3PyhjYispeHZ6Cnpe
SUcoX3l2QEFyNEhLPHpDJEZ7NVAyQU9PN3E8RiNpQyhsRTw4Sj1kU0xkSCFiQGxHXkMtdk1GaX5x
MiNST1kmTgp6WGtvayYxQV92Q3I7QjRxMT5AVkJoSXZrYjB4WFVuaj1yNTtVKShyJTEjXj45amRw
Szw7TVIpJHxLaVN7ZXhBKVQKekZXJno2Xio8OChJMmY1JkkwT19OOFhXWEtPeEJsRGFjRSRHaTV5
VD1hTnZfVDUwTTZvZXFteC1WIXFYNVJMTisjCnp1eUJrZjIyaSNjJV9PNUchKVM+KWMmZHBIYiQw
VX5LYnJ9VTUrR3dgTCVsPGdVb3VpWHJvK2clc3BKbTArSmgrYwp6VX1mPCptRHoqUCl1XmlBRnMp
QS1SdXpJeFZlcXU8NiRFQl5zSHpQdEVHSTQlRCNRNT4zWmVvRW4jJkVMXihqY3oKenY8OE1xdDJg
dSZtb1BEQEpULUJIODM4T2xnYWoxNGtNfDszOU9CVGhXWD5AcHc/IX45ck0lcE1XYnAocGp0TnNQ
CnpPQ1koOytvM142KSpRKj1BViRWWE1OJnZeT1dAPn51PUZ2SyNTVTV1cWslRlNDQGlCWGdeXzdB
YHpWWi1ESTVaJAp6MXVhQTRYemVwdkI/SD9McXdTUUAjdjhEQUpLQ1paUCNBNklnTCtWLWVWQD98
cH09U19uVDJDPz0lOFZBPXM+fD8KemJVY009Ym0jeSRZQnhHYEZna1BxOU4hJXNJdjU9fjA4SXVD
aFNCXnY+d341O0ZtVClldHAkS2dHPm89Y00leWdGCnotdSE1cld3Z3gjRGlCODdFVGU2ZihLWldj
QjdiemNXMDE2Mmg7T0hTOzdeKiR2dDBsMk5mcUY3VmdeckZLYkxoKgpHMn43YTxadVlxVgoKbGl0
ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMv
YW5pbWF0ZS1maWxsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2FuaW1h
dGUtZmlsbC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MjlmZWE5ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2FuaW1h
dGUtZmlsbC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMCBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6
ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAo
MCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAoMCwwKSBzaXplIDEx
MXgxMTEKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0ICgwLDApIHNpemUg
MHgwCisgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBbaWQ9ImZpbHQiXSBb
ZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRpdmVVbml0cz11c2VyU3BhY2VP
blVzZV0KKyAgICAgICAgW2ZlT2Zmc2V0IGR4PSIwLjAwIiBkeT0iMC4wMCJdCisgICAgICAgICAg
W1NvdXJjZUdyYXBoaWNdCisgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDAsMCkgc2l6ZSAx
MTF4MTExIFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9
MC4wMF0gW3dpZHRoPTEwMC4wMF0gW2hlaWdodD0xMDAuMDBdCisgICAgICBbZmlsdGVyPSJmaWx0
Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gYXQgKC0xMCwtMTApIHNpemUgMTIw
eDEyMApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2ZpbHRlcnMvYW5pbWF0ZS1maWxsLnN2
ZyBiL0xheW91dFRlc3RzL3N2Zy9maWx0ZXJzL2FuaW1hdGUtZmlsbC5zdmcKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZGFmOGUzMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL3N2Zy9maWx0ZXJzL2FuaW1hdGUtZmlsbC5zdmcKQEAgLTAsMCArMSwyNSBAQAorPHN2
ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KKyAgICA8dGl0bGU+VGhlIHJlY3RhbmdsZSBzaG91bGQg
cmFwaWRseSBhbmltYXRlIHRvIGdyZWVuLjwvdGl0bGU+Cis8ZGVmcz4KKyAgICA8ZmlsdGVyIGlk
PSJmaWx0Ij4KKyAgICAgICAgPGZlT2Zmc2V0IC8+CisgICAgPC9maWx0ZXI+Cis8L2RlZnM+Cis8
cmVjdCBpZD0icmVjdCIgd2lkdGg9IjEwMHB4IiBoZWlnaHQ9IjEwMHB4IiB4PSIwIiB5PSIwIiBm
aWxsPSJyZWQiIGZpbHRlcj0idXJsKCNmaWx0KSIgLz4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24g
ZmluaXNoKCkKKyAgICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZWN0Jyku
c2V0QXR0cmlidXRlKCdmaWxsJywgJ2dyZWVuJyk7CisKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworICAgIH0KKyAgICAKKyAgICBzZXRUaW1l
b3V0KGZpbmlzaCwgMCk7Cis8L3NjcmlwdD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRiY2NhNGMu
LjdlYzhmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxMS0wOS0yNiAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICA8YW5pbWF0ZUNvbG9y
PiBhcHBsaWVkIHRvIGZpbHRlcmVkIGVsbGlwc2UgZG9lcyBub3QgdXBkYXRlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02ODQ1NworICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTAxNTQ3Nzc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgSW52YWxpZGF0ZSB0aGUgZmlsdGVyJ3MgY2FjaGUgd2hlbiBzdHlsZSBj
aGFuZ2VzIHRha2UgcGxhY2Ugc28gdGhhdCBzdHlsZSBjaGFuZ2VzIGFyZSByZXNwZWN0ZWQuCisK
KyAgICAgICAgVGVzdDogc3ZnL2ZpbHRlcnMvYW5pbWF0ZS1maWxsLnN2ZworCisgICAgICAgICog
cmVuZGVyaW5nL3N2Zy9TVkdSZXNvdXJjZXNDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
VkdSZXNvdXJjZXNDYWNoZTo6Y2xpZW50U3R5bGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6
OlNWR1Jlc291cmNlc0NhY2hlOjpjbGllbnRVcGRhdGVkRnJvbUVsZW1lbnQpOgorCiAyMDExLTA5
LTI2ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAg
ICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByOTUyNTYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jlc291cmNlc0NhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2VzQ2FjaGUuY3BwCmluZGV4IDMwZjg2YzMuLmJiZDQ0
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVzb3VyY2Vz
Q2FjaGUuY3BwCkBAIC0xMjgsNyArMTI4LDcgQEAgdm9pZCBTVkdSZXNvdXJjZXNDYWNoZTo6Y2xp
ZW50U3R5bGVDaGFuZ2VkKFJlbmRlck9iamVjdCogcmVuZGVyZXIsIFN0eWxlRGlmZmVyZW4KICAg
ICBpZiAoZGlmZiA9PSBTdHlsZURpZmZlcmVuY2VFcXVhbCkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gSW4gdGhpcyBjYXNlIHRoZSBwcm9wZXIgU1ZHRkUqRWxlbWVudCB3aWxsIGltcGx5IHdo
ZXRoZXIgdGhlIG1vZGlmaWRlZCBDU1MgcHJvcGVydGllcyBpbXBsaWVzIGEgcmVsYXlvdXQgb3Ig
cmVwYWludC4KKyAgICAvLyBJbiB0aGlzIGNhc2UgdGhlIHByb3BlciBTVkdGRSpFbGVtZW50IHdp
bGwgZGVjaWRlIHdoZXRoZXIgdGhlIG1vZGlmaWVkIENTUyBwcm9wZXJ0aWVzIHJlcXVpcmUgYSBy
ZWxheW91dCBvciByZXBhaW50LgogICAgIGlmIChyZW5kZXJlci0+aXNTVkdSZXNvdXJjZUZpbHRl
clByaW1pdGl2ZSgpICYmIGRpZmYgPT0gU3R5bGVEaWZmZXJlbmNlUmVwYWludCkKICAgICAgICAg
cmV0dXJuOwogCkBAIC0xNDQsNiArMTQ0LDEyIEBAIHZvaWQgU1ZHUmVzb3VyY2VzQ2FjaGU6OmNs
aWVudFVwZGF0ZWRGcm9tRWxlbWVudChSZW5kZXJPYmplY3QqIHJlbmRlcmVyLCBjb25zdCBSCiAg
ICAgU1ZHUmVzb3VyY2VzQ2FjaGUqIGNhY2hlID0gcmVzb3VyY2VzQ2FjaGVGcm9tUmVuZGVyT2Jq
ZWN0KHJlbmRlcmVyKTsKICAgICBjYWNoZS0+cmVtb3ZlUmVzb3VyY2VzRnJvbVJlbmRlck9iamVj
dChyZW5kZXJlcik7CiAgICAgY2FjaGUtPmFkZFJlc291cmNlc0Zyb21SZW5kZXJPYmplY3QocmVu
ZGVyZXIsIG5ld1N0eWxlKTsKKworICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZHUmVz
b3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdChyZW5kZXJlcik7Cisg
ICAgaWYgKCFyZXNvdXJjZXMpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc291cmNlcy0+cmVt
b3ZlQ2xpZW50RnJvbUNhY2hlKHJlbmRlcmVyKTsKIH0KIAogdm9pZCBTVkdSZXNvdXJjZXNDYWNo
ZTo6Y2xpZW50RGVzdHJveWVkKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCg==
</data>
<flag name="review"
          id="105765"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>