<?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>26342</bug_id>
          
          <creation_ts>2009-06-11 22:51:37 -0700</creation_ts>
          <short_desc>Absolutely positioned HTML element within foreignObject of absolutely positioned SVG crashes Safari</short_desc>
          <delta_ts>2009-11-16 14:50:35 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.barhams.info/webkit/crash.xml</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>HasReduction, InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Barham">tbarham</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bdakin</cc>
    
    <cc>charles.wei</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>staikos</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>125440</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Barham">tbarham</who>
    <bug_when>2009-06-11 22:51:37 -0700</bug_when>
    <thetext>If an XHTML page includes an absolutely position SVG element, and that SVG element contains a foreignObject element that contains XHTML with an absolutely positioned element, Safari will crash.

If either the SVG element or the HTML element is not absolutely positioned, it will not crash.

Repro steps:

See the referenced URL (http://www.barhams.info/webkit/crash.xml) for a repro example.

Repro&apos;d under Windows Vista and Windows 7, Safari 3.2.3 and latest Safari 4 beta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>125457</commentid>
    <comment_count>1</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2009-06-12 02:26:05 -0700</bug_when>
    <thetext>&lt;rdar://problem/6966731&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147024</commentid>
    <comment_count>2</comment_count>
      <attachid>39535</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-13 23:24:06 -0700</bug_when>
    <thetext>Created attachment 39535
patch that fixes the crash problem with SVG foreignobject with absolute positioning

Fixes the crash of SVG</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147055</commentid>
    <comment_count>3</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-09-14 07:50:34 -0700</bug_when>
    <thetext>I think Dave should review this since it is his code that is being changed.  Also the commented out asserts should be removed altogether, and there is a spelling mistake in the first comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147056</commentid>
    <comment_count>4</comment_count>
      <attachid>39535</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-14 07:50:45 -0700</bug_when>
    <thetext>Comment on attachment 39535
patch that fixes the crash problem with SVG foreignobject with absolute positioning

Thanks for tackling this!

&gt; +        This is to fix the crash reported with
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=26342
&gt; +
&gt; +        Test case at : http://www.barhams.info/webkit/crash.xml

In the WebKit project we require regression tests for any bug fix. So this fix needs to include a test for the LayoutTests directory that demonstrates the crash and that it is fixed.

&gt;      if (!o || !o-&gt;isRenderBlock())
&gt; -        return 0; // Probably doesn&apos;t happen any more, but leave just in case. -dwh
&gt; +        return document()-&gt;renderView(); // return the render view of the document, which is the top level containner

This comment doesn&apos;t indicate why it is correct and acceptable to return container.

Typo here: &quot;containner&quot;

WebKit style uses sentence style comments, with capital letters and periods.

&gt; -    ASSERT(useTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.
&gt; +//    ASSERT(useTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.

We don&apos;t include commented-out code in WebKit. If the assertion is wrong it should be removed, not commented out. Further, you don&apos;t explain why you are removing this assertion.

&gt; -    ASSERT(useTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.
&gt; +//    ASSERT(useTransforms); // mapping a point through SVG w/o respecting trasnforms is useless.

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147283</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2009-09-15 07:33:28 -0700</bug_when>
    <thetext>Charles will come up with a new DRT-compatible testcase. Though I think the patch is not correct. I&apos;m running out of time, I may elaborate later. CC&apos;Ing Eric, as he&apos;s for sure the one most familiar with this, after all he rewrote this code.

But I still think the ASSERTIONS are existant for a reason. Maybe Eric can say a few words?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147305</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-15 09:29:37 -0700</bug_when>
    <thetext>Yeah, this looks like the wrong fix.  If you&apos;re hitting those useTransforms ASSERTS then some other part of the code is wrong.  We need a test case.  Attaching a crashing stack trace to the bug would make it easier for me to comment w/o reproducing locally. :)

Does this crash in release builds to?  In which case, then it&apos;s a P1.  Reproducible crashers are P1.

CCing simon (who is the transforms guy) just so he can see this go by.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147306</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-15 09:30:49 -0700</bug_when>
    <thetext>I can take this on if necessary.  I&apos;m just a little busy today, but I&apos;m happy to add this to my todo list if Charles or Niko aren&apos;t able to easily find a solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147315</commentid>
    <comment_count>8</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-09-15 10:17:24 -0700</bug_when>
    <thetext>Crash point:

#0  0x00000001014a5ef3 in WebCore::RenderBlock::insertPositionedObject (this=0x0, o=0x11c241328) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:2217
#1  0x00000001014c2368 in WebCore::RenderBlock::layoutInlineChildren (this=0x11c240c38, relayoutChildren=true, repaintTop=@0x7fff5fbfca1c, repaintBottom=@0x7fff5fbfca18) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlockLineLayout.cpp:858
#2  0x00000001014a8d69 in WebCore::RenderBlock::layoutBlock (this=0x11c240c38, relayoutChildren=true) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:712
#3  0x00000001014a230f in WebCore::RenderBlock::layout (this=0x11c240c38) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:638
#4  0x00000001014a7f4f in WebCore::RenderBlock::layoutBlockChild (this=0x11c240698, child=0x11c240c38, marginInfo=@0x7fff5fbfcc00, previousFloatBottom=@0x7fff5fbfcc84, maxFloatBottom=@0x7fff5fbfcda4) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:1327
#5  0x00000001014a88ae in WebCore::RenderBlock::layoutBlockChildren (this=0x11c240698, relayoutChildren=true, maxFloatBottom=@0x7fff5fbfcda4) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:1270
#6  0x00000001014a8d82 in WebCore::RenderBlock::layoutBlock (this=0x11c240698, relayoutChildren=true) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:714
#7  0x00000001014a230f in WebCore::RenderBlock::layout (this=0x11c240698) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:638
#8  0x00000001014ed65d in WebCore::RenderForeignObject::layout (this=0x11c240698) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderForeignObject.cpp:103
#9  0x00000001014c406f in WebCore::RenderObject::layoutIfNeeded (this=0x11c240698) at RenderObject.h:487
#10 0x0000000101552034 in WebCore::RenderSVGRoot::layout (this=0x11c23e4f8) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderSVGRoot.cpp:102
#11 0x00000001014c406f in WebCore::RenderObject::layoutIfNeeded (this=0x11c23e4f8) at RenderObject.h:487
#12 0x00000001014993c0 in WebCore::RenderBlock::layoutPositionedObjects (this=0x10612c088, relayoutChildren=true) at /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/

o-&gt;containingBlock() is null at:

                    o-&gt;containingBlock()-&gt;insertPositionedObject(box);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147490</commentid>
    <comment_count>9</comment_count>
      <attachid>39636</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-16 01:14:24 -0700</bug_when>
    <thetext>Created attachment 39636
resubmit patch with test cases, and reverse un-related changes for ASSERT

 Resubmit the patch after addressing the comments from the reviewer:

1.  A test case added. 
2.  Typo in the comments corrected.
3.  Rolled back the change about ASSERT.   I found the ASSERT problem with some other pages, not related to this bug. I was thinking to fix it with this patch . Now I would rather submit the patch that only fixes this bug, and would like to submit another seperate bug to track the ASSERT problem .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147491</commentid>
    <comment_count>10</comment_count>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-16 01:25:59 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Crash point:
&gt; 
&gt; #0  0x00000001014a5ef3 in WebCore::RenderBlock::insertPositionedObject
&gt; (this=0x0, o=0x11c241328) at
&gt; /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlock.cpp:2217
&gt; #1  0x00000001014c2368 in WebCore::RenderBlock::layoutInlineChildren
&gt; (this=0x11c240c38, relayoutChildren=true, repaintTop=@0x7fff5fbfca1c,
&gt; repaintBottom=@0x7fff5fbfca18) at
&gt; /Volumes/InternalData/Development/webkit/OpenSource/WebCore/rendering/RenderBlockLineLayout.cpp:858
.......
&gt; 
&gt; o-&gt;containingBlock() is null at:
&gt; 
&gt;                     o-&gt;containingBlock()-&gt;insertPositionedObject(box);


o-&gt;containingBlock() returns 0  is the root cause of the bug, and my patch fixes this. 

about crash problem caused by ASSERT(),  it&apos;s irrelevant to this bug, I discovered the ASSERT problem while verifying this bug, and was trying to fix it together with a patch.  Now I would rather to have another separate bug to track the ASSERT problem, and whould like to have the submitted patch to tackle this bug only. 

FYI -- The ASSERT problem can be reproduced with the following page, after this patch has been applied.

http://starkravingfinkle.org/blog/wp-content/uploads/2007/07/foreignobject-transform.svg</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147535</commentid>
    <comment_count>11</comment_count>
      <attachid>39636</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-16 08:24:07 -0700</bug_when>
    <thetext>Comment on attachment 39636
resubmit patch with test cases, and reverse un-related changes for ASSERT

I don&apos;t agree that returning the top level container instead of 0 when a render object is not in any containing block is the correct way to fix this bug. Changing the behavior of a fundamental low level function like containingBlock seems wrong unless the further repercussions of this for all other callers are considered.

I&apos;d like to hear Hyatt&apos;s comments. A check for 0 at appropriate call sites seems like a better approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147554</commentid>
    <comment_count>12</comment_count>
      <attachid>39636</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-16 10:14:38 -0700</bug_when>
    <thetext>Comment on attachment 39636
resubmit patch with test cases, and reverse un-related changes for ASSERT

Yes, this is the wrong fix. :)

ForeignObjects are a RenderBlock, but they should know how to find their containing SVGRenderRoot, which is also a RenderBlock.  For SVG this is slightly tricky becuase SVG doesn&apos;t use the concept of &quot;containingBlock&quot; like the rest of the rendering tree does.  SVG cares about &quot;nearestViewportElement&quot; instead.   There is some missing logic in SVG here.  Whatever it is that thinks it wants the foreignObject&apos;s containing block might not actually.  Or if it does, it wants the containing SVGRenderRoot (which it should be able to find...).  The &quot;return 0&quot; that you&apos;re returning should really be:
ASSERT_NOT_REACHED();
return 0;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147555</commentid>
    <comment_count>13</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2009-09-16 10:19:38 -0700</bug_when>
    <thetext>What should an abs. positioned block inside an SVG &lt;foreignobject&gt; be positioned relative to?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>147556</commentid>
    <comment_count>14</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-16 10:23:33 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; What should an abs. positioned block inside an SVG &lt;foreignobject&gt; be
&gt; positioned relative to?

I would suspect the &lt;foreignObject&gt;, since fO is effectively like an iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148181</commentid>
    <comment_count>15</comment_count>
      <attachid>39760</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-18 08:35:57 -0700</bug_when>
    <thetext>Created attachment 39760
make the foreignobject the containing block for the abs positioned child block if no appropriate containing block found

Following Eric&apos;s comment,  making the foreignobject the containing block for the abs. positioned children block .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148239</commentid>
    <comment_count>16</comment_count>
      <attachid>39760</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-18 10:52:26 -0700</bug_when>
    <thetext>Comment on attachment 39760
make the foreignobject the containing block for the abs positioned child block if no appropriate containing block found

I think that&apos;s still not quite right.  I think you want to change the while condition instead:

        while (o &amp;&amp; (o-&gt;style()-&gt;position() == StaticPosition || (o-&gt;isInline() &amp;&amp; !o-&gt;isReplaced())) &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock())) {

Admittedly, I think that condition would be much clearer written as a bunch of if statements in the while body, each calling &quot;break&quot; when true.

while (o)) {
  if (o-&gt;isRenderView())
      break;
  if (o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock())
      break;
  if (o-&gt;style()-&gt;position() != StaticPosition &amp;&amp; (o-&gt;isReplaced() &amp;&amp; !o-&gt;isInline())
      break;
}

Not something you&apos;d have to change, but looking at it, that loop is pretty ugly/hard-to-read.

o-&gt;node()-&gt;hasTagName(SVGNames::foreignObjectTag)
is probably a bad check too.  We should probably add a isForeignObject() to RenderObject instead.

Anyway, another way to add what you want would be to just add:
if (o-&gt;isForeignObject())
   break;
instead of needing to edit the existing if or while condition.

If this test is just trying to test the crash it can just be a dumpAsText() test.  If you need to test the positioning of the text, then you might need to make it render tree test as you have.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148249</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-18 11:09:26 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt;         while (o &amp;&amp; (o-&gt;style()-&gt;position() == StaticPosition || (o-&gt;isInline()
&gt; &amp;&amp; !o-&gt;isReplaced())) &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp;
&gt; o-&gt;isRenderBlock())) {
&gt; 
&gt; Admittedly, I think that condition would be much clearer written as a bunch of
&gt; if statements in the while body

Another way to make it more readable would be to make it an inline helper function. The name of the function gives us a chance to document what&apos;s being checked too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>148618</commentid>
    <comment_count>18</comment_count>
      <attachid>39844</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-21 02:42:32 -0700</bug_when>
    <thetext>Created attachment 39844
re-submission

re-submission of the patch .

1.  This patch focuses on the crash of the webkit,  simpifying the original &quot;while&quot; statement raised by Eric is not in the scope of this bug. I would rather leave that alone as is,  you can have a separate bug to track that change .

2.  o-&gt;node()-&gt;hasTagName(SVGNames::foreignObjectTag) replaced by RenderObject::isSVGForeignObject(), as suggested by Eric

3.  Test case as a dumpAsText() , following Eric&apos;s suggestion .</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149129</commentid>
    <comment_count>19</comment_count>
      <attachid>39844</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-09-22 11:13:32 -0700</bug_when>
    <thetext>Comment on attachment 39844
re-submission

&gt; +    virtual bool isSVGForeignObject() const { return true; }

A function like this should be made private. If someone already has a RenderForeignObject* it&apos;s a programming mistake for them to call isSVGForeignObject and making it private will solve that problem.

Otherwise seems OK to make this change. I&apos;ll say r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149131</commentid>
    <comment_count>20</comment_count>
      <attachid>39844</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-22 11:17:31 -0700</bug_when>
    <thetext>Comment on attachment 39844
re-submission

Yes, this also looks good to me.  I would probably have made a comment next to the if (o-&gt;isSVGForeignObject()) call, noting that &lt;foreignObject&gt; acts as the containing block for its content.

I also probably would have made this message simpler:
+This test case is designed for bug 26342 at: https://bugs.webkit.org/show_bug.cgi?id=26342, which complains about webkit crash with this test case. If you see this text renders with webkit, the test case SUCCEEDS !

PASS - This did not crash.  https://bugs.webkit.org/show_bug.cgi?id=26342

Says the same thing your message says in half the words. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149132</commentid>
    <comment_count>21</comment_count>
      <attachid>39844</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-22 11:18:04 -0700</bug_when>
    <thetext>Comment on attachment 39844
re-submission

Given that Darin asked for a change (and I mentioned some nits as well) this can&apos;t be auto-committed w/o posting a new patch. Marking cq-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149321</commentid>
    <comment_count>22</comment_count>
      <attachid>39976</attachid>
    <who name="Charles Wei">charles.wei</who>
    <bug_when>2009-09-22 23:23:01 -0700</bug_when>
    <thetext>Created attachment 39976
resubmit after adding comments and test case description change

1. Add change new-added member function isSVGForeignObject() from virtual public to virtual private,  I don&apos;t in favor of that.  Please look at RenderObject , it has similiar functions , like isSVGRoot(), isSVGContainer(), isSVGText(), isSVGImage(), ... , all public virtual member functions.  I think we should be consistent with all other similiar functions .

2. Test case descriptions changed as suggested by Eric

3. Comments added at o-&gt;isForeignObject()   to indicate foreignobject is the containing block for its contents.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149323</commentid>
    <comment_count>23</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-09-22 23:26:51 -0700</bug_when>
    <thetext>Darin&apos;s comment was that RenderForeignObject::isForeignObject() should be private. :)  But this still looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149325</commentid>
    <comment_count>24</comment_count>
      <attachid>39976</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-22 23:39:59 -0700</bug_when>
    <thetext>Comment on attachment 39976
resubmit after adding comments and test case description change

Clearing flags on attachment: 39976

Committed r48668: &lt;http://trac.webkit.org/changeset/48668&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149326</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-09-22 23:40:05 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39535</attachid>
            <date>2009-09-13 23:24:06 -0700</date>
            <delta_ts>2009-09-18 08:35:57 -0700</delta_ts>
            <desc>patch that fixes the crash problem with SVG foreignobject with absolute positioning</desc>
            <filename>26342_foreignobject_fix.patch</filename>
            <type>text/plain</type>
            <size>3220</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODM1MikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMTMgIGNoYXJsZXMgd2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgaXMgdG8gZml4IHRoZSBjcmFzaCByZXBvcnRlZCB3aXRoCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM0MgorCisgICAgICAg
IFRlc3QgY2FzZSBhdCA6IGh0dHA6Ly93d3cuYmFyaGFtcy5pbmZvL3dlYmtpdC9jcmFzaC54bWwK
KworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6Om1hcExv
Y2FsVG9Db250YWluZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9TVkdSZW5kZXJTdXBwb3J0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlckJhc2U6Om1hcExvY2FsVG9Db250YWluZXIp
OgorCiAyMDA5LTA5LTEzICBLZXZpbiBPbGxpdmllciAgPGtldmlub0B0aGVvbGxpdmllcnMuY29t
PgogCiAgICAgICAgIHd4IGJ1aWxkIGZpeCwgZmlsZSB3YXMgbWlzc2VkIGR1cmluZyBUTFMuY3Bw
IHJlbW92YWwuCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlzaW9uIDQ4
MzUxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNjM4LDcgKzYzOCw3IEBAIFJlbmRlckJsb2NrKiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5p
bmdCbG8KICAgICB9CiAKICAgICBpZiAoIW8gfHwgIW8tPmlzUmVuZGVyQmxvY2soKSkKLSAgICAg
ICAgcmV0dXJuIDA7IC8vIFByb2JhYmx5IGRvZXNuJ3QgaGFwcGVuIGFueSBtb3JlLCBidXQgbGVh
dmUganVzdCBpbiBjYXNlLiAtZHdoCisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLT5yZW5kZXJW
aWV3KCk7IC8vIHJldHVybiB0aGUgcmVuZGVyIHZpZXcgb2YgdGhlIGRvY3VtZW50LCB3aGljaCBp
cyB0aGUgdG9wIGxldmVsIGNvbnRhaW5uZXIKIAogICAgIHJldHVybiB0b1JlbmRlckJsb2NrKG8p
OwogfQpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHJldmlzaW9uIDQ4MzUx
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU1ZHUm9vdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmNvbXB1dGVSZWN0Rm9yUmVw
YWluCiB2b2lkIFJlbmRlclNWR1Jvb3Q6Om1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9k
ZWxPYmplY3QqIHJlcGFpbnRDb250YWluZXIsIGJvb2wgZml4ZWQgLCBib29sIHVzZVRyYW5zZm9y
bXMsIFRyYW5zZm9ybVN0YXRlJiB0cmFuc2Zvcm1TdGF0ZSkgY29uc3QKIHsKICAgICBBU1NFUlQo
IWZpeGVkKTsgLy8gV2Ugc2hvdWxkIGhhdmUgbm8gZml4ZWQgY29udGVudCBpbiB0aGUgU1ZHIHJl
bmRlcmluZyB0cmVlLgotICAgIEFTU0VSVCh1c2VUcmFuc2Zvcm1zKTsgLy8gbWFwcGluZyBhIHBv
aW50IHRocm91Z2ggU1ZHIHcvbyByZXNwZWN0aW5nIHRyYXNuZm9ybXMgaXMgdXNlbGVzcy4KKy8v
ICAgIEFTU0VSVCh1c2VUcmFuc2Zvcm1zKTsgLy8gbWFwcGluZyBhIHBvaW50IHRocm91Z2ggU1ZH
IHcvbyByZXNwZWN0aW5nIHRyYXNuZm9ybXMgaXMgdXNlbGVzcy4KIAogICAgIC8vIFRyYW5zZm9y
bSB0byBvdXIgYm9yZGVyIGJveCBhbmQgbGV0IFJlbmRlckJveCB0cmFuc2Zvcm0gdGhlIHJlc3Qg
b2YgdGhlIHdheS4KICAgICB0cmFuc2Zvcm1TdGF0ZS5hcHBseVRyYW5zZm9ybShsb2NhbFRvQm9y
ZGVyQm94VHJhbnNmb3JtKCkpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3VwcG9y
dC5jcHAJKHJldmlzaW9uIDQ4MzUxKQorKysgV2ViQ29yZS9yZW5kZXJpbmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY0LDcgKzY0LDcgQEAgdm9pZCBTVkdSZW5kZXJC
YXNlOjpjb21wdXRlUmVjdEZvclJlcGFpbgogdm9pZCBTVkdSZW5kZXJCYXNlOjptYXBMb2NhbFRv
Q29udGFpbmVyKGNvbnN0IFJlbmRlck9iamVjdCogb2JqZWN0LCBSZW5kZXJCb3hNb2RlbE9iamVj
dCogcmVwYWludENvbnRhaW5lciwgYm9vbCBmaXhlZCAsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJh
bnNmb3JtU3RhdGUmIHRyYW5zZm9ybVN0YXRlKQogewogICAgIEFTU0VSVCghZml4ZWQpOyAvLyBX
ZSBzaG91bGQgaGF2ZSBubyBmaXhlZCBjb250ZW50IGluIHRoZSBTVkcgcmVuZGVyaW5nIHRyZWUu
Ci0gICAgQVNTRVJUKHVzZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBT
Vkcgdy9vIHJlc3BlY3RpbmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgorLy8gICAgQVNTRVJUKHVz
ZVRyYW5zZm9ybXMpOyAvLyBtYXBwaW5nIGEgcG9pbnQgdGhyb3VnaCBTVkcgdy9vIHJlc3BlY3Rp
bmcgdHJhc25mb3JtcyBpcyB1c2VsZXNzLgogICAgIHRyYW5zZm9ybVN0YXRlLmFwcGx5VHJhbnNm
b3JtKG9iamVjdC0+bG9jYWxUb1BhcmVudFRyYW5zZm9ybSgpKTsKICAgICBvYmplY3QtPnBhcmVu
dCgpLT5tYXBMb2NhbFRvQ29udGFpbmVyKHJlcGFpbnRDb250YWluZXIsIGZpeGVkLCB1c2VUcmFu
c2Zvcm1zLCB0cmFuc2Zvcm1TdGF0ZSk7CiB9Cg==
</data>
<flag name="review"
          id="20635"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39636</attachid>
            <date>2009-09-16 01:14:24 -0700</date>
            <delta_ts>2009-09-18 08:35:57 -0700</delta_ts>
            <desc>resubmit patch with test cases, and reverse un-related changes for ASSERT</desc>
            <filename>26342.patch</filename>
            <type>text/plain</type>
            <size>13312</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODQwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMTYgIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeGVzIHRoZSBjcmFzaCBjYXVzZWQgYnkgdGhlIGFic29sdXRlIHBvc2l0aW9u
ZWQgY2hpbGQgb2JqZWN0IGluc2lkZSB0aGUgZm9yZWlnbm9iamVjdCAKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MzQyCisKKyAgICAgICAgVGVzdDog
c3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1j
aGlsZHJlbi5zdmcKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0Ojpjb250YWluaW5nQmxvY2spOgorCiAyMDA5LTA5
LTE1ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2FtIFdlaW5pZy4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkocmV2
aXNpb24gNDg0MDYpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC02MzgsNyArNjM4LDcgQEAgUmVuZGVyQmxvY2sqIFJlbmRlck9iamVjdDo6
Y29udGFpbmluZ0JsbwogICAgIH0KIAogICAgIGlmICghbyB8fCAhby0+aXNSZW5kZXJCbG9jaygp
KQotICAgICAgICByZXR1cm4gMDsgLy8gUHJvYmFibHkgZG9lc24ndCBoYXBwZW4gYW55IG1vcmUs
IGJ1dCBsZWF2ZSBqdXN0IGluIGNhc2UuIC1kd2gKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCkt
PnJlbmRlclZpZXcoKTsgLy8gSWYgdGhlcmUncyBubyBjb250YWluaW5nIGJsb2NrIGZvdW5kLCBy
ZXR1cm4gdGhlIHZpZXcgb2YgdGhlIGRvY3VtZW50LCB3aGljaCBpcyB0aGUgdG9wIGxldmVsIGNv
bnRhaW5lci4KIAogICAgIHJldHVybiB0b1JlbmRlckJsb2NrKG8pOwogfQpJbmRleDogTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2
aXNpb24gNDg0MDgpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAg
LTEsMyArMSwxNSBAQAorMjAwOS0wOS0xNiAgQ2hhcmxlcyBXZWkgIDxjaGFybGVzLndlaUB0b3Jj
aG1vYmlsZS5jb20uY24+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRml4ZXMgdGhlIGNyYXNoIGNhdXNlZCBieSB0aGUgYWJzb2x1dGUgcG9zaXRpb25l
ZCBjaGlsZCBvYmplY3QgaW5zaWRlIHRoZSBmb3JlaWdub2JqZWN0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM0MgorCisgICAgICAgICogc3ZnL2N1
c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJl
bi1leHBlY3RlZC5jaGVja3N1bTogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS9mb3JlaWdu
b2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC5w
bmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRo
LWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBzdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlv
bmVkLWNoaWxkcmVuLnN2ZzogQWRkZWQuCisKIDIwMDktMDktMTUgIENocmlzIEZsZWl6YWNoICA8
Y2ZsZWl6YWNoQGFwcGxlLmNvbT4KIAogICAgICAgICBXQUktQVJJQTogYWRkIHN1cHBvcnQgZm9y
IHJhbmdlcywgaW5jbHVkaW5nIHRoZSBwcm9ncmVzc2Jhciwgc2xpZGVyLCBhbmQgc3BpbmJ1dHRv
biByb2xlcwpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNo
LXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC5jaGVja3N1bQo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0
aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgt
YWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC5jaGVja3N1bQkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSBAQAorNDc0NGM0MDdiMDNkMDgxZjgyOTVlNWUxZjlkMTM3YmYKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVp
Z25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3Qt
Y3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13
aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwIEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMng2MDIKKyAgUmVuZGVy
VmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAyeDYwMgor
ICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgxLDEpIHNpemUgMHgwCisgICAgUmVuZGVyRm9yZWln
bk9iamVjdCB7Zm9yZWlnbk9iamVjdH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgICBSZW5k
ZXJCb2R5IHtib2R5fSBhdCAoOCwwKSBzaXplIDc4NHgwCitsYXllciBhdCAoOCwwKSBzaXplIDI4
MHgyMQorICBSZW5kZXJCbG9jayAocG9zaXRpb25lZCkge2Rpdn0gYXQgKDgsMCkgc2l6ZSAyODB4
MjEgW2JvcmRlcjogKDJweCBzb2xpZCAjRkYwMDAwKV0KKyAgICBSZW5kZXJUZXh0IHsjdGV4dH0g
YXQgKDIsMikgc2l6ZSAyNzZ4MTcKKyAgICAgIHRleHQgcnVuIGF0ICgyLDIpIHdpZHRoIDI3Njog
IklmIHlvdSBzZWUgdGhpcyB0ZXh0LCB0aGlzIHRlc3QgY2FzZSBTVUNDRUVEUyEiCkluZGV4OiBM
YXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1w
b3NpdGlvbmVkLWNoaWxkcmVuLnN2Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVu
LnN2ZwkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVj
dC1jcmFzaC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4uc3ZnCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDExIEBACisJPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9z
dmciIHN0eWxlPSJib3JkZXI6Ymx1ZSAxcHggc29saWQ7cG9zaXRpb246YWJzb2x1dGU7bGVmdDow
cHg7dG9wOjBweDt3aWR0aDoxMDAlO2hlaWdodDoxMDAlOyI+CisKKwkJPGZvcmVpZ25PYmplY3Qg
IGxlZnQ9IjAiIHRvcD0iMCIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSI+CisJCQk8Ym9keSB4
bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgPgorCQkJCTxkaXYgc3R5bGU9InBv
c2l0aW9uOmFic29sdXRlO2NvbG9yOmJsYWNrO2JvcmRlcjpyZWQgMnB4IHNvbGlkOyI+SWYgeW91
IHNlZSB0aGlzIHRleHQsIHRoaXMgdGVzdCBjYXNlIFNVQ0NFRURTIQorCQkJCTwvZGl2PgorCQkJ
PC9ib2R5PgorCQk8L2ZvcmVpZ25PYmplY3Q+CisKKworCTwvc3ZnPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1j
cmFzaC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQucG5nCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KQ2Fubm90IGRpc3BsYXk6IGZpbGUgbWFya2VkIGFzIGEgYmluYXJ5IHR5cGUuCnN2bjpt
aW1lLXR5cGUgPSBhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW0KClByb3BlcnR5IGNoYW5nZXMgb246
IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRl
LXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQucG5nCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOm1p
bWUtdHlwZQogICArIGFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbQoKCmlWQk9SdzBLR2dvQUFBQU5T
VWhFVWdBQUF5QUFBQUpZQ0FZQUFBQ2Fkb0p3QUFBQUNYQklXWE1BQUE3RUFBQU94QUdWS3c0YkFB
QVgKNUVsRVFWUjRuTzNkYjZ6V2RmM0g4ZmZoendIa3ozSHhSNWZTNWczWFBGdXBhMjVwMHhzNXZl
Rml1RkFuYW1rNHhhYTRYQnJsWEZ0NQpReTBiZHFNaWMyMHlwNFBjWkpXcjBObUV1YlpDSzBlcHkw
QXpRT1dZeXAvREFZVFA3MFp5NGdEbkR5Z3YvY25qc1oyTjYvcCsrSDQvCm40c3ZaK2Q1WGQvck9o
MVZyZFVRV25VTXRSbmdzSFhVa045K0FJQ1BvREZWd3lTSS9nQ09rS0dmL2dBQVBvckdqSGlrbnhT
QTkwdUgKWnpZQTRHZzE2b09lQUFBQWNQUVFJQUFBUU13aEJVaEhSMGYxOVBUMDMxNjRjR0ZObURD
aC92S1h2N3p2RS91dzZ1bnBxWTVCTGg4WgphdHYvQngvbHRTWDA5UFRVdkhuemFzYU1HVFY2OU9q
NnhDYytVYmZjY2t2MTl2YjJqOW4vLzlCZzl6Ly8vUE0xYTlhc21qeDVjblYyCmR0WVpaNXhSSzFh
c0dQQjNoaHZUMGRGeDBLOTc3cm5uUFkyWk1tVkt6Wmt6cDlhdVhYdElhM2NPQVFCVjcvRVZrRVdM
RnRYcTFhdnIKdE5OT2U3L204NkUwYmRxMGV1T05ONFlkTjJIQ2hGcTRjT0VSUGNiN3ZaK1A4dHJT
THIzMDB0cXhZMGV0WExteWVucDZhdG15WmZYVQpVMC9WRFRmY2NFajdXYjkrZloxOTl0bjF5VTkr
c3Y3NHh6L1dtalZyYXZiczJUVnIxcXo2NjEvL091SXhWVlZyMXF5cGpSczNEdmk2CjVwcHJCaHp2
VU1hc1g3KytIbi84OFpvOGVYS2RkZFpaOWVxcnI3NnZhd2NBUHZvNnFsb2IrbE93M24zR3NyWHE2
T2lvVFpzMjFiUnAKMDk3ZE5QRDJSOVcrNit6cDZhbnAwNmZYMEEvYWV6dEdjajhmNWJVbGJkMjZ0
U1pQbmx4YnQyNnRpUk1uOXQvLzk3Ly92YzQ1NTV6KwpWemNHVzhPKzkxOTMzWFcxWjgrZXV2ZmVl
d2VNdWVTU1M2cXJxNnQrOXJPZmpXak1TQjZ2d3gzVFdxdExMcm1rVGp6eHhMcjk5dHRICnRQWUI1
OWMrMzFjQWdLUExZYjhDOHFsUGZhcXFxcnE3dXc5NkNkYUNCUXNHUFB1NWJ0MjZHamR1WFAzblAv
K3BxcXJObXpmWEZWZGMKVVpNbVRhcGpqejIyNXMrZlg5dTNiei9vWlJxRFhiWlNWZlhMWC82eVRq
bmxsQm96Wmt5ZGROSkp0WHo1OHY1dHZiMjlOVy9ldkpvMAphVkpObXphdHZ2V3RiOVh1M2J1SDNi
YXY3dTd1ZzY1ejhlTEZOWFhxMU9ycTZxcTc3NzY3cWc2OHhHU291UTEzak1IbTkvREREOWRKCko1
MVUyN1p0cTZxcXUrNjZxODQ5OTl6YXMyZlBvSE1keklkdGJVUHRkN2kxN2RpeG82Ni8vdnJxNnVx
cUtWT20xUHo1ODZ1dnI2OS8KK3lPUFBGTGQzZDAxWnN5WW1qRmpSbjMvKzk4ZjBWcEdlcDUwZG5i
V3hJa1RhL0hpeGJWang0NEI2eC9zM0QyWTFsbzk4c2dqZGQxMQoxeDJ3N2Q1Nzc2M3ZmdmU3SXhw
enBIVjBkTlQ4K2ZQcjBVY2ZmZC9XRGdBY05kclEvdnNjNWJ0L3JMWnAwNlo5TmcyOHZhOG5ubmlp
Cm5YRENDVzNQbmoydHRkYnV1T09PTm52MjdQN3RYLzd5bDl2NTU1L2ZYbjc1NWZiaWl5KzJNODg4
czkxODg4MXQwNlpOYmY5SkRYYWMKdnI2K05uSGl4TFo4K2ZLMmVmUG05c0FERDdRWk0yYjBiMSt3
WUVHNzRvb3Iyc2FORzl1enp6N2J1cnU3MjUxMzNqbnN0Z01mZ3Y4ZApmKy84cnJ2dXV0YlgxOWQr
OWF0ZnRkR2pSN2R0MjdZTm1QdHdjeHZxR01QTjcrS0xMMjQzM1hSVGUrR0ZGOXFNR1RQYVN5KzlO
T3hqCk5aTGpmdEJyRzI2L1E2M3QxbHR2YldlZmZYWjc2YVdYMm9zdnZ0ZysvZWxQOXo5ZWZYMTli
Zno0OGUyV1cyNXBiNzMxVmx1eFlrWHIKNk9ob1c3WnNlVS9uMFA2V0xsM2FwaytmM2laT25OZ3V1
T0NDdG1qUm9nSC9Oa090WWUvOWI3LzlkcXVxMXR2Yk8rampPWkl4ZS9lNQpidDI2dG1YTGxnRmY3
N3p6emlHUE9kaWNYM25sbFRaMjdOZ1JyNzJucCtkLy83ZjMrYjRDQUJ4ZGpsaUE3TnExcTAyZE9y
WDk2VTkvCmFxMjFkdXFwcDdabHk1YjFiNXN3WVVKNzRZVVgrc2V2V3JXcW5YamlpWWNVSUwyOXZX
MzgrUEh0NXovL2VkdThlWFBiczJkUDI3SmwKUzJ1dHRkMjdkN2V1cnE3VzA5UFRQLzRYdi9oRk8v
MzAwNGZjZHZDSDRNQWYwamRzMk5CYWEyM1BuajM5Mi9lZCsxQnpHKzRZdzgzdgp0ZGRlYThjZGQx
enI3dTV1OTkxMzM0Z2VxNUVjOTROZTIzRDdIV3B0TTJmT2JFODk5VlQvN1dlZWVhWTk5dGhqcmJY
L25tL1BQZmRjCjI3WnRXM3ZublhmYTAwOC8zYit2d3oySEJyTnIxNjcyaHovOG9kMSsrKzN0YzUv
N1hCc3paa3hic21USnNHdlllLzliYjczVnFxcHQKMzc1OTBHT01aTXplZlI3c2E5V3FWWWM4WnJn
QUdjbmFkKzNhOWIrNEV5QUFjTlE2WWdIU1dtdFhYMzExdS9YV1c5dHp6ejNYSmsrZQozUCtNN1p0
dnZ0bXFxdTNhdGF0LzdJWU5HOXJvMGFNUENKQjlmd2crbU1jZmY3eWRkOTU1YmRLa1NlMnpuLzFz
L3crZGU0K3gvOWZIClAvN3hJYmNOOWlEdC8wUDYzbGQyOXQyKy85d0htOXR3eHhqSi9MNys5YSsz
cnE2dUE1NEZmejhDNUlOYzIxRDdIV3B0bzBlUGJoczMKYmh4MERnOC8vSEE3L2ZUVFczZDNkN3Zv
b29zRzdPdHd6cUg5OWZYMXRZY2VlbWpBWTlkYWEvZmZmLzhCcitLOC92cnJBOGJzZTQ3dgoyYk9u
ZmV4akgydXJWNjgrNEJpLy92V3YyL25ubnoraU1jTTlYdnZPNTNESFBQYllZKzNrazA4ZThkcGJh
KzN6bi8vODNwMEtFQUE0ClNoM1Izd1B5eFM5K3NaWXZYMTVMbHk2dE9YUG0xSVFKRTZxcWF0S2tT
VFYrL1BnQkgrTzVidDI2T3U2NDQvcHZ0M2ZmbkxyM1UzWU8KWnRldVhUVisvUGhhc1dKRjlmVDAx
RFhYWEZPWFhISkpWVlVkYzh3eE5YYnMySHI3N2JlcnRWYXR0WHJqalRmcXlTZWZISExiU0EzMwpj
YUpEelcwNHc4M3Z4UmRmckFjZWVLQk9PKzIwSTNLOS93ZTF0dmV5MytuVHA5ZS8vdld2L3R1clZx
M3FmNE4yWDE5ZlhYNzU1ZldUCm4veWsvdmEzdjlYU3BVdEh0SlpET1U4Nk9qcnFTMS82VWozLy9Q
TUQ3ai96ekRNSGZCVHQxS2xUYS8zNjlRUEdyRjI3dHNhTkcxZGQKWFYzVjBkRlJGMTU0WWYzb1J6
ODY0QmdQUHZoZ0hYUE1NU01hYzZTMTF1cW5QLzFwWFhEQkJTTmVlMVhWUlJkZGRNVG5CZ0I4dUIz
UgpBRG4zM0hQcjMvLytkLzM0eHordXl5NjdyUC8rTVdQRzFNVVhYMXczM25oanZmTEtLN1YyN2Rx
NitlYWI2OUpMTDYwSkV5YlVxRkdqCjZqZS8rVTN0M0xtejdyenp6aUdQOFlVdmZLRis5N3ZmMWE1
ZHUyclVxRkg5bjhMVDJkbFpzMmJOcXE5OTdXdjErdXV2MTlxMWEydlcKckZtMVpNbVNJYmNOWnQ4
M05JL1VZSE1iN2hoRHpXLzM3dDExMVZWWDFXMjMzVlpMbGl5cHhZc1gxelBQUERQb1hPKzc3NzVo
NS81aApXZHRJOWp2WVhPZk9uVnNMRnk2c2wxOSt1ZGF0VzFjTEZpem8vOGplMWxydDNyMjdPanM3
YThlT0hYWEhIWGNNMk5maG5FUDc2K3pzCnJNc3Z2N3d1dSt5eWV2TEpKMnY5K3ZXMWV2WHF1dUdH
RzJydTNMbjk0NjY2NnFyNnlsZStVci8vL2U5ci9mcjF0WExseXBvN2QyNWQKZWVXVk5YYnMyS3Fx
K3ZhM3YxM0xseSt2RzIrOHNkYXNXVlAvL09jLzZ6dmYrVTR0Vzdhc3Z2R05iNHg0VEZYVmE2KzlW
cSsrK3VxQQpyemZmZkhQQTNBOWx6SVlORytycHA1K3VlZlBtMWNxVksrdWIzL3ptaU5lK2ZmdjJn
NzZCSHdBNDZnenpHc2w3dUFTcnRkWXV1K3l5CmR2enh4dzk0VTJ0ci83Mk9mZTdjdVczaXhJbHR5
cFFwN2RwcnIrMi9uT2g3My90ZW16SmxTcHM2ZFdxNy8vNzdoenpPZ3c4KzJHYk8Kbk5sR2pSclZU
am5sbFBiRUUwLzBiOXUwYVZPNzhNSUwyN2h4NDlxeHh4N2Jyci8rK3RiWDF6ZnN0djJkYzg0NWJk
eTRjZTNQZi83egprTzlSMlgvYlVITWI2aGhEemU4SFAvaEJPK3VzczlydTNidGJhNjM5OEljL2JL
ZWVlbXJidVhQblFmY3ozTC9SaDJsdHcrMTMvLzNzCnE3ZTN0MTE5OWRWdDBxUkpiZkxreWUzYWE2
OGQ4Tzk1enozM3RLNnVyalp0MnJSMjk5MTN0M1BPT2FkMWQzY1BlOHhET1U5NmUzdmIKVFRmZDFJ
NC8vdmpXMGRIUmpqLysrTFpnd1lLMmRldlcvakU3ZCs1c3Q5MTJXNXM1YzJZYlBYcDBPK0dFRTly
Q2hRc1BlRC9Iczg4KwoyODQ3Nzd3MmZ2ejRObmJzMkhiR0dXZTAzLzcydDRjMHBnWjVmOGVjT1hQ
ZTA1aUpFeWUyMmJObnQzLzg0eCtIdFBZQjU1QkxzQURnCnFIVkl2d2ZrY0Z4Ly9mWFYyZGxaaXhZ
dE9xeS96M3R6MTExMzFWZS8rdFdhTW1YS0J6MFYrQisvQndRQWpscEg3QktzdnI2K2V2bmwKbCt1
aGh4NnFLNjY0NGtnZGhtRTgrdWlqNGdNQWdBK05JeFlncTFhdHFwTlBQcm11dlBMSytzeG5Qbk9r
RHNNd1ZxNWMrVUZQQVFBQQoraDN4UzdBQUR1RDdDZ0FjdGNhTWVPUXdIODBLQUFBd25DUDZNYndB
QUFEN0d2NFZFSmRJQUFBQTd4T3ZnQUFBQURFQ0JBQUFpQkVnCkFBQkFqQUFCQUFCaUJBZ0FBQkFq
UUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVEK
STBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFF
Q05BQUFDQUdBRUNBQURFQ0JBQQpBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FB
QkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSCklBQUFRSXdBQVFBQVlnUUlB
QUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNB
QUEKRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJB
Z0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUQpBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVln
UUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJCkVTQUFBRUNNQUFFQUFH
SUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFC
aUJBZ0EKQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFB
QVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSQpFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFF
QUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBCmlCRWdBQUJBakFB
QkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdB
QVFBQVlnUUkKQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNN
QUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERQpDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJB
akFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBCkFJZ1JJQUFB
UUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFB
RUNNQUFFQUFHSUUKQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdB
QUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQQp4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJ
QUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFCkFBQ0lF
U0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlC
RWdBQUJBakFBQkFBQmkKQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJ
Z1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQQpBTVFJRUFBQUlFYUFBQUFBTVFJRUFB
Q0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDCkJB
QUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdR
QUFJZ1JJQUFBUUl3QUFRQUEKWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJ
RUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQwpBQURFQ0JBQUFDQkdnQUFBQURF
Q0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4
CkFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFB
TVFJRUFBQ0lFU0FBQUVDTUFBRUEKQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFB
QURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQgpBZ0FBeEFnUUFBQWdSb0FB
QUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFB
QUFBCk1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdn
QUFBQURFQ0JBQUFpQkVnQUFCQWpBQUIKQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdS
b0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWQpBUUlBQU1RSUVBQUFJ
RWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFD
QkdnQUFBCkFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFB
QWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0EKQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVB
QUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQQpHQUVDQUFERUNC
QUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFn
UUFBQWdSb0FBCkFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1R
SUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ00KQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFE
RUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQQpnQmdCQWdB
QXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlB
QU1RSUVBQUFJRWFBCkFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVD
QUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkEKakFBQkFBQmlCQWdBQUJBalFBQUFnQmdC
QWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQQpBSUFZ
QVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FH
QUVDQUFERUNCQUFBQ0JHCmdBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFn
QmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUEKUUl3QUFRQUFZZ1FJQUFBUUkwQUFB
SUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQQpB
QUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFB
QUFnQmdCQWdBQXhBZ1FBQUFnClJvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkw
QUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUEKQUVDTUFBRUFBR0lFQ0FBQUVD
TkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJB
agpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFB
UUkwQUFBSUFZQVFJQUFNUUlFQUFBCklFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FB
QUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWcKQUFCQWpBQUJBQUJpQkFn
QUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJ
QUFBUQpJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lF
Q0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBCkFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJp
QkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1IKSUFBQVFJd0FBUUFB
WWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFB
R0lFQ0FBQQpFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJB
QUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRCkFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FB
UUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0kKRVNBQUFFQ01B
QUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpB
QUJBQUJpQkFnQQpBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJ
d0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJCkVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFF
Q01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUEKaUJFZ0FB
QkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFB
QVFJd0FBUUFBWWdRSQpBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNB
QUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFCkNCQUFBQ0JHZ0FBQUFERUNCQUFBaVBr
L0ZvR2JpL1ZKTHpZQUFBQUFTVVZPUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="20744"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39760</attachid>
            <date>2009-09-18 08:35:57 -0700</date>
            <delta_ts>2009-09-21 02:42:32 -0700</delta_ts>
            <desc>make the foreignobject the containing block for the abs positioned child block if no appropriate containing block found</desc>
            <filename>26342.patch</filename>
            <type>text/plain</type>
            <size>13387</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODUwOCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMTggIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCB0aGUgY3Jhc2ggcHJvYmxlbSB3aXRoIGFic29sdXRlIHBvc2l0aW9uZWQg
Y2hpbGRyZW4gaW4gZm9yZWlnbk9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjYzNDIKKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL2ZvcmVp
Z25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLnN2ZworCisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJPYmplY3Q6OmNvbnRhaW5pbmdCbG9jayk6CisKIDIwMDktMDktMTggIEpvZXJnIEJvcm5l
bWFubiAgPGpvZXJnLmJvcm5lbWFubkBub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAJKHJldmlz
aW9uIDQ4NDk5KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNTcsNiArNTcsMTAgQEAKICNpbmNsdWRlICJSZW5kZXJMYXllckNvbXBvc2l0
b3IuaCIKICNlbmRpZgogCisjaWYgRU5BQkxFKFNWRykKKyNpbmNsdWRlICJTVkdOYW1lcy5oIgor
I2VuZGlmCisKICNpZiBFTkFCTEUoV01MKQogI2luY2x1ZGUgIldNTE5hbWVzLmgiCiAjZW5kaWYK
QEAgLTYyMyw3ICs2MjcsMTEgQEAgUmVuZGVyQmxvY2sqIFJlbmRlck9iamVjdDo6Y29udGFpbmlu
Z0JsbwogICAgICAgICAgICAgLy8gbGlzdCBpbiBhbGwgUmVuZGVySW5saW5lcyBhbmQgbGV0cyB1
cyByZXR1cm4gYSBzdHJvbmdseS10eXBlZCBSZW5kZXJCbG9jayogcmVzdWx0CiAgICAgICAgICAg
ICAvLyBmcm9tIHRoaXMgbWV0aG9kLiAgVGhlIGNvbnRhaW5lcigpIG1ldGhvZCBjYW4gYWN0dWFs
bHkgYmUgdXNlZCB0byBvYnRhaW4gdGhlCiAgICAgICAgICAgICAvLyBpbmxpbmUgZGlyZWN0bHku
Ci0gICAgICAgICAgICBpZiAoby0+c3R5bGUoKS0+cG9zaXRpb24oKSA9PSBSZWxhdGl2ZVBvc2l0
aW9uICYmIG8tPmlzSW5saW5lKCkgJiYgIW8tPmlzUmVwbGFjZWQoKSkKKyAgICAgICAgICAgIGlm
IChvLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IFJlbGF0aXZlUG9zaXRpb24gJiYgby0+aXNJbmxp
bmUoKSAmJiAhby0+aXNSZXBsYWNlZCgpCisjaWYgRU5BQkxFKFNWRykKKyAgICAgICAgICAgICAg
ICB8fCBvLT5ub2RlKCktPmhhc1RhZ05hbWUoU1ZHTmFtZXM6OmZvcmVpZ25PYmplY3RUYWcpCisj
ZW5kaWYKKyAgICAgICAgICAgICkKICAgICAgICAgICAgICAgICByZXR1cm4gby0+Y29udGFpbmlu
Z0Jsb2NrKCk7CiAgICAgICAgICAgICBvID0gby0+cGFyZW50KCk7CiAgICAgICAgIH0KSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDQ4NTA4KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMDktMDktMTggIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53
ZWlAdG9yY2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEZpeCB0aGUgY3Jhc2ggcHJvYmxlbSB3aXRoIGFic29sdXRlIHBvc2l0
aW9uZWQgY2hpbGRyZW4gaW4gZm9yZWlnbk9iamVjdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzNDIKKworICAgICAgICAqIHN2Zy9jdXN0b20vZm9y
ZWlnbm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0
ZWQuY2hlY2tzdW06IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1j
cmFzaC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQucG5nOiBBZGRl
ZC4KKyAgICAgICAgKiBzdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0
ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3Zn
L2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGls
ZHJlbi5zdmc6IEFkZGVkLgorCiAyMDA5LTA5LTE4ICBTdGV2ZSBCbG9jayAgPHN0ZXZlYmxvY2tA
Z29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCkluZGV4
OiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0
ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLmNoZWNrc3VtCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRlLXBv
c2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQuY2hlY2tzdW0JKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3Np
dGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLmNoZWNrc3VtCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
IEBACitmODlkMjJkODhlYmZmNjhjNTdiZWNmNWNkYTRiMWZhNwpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFz
aC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRoLWFi
c29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUt
cG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTAgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICBSZW5kZXJGb3JlaWduT2JqZWN0IHtmb3Jl
aWduT2JqZWN0fSBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgICAgIFJlbmRlckJvZHkge2JvZHl9
IGF0ICg4LDApIHNpemUgNzg0eDAKK2xheWVyIGF0ICg4LDApIHNpemUgMjc2eDE3CisgIFJlbmRl
ckJsb2NrIChwb3NpdGlvbmVkKSB7ZGl2fSBhdCAoOCwwKSBzaXplIDI3NngxNworICAgIFJlbmRl
clRleHQgeyN0ZXh0fSBhdCAoMCwwKSBzaXplIDI3NngxNworICAgICAgdGV4dCBydW4gYXQgKDAs
MCkgd2lkdGggMjc2OiAiSWYgeW91IHNlZSB0aGlzIHRleHQsIHRoaXMgdGVzdCBjYXNlIFNVQ0NF
RURTISIKSW5kZXg6IExheW91dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13
aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4uc3ZnCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRlLXBvc2l0
aW9uZWQtY2hpbGRyZW4uc3ZnCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi5z
dmcJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNyBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53
My5vcmcvMjAwMC9zdmciPgorICAgIDxmb3JlaWduT2JqZWN0ICB3aWR0aD0iMTAwJSIgaGVpZ2h0
PSIxMDAlIiA+CisgICAgICAgIDxib2R5IHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3ho
dG1sIiA+CisgICAgICAgICAgICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZSI+SWYgeW91
IHNlZSB0aGlzIHRleHQsIHRoaXMgdGVzdCBjYXNlIFNVQ0NFRURTITwvZGl2PgorICAgICAgICA8
L2JvZHk+CisgICAgPC9mb3JlaWduT2JqZWN0PgorPC9zdmc+CkluZGV4OiBMYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNo
aWxkcmVuLWV4cGVjdGVkLnBuZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtl
ZCBhcyBhIGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3Ry
ZWFtCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25v
YmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLnBu
ZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCk5hbWU6IHN2bjptaW1lLXR5cGUKICAgKyBhcHBsaWNhdGlvbi9vY3RldC1z
dHJlYW0KCgppVkJPUncwS0dnb0FBQUFOU1VoRVVnQUFBeUFBQUFKWUNBWUFBQUNhZG9Kd0FBQUFD
WEJJV1hNQUFBN0VBQUFPeEFHVkt3NGJBQUFYCmlrbEVRVlI0bk8zZGI2eldkZjNIOGZmaHp3SGt6
M0dCeUZMYXZPR2FaeXQxelMxdGVpT25OMXdNRjhvRUtRMm4wQkNYUzZPY2F5dHYKcUdYVGJsUmty
azNtZEpDYnJISVZPcHN3MTFabzVTaDFFVWdHL3VHWXl0OERDSi9malg2Y2NZRHpCNE9YbG8vSGR0
MjRydStINy9megp1YzZYamVlNXZ0K0xqdFphS3dBQWdJQVI3L2NFQUFDQUR3OEJBZ0FBeEF3clFE
bzZPcXFucDZmditaSWxTMnJjdUhIMXB6Lzk2WVJOCjdJT21wNmVuT2pvNmpubmJmNFAvNWJVbDlQ
VDAxUHo1ODJ2cTFLazFjdVRJK3RqSFBsYTMzbnByN2RxMXEyL000WCtIQm5yOXhSZGYKckJrelp0
VEVpUk9yczdPenpqdnZ2RnExYWxXL1B6UFVtSTZPanFNKzdydnZ2djlvektSSmsycldyRm0xWWNP
R1kxcTdjd2dBT05SNworZ1RrM252dnJiVnIxOVk1NTV4enZPZnpnVEpseXBSNjg4MDNoeHczYnR5
NFdySmt5UWs5eHZIZXovL3kydEt1dXVxcTJyTm5UNjFlCnZicDZlbnBxeFlvVjljd3p6OVNOTjk1
NFRQdlp2SGx6WFhqaGhmWHhqMys4ZnYvNzM5ZTZkZXRxNXN5Wk5XUEdqUHJ6bi84ODdERlYKVmV2
V3JhdFhYMzIxMytQNjY2L3ZkN3hqR2JONTgrWjY4c2tuYStMRWlYWEJCUmZVYTYrOWRselhEZ0I4
ZUhRTTV5YjBqbzZPMnJwMQphMDJaTXVXb3ovOVhIYnJPbnA2ZU91V1VVK3A0MzdOL3ZON0xZOTNQ
Ly9MYWtuYnMyRkVUSjA2c0hUdDIxUGp4NC90ZS8rdGYvMW9YClhYUlIzNmNiQTYzaDBOY1hMbHhZ
Qnc0Y3FQdnZ2Ny9mbU5teloxZFhWMWY5NUNjL0dkYVk0YnhmNzNWTWE2MW16NTVkcDU5K2V0MXgK
eHgzRFd2dUpPcjhBZ1A5T3gvd0p5Q2MrOFltcXF1cnU3ajdxSlZpTEZ5L3U5OXZQalJzMzFwZ3hZ
K3BmLy9wWFZWVnQyN2F0NXMyYgpWeE1tVEtpVFR6NjVGaXhZVUx0Mzd6N3FaUm9EWGJaU1ZmWHpu
Lys4empycnJCbzFhbFNkY2NZWnRYTGx5cjV0dTNidHF2bno1OWVFCkNSTnF5cFFwOVkxdmZLUDI3
OTgvNUxaRGRYZDNIM1dkUzVjdXJjbVRKMWRYVjFmZGM4ODlWWFhrSlNhRHpXMm9Zd3cwdjBjZmZi
VE8KT09PTTJybHpaMVZWM1gzMzNYWHh4UmZYZ1FNSEJwenJRRDVvYXh0c3YwT3RiYytlUGJWbzBh
THE2dXFxU1pNbTFZSUZDNnEzdDdkdgorMk9QUFZiZDNkMDFhdFNvbWpwMWFuMzN1OThkMWxxR2U1
NTBkbmJXK1BIamErblNwYlZuejU1KzZ4L28zRDJhMWxvOTl0aGp0WERoCndpTzIzWC8vL2ZYdGIz
OTdXR05PdEk2T2pscXdZRUU5L3ZqangyM3RBTUNIVEJ1R3FtcGJ0MjRkOFBtaG5ucnFxWGJhYWFl
MUF3Y08KdE5aYXUvUE9POXZNbVRQN3RuL3hpMTlzbDE1NmFkdTBhVk5idjM1OU8vLzg4OXN0dDl6
U3RtN2QyZzZmemtESDZlM3RiZVBIajI4cgpWNjVzMjdadGF3ODk5RkNiT25WcTMvYkZpeGUzZWZQ
bXRWZGZmYlU5Ly96enJidTd1OTExMTExRGJodHMzUWZudDNEaHd0YmIyOXQrCjhZdGZ0SkVqUjdh
ZE8zZjJtL3RRY3h2cXZSMXNmbGRlZVdXNytlYWIyMHN2dmRTbVRwM2FYbjc1NVNIZnErRWM5LzFl
MjFEN0hXeHQKdDkxMlc3dnd3Z3ZieXkrLzNOYXZYOTgrK2NsUDlyMWZ2YjI5YmV6WXNlM1dXMjl0
YjcvOWRsdTFhbFhyNk9obzI3ZHYvNC9Pb2NNdApYNzY4blhMS0tXMzgrUEh0c3NzdWEvZmVlMisv
bjgxZ2F6ajQranZ2dk5PcXF1M2F0V3ZBOTNNNFl3N3VjK1BHalczNzl1MzlIdSsrCisrNHhqem5h
bkY5NTVaVTJldlRvWWErOXA2Zm5pTC9iQU1DSDEzRVBrSDM3OXJYSmt5ZTNQL3poRDYyMTFzNCsr
K3kyWXNXS3ZtM2oKeG8xckw3MzBVdC80Tld2V3ROTlBQLzJZQW1UWHJsMXQ3Tml4N2FjLy9XbmJ0
bTFiTzNEZ1FOdStmWHRycmJYOSsvZTNycTZ1MXRQVAowemYrWnovN1dUdjMzSE1IM1RiVXVnL09i
OHVXTGEyMTFnNGNPTkMzL2RDNUR6YTNvWTR4MVB4ZWYvMzFkdXFwcDdidTd1NzJ3QU1QCkRPdTlH
czV4MysrMURiWGZ3ZFkyZmZyMDlzd3p6L1E5Zis2NTU5b1RUenpSV3Z2MytmYkNDeSswblR0M3Ru
ZmZmYmM5Kyt5emZmdDYKcitmUVFQYnQyOWQrOTd2ZnRUdnV1S045NWpPZmFhTkdqV3JMbGkwYmNn
MEhYMy83N2JkYlZiWGR1M2NQZUl6aGpEbTR6Nk05MXF4WgpjOHhqaGdxUTRheDkzNzU5ZzRZcUFQ
RGhjdHdEcExYV3JydnV1bmJiYmJlMUYxNTRvVTJjT0xIdk43WnZ2ZlZXcTZxMmI5Kyt2ckZiCnRt
eHBJMGVPUENKQUR2MUg4TkU4K2VTVDdaSkxMbWtUSmt4b24vNzBwL3YrMFhud0dJYy9QdnJSanc2
NmJhaDFINXpmd1U5MkR0MSsKK053SG10dFF4eGpPL0w3NjFhKzJycTZ1STM0TGZqd0M1UDFjMjJE
N0hXeHRJMGVPYksrKyt1cUFjM2owMFVmYnVlZWUyN3E3dTlzVgpWMXpSYjEvdjVSdzZYRzl2YjN2
a2tVZjZ2WGV0dGZiZ2d3OGU4U25PRzIrODBXL01vZWY0Z1FNSDJrYys4cEcyZHUzYUk0N3h5MS8r
CnNsMTY2YVhER2pQVSszWG9mTjdybUNlZWVLS2RlZWFadzE1N2E2MTk5ck9mSGZSWUFNQ0h4d241
ZjBBKy8vblAxOHFWSzJ2NTh1VTEKYTlhc0dqZHVYRlZWVFpnd29jYU9IZHZ2YXp3M2J0eFlwNTU2
YXQvejl2ODNxaDc4bHAyajJiZHZYNDBkTzdaV3JWcFZQVDA5ZGYzMQoxOWZzMmJPcnF1cWtrMDZx
MGFOSDF6dnZ2RlB0MzRGVmI3NzVaajM5OU5PRGJodXVvYjVPZExDNURXV28rYTFmdjc0ZWV1aWhP
dWVjCmMwN0k5Zjd2MTlyK2svMmVjc29wOVk5Ly9LUHYrWm8xYS9wdTBPN3Q3YTJycjc2NmZ2U2pI
OVZmL3ZLWFdyNTgrYkRXY2l6blNVZEgKUjMzaEMxK29GMTk4c2QvcjU1OS9mcit2b3AwOGVYSnQz
cnk1MzVnTkd6YlVtREZqcXF1cnF6bzZPdXJ5eXkrdkgvemdCMGNjNCtHSApINjZUVGpwcFdHTk90
TlphL2ZqSFA2N0xMcnRzMkd1dnFycmlpaXRPK053QWdQOE9KeVJBTHI3NDR2cm5QLzlaUC96aEQy
dnUzTGw5CnI0OGFOYXF1dlBMS3V1bW1tK3FWVjE2cERSczIxQzIzM0ZKWFhYVlZqUnMzcmthTUdG
Ry8rdFd2YXUvZXZYWFhYWGNOZW96UGZlNXoKOVp2Zi9LYjI3ZHRYSTBhTTZQc1duczdPenBveFkw
Wjk1U3RmcVRmZWVLTTJiTmhRTTJiTXFHWExsZzI2YlNDSDN0QThYQVBOYmFoagpERGEvL2Z2MzE3
WFhYbHUzMzM1N0xWdTJySll1WFZyUFBmZmNnSE45NElFSGhwejdCMlZ0dzludlFIT2RNMmRPTFZt
eXBEWnQybFFiCk4yNnN4WXNYOTMxbGIydXQ5dS9mWDUyZG5iVm56NTY2ODg0NysrM3J2WnhEaCt2
czdLeXJyNzY2NXM2ZFcwOC8vWFJ0M3J5NTFxNWQKV3pmZWVHUE5tVE9uYjl5MTExNWJYL3JTbCtx
M3YvMXRiZDY4dVZhdlhsMXo1c3lwYTY2NXBrYVBIbDFWVmQvODVqZHI1Y3FWZGROTgpOOVc2ZGV2
cTczLy9lMzNyVzkrcUZTdFcxTmUrOXJWaGo2bXFldjMxMSt1MTExN3I5M2pycmJmNnpmMVl4bXpa
c3FXZWZmYlptajkvCmZxMWV2YnErL3ZXdkQzdnR1M2Z2UHVvTi9BREFoOVJ3UGlhcFk3d0VxN1hX
NXM2ZDI2Wk5tOWJ2cHRiVy9uMGQrNXc1YzlyNDhlUGIKcEVtVDJnMDMzTkIzT2RGM3Z2T2RObW5T
cERaNTh1VDI0SU1QRG5xY2h4OSt1RTJmUHIyTkdER2luWFhXV2UycHA1N3EyN1oxNjlaMgorZVdY
dHpGanhyU1RUejY1TFZxMHFQWDI5ZzY1N1hBWFhYUlJHek5tVFB2akgvODQ2RDBxaDI4YmJHNkRI
V093K1gzdmU5OXJGMXh3ClFkdS9mMzlycmJYdmYvLzc3ZXl6ejI1NzkrNDk2bjZHK2hsOWtOWTIx
SDRQMzgraGR1M2ExYTY3N3JvMlljS0VObkhpeEhiRERUZjAKKzNuZWQ5OTlyYXVycTAyWk1xWGRj
ODg5N2FLTExtcmQzZDFESHZOWXpwTmR1M2ExbTIrK3VVMmJOcTExZEhTMGFkT210Y1dMRjdjZApP
M2IwamRtN2QyKzcvZmJiMi9UcDA5dklrU1BiYWFlZDFwWXNXWExFL1J6UFAvOTh1K1NTUzlyWXNX
UGI2TkdqMjNubm5kZCsvZXRmCkg5T1lHdUQramxtelp2MUhZOGFQSDk5bXpwelovdmEzdngzVDJv
OTJmZ0VBSDE3RCtuOUEzb3RGaXhaVloyZG4zWHZ2dlNkaTl3emgKN3J2dnJpOS8rY3MxYWRLazkz
c3FBQURRNTdoZmd0WGIyMXViTm0ycVJ4NTVwT2JObTNlOGQ4OHdQZjc0NCtJREFJQVBuT01lSUd2
VwpyS2t6enp5enJybm1tdnJVcHo1MXZIZlBNSzFldmZyOW5nSUFBQnpoaEYyQ0JRQUFjTGdUOGkx
WUFBQUFSeU5BQUFDQUdBRUNBQURFCkNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFC
aUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUEKQUlnUklBQUFRSXdBQVFB
QVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVB
QUdJRQpDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFC
QUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBCnhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdB
QVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUUKQUFDSUVTQUFBRUNN
QUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFq
QUFCQUFCaQpCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFR
SXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBCkFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFB
RUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUMKQkFBQWlCRWdB
QUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklB
QUFRSXdBQVFBQQpZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVT
QUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FHQUVDCkFBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlC
RWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXgKQWdRQUFJ
Z1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFD
SUVTQUFBRUNNQUFFQQpBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFB
QWlCRWdBQUJBakFBQkFBQmlCQWdBQUJBalFBQUFnQmdCCkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdR
QUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUEKTVFJ
RUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVD
QkFBQWlCRWdBQUJBakFBQgpBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4
QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJQUFBUUkwQUFBSUFZCkFRSUFBTVFJRUFBQUlFYUFBQUFB
TVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUEK
QURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFB
QUF4QWdRQUFJZ1JJQUFBUUl3QQpBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFB
QUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFBR0lFQ0FBQUVDTkFBQUNBCkdBRUNBQURFQ0JBQUFDQkdn
QUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1Jv
QUEKQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlF
YUFBQUFBTVFJRUFBQ0lFU0FBQUVDTQpBQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFD
QkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpBQUJBQUJpQkFnQUFCQWpRQUFBCmdCZ0JBZ0FBeEFnUUFB
QWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFB
QUlFYUEKQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JB
QUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQQpqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFn
UUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBCkFJQVlBUUlBQU1R
SUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURF
Q0JBQUFDQkcKZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FB
eEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFBQQpRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlB
QU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BCkFBQ0FHQUVD
QUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JB
Z0FBeEFnUUFBQWcKUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlB
UUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJRVNBQQpBRUNNQUFFQUFHSUVDQUFBRUNOQUFBQ0FH
QUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqClFBQUFn
QmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJ
QVlBUUlBQU1RSUVBQUEKSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNOQUFB
Q0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFERUNCQUFBaUJFZwpBQUJBakFBQkFBQmlCQWdBQUJBalFB
QUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRCkkw
QUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFBRUNO
QUFBQ0FHQUVDQUFERUNCQUEKQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdBQUJB
alFBQUFnQmdCQWdBQXhBZ1FBQUFnUm9BQUFBQXhBZ1FBQUlnUgpJQUFBUUl3QUFRQUFZZ1FJQUFB
UUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSUVTQUFBRUNNQUFFQUFHSUVDQUFB
CkVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlCQWdB
QUJBalFBQUFnQmdCQWdBQXhBZ1EKQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZZ1FJ
QUFBUUkwQUFBSUFZQVFJQUFNUUlFQUFBSUVhQUFBQUFNUUlFQUFDSQpFU0FBQUVDTUFBRUFBR0lF
Q0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQWlCRWdBQUJBakFBQkFBQmlC
QWdBCkFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFRQUFZ
Z1FJQUFBUUkwQUFBSUFZQVFJQUFNUUkKRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFBRUFB
R0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREVDQkFBQUNCR2dBQUFBREVDQkFBQQppQkVnQUFCQWpBQUJB
QUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQUFJZ1JJQUFBUUl3QUFR
QUFZZ1FJCkFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVDTUFB
RUFBR0lFQ0FBQUVDTkFBQUNBR0FFQ0FBREUKQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFCQWpB
QUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUF4QWdRQUFBZ1JvQUFBQUF4QWdRQQpBSWdSSUFBQVFJ
d0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRUFBQ0lFU0FBQUVD
TUFBRUFBR0lFCkNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVnQUFC
QWpBQUJBQUJpQkFnQUFCQWpRQUFBZ0JnQkFnQUEKeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdSSUFB
QVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUFBTVFJRUFBQUlFYUFBQUFBTVFJRQpBQUNJRVNB
QUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQ0JBQUFpQkVn
QUFCQWpBQUJBQUJpCkJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFBSWdS
SUFBQVFJd0FBUUFBWWdRSUFBQVFJMEFBQUlBWUFRSUEKQU1RSUVBQUFJRWFBQUFBQU1RSUVBQUNJ
RVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUNBQURFQ0JBQUFDQkdnQUFBQURFQwpCQUFB
aUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeEFnUUFB
SWdSSUFBQVFJd0FBUUFBCllnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1RSUVB
QUNJRVNBQUFFQ01BQUVBQUdJRUNBQUFFQ05BQUFDQUdBRUMKQUFERUNCQUFBQ0JHZ0FBQUFERUNC
QUFBaUJFZ0FBQkFqQUFCQUFCaUJBZ0FBQkFqUUFBQWdCZ0JBZ0FBeEFnUUFBQWdSb0FBQUFBeApB
Z1FBQUlnUklBQUFRSXdBQVFBQVlnUUlBQUFRSTBBQUFJQVlBUUlBQU1RSUVBQUFJRWFBQUFBQU1R
SUVBQUNJRVNBQUFFQ01BQUVBCkFHSUVDQUFBRUNOQUFBQ0FHQUVDQUFERUNCQUFBQ0JHZ0FBQUFE
RUNCQUFBaUJFZ0FBQkF6UDhCeFVldlhFTk1maUVBQUFBQVNVVk8KUks1Q1lJST0KCg==
</data>
<flag name="review"
          id="20885"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39844</attachid>
            <date>2009-09-21 02:42:32 -0700</date>
            <delta_ts>2009-09-22 23:23:01 -0700</delta_ts>
            <desc>re-submission</desc>
            <filename>26342.patch</filename>
            <type>text/plain</type>
            <size>5072</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODU3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMjEgIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCB0aGUgY3Jhc2ggcHJvYmxlbSB3aXRoIGFic29sdGUgcG9zaXRpb25lZCBj
aGlsZHJlbiBpbiBmb3JlaWdub2JqZWN0IAorICAgICAgICBodHRzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yNjM0MgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20vZm9yZWln
bm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRlLXBvc2l0aW9uZWQtY2hpbGRyZW4uc3ZnCisKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRm9yZWlnbk9iamVjdDo6aXNTVkdGb3JlaWduT2JqZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVj
dDo6Y29udGFpbmluZ0Jsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyT2JqZWN0Lmg6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU1ZHRm9yZWlnbk9iamVjdCk6CisK
IDIwMDktMDktMjAgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBNYWNpZWogU3RhY2hvd2lhay4KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZvcmVpZ25PYmplY3QuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGb3JlaWduT2JqZWN0LmgJKHJldmlzaW9uIDQ4NTY4KQorKysgV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRm9yZWlnbk9iamVjdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00OSw2ICs0OSw3IEBAIHB1
YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRGbG9hdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50SW5QYXJlbnQs
IEhpdFRlc3RBY3Rpb24pOwogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRU
ZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwgaW50IHksIGludCB0eCwgaW50IHR5
LCBIaXRUZXN0QWN0aW9uKTsKKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGb3JlaWduT2JqZWN0KCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiAgcHJpdmF0ZToKICAgICBUcmFuc2Zvcm1hdGlvbk1h
dHJpeCB0cmFuc2xhdGlvbkZvckF0dHJpYnV0ZXMoKSBjb25zdDsKSW5kZXg6IFdlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcAkocmV2aXNpb24gNDg1NjgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MjUsNiArNjI1LDExIEBAIFJlbmRl
ckJsb2NrKiBSZW5kZXJPYmplY3Q6OmNvbnRhaW5pbmdCbG8KICAgICAgICAgICAgIC8vIGlubGlu
ZSBkaXJlY3RseS4KICAgICAgICAgICAgIGlmIChvLT5zdHlsZSgpLT5wb3NpdGlvbigpID09IFJl
bGF0aXZlUG9zaXRpb24gJiYgby0+aXNJbmxpbmUoKSAmJiAhby0+aXNSZXBsYWNlZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybiBvLT5jb250YWluaW5nQmxvY2soKTsKKyNpZiBFTkFCTEUoU1ZH
KQorICAgICAgICAgICAgaWYgKG8tPmlzU1ZHRm9yZWlnbk9iamVjdCgpKQorICAgICAgICAgICAg
ICAgIGJyZWFrOworI2VuZGlmCisKICAgICAgICAgICAgIG8gPSBvLT5wYXJlbnQoKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSB7CkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkocmV2aXNp
b24gNDg1NjgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAkod29ya2luZyBj
b3B5KQpAQCAtMzA1LDYgKzMwNSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNSZW5k
ZXJQYXRoKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdU
ZXh0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNTVkdJbWFn
ZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIGlzU1ZHRm9yZWln
bk9iamVjdCgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAgICAvLyBQZXIgU1ZHIDEuMSBv
YmplY3RCb3VuZGluZ0JveCBpZ25vcmVzIGNsaXBwaW5nLCBtYXNraW5nLCBmaWx0ZXIgZWZmZWN0
cywgb3BhY2l0eSBhbmQgc3Ryb2tlLXdpZHRoLgogICAgIC8vIFRoaXMgaXMgdXNlZCBmb3IgYWxs
IGNvbXB1dGF0aW9uIG9mIG9iamVjdEJvdW5kaW5nQm94IHJlbGF0aXZlIHVuaXRzIGFuZCBieSBT
VkdMb2NhdGVhYmxlOjpnZXRCQm94KCkuCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0ODU3NCkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBACisyMDA5
LTA5LTIxICBDaGFybGVzIFdlaSAgPGNoYXJsZXMud2VpQHRvcmNobW9iaWxlLmNvbS5jbj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggdGhlIGNy
YXNoIHByb2JsZW0gd2l0aCBhYnNvbHV0ZSBwb3NpdGlvbmVkIGNoaWxkcmVuIGluIGZvcmVpZ25P
YmplY3Qgb2YgU1ZHCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yNjM0MgorCisgICAgICAgICogc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdp
dGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN2Zy9jdXN0b20vZm9yZWlnbm9iamVjdC1jcmFzaC13aXRoLWFic29sdXRlLXBvc2l0
aW9uZWQtY2hpbGRyZW4uc3ZnOiBBZGRlZC4KKwogMjAwOS0wOS0yMCAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE1hY2llaiBTdGFjaG93aWFr
LgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgt
YWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUt
cG9zaXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlv
bmVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorVGhp
cyB0ZXN0IGNhc2UgaXMgZGVzaWduZWQgZm9yIGJ1ZyAyNjM0MiBhdDogaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2MzQyLCB3aGljaCBjb21wbGFpbnMgYWJvdXQgd2Vi
a2l0IGNyYXNoIHdpdGggdGhpcyB0ZXN0IGNhc2UuIElmIHlvdSBzZWUgdGhpcyB0ZXh0IHJlbmRl
cnMgd2l0aCB3ZWJraXQsIHRoZSB0ZXN0IGNhc2UgU1VDQ0VFRFMgIQpJbmRleDogTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25l
ZC1jaGlsZHJlbi5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3Jl
aWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi5zdmcJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gt
d2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLnN2ZwkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorPHNj
cmlwdD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+CisKKyAgICA8Zm9yZWlnbk9iamVj
dCAgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgPgorICAgICAgICA8Ym9keSB4bWxucz0iaHR0
cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgPgorICAgICAgICAgICAgPGRpdiBzdHlsZT0icG9z
aXRpb246YWJzb2x1dGUiPlRoaXMgdGVzdCBjYXNlIGlzIGRlc2lnbmVkIGZvciBidWcgMjYzNDIg
YXQ6IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM0Miwgd2hpY2gg
Y29tcGxhaW5zIGFib3V0IHdlYmtpdCBjcmFzaCB3aXRoIHRoaXMgdGVzdCBjYXNlLiBJZiB5b3Ug
c2VlIHRoaXMgdGV4dCByZW5kZXJzIHdpdGggd2Via2l0LCB0aGUgdGVzdCBjYXNlIFNVQ0NFRURT
ICE8L2Rpdj4KKyAgICAgICAgPC9ib2R5PgorICAgIDwvZm9yZWlnbk9iamVjdD4KKzwvc3ZnPgo=
</data>
<flag name="review"
          id="20981"
          type_id="1"
          status="+"
          setter="darin"
    />
    <flag name="commit-queue"
          id="21081"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>39976</attachid>
            <date>2009-09-22 23:23:01 -0700</date>
            <delta_ts>2009-09-22 23:39:59 -0700</delta_ts>
            <desc>resubmit after adding comments and test case description change</desc>
            <filename>26342.patch</filename>
            <type>text/plain</type>
            <size>4835</size>
            <attacher name="Charles Wei">charles.wei</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0ODY2NykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMDktMjIgIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9y
Y2htb2JpbGUuY29tLmNuPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEZpeCB0aGUgY3Jhc2ggcHJvYmxlbSB3aXRoIGFic29sdGUgcG9zaXRpb25lZCBj
aGlsZHJlbiBpbiBmb3JlaWdub2JqZWN0CisgICAgICAgIGh0dHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTI2MzQyCisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS9mb3JlaWdu
b2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi5zdmcKKworICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJGb3JlaWduT2JqZWN0Lmg6CisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGb3JlaWduT2JqZWN0Ojppc1NWR0ZvcmVpZ25PYmplY3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyT2JqZWN0
Ojpjb250YWluaW5nQmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNTVkdGb3JlaWduT2JqZWN0KToKKwog
MjAwOS0wOS0yMiAgRHJldyBXaWxzb24gIDxhdHdpbHNvbkBnb29nbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhdmlkIExldmluLgpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Rm9yZWlnbk9iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZv
cmVpZ25PYmplY3QuaAkocmV2aXNpb24gNDg1NjgpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGb3JlaWduT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGlj
OgogCiAgICAgdmlydHVhbCBib29sIG5vZGVBdEZsb2F0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgRmxvYXRQb2ludCYgcG9pbnRJblBhcmVudCwgSGl0
VGVzdEFjdGlvbik7CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhp
dFRlc3RBY3Rpb24pOworICAgIHZpcnR1YWwgYm9vbCBpc1NWR0ZvcmVpZ25PYmplY3QoKSBjb25z
dCB7IHJldHVybiB0cnVlOyB9CiAKICBwcml2YXRlOgogICAgIFRyYW5zZm9ybWF0aW9uTWF0cml4
IHRyYW5zbGF0aW9uRm9yQXR0cmlidXRlcygpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCShyZXZpc2lvbiA0ODU2OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYyNSw2ICs2MjUsMTEgQEAgUmVuZGVyQmxv
Y2sqIFJlbmRlck9iamVjdDo6Y29udGFpbmluZ0JsbwogICAgICAgICAgICAgLy8gaW5saW5lIGRp
cmVjdGx5LgogICAgICAgICAgICAgaWYgKG8tPnN0eWxlKCktPnBvc2l0aW9uKCkgPT0gUmVsYXRp
dmVQb3NpdGlvbiAmJiBvLT5pc0lubGluZSgpICYmICFvLT5pc1JlcGxhY2VkKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIG8tPmNvbnRhaW5pbmdCbG9jaygpOworI2lmIEVOQUJMRShTVkcpCisg
ICAgICAgICAgICBpZiAoby0+aXNTVkdGb3JlaWduT2JqZWN0KCkpIC8vZm9yZWlnbk9iamVjdCBp
cyB0aGUgY29udGFpbmluZyBibG9jayBmb3IgY29udGVudHMgaW5zaWRlIGl0CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisjZW5kaWYKKwogICAgICAgICAgICAgbyA9IG8tPnBhcmVudCgpOwogICAg
ICAgICB9CiAgICAgfSBlbHNlIHsKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCShyZXZp
c2lvbiA0ODU2OCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0zMDUsNiArMzA1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Jl
bmRlclBhdGgoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NW
R1RleHQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc1NWR0lt
YWdlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNTVkdGb3Jl
aWduT2JqZWN0KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIC8vIFBlciBTVkcgMS4x
IG9iamVjdEJvdW5kaW5nQm94IGlnbm9yZXMgY2xpcHBpbmcsIG1hc2tpbmcsIGZpbHRlciBlZmZl
Y3RzLCBvcGFjaXR5IGFuZCBzdHJva2Utd2lkdGguCiAgICAgLy8gVGhpcyBpcyB1c2VkIGZvciBh
bGwgY29tcHV0YXRpb24gb2Ygb2JqZWN0Qm91bmRpbmdCb3ggcmVsYXRpdmUgdW5pdHMgYW5kIGJ5
IFNWR0xvY2F0ZWFibGU6OmdldEJCb3goKS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ4NjY3KQorKysg
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MDktMDktMjIgIENoYXJsZXMgV2VpICA8Y2hhcmxlcy53ZWlAdG9yY2htb2JpbGUuY29tLmNuPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB0aGUg
Y3Jhc2ggcHJvYmxlbSB3aXRoIGFic29sdGUgcG9zaXRpb25lZCBjaGlsZHJlbiBpbiBmb3JlaWdu
b2JqZWN0CisgICAgICAgIGh0dHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI2
MzQyCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNv
bHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1j
aGlsZHJlbi5zdmc6IEFkZGVkLgorCiAyMDA5LTA5LTIyICBBbHBoYSBMYW0gIDxoY2xhbUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgpJbmRleDogTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9z
aXRpb25lZC1jaGlsZHJlbi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25lZC1j
aGlsZHJlbi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL2ZvcmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVu
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorUEFTUyAtLSBUaGlzIGRp
ZCBub3QgY3Jhc2guIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNjM0
MgpJbmRleDogTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgt
YWJzb2x1dGUtcG9zaXRpb25lZC1jaGlsZHJlbi5zdmcKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3ZnL2N1c3RvbS9mb3JlaWdub2JqZWN0LWNyYXNoLXdpdGgtYWJzb2x1dGUtcG9zaXRpb25l
ZC1jaGlsZHJlbi5zdmcJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9zdmcvY3VzdG9tL2Zv
cmVpZ25vYmplY3QtY3Jhc2gtd2l0aC1hYnNvbHV0ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLnN2Zwko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMiBAQAorPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5v
cmcvMjAwMC9zdmciPgorPHNjcmlwdD4KKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworPC9zY3JpcHQ+CisK
KyAgICA8Zm9yZWlnbk9iamVjdCAgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgPgorICAgICAg
ICA8Ym9keSB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgPgorICAgICAgICAg
ICAgPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGUiPlBBU1MgLS0gVGhpcyBkaWQgbm90IGNy
YXNoLiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjYzNDI8L2Rpdj4K
KyAgICAgICAgPC9ib2R5PgorICAgIDwvZm9yZWlnbk9iamVjdD4KKzwvc3ZnPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>