<?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>43161</bug_id>
          
          <creation_ts>2010-07-28 17:01:16 -0700</creation_ts>
          <short_desc>2d.path.clip.empty.html test is failing</short_desc>
          <delta_ts>2010-08-10 20:11:19 -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>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://philip.html5.org/tests/canvas/suite/tests/2d.path.clip.empty.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Matthew Delaney">mdelaney7</reporter>
          <assigned_to name="Matthew Delaney">mdelaney7</assigned_to>
          <cc>commit-queue</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>257452</commentid>
    <comment_count>0</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-28 17:01:16 -0700</bug_when>
    <thetext>2d.path.clip.empty.html test is failing because of a difference between CG&apos;s notion of clipping against an absent path and that of the canvas spec.

The canvas spec says:
&quot;The clip() method must create a new clipping region by calculating the intersection of the current clipping region and the area described by the current path, using the non-zero winding number rule.&quot;
[http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#dom-context-2d-clip]

Whereas under the CGContext spec, the function &quot;CGContextClip&quot; says:
&quot;If the context does not have a current path, the function does nothing.&quot;
Note: This is currently what the CG port is using to clip.
[http://developer.apple.com/mac/library/documentation/GraphicsImaging/Reference/CGContext/Reference/reference.html#//apple_ref/c/func/CGContextClip]

The canvas spec appears to be using the fill rules outline in SVG: [http://www.w3.org/TR/SVG/painting.html#FillProperties]

Philip and I both agree that the canvas spec should be a little clearer about which definitions it&apos;s using and about how the null/base type bases should be handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257458</commentid>
    <comment_count>1</comment_count>
      <attachid>62895</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-28 17:13:30 -0700</bug_when>
    <thetext>Created attachment 62895
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257900</commentid>
    <comment_count>2</comment_count>
      <attachid>62895</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2010-07-29 14:54:37 -0700</bug_when>
    <thetext>Comment on attachment 62895
Patch

I like to put my comments after the function name.  I&apos;m not sure there&apos;s any rule about that, but I think that&apos;s how most people do it.  Actually, I&apos;m kind of confused by the comment.  I get that you&apos;re trying to match the spec.  What does the spec say?  Does it talk about nonexistent paths?  How is a nonexistent path different from an empty path?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257909</commentid>
    <comment_count>3</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 15:15:01 -0700</bug_when>
    <thetext>If the canvas spec is assumed to be using the common non-zero winding number rule (as outlined in the SVG spec), then in the case where there are no paths specified (e.g. ctx.beginPath() was called, but no other path operations were called thereafter), I&apos;m assuming that the whole current clipping region has a winding number of zero. 
=&gt;The area described by the current path is no area. 
=&gt; Calling ctx.clip() with no path sets the clipping region to be nothing (the intersection of nothing and anything is nothing). 

The canvas spec doesn&apos;t define what a path is, let alone define what an empty or non-existent path is. The platforms do however have notions of empty paths. It&apos;s not clear to me if all the platforms all agree on what an empty path is (or even paths and subpaths in general). CG, for example, says that an empty path is a path that contains no elements. So, from talking with Philip (and noting Firefox and Opera also implement it this way), we agree that it makes more sense to assume the no-path case of the non-zero winding number rule like SVG does and compute the resulting clipping region from calling clip to be the null region.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257922</commentid>
    <comment_count>4</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 15:29:59 -0700</bug_when>
    <thetext>If the canvas spec is assumed to be using the common non-zero winding number rule (as outlined in the SVG spec), then in the case where there are no paths specified (e.g. ctx.beginPath() was called, but no other path operations were called thereafter), I&apos;m assuming that the whole current clipping region has a winding number of zero. 
=&gt;The area described by the current path is no area. 
=&gt; Calling ctx.clip() with no path sets the clipping region to be nothing (the intersection of nothing and anything is nothing). 

The canvas spec doesn&apos;t define what a path is, let alone define what an empty or non-existent path is. The platforms do however have notions of empty paths. It&apos;s not clear to me if all the platforms all agree on what an empty path is (or even paths and subpaths in general). CG, for example, says that an empty path is a path that contains no elements. So, from talking with Philip (and noting Firefox and Opera also implement it this way), we agree that it makes more sense to assume the no-path case of the non-zero winding number rule like SVG does and compute the resulting clipping region from calling clip to be the null region.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257925</commentid>
    <comment_count>5</comment_count>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 15:33:44 -0700</bug_when>
    <thetext>Oops, refresh problemo.

The last thing I forgot to add was the fact that CG happens to consider the base case of having &quot;no paths&quot; as one in which it will not clip anything. This differs from our interpretation of the spec (the whole thing I was saying in the last comment above) and thus this patch essentially &quot;tricks&quot; CG into clipping against a path defined area of nothing by passing it a path with a singular point instead of the non-existant path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257944</commentid>
    <comment_count>6</comment_count>
      <attachid>63006</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 15:51:02 -0700</bug_when>
    <thetext>Created attachment 63006
Made Changelog cleaner

Cleaned up the changelog to make a little more sense at a higher level.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257964</commentid>
    <comment_count>7</comment_count>
      <attachid>63006</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 16:31:39 -0700</bug_when>
    <thetext>Comment on attachment 63006
Made Changelog cleaner

The MIME type needed to be set on this patch, and the &quot;patch&quot; check box checked.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257965</commentid>
    <comment_count>8</comment_count>
      <attachid>63008</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 16:32:28 -0700</bug_when>
    <thetext>Created attachment 63008
take 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257968</commentid>
    <comment_count>9</comment_count>
      <attachid>63006</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 16:34:43 -0700</bug_when>
    <thetext>Comment on attachment 63006
Made Changelog cleaner

&gt; +    if (path.isEmpty())
&gt; +        CGContextMoveToPoint(context, 0.0, 0.0);
&gt; +    else
&gt; +        CGContextAddPath(context, path.platformPath());

This code needs a &quot;why&quot; comment. What does CoreGraphics do when you pass an empty path to CGContextAddPath? How does that differ from what CGContextMoveToPoint does? Why do we want GraphicsContext to do this different thing?

I suspect this patch is right, but the code is too mysterious without a comment. But the comment should be brief, and answer the question, &quot;Why do we need to have a special case for empty paths?&quot;

The answer to &quot;why&quot; can&apos;t be: &quot;This is what I think the canvas spec says to do.&quot; That&apos;s too vague and this is GraphicsContext, not canvas.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>257970</commentid>
    <comment_count>10</comment_count>
      <attachid>63008</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 16:35:19 -0700</bug_when>
    <thetext>Comment on attachment 63008
take 2

Needs a “why” comment as I mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258046</commentid>
    <comment_count>11</comment_count>
      <attachid>63026</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-29 21:10:45 -0700</bug_when>
    <thetext>Created attachment 63026
take 3

Added in code comment. Modified description in changelog to better match what the change is actually trying to achieve.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258069</commentid>
    <comment_count>12</comment_count>
      <attachid>63026</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-07-29 23:23:15 -0700</bug_when>
    <thetext>Comment on attachment 63026
take 3

&gt; +    // If the path is empty, CGContextClip will do nothing.
&gt; +    // If the path contains only a point, CGContextClip will reduce the
&gt; +    // clipping region to nothing. Since, we want this method to reduce
&gt; +    // the clipping region to nothing when the path is empty, swapping
&gt; +    // a trivial path (one containing only a point) in for the empty 
&gt; +    // path achieves our desired behavior.

Great comment. You could probably shorten it a bit, but this is exactly the kind of comment I was looking for.

An even more efficient way to get the desired result would be to check for the empty patch and call CGContextClipToRect(context, CGRectZero) instead of CGContextBeginPath/CGContextAddPath/CGContextClip in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258077</commentid>
    <comment_count>13</comment_count>
      <attachid>63026</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-29 23:55:31 -0700</bug_when>
    <thetext>Comment on attachment 63026
take 3

Rejecting patch 63026 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/build-webkit&apos;, &apos;--debug&apos;]&quot; exit_code: 1
Last 500 characters of output:
/usr/bin/yacc
    /bin/sh -c /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Script-5DF50887116F3077005202AB.sh
** BUILD FAILED **

The following build commands failed:
WebCore:
	Distributed-CompileC /Users/eseidel/Projects/CommitQueue/WebKitBuild/WebCore.build/Debug/WebCore.build/Objects-normal/i386/GraphicsContextCG.o /Users/eseidel/Projects/CommitQueue/WebCore/platform/graphics/cg/GraphicsContextCG.cpp normal i386 c++ com.apple.compilers.gcc.4_2
(1 failure)


Full output: http://queues.webkit.org/results/3567644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258469</commentid>
    <comment_count>14</comment_count>
      <attachid>63122</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-07-30 16:40:52 -0700</bug_when>
    <thetext>Created attachment 63122
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258539</commentid>
    <comment_count>15</comment_count>
      <attachid>63122</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-07-30 22:20:56 -0700</bug_when>
    <thetext>Comment on attachment 63122
Patch

Rejecting patch 63122 from commit-queue.

Failed to run &quot;[u&apos;/Users/eseidel/Projects/CommitQueue/WebKitTools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Darin Adler&apos;, u&apos;--force&apos;]&quot; exit_code: 1
Parsed 4 diffs from patch file(s).
patching file WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file WebCore/platform/graphics/cg/GraphicsContextCG.cpp
patching file LayoutTests/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file LayoutTests/platform/mac/Skipped
Hunk #1 FAILED at 164.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/platform/mac/Skipped.rej

Full output: http://queues.webkit.org/results/3559709</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262845</commentid>
    <comment_count>16</comment_count>
      <attachid>64043</attachid>
    <who name="Matthew Delaney">mdelaney7</who>
    <bug_when>2010-08-10 14:13:34 -0700</bug_when>
    <thetext>Created attachment 64043
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262979</commentid>
    <comment_count>17</comment_count>
      <attachid>64043</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-10 20:11:14 -0700</bug_when>
    <thetext>Comment on attachment 64043
Patch

Clearing flags on attachment: 64043

Committed r65118: &lt;http://trac.webkit.org/changeset/65118&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262980</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-08-10 20:11:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>62895</attachid>
            <date>2010-07-28 17:13:30 -0700</date>
            <delta_ts>2010-07-29 15:51:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43161-20100728171329.patch</filename>
            <type>text/plain</type>
            <size>2688</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDI0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6IEFkZGVkIGluIGJhc2UgY2Fz
ZSBjaGVjaworICAgICAgICB0byBzZWUgaWYgdGhlIGN1cnJlbnQgcGF0aCBpcyBub25leGlzdGVu
dCwgYW5kIHRodXMgY3JlYXRpbmcgYW4KKyAgICAgICAgZW1wdHkgcGF0aCBzbyB0aGF0IHRoZSBD
b250ZXh0Q2xpcCBDRyBjYWxsIGFzc3VtZXMgdGhlIGJlaGF2aW9yCisgICAgICAgIG91dGxpbmVk
IGluIHRoZSBjYW52YXMgc3BlYyBpbnN0ZWFkIG9mIGRvaW5nIG5vdGhpbmcgZm9yIHRoZQorICAg
ICAgICBub25leGlzdGVudCBwYXRoIGNhc2UuCisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0Nv
bnRleHQ6OmNsaXApOgorCiAyMDEwLTA3LTI4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCShyZXZpc2lv
biA2NDI0MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0
Q0cuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05NTEsNyArOTUxLDEyIEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0OjpjbGlwKGNvbnN0IFBhdGgmIHAKICAgICAgICAgcmV0dXJuOwogICAgIENHQ29udGV4
dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0KCk7CiAgICAgQ0dDb250ZXh0QmVnaW5QYXRo
KGNvbnRleHQpOwotICAgIENHQ29udGV4dEFkZFBhdGgoY29udGV4dCwgcGF0aC5wbGF0Zm9ybVBh
dGgoKSk7CisgICAgCisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBDR0NvbnRleHRN
b3ZlVG9Qb2ludChjb250ZXh0LCAwLjAsIDAuMCk7CisgICAgZWxzZQorICAgICAgICBDR0NvbnRl
eHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOworICAgIAogICAgIENHQ29u
dGV4dENsaXAoY29udGV4dCk7CiAgICAgbV9kYXRhLT5jbGlwKHBhdGgpOwogfQpJbmRleDogTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwko
cmV2aXNpb24gNjQyNDUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwxMiBAQAorMjAxMC0wNy0yOCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlA
YXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIDJkLnBhdGguY2xpcC5lbXB0eS5odG1sIHRlc3QgaXMgZmFpbGluZworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDMxNjEKKworICAgICAgICAqIHBs
YXRmb3JtL21hYy9Ta2lwcGVkOiBVbnNraXBwaW5nIG5vdyBwYXNzaW5nIHBhdGguY2xpcC5lbXB0
eQorCiAyMDEwLTA3LTI4ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZhaS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21h
Yy9Ta2lwcGVkCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CShyZXZpc2lvbiA2NDI0MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3
b3JraW5nIGNvcHkpCkBAIC0xNjQsNyArMTY0LDYgQEAgc2Nyb2xsYmFycy9zY3JvbGxiYXItY2xp
Y2stZG9lcy1ub3QtYmx1cgogCiAjIEZhaWxpbmcgY2FudmFzIHRlc3QgY2FzZXMgZnJvbSBodHRw
Oi8vcGhpbGlwLmh0bWw1Lm9yZy90ZXN0cy9jYW52YXMvc3VpdGUvdGVzdHMvCiBjYW52YXMvcGhp
bGlwL3Rlc3RzLzJkLmRyYXdJbWFnZS5icm9rZW4uaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5wYXRoLmNsaXAuZW1wdHkuaHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3Qu
c2hhZG93Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLm9wZXJhdGlvbi5j
bGVhci5odG1sCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uZGFy
a2VyLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63006</attachid>
            <date>2010-07-29 15:51:02 -0700</date>
            <delta_ts>2010-07-29 21:10:45 -0700</delta_ts>
            <desc>Made Changelog cleaner</desc>
            <filename>bug-43161-20100728171329-2.patch</filename>
            <type>text/plain</type>
            <size>2671</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDI0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmNsaXApOgorICAgICAgICBUcmlja2luZyBDRydzIGNvbnRleHQg
Y2xpcCBpbnRvIGJlaGF2aW5nIGFzIFBoaWxpcCBhbmQgSQorICAgICAgICBhc3N1bWUgdGhlIGNh
bnZhcyBzcGVjIHNheXMgdG8gZG8gc28gZm9yIHRoZSBjYXNlIHdpdGggbm8KKyAgICAgICAgZXhw
bGljaXQgcGF0aCAocGF0aHMgd2l0aCBubyBlbGVtZW50cykuIEFuIGFkZGl0aW9uIHRvIHRoZSBz
cGVjCisgICAgICAgIHRvIGNsYXJpZnkgdGhpcyBwb3J0aW9uIGlzIGluIHRoZSB3b3Jrcy4KKwog
MjAxMC0wNy0yOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE9qYW4gVmFmYWkuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNpb24gNjQyNDApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTUxLDcgKzk1MSwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25z
dCBQYXRoJiBwCiAgICAgICAgIHJldHVybjsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBs
YXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dEJlZ2luUGF0aChjb250ZXh0KTsKLSAgICBD
R0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOworICAgIAorICAg
IGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgQ0dDb250ZXh0TW92ZVRvUG9pbnQoY29udGV4
dCwgMC4wLCAwLjApOworICAgIGVsc2UKKyAgICAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0
LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKKyAgICAKICAgICBDR0NvbnRleHRDbGlwKGNvbnRleHQp
OwogICAgIG1fZGF0YS0+Y2xpcChwYXRoKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0MjQ1KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAyZC5wYXRoLmNsaXAu
ZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDogVW5za2lwcGluZyBub3cgcGFzc2luZyBwYXRoLmNsaXAuZW1wdHkKKwogMjAxMC0wNy0yOCAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9q
YW4gVmFmYWkuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNjQyNDAp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAt
MTY0LDcgKzE2NCw2IEBAIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNsaWNrLWRvZXMtbm90LWJsdXIK
IAogIyBGYWlsaW5nIGNhbnZhcyB0ZXN0IGNhc2VzIGZyb20gaHR0cDovL3BoaWxpcC5odG1sNS5v
cmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rlc3RzLwogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3
SW1hZ2UuYnJva2VuLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5jbGlwLmVtcHR5
Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0LnNoYWRvdy5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uY2xlYXIuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUub3BlcmF0aW9uLmRhcmtlci5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63008</attachid>
            <date>2010-07-29 16:32:28 -0700</date>
            <delta_ts>2010-07-29 21:10:45 -0700</delta_ts>
            <desc>take 2</desc>
            <filename>bug-43161-20100728171329-2.patch</filename>
            <type>text/plain</type>
            <size>2671</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDI0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmNsaXApOgorICAgICAgICBUcmlja2luZyBDRydzIGNvbnRleHQg
Y2xpcCBpbnRvIGJlaGF2aW5nIGFzIFBoaWxpcCBhbmQgSQorICAgICAgICBhc3N1bWUgdGhlIGNh
bnZhcyBzcGVjIHNheXMgdG8gZG8gc28gZm9yIHRoZSBjYXNlIHdpdGggbm8KKyAgICAgICAgZXhw
bGljaXQgcGF0aCAocGF0aHMgd2l0aCBubyBlbGVtZW50cykuIEFuIGFkZGl0aW9uIHRvIHRoZSBz
cGVjCisgICAgICAgIHRvIGNsYXJpZnkgdGhpcyBwb3J0aW9uIGlzIGluIHRoZSB3b3Jrcy4KKwog
MjAxMC0wNy0yOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IE9qYW4gVmFmYWkuCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nn
L0dyYXBoaWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNpb24gNjQyNDApCisrKyBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtOTUxLDcgKzk1MSwxMiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6Y2xpcChjb25z
dCBQYXRoJiBwCiAgICAgICAgIHJldHVybjsKICAgICBDR0NvbnRleHRSZWYgY29udGV4dCA9IHBs
YXRmb3JtQ29udGV4dCgpOwogICAgIENHQ29udGV4dEJlZ2luUGF0aChjb250ZXh0KTsKLSAgICBD
R0NvbnRleHRBZGRQYXRoKGNvbnRleHQsIHBhdGgucGxhdGZvcm1QYXRoKCkpOworICAgIAorICAg
IGlmIChwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgQ0dDb250ZXh0TW92ZVRvUG9pbnQoY29udGV4
dCwgMC4wLCAwLjApOworICAgIGVsc2UKKyAgICAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0
LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKKyAgICAKICAgICBDR0NvbnRleHRDbGlwKGNvbnRleHQp
OwogICAgIG1fZGF0YS0+Y2xpcChwYXRoKTsKIH0KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDY0MjQ1KQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFwcGxlLmNvbT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAyZC5wYXRoLmNsaXAu
ZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDogVW5za2lwcGluZyBub3cgcGFzc2luZyBwYXRoLmNsaXAuZW1wdHkKKwogMjAxMC0wNy0yOCAg
VG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9q
YW4gVmFmYWkuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24gNjQyNDAp
CisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5KQpAQCAt
MTY0LDcgKzE2NCw2IEBAIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNsaWNrLWRvZXMtbm90LWJsdXIK
IAogIyBGYWlsaW5nIGNhbnZhcyB0ZXN0IGNhc2VzIGZyb20gaHR0cDovL3BoaWxpcC5odG1sNS5v
cmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rlc3RzLwogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5kcmF3
SW1hZ2UuYnJva2VuLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5jbGlwLmVtcHR5
Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0LnNoYWRvdy5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uY2xlYXIuaHRtbAogY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUub3BlcmF0aW9uLmRhcmtlci5odG1sCg==
</data>
<flag name="review"
          id="51290"
          type_id="1"
          status="-"
          setter="darin"
    />
    <flag name="commit-queue"
          id="51291"
          type_id="3"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63026</attachid>
            <date>2010-07-29 21:10:45 -0700</date>
            <delta_ts>2010-07-30 16:40:48 -0700</delta_ts>
            <desc>take 3</desc>
            <filename>bug-43161-20100728171329-3.patch</filename>
            <type>text/plain</type>
            <size>3069</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDI0NSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMjggIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmNsaXApOgorICAgICAgICBDYXRjaGluZyB0aGUgZW1wdHkgcGF0
aCBjYXNlIGZyb20gYmVpbmcgc2VudCBkaXJlY3RseSB0byAKKyAgICAgICAgQ0dDb250ZXh0Q2xp
cCAtIHdoaWNoIHdvdWxkIGlnbm9yZSBpdC4gSW5zdGVhZCwgYWRkaW5nCisgICAgICAgIGEgbG9u
ZSBwb2ludCB0byB0aGUgZW1wdHkgcGF0aCBzbyB3ZSBnZXQgYmFjayB0aGUgZGVzaXJlZAorICAg
ICAgICBiZWhhdmlvciBvZiByZWR1Y2luZyB0aGUgY2xpcHBpbmcgcmVnaW9uIHRvIG5vdGhpbmcu
CisKIDIwMTAtMDctMjggIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBPamFuIFZhZmFpLgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJKHJldmlzaW9uIDY0MjQwKQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTk1MSw3ICs5NTEsMTggQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmNsaXAo
Y29uc3QgUGF0aCYgcAogICAgICAgICByZXR1cm47CiAgICAgQ0dDb250ZXh0UmVmIGNvbnRleHQg
PSBwbGF0Zm9ybUNvbnRleHQoKTsKICAgICBDR0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7Ci0g
ICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3JtUGF0aCgpKTsKKyAgICAK
KyAgICAvLyBJZiB0aGUgcGF0aCBpcyBlbXB0eSwgQ0dDb250ZXh0Q2xpcCB3aWxsIGRvIG5vdGhp
bmcuCisgICAgLy8gSWYgdGhlIHBhdGggY29udGFpbnMgb25seSBhIHBvaW50LCBDR0NvbnRleHRD
bGlwIHdpbGwgcmVkdWNlIHRoZQorICAgIC8vIGNsaXBwaW5nIHJlZ2lvbiB0byBub3RoaW5nLiBT
aW5jZSwgd2Ugd2FudCB0aGlzIG1ldGhvZCB0byByZWR1Y2UKKyAgICAvLyB0aGUgY2xpcHBpbmcg
cmVnaW9uIHRvIG5vdGhpbmcgd2hlbiB0aGUgcGF0aCBpcyBlbXB0eSwgc3dhcHBpbmcKKyAgICAv
LyBhIHRyaXZpYWwgcGF0aCAob25lIGNvbnRhaW5pbmcgb25seSBhIHBvaW50KSBpbiBmb3IgdGhl
IGVtcHR5IAorICAgIC8vIHBhdGggYWNoaWV2ZXMgb3VyIGRlc2lyZWQgYmVoYXZpb3IuCisgICAg
aWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBDR0NvbnRleHRNb3ZlVG9Qb2ludChjb250ZXh0
LCAwLjAsIDAuMCk7CisgICAgZWxzZQorICAgICAgICBDR0NvbnRleHRBZGRQYXRoKGNvbnRleHQs
IHBhdGgucGxhdGZvcm1QYXRoKCkpOworICAgIAogICAgIENHQ29udGV4dENsaXAoY29udGV4dCk7
CiAgICAgbV9kYXRhLT5jbGlwKHBhdGgpOwogfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNjQyNDUpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAor
MjAxMC0wNy0yOCAgTWF0dGhldyBEZWxhbmV5ICA8bWRlbGFuZXlAYXBwbGUuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDJkLnBhdGguY2xpcC5l
bXB0eS5odG1sIHRlc3QgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDMxNjEKKworICAgICAgICAqIHBsYXRmb3JtL21hYy9Ta2lwcGVk
OiBVbnNraXBwaW5nIG5vdyBwYXNzaW5nIHBhdGguY2xpcC5lbXB0eQorCiAyMDEwLTA3LTI4ICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2ph
biBWYWZhaS4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCShyZXZpc2lvbiA2NDI0MCkK
KysrIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0x
NjQsNyArMTY0LDYgQEAgc2Nyb2xsYmFycy9zY3JvbGxiYXItY2xpY2stZG9lcy1ub3QtYmx1cgog
CiAjIEZhaWxpbmcgY2FudmFzIHRlc3QgY2FzZXMgZnJvbSBodHRwOi8vcGhpbGlwLmh0bWw1Lm9y
Zy90ZXN0cy9jYW52YXMvc3VpdGUvdGVzdHMvCiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmRyYXdJ
bWFnZS5icm9rZW4uaHRtbAotY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5wYXRoLmNsaXAuZW1wdHku
aHRtbAogY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jbGVhclJlY3Quc2hhZG93Lmh0bWwKIGNhbnZh
cy9waGlsaXAvdGVzdHMvMmQuY29tcG9zaXRlLm9wZXJhdGlvbi5jbGVhci5odG1sCiBjYW52YXMv
cGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uZGFya2VyLmh0bWwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63122</attachid>
            <date>2010-07-30 16:40:52 -0700</date>
            <delta_ts>2010-08-10 14:13:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43161-20100730164050.patch</filename>
            <type>text/plain</type>
            <size>3076</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDI5NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMzAgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmNsaXApOgorICAgICAgICBDYXRjaGluZyB0aGUgZW1wdHkgcGF0
aCBjYXNlIGZyb20gYmVpbmcgc2VudCBkaXJlY3RseSB0byAKKyAgICAgICAgQ0dDb250ZXh0Q2xp
cCAtIHdoaWNoIHdvdWxkIGlnbm9yZSBpdC4gSW5zdGVhZCwgdXNpbmcgCisgICAgICAgIENHQ29u
dGV4dENsaXAgd2l0aCBhIENHUmVjdFplcm8gdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZAorICAgICAg
ICBiZWhhdmlvciBvZiByZWR1Y2luZyB0aGUgY2xpcHBpbmcgcmVnaW9uIHRvIG5vdGhpbmcuCisK
IDIwMTAtMDctMjkgIEFkYW0gUm9iZW4gIDxhcm9iZW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJl
bW92ZSBzb21lIHVudXNlZCBXS0NBQ0ZMYXllciBtZW1iZXJzCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENHLmNwcAkocmV2aXNpb24g
NjQyOTQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NnL0dyYXBoaWNzQ29udGV4dENH
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTUwLDkgKzk1MCwxNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dDo6Y2xpcChjb25zdCBQYXRoJiBwCiAgICAgaWYgKHBhaW50aW5nRGlzYWJsZWQoKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIENHQ29udGV4dFJlZiBjb250ZXh0ID0gcGxhdGZvcm1Db250ZXh0
KCk7Ci0gICAgQ0dDb250ZXh0QmVnaW5QYXRoKGNvbnRleHQpOwotICAgIENHQ29udGV4dEFkZFBh
dGgoY29udGV4dCwgcGF0aC5wbGF0Zm9ybVBhdGgoKSk7Ci0gICAgQ0dDb250ZXh0Q2xpcChjb250
ZXh0KTsKKyAgICAKKyAgICAvLyBDR0NvbnRleHRDbGlwIGRvZXMgbm90aGluZyBpZiB0aGUgcGF0
aCBpcyBlbXB0eSwgc28gaW4gdGhpcyBjYXNlLCB3ZQorICAgIC8vIGluc3RlYWQgY2xpcCBhZ2Fp
bnN0IGEgemVybyByZWN0IHRvIHJlZHVjZSB0aGUgY2xpcHBpbmcgcmVnaW9uIHRvCisgICAgLy8g
bm90aGluZyAtIHdoaWNoIGlzIHRoZSBpbnRlbmRlZCBiZWhhdmlvciBvZiBjbGlwKCkgaWYgdGhl
IHBhdGggaXMgZW1wdHkuCisgICAgaWYgKHBhdGguaXNFbXB0eSgpKQorICAgICAgICBDR0NvbnRl
eHRDbGlwVG9SZWN0KGNvbnRleHQsIENHUmVjdFplcm8pOworICAgIGVsc2UgeworICAgICAgICBD
R0NvbnRleHRCZWdpblBhdGgoY29udGV4dCk7CisgICAgICAgIENHQ29udGV4dEFkZFBhdGgoY29u
dGV4dCwgcGF0aC5wbGF0Zm9ybVBhdGgoKSk7CisgICAgICAgIENHQ29udGV4dENsaXAoY29udGV4
dCk7CisgICAgfSAgICAKICAgICBtX2RhdGEtPmNsaXAocGF0aCk7CiB9CiAKSW5kZXg6IExheW91
dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDY0MzI2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTIgQEAKKzIwMTAtMDctMzAgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvU2tpcHBlZDogVW5za2lwcGluZyBub3cgcGFzc2luZyBwYXRoLmNsaXAuZW1wdHkK
KwogMjAxMC0wNy0yOSAgRHVtaXRydSBEYW5pbGl1YyAgPGR1bWlAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJlLWVuYWJsaW5nIGFsbCBzdG9yYWdlIHRlc3RzIG9uIFdpbmRv
d3MgaW4gQ2hyb21pdW0uCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkocmV2aXNpb24g
NjQyOTQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAkod29ya2luZyBjb3B5
KQpAQCAtMTY0LDcgKzE2NCw2IEBAIHNjcm9sbGJhcnMvc2Nyb2xsYmFyLWNsaWNrLWRvZXMtbm90
LWJsdXIKIAogIyBGYWlsaW5nIGNhbnZhcyB0ZXN0IGNhc2VzIGZyb20gaHR0cDovL3BoaWxpcC5o
dG1sNS5vcmcvdGVzdHMvY2FudmFzL3N1aXRlL3Rlc3RzLwogY2FudmFzL3BoaWxpcC90ZXN0cy8y
ZC5kcmF3SW1hZ2UuYnJva2VuLmh0bWwKLWNhbnZhcy9waGlsaXAvdGVzdHMvMmQucGF0aC5jbGlw
LmVtcHR5Lmh0bWwKIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2xlYXJSZWN0LnNoYWRvdy5odG1s
CiBjYW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uY2xlYXIuaHRtbAog
Y2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUub3BlcmF0aW9uLmRhcmtlci5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>64043</attachid>
            <date>2010-08-10 14:13:34 -0700</date>
            <delta_ts>2010-08-10 20:11:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-43161-20100810141333.patch</filename>
            <type>text/plain</type>
            <size>3018</size>
            <attacher name="Matthew Delaney">mdelaney7</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NTA4MykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTcgQEAKKzIwMTAtMDctMzAgIE1hdHRoZXcgRGVsYW5leSAgPG1kZWxhbmV5QGFw
cGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAyZC5wYXRoLmNsaXAuZW1wdHkuaHRtbCB0ZXN0IGlzIGZhaWxpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQzMTYxCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9jZy9HcmFwaGljc0NvbnRleHRDRy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpHcmFwaGljc0NvbnRleHQ6OmNsaXApOgorICAgICAgICBDYXRjaGluZyB0aGUgZW1wdHkgcGF0
aCBjYXNlIGZyb20gYmVpbmcgc2VudCBkaXJlY3RseSB0byAKKyAgICAgICAgQ0dDb250ZXh0Q2xp
cCAtIHdoaWNoIHdvdWxkIGlnbm9yZSBpdC4gSW5zdGVhZCwgdXNpbmcgCisgICAgICAgIENHQ29u
dGV4dENsaXAgd2l0aCBhIENHUmVjdFplcm8gdG8gYWNoaWV2ZSB0aGUgZGVzaXJlZAorICAgICAg
ICBiZWhhdmlvciBvZiByZWR1Y2luZyB0aGUgY2xpcHBpbmcgcmVnaW9uIHRvIG5vdGhpbmcuCisK
IDIwMTAtMDgtMTAgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENo
cm9taXVtIGJ1aWxkIGZpeC4KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3Jh
cGhpY3NDb250ZXh0Q0cuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCShyZXZpc2lvbiA2NTA4MykKKysrIFdlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2cvR3JhcGhpY3NDb250ZXh0Q0cuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC05NTAsOSArOTUwLDE3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpjbGlwKGNvbnN0IFBh
dGgmIHAKICAgICBpZiAocGFpbnRpbmdEaXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAgICAg
Q0dDb250ZXh0UmVmIGNvbnRleHQgPSBwbGF0Zm9ybUNvbnRleHQoKTsKLSAgICBDR0NvbnRleHRC
ZWdpblBhdGgoY29udGV4dCk7Ci0gICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBs
YXRmb3JtUGF0aCgpKTsKLSAgICBDR0NvbnRleHRDbGlwKGNvbnRleHQpOworCisgICAgLy8gQ0dD
b250ZXh0Q2xpcCBkb2VzIG5vdGhpbmcgaWYgdGhlIHBhdGggaXMgZW1wdHksIHNvIGluIHRoaXMg
Y2FzZSwgd2UKKyAgICAvLyBpbnN0ZWFkIGNsaXAgYWdhaW5zdCBhIHplcm8gcmVjdCB0byByZWR1
Y2UgdGhlIGNsaXBwaW5nIHJlZ2lvbiB0bworICAgIC8vIG5vdGhpbmcgLSB3aGljaCBpcyB0aGUg
aW50ZW5kZWQgYmVoYXZpb3Igb2YgY2xpcCgpIGlmIHRoZSBwYXRoIGlzIGVtcHR5LiAgICAKKyAg
ICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIENHQ29udGV4dENsaXBUb1JlY3QoY29udGV4
dCwgQ0dSZWN0WmVybyk7CisgICAgZWxzZSB7CisgICAgICAgIENHQ29udGV4dEJlZ2luUGF0aChj
b250ZXh0KTsKKyAgICAgICAgQ0dDb250ZXh0QWRkUGF0aChjb250ZXh0LCBwYXRoLnBsYXRmb3Jt
UGF0aCgpKTsKKyAgICAgICAgQ0dDb250ZXh0Q2xpcChjb250ZXh0KTsKKyAgICB9CiAgICAgbV9k
YXRhLT5jbGlwKHBhdGgpOwogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA2NTA4MykKKysrIExheW91
dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEwLTA3
LTMwICBNYXR0aGV3IERlbGFuZXkgIDxtZGVsYW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgMmQucGF0aC5jbGlwLmVtcHR5Lmh0
bWwgdGVzdCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD00MzE2MQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6IFVuc2tp
cHBpbmcgbm93IHBhc3NpbmcgcGF0aC5jbGlwLmVtcHR5CisKIDIwMTAtMDgtMTAgIEpvaG5ueSBE
aW5nICA8am5kQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRo
LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHJldmlzaW9uIDY1MDgzKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQJKHdvcmtpbmcgY29weSkKQEAgLTE2MSw3ICsx
NjEsNiBAQCBzY3JvbGxiYXJzL3Njcm9sbGJhci1jbGljay1kb2VzLW5vdC1ibHVyCiAKICMgRmFp
bGluZyBjYW52YXMgdGVzdCBjYXNlcyBmcm9tIGh0dHA6Ly9waGlsaXAuaHRtbDUub3JnL3Rlc3Rz
L2NhbnZhcy9zdWl0ZS90ZXN0cy8KIGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuZHJhd0ltYWdlLmJy
b2tlbi5odG1sCi1jYW52YXMvcGhpbGlwL3Rlc3RzLzJkLnBhdGguY2xpcC5lbXB0eS5odG1sCiBj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uY2xlYXIuaHRtbAogY2Fu
dmFzL3BoaWxpcC90ZXN0cy8yZC5jb21wb3NpdGUub3BlcmF0aW9uLmRhcmtlci5odG1sCiBjYW52
YXMvcGhpbGlwL3Rlc3RzLzJkLmNvbXBvc2l0ZS5vcGVyYXRpb24uaGlnaGxpZ2h0Lmh0bWwK
</data>

          </attachment>
      

    </bug>

</bugzilla>