<?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>71733</bug_id>
          
          <creation_ts>2011-11-07 14:20:23 -0800</creation_ts>
          <short_desc>Repaint broken when children of filtered SVG elements are updated</short_desc>
          <delta_ts>2011-11-25 14:36:03 -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></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Joel Webber">jgw</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jchaffraix</cc>
    
    <cc>rhodovan.u-szeged</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>497466</commentid>
    <comment_count>0</comment_count>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-07 14:20:23 -0800</bug_when>
    <thetext>When a parent (e.g., &lt;g&gt;) SVG element has a filter applied, and one of its children is updated (in such a way that only a sub-rectangle of the outer element would normally need to be repainted), webkit re-renders the element incorrectly. You can see this in the attached HTML file -- both squares should be green, but the second usually turns up red, because the element doesn&apos;t repaint correctly when the child&apos;s fill color is updated (on a 1ms timer).

This bug manifests in several different ways -- the attached example is the simplest reproduction I could get. Generally speaking, what&apos;s happening is as follows:
- On the first paint, the SVG filter code allocates an ImageBuffer, paints the results of the filter into it, then caches it.
  - Subsequent repaints just use the cached ImageBuffer.
- When you update the child, it kicks off a repaint for the bounds of the child&apos;s RenderObject.
- When that paint comes back down the pipeline, the &lt;g&gt; with the filter applied allocates a new ImageBuffer.
- The PaintInfo specifies that only the child&apos;s bounds needs to be repainted.
- The filter&apos;s *new* ImageBuffer is only partially painted.
- This mostly works, because the part of the filter&apos;s ImageBuffer that overlaps the paint rectangle is copied to the screen.
- But the *next* time we repaint the &lt;g&gt; from this ImageBuffer cache, it only contains a subset of the pixels it needs.
- This causes seemingly-random parts of the &lt;g&gt; to get blown away visually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498222</commentid>
    <comment_count>1</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-08 10:27:32 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; You can see this in the attached HTML file -- both squares should be green, but the second usually turns up red, because the element doesn&apos;t repaint correctly when the child&apos;s fill color is updated (on a 1ms timer).

Joel, it looks like the attachment did not make it. Could you upload it (again)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498938</commentid>
    <comment_count>2</comment_count>
      <attachid>114273</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-09 07:28:42 -0800</bug_when>
    <thetext>Created attachment 114273
Missing example</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498943</commentid>
    <comment_count>3</comment_count>
      <attachid>114275</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-09 07:33:41 -0800</bug_when>
    <thetext>Created attachment 114275
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498946</commentid>
    <comment_count>4</comment_count>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-09 07:37:50 -0800</bug_when>
    <thetext>My proposed fix for this (in the attached patch) is to modify RenderSVG[Container Root] such that they needsLayout() whenever any of their children needsLayout(). This fixes the immediate problem because the filter&apos;s ImageBuffer cache always gets fully repainted whenever a child is modified.

I also believe this will fix other probably-as-yet-unreported bugs with SVG filters, because repainting only the child&apos;s bounds is insufficient for filters with kernel sizes &gt; 1px.

I&apos;m not attached to the approach, but I think it&apos;s pretty straightforward -- any suggestions on the details are very much welcome.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>498953</commentid>
    <comment_count>5</comment_count>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-09 07:43:51 -0800</bug_when>
    <thetext>A couple of notes on the test case:
- This test only fails intermittently on trunk. If you load the attached HTML file, you&apos;ll see that it occasionally renders correctly (both squares green), but most of the time you&apos;ll see that the bottom-right square is red. It always works correctly with the patch applied.
- I have another test that more directly models the bug, by changing a child of the &lt;g&gt; element, which causes the rest of the cached ImageBuffer to get blown away (as in the bug description). But for the life of me I can&apos;t get it to fail when running in test_shell or as a layout test. I believe this has something to do with differences between the painting logic in test_shell and chrome/safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>499949</commentid>
    <comment_count>6</comment_count>
      <attachid>114275</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 08:45:37 -0800</bug_when>
    <thetext>Comment on attachment 114275
Patch

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

First round of review, thanks for tackling this!

&gt; Source/WebCore/rendering/svg/RenderSVGContainer.cpp:57
&gt; +    SVGRenderSupport::setNeedsLayoutForFilteredContainer(this);

I&apos;d rename this to &quot;setContainerNeedsLayoutIfNeeded&quot;.

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:310
&gt; +    if (object-&gt;normalChildNeedsLayout()) {

Use early return here.

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:312
&gt; +        if (resources &amp;&amp; resources-&gt;filter())

And here, for any of the cases.

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:313
&gt; +            object-&gt;setNeedsLayout(true);

This is dangerous, you&apos;re mutating the setNeedsLayout state of all containing blocks as well, are you sure you want that? Doing that from within layout() that looks suspicious.
I&apos;d propose to amend RenderSVGContainers way of laying out the children, where we currently do:
    SVGRenderSupport::layoutChildren(this, selfNeedsLayout());

This could just read layoutChildren(this, selfNeedsLayout() || filtersForceContainerLayout())
where filtersForceContainerLayout() contains your object-&gt;normalChildNeedsLayout() &amp;&amp; resources-&gt;filter() check.
Sounds better, eh?

&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:13
&gt; +      &lt;feOffset in=&quot;SourceGraphic&quot; dx=&quot;0&quot; dy=&quot;0&quot; result=&quot;topCopy&quot;/&gt;
&gt; +      &lt;feGaussianBlur in=&quot;SourceAlpha&quot; stdDeviation=&quot;2&quot; result=&quot;shadow&quot;/&gt;
&gt; +      &lt;feOffset in=&quot;shadow&quot; dx=&quot;3&quot; dy=&quot;3&quot; result=&quot;movedShadow&quot;/&gt;
&gt; +      &lt;feMerge&gt;
&gt; +        &lt;feMergeNode in=&quot;movedShadow&quot;/&gt;
&gt; +        &lt;feMergeNode in=&quot;topCopy&quot;/&gt;
&gt; +      &lt;/feMerge&gt;
&gt; +    &lt;/filter&gt;

You could use the new feDropShadow primitive, would simplify the test.

&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:15
&gt; +

Can you add a &lt;title&gt; section, explaining when this tests passes?
Currently its hard to tell, without tracing in mind :-)

&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:16
&gt; +  &lt;g filter=&apos;url(#dropShadow)&apos; width=&apos;128px&apos; height=&apos;128px&apos;&gt;

width/height are useless on &lt;g&gt;, you can remove it.

&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:18
&gt; +    &lt;rect width=&quot;64&quot; height=&quot;64&quot; style=&quot;fill:rgb(0,128,0)&quot;/&gt;
&gt; +    &lt;rect id=&apos;poke&apos; x=&apos;32&apos; y=&apos;32&apos; width=&quot;64&quot; height=&quot;64&quot; style=&quot;fill:rgb(128,0,0)&quot;/&gt;

Also you could just use fill=&quot;green&quot; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500029</commentid>
    <comment_count>7</comment_count>
      <attachid>114275</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 10:18:46 -0800</bug_when>
    <thetext>Comment on attachment 114275
Patch

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

&gt;&gt; Source/WebCore/rendering/svg/RenderSVGContainer.cpp:57

&gt; 
&gt; I&apos;d rename this to &quot;setContainerNeedsLayoutIfNeeded&quot;.

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:310
&gt;&gt; +    if (object-&gt;normalChildNeedsLayout()) {
&gt; 
&gt; Use early return here.

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:312
&gt;&gt; +        if (resources &amp;&amp; resources-&gt;filter())
&gt; 
&gt; And here, for any of the cases.

Done.

&gt;&gt; Source/WebCore/rendering/svg/SVGRenderSupport.cpp:313
&gt;&gt; +            object-&gt;setNeedsLayout(true);
&gt; 
&gt; This is dangerous, you&apos;re mutating the setNeedsLayout state of all containing blocks as well, are you sure you want that? Doing that from within layout() that looks suspicious.
&gt; I&apos;d propose to amend RenderSVGContainers way of laying out the children, where we currently do:
&gt;     SVGRenderSupport::layoutChildren(this, selfNeedsLayout());
&gt; 
&gt; This could just read layoutChildren(this, selfNeedsLayout() || filtersForceContainerLayout())
&gt; where filtersForceContainerLayout() contains your object-&gt;normalChildNeedsLayout() &amp;&amp; resources-&gt;filter() check.
&gt; Sounds better, eh?

Thanks for clarifying that -- it felt a bit odd to be flipping that bit here, and I failed to notice the hierarchical behavior of calling setNeedsLayout(). I&apos;ve refactored this code as you suggest, and it does indeed feel better.

&gt;&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:13
&gt;&gt; +    &lt;/filter&gt;
&gt; 
&gt; You could use the new feDropShadow primitive, would simplify the test.

Done, thanks. That one wasn&apos;t in the SVG 1.1 docs, but I see it in WebKit now.
(This awkward implementation, btw, came from a chromium bug I was investigating)

&gt;&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:15
&gt;&gt; +
&gt; 
&gt; Can you add a &lt;title&gt; section, explaining when this tests passes?
&gt; Currently its hard to tell, without tracing in mind :-)

Done. It&apos;s a bit hard to tell what the norms are from existing tests :)

&gt;&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:16
&gt;&gt; +  &lt;g filter=&apos;url(#dropShadow)&apos; width=&apos;128px&apos; height=&apos;128px&apos;&gt;
&gt; 
&gt; width/height are useless on &lt;g&gt;, you can remove it.

Done.

&gt;&gt; LayoutTests/svg/repaint/filter-child-repaint.svg:18
&gt;&gt; +    &lt;rect id=&apos;poke&apos; x=&apos;32&apos; y=&apos;32&apos; width=&quot;64&quot; height=&quot;64&quot; style=&quot;fill:rgb(128,0,0)&quot;/&gt;
&gt; 
&gt; Also you could just use fill=&quot;green&quot; here.

Done (old habits die hard...).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500033</commentid>
    <comment_count>8</comment_count>
      <attachid>114526</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 10:31:56 -0800</bug_when>
    <thetext>Created attachment 114526
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500242</commentid>
    <comment_count>9</comment_count>
      <attachid>114526</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-10 13:55:25 -0800</bug_when>
    <thetext>Comment on attachment 114526
Patch

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

Looks good, r=me!

&gt; Source/WebCore/rendering/svg/SVGRenderSupport.h:58
&gt; +    // Determines whether a container needs to be laid out because it&apos;s filtered and a child is being laid out

Missed period.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500263</commentid>
    <comment_count>10</comment_count>
      <attachid>114566</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 14:08:59 -0800</bug_when>
    <thetext>Created attachment 114566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500265</commentid>
    <comment_count>11</comment_count>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 14:10:05 -0800</bug_when>
    <thetext>Please ignore that last patch. There&apos;s commit-log diff garbage in there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500269</commentid>
    <comment_count>12</comment_count>
      <attachid>114569</attachid>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 14:14:19 -0800</bug_when>
    <thetext>Created attachment 114569
Added the requested &apos;.&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500276</commentid>
    <comment_count>13</comment_count>
    <who name="Joel Webber">jgw</who>
    <bug_when>2011-11-10 14:19:12 -0800</bug_when>
    <thetext>Many thanks for the prompt review, Nikolas. Looks like I&apos;ve managed to reset the review state by adding that trivial period to the comment and re-uploading. Whenever you have a free moment to R+ it, it would be greatly appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>500749</commentid>
    <comment_count>14</comment_count>
      <attachid>114569</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-11 07:18:10 -0800</bug_when>
    <thetext>Comment on attachment 114569
Added the requested &apos;.&apos;

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501176</commentid>
    <comment_count>15</comment_count>
      <attachid>114569</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 15:41:13 -0800</bug_when>
    <thetext>Comment on attachment 114569
Added the requested &apos;.&apos;

Clearing flags on attachment: 114569

Committed r100036: &lt;http://trac.webkit.org/changeset/100036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>501177</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-11 15:41:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509267</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-11-25 14:36:03 -0800</bug_when>
    <thetext>The test added by this patch is failing on Mac (the second box is red).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>114273</attachid>
            <date>2011-11-09 07:28:42 -0800</date>
            <delta_ts>2011-11-09 07:28:42 -0800</delta_ts>
            <desc>Missing example</desc>
            <filename>filter_bug.html</filename>
            <type>text/html</type>
            <size>976</size>
            <attacher name="Joel Webber">jgw</attacher>
            
              <data encoding="base64">PD94bWwgdmVyc2lvbj0iMS4wIiBzdGFuZGFsb25lPSJubyI/Pgo8IURPQ1RZUEUgc3ZnIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9T
VkcvMS4xL0RURC9zdmcxMS5kdGQiPgo8c3ZnIHdpZHRoPSIxMjhweCIgaGVpZ2h0PSIxMjhweCIg
dmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogIDxkZWZz
PgogICAgPGZpbHRlciBpZD0iZHJvcFNoYWRvdyI+CiAgICAgIDxmZU9mZnNldCBpbj0iU291cmNl
R3JhcGhpYyIgZHg9IjAiIGR5PSIwIiByZXN1bHQ9InRvcENvcHkiLz4KICAgICAgPGZlR2F1c3Np
YW5CbHVyIGluPSJTb3VyY2VBbHBoYSIgc3RkRGV2aWF0aW9uPSIyIiByZXN1bHQ9InNoYWRvdyIv
PgogICAgICA8ZmVPZmZzZXQgaW49InNoYWRvdyIgZHg9IjMiIGR5PSIzIiByZXN1bHQ9Im1vdmVk
U2hhZG93Ii8+CiAgICAgIDxmZU1lcmdlPgogICAgICAgIDxmZU1lcmdlTm9kZSBpbj0ibW92ZWRT
aGFkb3ciLz4KICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InRvcENvcHkiLz4KICAgICAgPC9mZU1l
cmdlPgogICAgPC9maWx0ZXI+CiAgPC9kZWZzPgoKICA8ZyBmaWx0ZXI9J3VybCgjZHJvcFNoYWRv
dyknIHdpZHRoPScxMjhweCcgaGVpZ2h0PScxMjhweCc+CiAgICA8cmVjdCB3aWR0aD0iNjQiIGhl
aWdodD0iNjQiIHN0eWxlPSJmaWxsOnJnYigwLDEyOCwwKSIvPgogICAgPHJlY3QgaWQ9J3Bva2Un
IHg9JzMyJyB5PSczMicgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiBzdHlsZT0iZmlsbDpyZ2IoMTI4
LDAsMCkiLz4KICA8L2c+CgogIDxzY3JpcHQ+CiAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24o
KSB7CiAgICB2YXIgcG9rZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdwb2tlJyk7CiAgICBw
b2tlLnN0eWxlLmZpbGwgPSAncmdiKDAsIDEyOCwgMCknOwogIH0sIDEpOwogIDwvc2NyaXB0Pgo8
L3N2Zz4KCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114275</attachid>
            <date>2011-11-09 07:33:41 -0800</date>
            <delta_ts>2011-11-10 10:31:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71733-20111109103340.patch</filename>
            <type>text/plain</type>
            <size>10073</size>
            <attacher name="Joel Webber">jgw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkzOTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2ZDEyMTUyMGUzNWUyODdi
ZDBhNTdiYmNmNjA5ZDA0M2EwYWM1ZTVjLi5kNTI5ZGY0MjZjODc0ZmI2ZTVkYTUzYjk0MjM5NmU2
ZWQyZGQ5YmJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTEtMDkgIEpvZWwg
V2ViYmVyICA8amd3QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBicm9rZW4gd2hlbiBj
aGlsZHJlbiBvZiBmaWx0ZXJlZCBTVkcgZWxlbWVudHMgYXJlIHVwZGF0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogc3ZnL3JlcGFpbnQvZmls
dGVyLWNoaWxkLXJlcGFpbnQuc3ZnCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OnNldE5lZWRzTGF5b3V0Rm9yRmlsdGVyZWRDb250YWluZXIpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oOgorCiAyMDExLTExLTA2ICBOb2VsIEdvcmRv
biAgPG5vZWwuZ29yZG9uQGdtYWlsLmNvbT4KIAogICAgICAgICBGaXggc29tZSBzdHlsZSBpc3N1
ZXMgaW4gSW1hZ2VCdWZmZXIuaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCmluZGV4IDYwMDBiNWI4NzE3MGViNTRmYTUwMWUyNGQ0
NzdhNjYzNzRlOGQ1MGMuLmVlMzk4YzI1NjM0NzNmZDhhMTUxYWQwOWRhMGExODEwYTNkNjg1N2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFp
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRh
aW5lci5jcHAKQEAgLTU0LDYgKzU0LDggQEAgdm9pZCBSZW5kZXJTVkdDb250YWluZXI6OmxheW91
dCgpCiAgICAgLy8gUmVuZGVyU1ZHUm9vdCBkaXNhYmxlcyBsYXlvdXRTdGF0ZSBmb3IgdGhlIFNW
RyByZW5kZXJpbmcgdHJlZS4KICAgICBBU1NFUlQoIXZpZXcoKS0+bGF5b3V0U3RhdGVFbmFibGVk
KCkpOwogCisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6c2V0TmVlZHNMYXlvdXRGb3JGaWx0ZXJlZENv
bnRhaW5lcih0aGlzKTsKKwogICAgIC8vIEFsbG93IFJlbmRlclNWR1ZpZXdwb3J0Q29udGFpbmVy
IHRvIHVwZGF0ZSBpdHMgdmlld3BvcnQuCiAgICAgY2FsY1ZpZXdwb3J0KCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDliNmI4OGRi
NWNkNzkxYjg3Y2Q2ODUxMWU3ZjBjNTMzOTM1YjU5NzkuLmVmMWFkNmRiZGNkMDFhMmFiYjRmOWQz
ZDUxMDZlZmZlM2RkMjI1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvUmVuZGVyU1ZHUm9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9S
ZW5kZXJTVkdSb290LmNwcApAQCAtMjI3LDYgKzIyNyw4IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6
bGF5b3V0KCkKIHsKICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAKKyAgICBTVkdSZW5kZXJT
dXBwb3J0OjpzZXROZWVkc0xheW91dEZvckZpbHRlcmVkQ29udGFpbmVyKHRoaXMpOworCiAgICAg
Ly8gQXJiaXRyYXJ5IGFmZmluZSB0cmFuc2Zvcm1zIGFyZSBpbmNvbXBhdGlibGUgd2l0aCBMYXlv
dXRTdGF0ZS4KICAgICBMYXlvdXRTdGF0ZURpc2FibGVyIGxheW91dFN0YXRlRGlzYWJsZXIodmll
dygpKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3Vw
cG9ydC5jcHAKaW5kZXggMmJjZTZhMmZkNjVlMmRiMTI3ZGUzYmE0NGEwYjRjZDAxOTg3ZWYwOC4u
YjIyMzNkNDIzNDczMjYxNjljZTNjMmI1OTAzOWRhY2YxZjMwYWI4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwCkBAIC0zMDMsNiAr
MzAzLDE3IEBAIHZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRo
UmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCogb2JqCiAgICAgICAgIHNoYWRvdy0+YWRqdXN0
UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7CiB9CiAKK3ZvaWQgU1ZHUmVuZGVyU3VwcG9ydDo6
c2V0TmVlZHNMYXlvdXRGb3JGaWx0ZXJlZENvbnRhaW5lcihSZW5kZXJPYmplY3QqIG9iamVjdCkK
K3sKKyAgICAvLyBJZiBhbnkgb2YgdGhpcyBjb250YWluZXIncyBjaGlsZHJlbiBuZWVkIHRvIGJl
IGxhaWQgb3V0LCBhbmQgYSBmaWx0ZXIgaXMgYXBwbGllZAorICAgIC8vIHRvIHRoZSBjb250YWlu
ZXIsIHdlIG5lZWQgdG8gcmVwYWludCB0aGUgZW50aXJlIGNvbnRhaW5lci4KKyAgICBpZiAob2Jq
ZWN0LT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpIHsKKyAgICAgICAgU1ZHUmVzb3VyY2VzKiBy
ZXNvdXJjZXMgPSBTVkdSZXNvdXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2Jq
ZWN0KG9iamVjdCk7CisgICAgICAgIGlmIChyZXNvdXJjZXMgJiYgcmVzb3VyY2VzLT5maWx0ZXIo
KSkKKyAgICAgICAgICAgIG9iamVjdC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CisgICAgfQorfQor
CiBib29sIFNWR1JlbmRlclN1cHBvcnQ6OnBvaW50SW5DbGlwcGluZ0FyZWEoUmVuZGVyT2JqZWN0
KiBvYmplY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50KQogewogICAgIEFTU0VSVChvYmplY3Qp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBw
b3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApp
bmRleCBkNzY2NDZjMGJhYTBjZmQxMDdjNTFkNjIzZjkwM2RmYzZkNmFhNjVkLi44ODNmNGY2NGJk
NDQ2ZjhiNTkyYTgxYjMwMWE3OGUyOTdkODY0MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6
CiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcmVwYWludFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBm
aWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tlciBpbiBsb2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0
aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2Jq
ZWN0KiwgRmxvYXRSZWN0Jik7CiAKKyAgICAvLyBTZXRzIGEgY29udGFpbmVyJ3MgbmVlZHNMYXlv
dXQgYml0IGlmIGl0J3MgZmlsdGVyZWQgYW5kIGl0cyBjaGlsZHJlbiBhcmUgYmVpbmcgbGFpZCBv
dXQKKyAgICBzdGF0aWMgdm9pZCBzZXROZWVkc0xheW91dEZvckZpbHRlcmVkQ29udGFpbmVyKFJl
bmRlck9iamVjdCopOworCiAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXNzZWQgcG9p
bnQgbGllcyBpbiBhIGNsaXBwaW5nIGFyZWEKICAgICBzdGF0aWMgYm9vbCBwb2ludEluQ2xpcHBp
bmdBcmVhKFJlbmRlck9iamVjdCosIGNvbnN0IEZsb2F0UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDg4OGVi
MmVmYWQxZDhhYzM0N2QxZTMxZGExNzRkYjcwMmE0MjBhNzUuLjI5OWRmNTQ1MjE1NWY4ZTk5NDFi
ZDU2Yjg3MTZmYjIwNjAxZWU5ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMS0wOSAg
Sm9lbCBXZWJiZXIgIDxqZ3dAZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXBhaW50IGJyb2tlbiB3
aGVuIGNoaWxkcmVuIG9mIGZpbHRlcmVkIFNWRyBlbGVtZW50cyBhcmUgdXBkYXRlZAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3MzMKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9t
aXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnBuZzog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL3JlcGFpbnQvZmls
dGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvcmVw
YWludC9maWx0ZXItY2hpbGQtcmVwYWludC5zdmc6IEFkZGVkLgorCiAyMDExLTExLTA3ICBZdXRh
IEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gVW5y
ZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS1saW51eC9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWludC9maWx0ZXIt
Y2hpbGQtcmVwYWludC1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWJhMDk3Yzk1NTA2MWFkNTBj
ZjEyZTExY2RkODdkNGJhNGRkY2NkNQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgNDAzMwp6Y21l
SH5lXjhRbDlMSyp9bnAoIVQ2dXFMKyV7JTljTD1CQn57QDYtdXQ8Y08rRGhicWRWTThVdTl+Sihu
byFuJX0KelIhY1Q+Rn07YX1pS01CQ0RLNGhtJmVIUzlJMEQyVTVlcV56NSUzNE9OQjdWQVZ8VG1G
e2AyfGdgUUc9USYtYzBTCno+LX5PenA2QzFacTNDXz9aWDRZSTBQZyFnaSMhYSNzeDFJRzU/bWFp
OEJZKC01MjQjZlhRSyNiUSU8RihvWCkwRwp6MGNPWEpsKGU5TEFaJD1AS3luKTlXTktRXyZZKy1e
ITlsQDBnSHI9VDB7NUthZD0zQ0NaaHojYk5BZkMtRHFPUz0Kek1OfjU0QjhCeC0zRWR0UlhgZGJM
YHtse05jfCZaYiEqXkcmZ2wyeTRxQTBPX3lvJFR+bUpmYTQzaTljX0RVcX01CnpANThMekpqM09m
U2F7KCF8RUNyIWxfPHhfP295USk5OHUyZHUxNTd7X2Q5YGtrdjwhaSNXJmAoQztHUHc0NUV6WQp6
Vzd8MnNKaiFZfiRsOG1hR14lX21wQzZ5MHdramA9NXoxNEVheWxecS0lTFJEZz9XSnFnVUlJb0w/
ViUtSDdTZmEKelFMJVRhJj5HNT9wTEJ9JSkmZVl0MS1tVmtOXzlHMndPQFE0VVNubHdORik7WHlk
TjBtPFYrU2Z0MjA+RGY2VG9lCnpBSX1oTFYzR2piUnJrZD1kS0QoVGZHI047aUFKTkRsOTNLVVV6
aTcmSU04bkVkVFB2cENaP3o5LVglMXxwZU0tNgp6QGo/PkR1d2BSZG9RIyRgSis4YGowQWN8UGg1
fChtZCZ2JnFEXzNYflEweFRXQGY4Ql8wTlQoZUtYZj8pbWtrNX0Kemt7czg5RWVIU09MbENmVTFO
KjFVd0tSbTM3SFdVa2grNUU/QXtMeSRGc2FTZlJpVnBBTlJ6eVdoS0FOTkJeajtDCnpNS1ZZNV53
fCtEN3RWXnA8NX1JS0hqT09DOE42bSk+KD15ekomP0U5OE9QO3g4SFREMSFOdGpeMURsck0odXdv
Vgp6aDkoSFNfS2JvS2FqelJwWiVZaXBgM09PZ18+a3ZQcHswSmxNUVFBenA/VnUzPHBnWSNUbVBh
Z2JPbzYpSlRqOGgKenEoR1NIJjNfbGdtYXpLQ24paWBORXw8JXlDZSs2PkFYTiQoNDkwakJDXz59
TjQwNXt+OXlNVUt0SlVmUEZ8czc3CnohZ211MjQ1Uk5JRmM7VT4pKj5TYz8lJShVU2tKVkljM0JV
QkV7P0EtVCZPZmMrY1gjcTBxZSVGe0IyLShrRTNDZwp6KWJzITtlbTcjXypgZyNRJmF5IU5TTXVx
TkNXIVooZWFefmNHOW1McFczJjBMIz43bSorUmdibDdIciZ6PSFpOTcKel9+SyhhNXpYbkhLRyZp
Nl4yUVIyMjAycmJncGtUJnhWI3RhLUg8V0Y8c3p6NVY5M2JHNyZuPWdvVH1Bb0FAZiE2CnpIbjRC
I14xVnlNVVdHOWFUfHJpJG88fFcwK0ItVjdteVhXUCZNeF94SihoUWxqRlh1eW1pWU17ZnhlKGlk
LUZRKQp6WG5wKSpNd0N8anEtNzlXSFdrWHZHaD1XfU50SkQxQDxDQTRKNlZgMzxudSkkayQkZWd5
TSQ4bEpVPXs0Kmg1cDkKenRkTG80Z084IWVRWSFmVDNTTkZwb3lAQFpFMlNaRit0bnwwMDM/PSs9
SHV9QWgrTz4xT1l+NyEwNX5fcFU7RmpHCnp2VEpfa15CZFBWZih3ayFYWH0/ZTJYOUtrXihMZXFF
bC1gdipEWlc7MWRxb0xDZl5+VDtNJG5LJSlEcXhoPmwqKgp6cnolQilJe3VZLSg4YmlwZ21ze0x8
NH1wQjw5JUYjekBSLWRxcyRjNyVNQWo5S3BAYkkhcEhDUWc+M3tBSEg+OFAKendiVjhPc19lKGM2
QWU0QktibzQjamBjODEmdF9yMjhNRWNIJVdtQFpkVlBBdzM1YGFSOEZDI0dKSkNORjRrb0psCnop
I1VBUFJ0dlJWKEI5VjhDS2pWaHQ0KHRwNG81RFJRITJ1ejJXcm5GM3pgJXZzNyQzZ09PJkA1bFNl
d1hme0JFMQp6Iy0lfEZQRUshYVpIPGFlQiN8Xn53YjQzOUwhZHVeYlVXdEhWUTRmXj5XN0FNaDtx
empzR0NqNW1udDVtSCpZUGkKenJZYnY0P0FDQEpUQlU5IzQjXk5UcVUhaiZJITlsTXB5VXB3KTdS
YjNXOz1ybTZtNHh1VXVlRyE8MVUlN1NTJTFSCnppelFeODFjUkZqQn1JfXVOSXNgNGN2S35pcVdh
WWxncXohbkBnQ2lHWUl1fWdvJCQmOV5EUClJZT9kUHVOZ3RXMwp6NilzX35WVm9teC1wcVk5KXpu
IyNWbi1hN1lIQj5lZ3ZrYlRmYGhJRzM0ezd9OHN3WUNfJj0/N1d1O35PWm1xeXYKeGZ3YFJqS2BW
WSpAemFXKm1pMV97NX47VHVzaDVRZ244OzExRlpfMT1DM0dlU2A9Zz5HMS1yPT97eztQaXs0NCtm
CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWludC9m
aWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmVhNjJiNDhjOWUx
ODNhMjA4MDQ1OGJlMzE2Njc5NjVjMzkzNWQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBh
aW50LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE2IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgw
MHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDAp
IHNpemUgMTI4eDEyOAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMTA2eDEw
NgorICAgIFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAK
KyAgICAgIFJlbmRlclNWR1Jlc291cmNlRmlsdGVyIHtmaWx0ZXJ9IFtpZD0iZHJvcFNoYWRvdyJd
IFtmaWx0ZXJVbml0cz1vYmplY3RCb3VuZGluZ0JveF0gW3ByaW1pdGl2ZVVuaXRzPXVzZXJTcGFj
ZU9uVXNlXQorICAgICAgICBbZmVNZXJnZSBtZXJnZU5vZGVzPSIyIl0KKyAgICAgICAgICBbZmVP
ZmZzZXQgZHg9IjMuMDAiIGR5PSIzLjAwIl0KKyAgICAgICAgICAgIFtmZUdhdXNzaWFuQmx1ciBz
dGREZXZpYXRpb249IjIuMDAsIDIuMDAiXQorICAgICAgICAgICAgICBbU291cmNlQWxwaGFdCisg
ICAgICAgICAgW2ZlT2Zmc2V0IGR4PSIwLjAwIiBkeT0iMC4wMCJdCisgICAgICAgICAgICBbU291
cmNlR3JhcGhpY10KKyAgICBSZW5kZXJTVkdDb250YWluZXIge2d9IGF0ICgwLDApIHNpemUgMTA2
eDEwNgorICAgICAgW2ZpbHRlcj0iZHJvcFNoYWRvdyJdIFJlbmRlclNWR1Jlc291cmNlRmlsdGVy
IHtmaWx0ZXJ9IGF0ICgtOS42MCwtOS42MCkgc2l6ZSAxMTUuMjB4MTE1LjIwCisgICAgICBSZW5k
ZXJTVkdQYXRoIHtyZWN0fSBhdCAoMCwwKSBzaXplIDY0eDY0IFtmaWxsPXtbdHlwZT1TT0xJRF0g
W2NvbG9yPSMwMDgwMDBdfV0gW3g9MC4wMF0gW3k9MC4wMF0gW3dpZHRoPTY0LjAwXSBbaGVpZ2h0
PTY0LjAwXQorICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQgKDMyLDMyKSBzaXplIDY0eDY0
IFtmaWxsPXtbdHlwZT1TT0xJRF0gW2NvbG9yPSMwMDgwMDBdfV0gW3g9MzIuMDBdIFt5PTMyLjAw
XSBbd2lkdGg9NjQuMDBdIFtoZWlnaHQ9NjQuMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVwYWludC5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvcmVw
YWludC9maWx0ZXItY2hpbGQtcmVwYWludC5zdmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjIwNWM0NDgwMGRjZjQx
YzY1MjNmMTM2NTZmOWZkMDM2MWYxOGI2ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LnN2ZwpAQCAtMCwwICsxLDM2IEBACis8
P3htbCB2ZXJzaW9uPSIxLjAiIHN0YW5kYWxvbmU9Im5vIj8+Cis8IURPQ1RZUEUgc3ZnIFBVQkxJ
QyAiLS8vVzNDLy9EVEQgU1ZHIDEuMS8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9HcmFwaGljcy9T
VkcvMS4xL0RURC9zdmcxMS5kdGQiPgorPHN2ZyB3aWR0aD0iMTI4cHgiIGhlaWdodD0iMTI4cHgi
IHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KKyAgPGRl
ZnM+CisgICAgPGZpbHRlciBpZD0iZHJvcFNoYWRvdyI+CisgICAgICA8ZmVPZmZzZXQgaW49IlNv
dXJjZUdyYXBoaWMiIGR4PSIwIiBkeT0iMCIgcmVzdWx0PSJ0b3BDb3B5Ii8+CisgICAgICA8ZmVH
YXVzc2lhbkJsdXIgaW49IlNvdXJjZUFscGhhIiBzdGREZXZpYXRpb249IjIiIHJlc3VsdD0ic2hh
ZG93Ii8+CisgICAgICA8ZmVPZmZzZXQgaW49InNoYWRvdyIgZHg9IjMiIGR5PSIzIiByZXN1bHQ9
Im1vdmVkU2hhZG93Ii8+CisgICAgICA8ZmVNZXJnZT4KKyAgICAgICAgPGZlTWVyZ2VOb2RlIGlu
PSJtb3ZlZFNoYWRvdyIvPgorICAgICAgICA8ZmVNZXJnZU5vZGUgaW49InRvcENvcHkiLz4KKyAg
ICAgIDwvZmVNZXJnZT4KKyAgICA8L2ZpbHRlcj4KKyAgPC9kZWZzPgorCisgIDxnIGZpbHRlcj0n
dXJsKCNkcm9wU2hhZG93KScgd2lkdGg9JzEyOHB4JyBoZWlnaHQ9JzEyOHB4Jz4KKyAgICA8cmVj
dCB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHN0eWxlPSJmaWxsOnJnYigwLDEyOCwwKSIvPgorICAg
IDxyZWN0IGlkPSdwb2tlJyB4PSczMicgeT0nMzInIHdpZHRoPSI2NCIgaGVpZ2h0PSI2NCIgc3R5
bGU9ImZpbGw6cmdiKDEyOCwwLDApIi8+CisgIDwvZz4KKworICA8c2NyaXB0PgorICB3aW5kb3cu
c2V0VGltZW91dChmdW5jdGlvbigpIHsKKyAgICB2YXIgcG9rZSA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdwb2tlJyk7CisgICAgcG9rZS5zdHlsZS5maWxsID0gJ3JnYigwLCAxMjgsIDApJzsK
KworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgIH0sIDApOworCisgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgIH0KKyAgPC9zY3JpcHQ+Cis8L3N2Zz4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114526</attachid>
            <date>2011-11-10 10:31:56 -0800</date>
            <delta_ts>2011-11-10 14:08:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71733-20111110133155.patch</filename>
            <type>text/plain</type>
            <size>9415</size>
            <attacher name="Joel Webber">jgw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk3NzQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBmM2YwYTY4YzQ1N2Q0ZDM1
YzI1MGFkOTM3OTIyMmQ0MTg4MTUxMjRhLi4zMGQ2ZTExMDQwYmY5NjQwNjNmOTliNzEyMzhmM2U2
ZTI0OGVmYmJiIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMDkgIEpvZWwg
V2ViYmVyICA8amd3QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBicm9rZW4gd2hlbiBj
aGlsZHJlbiBvZiBmaWx0ZXJlZCBTVkcgZWxlbWVudHMgYXJlIHVwZGF0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogc3ZnL3JlcGFpbnQvZmls
dGVyLWNoaWxkLXJlcGFpbnQuc3ZnCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OnNldE5lZWRzTGF5b3V0Rm9yRmlsdGVyZWRDb250YWluZXIpOgorCiAyMDExLTExLTA5
ICBBbGV4YW5kcmUgRWxpYXMgIDxhZWxpYXNAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21p
dW1dIEFkZCBkcmF3LXRpbWUgc2NhbGUgZGVsdGEgdG8gY29tcG9zaXRvciB0aHJlYWQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApp
bmRleCA2MDAwYjViODcxNzBlYjU0ZmE1MDFlMjRkNDc3YTY2Mzc0ZThkNTBjLi5hMTg5NTVjZDRi
ZmIyMDUyNzA5MjM2YzNiOThhYzQ1Nzk0OTI5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBA
IHZvaWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIC8vIEFsbG93IFJlbmRlclNW
R1RyYW5zZm9ybWFibGVDb250YWluZXIgdG8gdXBkYXRlIGl0cyB0cmFuc2Zvcm0uCiAgICAgYm9v
bCB1cGRhdGVkVHJhbnNmb3JtID0gY2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKTsKIAotICAgIFNW
R1JlbmRlclN1cHBvcnQ6OmxheW91dENoaWxkcmVuKHRoaXMsIHNlbGZOZWVkc0xheW91dCgpKTsK
KyAgICBTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbih0aGlzLCBzZWxmTmVlZHNMYXlv
dXQoKSB8fCBTVkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQodGhp
cykpOwogCiAgICAgLy8gSW52YWxpZGF0ZSBhbGwgcmVzb3VyY2VzIG9mIHRoaXMgY2xpZW50IGlm
IG91ciBsYXlvdXQgY2hhbmdlZC4KICAgICBpZiAobV9ldmVySGFkTGF5b3V0ICYmIG5lZWRzTGF5
b3V0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNw
cAppbmRleCAxMTk1YWY0MDIxMGU4ZjY2NzJkNWQ3MTQyZTQ1OWEyOTFiNjMwMTY0Li4yM2U4YWQ4
OTEyMzNkZWM5Mjg2ZGM1ZTM1OThlYWRhOGNiMWJlYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lk
IFJlbmRlclNWR1Jvb3Q6OmxheW91dCgpCiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVCghbV9u
ZWVkc1NpemVOZWdvdGlhdGlvbldpdGhIb3N0RG9jdW1lbnQpOwogCi0gICAgU1ZHUmVuZGVyU3Vw
cG9ydDo6bGF5b3V0Q2hpbGRyZW4odGhpcywgbmVlZHNMYXlvdXQpOworICAgIFNWR1JlbmRlclN1
cHBvcnQ6OmxheW91dENoaWxkcmVuKHRoaXMsIG5lZWRzTGF5b3V0IHx8IFNWR1JlbmRlclN1cHBv
cnQ6OmZpbHRlcnNGb3JjZUNvbnRhaW5lckxheW91dCh0aGlzKSk7CiAgICAgbV9pc0xheW91dFNp
emVDaGFuZ2VkID0gZmFsc2U7CiAKICAgICAvLyBBdCB0aGlzIHBvaW50IExheW91dFJlcGFpbnRl
ciBhbHJlYWR5IGdyYWJiZWQgdGhlIG9sZCBib3VuZHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCAyYmNlNmEyZmQ2NWUyZGIx
MjdkZTNiYTQ0YTBiNGNkMDE5ODdlZjA4Li45YWI5MjM3YWFmYmZiNzk0NzBhMjQ5YmExYzc1NTg0
NmEzMWU2MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1Jl
bmRlclN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVu
ZGVyU3VwcG9ydC5jcHAKQEAgLTMwMyw2ICszMDMsMjAgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0
OjppbnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBv
YmoKICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0K
IAorYm9vbCBTVkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gSWYgYW55IG9mIHRoaXMgY29udGFpbmVyJ3Mg
Y2hpbGRyZW4gbmVlZCB0byBiZSBsYWlkIG91dCwgYW5kIGEgZmlsdGVyIGlzIGFwcGxpZWQKKyAg
ICAvLyB0byB0aGUgY29udGFpbmVyLCB3ZSBuZWVkIHRvIHJlcGFpbnQgdGhlIGVudGlyZSBjb250
YWluZXIuCisgICAgaWYgKCFvYmplY3QtPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdSZXNv
dXJjZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2JqZWN0KG9iamVjdCk7CisgICAg
aWYgKCFyZXNvdXJjZXMgfHwgIXJlc291cmNlcy0+ZmlsdGVyKCkpCisgICAgICAgIHJldHVybiBm
YWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFNWR1JlbmRlclN1cHBvcnQ6OnBv
aW50SW5DbGlwcGluZ0FyZWEoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEZsb2F0UG9pbnQm
IHBvaW50KQogewogICAgIEFTU0VSVChvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBkNzY2NDZjMGJhYTBjZmQxMDdjNTFk
NjIzZjkwM2RmYzZkNmFhNjVkLi5iOGE0N2U3Yzk2ZTg1MGQxZjEzZjNlMzQxMzU1ZjU0MDJhMTFl
MWY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1
cHBvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuaApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcmVw
YWludFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tlciBp
biBsb2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVj
dFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKKyAgICAv
LyBEZXRlcm1pbmVzIHdoZXRoZXIgYSBjb250YWluZXIgbmVlZHMgdG8gYmUgbGFpZCBvdXQgYmVj
YXVzZSBpdCdzIGZpbHRlcmVkIGFuZCBhIGNoaWxkIGlzIGJlaW5nIGxhaWQgb3V0CisgICAgc3Rh
dGljIGJvb2wgZmlsdGVyc0ZvcmNlQ29udGFpbmVyTGF5b3V0KFJlbmRlck9iamVjdCopOworCiAg
ICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBwYXNzZWQgcG9pbnQgbGllcyBpbiBhIGNsaXBw
aW5nIGFyZWEKICAgICBzdGF0aWMgYm9vbCBwb2ludEluQ2xpcHBpbmdBcmVhKFJlbmRlck9iamVj
dCosIGNvbnN0IEZsb2F0UG9pbnQmKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDM5MTMzNTY0ZTg4ZTYzNmUwODJlNjNh
YmY0NjI4M2UzMGJlNDFkMTYuLmRlZmI4ZDkwZjQ0YTFkZTc5ZTdlMDdlZjVmMzBhODQ2YTZjYmFh
MWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMS0xMS0wOSAgSm9lbCBXZWJiZXIgIDxqZ3dA
Z29vZ2xlLmNvbT4KKworICAgICAgICBSZXBhaW50IGJyb2tlbiB3aGVuIGNoaWxkcmVuIG9mIGZp
bHRlcmVkIFNWRyBlbGVtZW50cyBhcmUgdXBkYXRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE3MzMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBh
aW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnBuZzogQWRkZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvcmVwYWludC9maWx0ZXItY2hpbGQt
cmVwYWludC5zdmc6IEFkZGVkLgorCiAyMDExLTExLTA5ICBLZW50YXJvIEhhcmEgIDxoYXJha2Vu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVc2UgZHVtcEFzVGV4dCgpIHRvIGF2b2lkIGFuIGlt
YWdlIHJlc3VsdCBiZWluZyBnZW5lcmF0ZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVj
dGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50
L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNzljMzUwZjg1
NDFlYjg1NTA4OWMzNWY1NTdhNzgzZWE2NzNmMmM3CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAz
MzkxCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9aF5obEElQFdzJGxI
YG9rPG19P29UbX09MQp6TUJgTSRHe2FPUVE7UzNjJWFwV2E2R014e1dIVTJVM3NiWVNMPEBvQU9+
KTcqY3JKUm5JRUdacmQzKHB1UG51SnsKentoPyVYd00oKX0lSk1+dkEyUzQ9KzhiRmt1WWh5TVZZ
dnBTQWVHJXNPO2RZWV9XeFFQXnYwV0tfSClZdmY5anVWCnpfblNXY1EyT0lTLX5HUGpeQjVSRClJ
VkQ7X2FYbW4rM3VTOythaCQ5V2slXnVlezM8WU58NTJoYSU8Xi1SJHA3ewp6cE1TUVdVO3BwViZw
JkBgPUFRP0ZiTGFmX2F4bmIzVD5JbUkpY2ZQQD9kXnZqWmlyZnxyPzA7fSk5Un1kIXZwe0MKejU5
MDt6LU16Y15gcytmT18zUEwzdzt4e2xvUG5YeyZ3KlFjK1ljTXEqeDl9TntgPm0lPiVyJDQ4Nj90
eyVLPT54Cnp1ZV5iUUEmSDViS3x6ZzlqSz8zb1VKPF54e3FncTREfWhsVmY5QjU+PTZrI0U9OSRr
dkU3cEN+I1B7Xm1CQU1nQwp6YGItUz5jNWk7VEtHP3RGelROLU5LY0FsbWd9YFRFUTJoRHg9Rk9X
Yy0zJCVpe1N5OGpzPDV9U3Y2MTB4em5XRUEKelMhd0JlZDhJZmIhfjQxNkUmQl9+JWVUal5LVkc8
Si0jJEFUelVBfG44RVAxcVVXOyRMe25taHx6clgrWS0reTFmCnplIVd1Nig3PUJuVTVkXmowMTlu
MGAjUzQpV3hJZD57KGJ4UT9jS1h+emIldUZ7fj19MSYrdVVHWjJyUnJ2KEdOZQp6K19oc3ojUU4o
JDh7WTxxT0VWbiFaNkBFQXhIQmZ0WSZILSl7YGxqfG1uKDhWPn12QW1JVCR7aUpLTFQoVzcqNEIK
enVVPyY9dGBDZ2ctKyVZbmUpeVo7JGpiMDFeNFZibjlrSzRTWGA3P2cjc05XbXtBMkY9PEw4K2ZE
eEwjbmRMQ1EmCnpVTi1TdkYyQFdeMkBpflU4NWooS25nb08rPSpPNzd8NyM7S0UjeihBeT9fN3l5
P2dpVy1oRGY3ZHcjN1QhLUZtTgp6WSZOdGQmTiFRUCooNWU1WDNoMjJfWTNyWmFqTEpVdz04cWsq
Kl8yMThVRWFRJiN+cmQoYXhKV2Qza3cjI34pdzUKemRednh8aml8TEA9SHxmVWwoc1d3VUtLYVAy
Z2FWYGszWCk+MmQwdkBXeHBSRUA0dVYze3I+eT16aGQlY0VqeWM1CnpUdzQwfDx6QDk9VXtHQkc4
dXN7T2dAdyR3LSt4Yl5LSz1Vaj4qKUVYZmRPfGskPFgoNShOM0E7QTNeRW1gQDM9JAp6RkBeKjNO
QjNgSXE7Sk5kWENAdUJZWEhnd2RYPlBWa3ZrZj5iZ1MtMTZXZUhGOCU9RDNGJkJLWmZCJFhrdGxT
M2MKUi1NfTZaZ1F1JlglUX5sb0NJSGRFRmNKVSYKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50
L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xMzYxMWNmNWY3YzdkN2UzOWZhYjI5ZDIxNWYxOWM3NGYzNjE1OGFm
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgv
c3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJWaWV3IGF0ICgwLDAp
IHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjh4MTI4CisgIFJlbmRlclNWR1Jv
b3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAxMDZ4MTA2CisgICAgUmVuZGVyU1ZHSGlkZGVuQ29udGFp
bmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZHUmVzb3VyY2VGaWx0
ZXIge2ZpbHRlcn0gW2lkPSJkcm9wU2hhZG93Il0gW2ZpbHRlclVuaXRzPW9iamVjdEJvdW5kaW5n
Qm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAgIFtmZURyb3BTaGFk
b3cgc3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMy4wMCIgZHk9IjMuMDAiIGZsb29kLWNv
bG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICAgIFtTb3VyY2VHcmFw
aGljXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAxMDZ4MTA2Cisg
ICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VGaWx0ZXIge2ZpbHRl
cn0gYXQgKC05LjYwLC05LjYwKSBzaXplIDExNS4yMHgxMTUuMjAKKyAgICAgIFJlbmRlclNWR1Bh
dGgge3JlY3R9IGF0ICgwLDApIHNpemUgNjR4NjQgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9
IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjQuMDBdIFtoZWlnaHQ9NjQuMDBd
CisgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMzIsMzIpIHNpemUgNjR4NjQgW2ZpbGw9
e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0zMi4wMF0gW3k9MzIuMDBdIFt3aWR0
aD02NC4wMF0gW2hlaWdodD02NC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9yZXBh
aW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LnN2ZyBiL0xheW91dFRlc3RzL3N2Zy9yZXBhaW50L2Zp
bHRlci1jaGlsZC1yZXBhaW50LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjVmZTA3NDhkYjMzMjMzYWU0ZjE3
NGFkNDJjM2JiMmU4MzVhMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL3Jl
cGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQuc3ZnCkBAIC0wLDAgKzEsMzUgQEAKKzw/eG1sIHZl
cnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9X
M0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEv
RFREL3N2ZzExLmR0ZCI+Cis8c3ZnIHdpZHRoPSIxMjhweCIgaGVpZ2h0PSIxMjhweCIgdmVyc2lv
bj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgorICA8ZGVmcz4KKyAg
ICA8ZmlsdGVyIGlkPSJkcm9wU2hhZG93Ij4KKyAgICAgIDxmZURyb3BTaGFkb3cgc3RkRGV2aWF0
aW9uPSIyIiBkeD0iMyIgZHk9IjMiIGZsb29kLWNvbG9yPSJibGFjayIvPgorICAgIDwvZmlsdGVy
PgorICA8L2RlZnM+CisKKyAgPHRpdGxlPgorICBUZXN0cyB0aGF0IGR5bmFtaWNhbGx5IHVwZGF0
aW5nIHRoZSBjaGlsZCBvZiBhICZsdDtnJmd0OyB3aXRoIGEgZmlsdGVyIGFwcGxpZWQgY29ycmVj
dGx5IHJlcGFpbnRzCisgIGFmZmVjdGVkIHBhcnRzIG9mIHRoZSBncm91cC4gQm90aCBzcXVhcmVz
IHNob3VsZCBiZSBncmVlbiBpZiByZXBhaW50aW5nIGlzIHdvcmtpbmcgcHJvcGVybHkuCisgIDwv
dGl0bGU+CisKKyAgPGcgZmlsdGVyPSd1cmwoI2Ryb3BTaGFkb3cpJz4KKyAgICA8cmVjdCB3aWR0
aD0iNjQiIGhlaWdodD0iNjQiIHN0eWxlPSJmaWxsOmdyZWVuIi8+CisgICAgPHJlY3QgaWQ9J3Bv
a2UnIHg9JzMyJyB5PSczMicgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiBzdHlsZT0iZmlsbDpyZWQi
Lz4KKyAgPC9nPgorCisgIDxzY3JpcHQ+CisgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
eworICAgIHZhciBwb2tlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bva2UnKTsKKyAgICBw
b2tlLnN0eWxlLmZpbGwgPSAnZ3JlZW4nOworCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAg
IH0KKyAgfSwgMCk7CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgfQorICA8L3NjcmlwdD4K
Kzwvc3ZnPgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114566</attachid>
            <date>2011-11-10 14:08:59 -0800</date>
            <delta_ts>2011-11-10 14:14:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-71733-20111110170858.patch</filename>
            <type>text/plain</type>
            <size>10086</size>
            <attacher name="Joel Webber">jgw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4OTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNjRmOWYyNjhhZTBkOTVm
NDU4ZDk1YjViMTQwMjE3ZWM0MmU4NDViLi40ZjhmMjc5Y2I3ZGFjOGMxZjZjYjQ0MDlkMWNmOTBj
NDA3ZTQyMDYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMTAgIEpvZWwg
V2ViYmVyICA8amd3QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBicm9rZW4gd2hlbiBj
aGlsZHJlbiBvZiBmaWx0ZXJlZCBTVkcgZWxlbWVudHMgYXJlIHVwZGF0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogc3ZnL3JlcGFpbnQvZmls
dGVyLWNoaWxkLXJlcGFpbnQuc3ZnCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OnNldE5lZWRzTGF5b3V0Rm9yRmlsdGVyZWRDb250YWluZXIpOgorCiAyMDExLTExLTEw
ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBu
b3Qgc2hhcmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFja2VkIGJ5IGEgcGx1Z2luCkBA
IC02MjgsNiArNjQ0LDEwIEBACiAgICAgICAgICogR05VbWFrZWZpbGUuYW06IEFkZCBtaXNzaW5n
IGZpbGVzLgogICAgICAgICAqIEdOVW1ha2VmaWxlLmxpc3QuYW06IERpdHRvLgogCis8PDw8PDw8
IEhFQUQKKz09PT09PT0KKz4+Pj4+Pj4gQ2hhbmdlbG9ncy4KKz4+Pj4+Pj4gQ2hhbmdlbG9ncy4K
IDIwMTEtMTEtMTAgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAK
ICAgICAgICAgRGVwbG95IFNWR0xlbmd0aENvbnRleHQgaW4gbW9yZSBwbGFjZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcAppbmRl
eCA2MDAwYjViODcxNzBlYjU0ZmE1MDFlMjRkNDc3YTY2Mzc0ZThkNTBjLi5hMTg5NTVjZDRiZmIy
MDUyNzA5MjM2YzNiOThhYzQ1Nzk0OTI5NDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZv
aWQgUmVuZGVyU1ZHQ29udGFpbmVyOjpsYXlvdXQoKQogICAgIC8vIEFsbG93IFJlbmRlclNWR1Ry
YW5zZm9ybWFibGVDb250YWluZXIgdG8gdXBkYXRlIGl0cyB0cmFuc2Zvcm0uCiAgICAgYm9vbCB1
cGRhdGVkVHJhbnNmb3JtID0gY2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKTsKIAotICAgIFNWR1Jl
bmRlclN1cHBvcnQ6OmxheW91dENoaWxkcmVuKHRoaXMsIHNlbGZOZWVkc0xheW91dCgpKTsKKyAg
ICBTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbih0aGlzLCBzZWxmTmVlZHNMYXlvdXQo
KSB8fCBTVkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQodGhpcykp
OwogCiAgICAgLy8gSW52YWxpZGF0ZSBhbGwgcmVzb3VyY2VzIG9mIHRoaXMgY2xpZW50IGlmIG91
ciBsYXlvdXQgY2hhbmdlZC4KICAgICBpZiAobV9ldmVySGFkTGF5b3V0ICYmIG5lZWRzTGF5b3V0
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcApp
bmRleCAxMTk1YWY0MDIxMGU4ZjY2NzJkNWQ3MTQyZTQ1OWEyOTFiNjMwMTY0Li4yM2U4YWQ4OTEy
MzNkZWM5Mjg2ZGM1ZTM1OThlYWRhOGNiMWJlYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAKQEAgLTI0Niw3ICsyNDYsNyBAQCB2b2lkIFJl
bmRlclNWR1Jvb3Q6OmxheW91dCgpCiAgICAgfSBlbHNlCiAgICAgICAgIEFTU0VSVCghbV9uZWVk
c1NpemVOZWdvdGlhdGlvbldpdGhIb3N0RG9jdW1lbnQpOwogCi0gICAgU1ZHUmVuZGVyU3VwcG9y
dDo6bGF5b3V0Q2hpbGRyZW4odGhpcywgbmVlZHNMYXlvdXQpOworICAgIFNWR1JlbmRlclN1cHBv
cnQ6OmxheW91dENoaWxkcmVuKHRoaXMsIG5lZWRzTGF5b3V0IHx8IFNWR1JlbmRlclN1cHBvcnQ6
OmZpbHRlcnNGb3JjZUNvbnRhaW5lckxheW91dCh0aGlzKSk7CiAgICAgbV9pc0xheW91dFNpemVD
aGFuZ2VkID0gZmFsc2U7CiAKICAgICAvLyBBdCB0aGlzIHBvaW50IExheW91dFJlcGFpbnRlciBh
bHJlYWR5IGdyYWJiZWQgdGhlIG9sZCBib3VuZHMsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcAppbmRleCAyYmNlNmEyZmQ2NWUyZGIxMjdk
ZTNiYTQ0YTBiNGNkMDE5ODdlZjA4Li45YWI5MjM3YWFmYmZiNzk0NzBhMjQ5YmExYzc1NTg0NmEz
MWU2MmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRl
clN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVy
U3VwcG9ydC5jcHAKQEAgLTMwMyw2ICszMDMsMjAgQEAgdm9pZCBTVkdSZW5kZXJTdXBwb3J0Ojpp
bnRlcnNlY3RSZXBhaW50UmVjdFdpdGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiBvYmoK
ICAgICAgICAgc2hhZG93LT5hZGp1c3RSZWN0Rm9yU2hhZG93KHJlcGFpbnRSZWN0KTsKIH0KIAor
Ym9vbCBTVkdSZW5kZXJTdXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVy
T2JqZWN0KiBvYmplY3QpCit7CisgICAgLy8gSWYgYW55IG9mIHRoaXMgY29udGFpbmVyJ3MgY2hp
bGRyZW4gbmVlZCB0byBiZSBsYWlkIG91dCwgYW5kIGEgZmlsdGVyIGlzIGFwcGxpZWQKKyAgICAv
LyB0byB0aGUgY29udGFpbmVyLCB3ZSBuZWVkIHRvIHJlcGFpbnQgdGhlIGVudGlyZSBjb250YWlu
ZXIuCisgICAgaWYgKCFvYmplY3QtPm5vcm1hbENoaWxkTmVlZHNMYXlvdXQoKSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgU1ZHUmVzb3VyY2VzKiByZXNvdXJjZXMgPSBTVkdSZXNvdXJj
ZXNDYWNoZTo6Y2FjaGVkUmVzb3VyY2VzRm9yUmVuZGVyT2JqZWN0KG9iamVjdCk7CisgICAgaWYg
KCFyZXNvdXJjZXMgfHwgIXJlc291cmNlcy0+ZmlsdGVyKCkpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKworICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFNWR1JlbmRlclN1cHBvcnQ6OnBvaW50
SW5DbGlwcGluZ0FyZWEoUmVuZGVyT2JqZWN0KiBvYmplY3QsIGNvbnN0IEZsb2F0UG9pbnQmIHBv
aW50KQogewogICAgIEFTU0VSVChvYmplY3QpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQuaAppbmRleCBkNzY2NDZjMGJhYTBjZmQxMDdjNTFkNjIz
ZjkwM2RmYzZkNmFhNjVkLi45ODg3MGVjODI3YTg4NDhhYzgzNGZlZDc5YWZmM2MzMDA5YzRjYTgw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBv
cnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1JlbmRlclN1cHBvcnQu
aApAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsY3VsYXRlcyB0aGUgcmVwYWlu
dFJlY3QgaW4gY29tYmluYXRpb24gd2l0aCBmaWx0ZXIsIGNsaXBwZXIgYW5kIG1hc2tlciBpbiBs
b2NhbCBjb29yZGluYXRlcy4KICAgICBzdGF0aWMgdm9pZCBpbnRlcnNlY3RSZXBhaW50UmVjdFdp
dGhSZXNvdXJjZXMoY29uc3QgUmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Jik7CiAKKyAgICAvLyBE
ZXRlcm1pbmVzIHdoZXRoZXIgYSBjb250YWluZXIgbmVlZHMgdG8gYmUgbGFpZCBvdXQgYmVjYXVz
ZSBpdCdzIGZpbHRlcmVkIGFuZCBhIGNoaWxkIGlzIGJlaW5nIGxhaWQgb3V0LgorICAgIHN0YXRp
YyBib29sIGZpbHRlcnNGb3JjZUNvbnRhaW5lckxheW91dChSZW5kZXJPYmplY3QqKTsKKwogICAg
IC8vIERldGVybWluZXMgd2hldGhlciB0aGUgcGFzc2VkIHBvaW50IGxpZXMgaW4gYSBjbGlwcGlu
ZyBhcmVhCiAgICAgc3RhdGljIGJvb2wgcG9pbnRJbkNsaXBwaW5nQXJlYShSZW5kZXJPYmplY3Qq
LCBjb25zdCBGbG9hdFBvaW50Jik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMmZmZGUwZmEyNWQ1NTdjNGNmNWU3Mzlh
Mzk1NjA4ZGU0M2U4OWU2Li43ZjdmN2JlMzFhMmViNDY4NTRkNThiMWRmNGQxYzFiNjdmZDQxOTcw
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMTEtMTAgIEpvZWwgV2ViYmVyICA8amd3QGdv
b2dsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBicm9rZW4gd2hlbiBjaGlsZHJlbiBvZiBmaWx0
ZXJlZCBTVkcgZWxlbWVudHMgYXJlIHVwZGF0ZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzMzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWlu
dC9maWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHBs
YXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJl
cGFpbnQuc3ZnOiBBZGRlZC4KKwogMjAxMS0xMS0xMCAgT2phbiBWYWZhaSAgPG9qYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIEFkZCBhIGNvdXBsZSB0ZXN0cyB0aGF0IGhhdmUgc3RhcnRlZCBo
aXR0aW5nIGFzc2VydHMgb24gdGhlIG1hYyBib3RzLgpAQCAtMzA3LDYgKzMxOCwxMCBAQAogCiAg
ICAgICAgICogcGxhdGZvcm0vcXQtNS4wL3N2Zy9hcy1pbWFnZS9hbmltYXRlZC1zdmctYXMtaW1h
Z2Utc2FtZS1pbWFnZS1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9xdC01LjAvc3ZnL2FzLWltYWdlL2FuaW1hdGVkLXN2Zy1hcy1pbWFnZS1zYW1lLWltYWdl
LnR4dC4KIAorPDw8PDw8PCBIRUFECis9PT09PT09Cis+Pj4+Pj4+IENoYW5nZWxvZ3MuCis+Pj4+
Pj4+IENoYW5nZWxvZ3MuCiAyMDExLTExLTEwICBUb255IEdlbnRpbGNvcmUgIDx0b255Z0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgQ29ycmVjdCBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRt
bCBleHBlY2F0aW9ucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0t
bGludXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQucG5nIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxk
LXJlcGFpbnQtZXhwZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3OWMzNTBmODU0MWViODU1MDg5YzM1
ZjU1N2E3ODNlYTY3M2YyYzcKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDMzOTEKemNtZUFTQE4/
KG9sSHlgdVZCcSFpYTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1RtfT0x
CnpNQmBNJEd7YU9RUTtTM2MlYXBXYTZHTXh7V0hVMlUzc2JZU0w8QG9BT34pNypjckpSbklFR1py
ZDMocHVQbnVKewp6e2g/JVh3TSgpfSVKTX52QTJTND0rOGJGa3VZaHlNVll2cFNBZUclc087ZFlZ
X1d4UVBedjBXS19IKVl2ZjlqdVYKel9uU1djUTJPSVMtfkdQal5CNVJEKUlWRDtfYVhtbiszdVM7
K2FoJDlXayVedWV7MzxZTnw1MmhhJTxeLVIkcDd7CnpwTVNRV1U7cHBWJnAmQGA9QVE/RmJMYWZf
YXhuYjNUPkltSSljZlBAP2RedmpaaXJmfHI/MDt9KTlSfWQhdnB7Qwp6NTkwO3otTXpjXmBzK2ZP
XzNQTDN3O3h7bG9Qblh7JncqUWMrWWNNcSp4OX1Oe2A+bSU+JXIkNDg2P3R7JUs9PngKenVlXmJR
QSZINWJLfHpnOWpLPzNvVUo8Xnh7cWdxNER9aGxWZjlCNT49NmsjRT05JGt2RTdwQ34jUHtebUJB
TWdDCnpgYi1TPmM1aTtUS0c/dEZ6VE4tTktjQWxtZ31gVEVRMmhEeD1GT1djLTMkJWl7U3k4anM8
NX1TdjYxMHh6bldFQQp6UyF3QmVkOElmYiF+NDE2RSZCX34lZVRqXktWRzxKLSMkQVR6VUF8bjhF
UDFxVVc7JEx7bm1ofHpyWCtZLSt5MWYKemUhV3U2KDc9Qm5VNWReajAxOW4wYCNTNClXeElkPnso
YnhRP2NLWH56YiV1Rnt+PX0xJit1VUdaMnJScnYoR05lCnorX2hzeiNRTigkOHtZPHFPRVZuIVo2
QEVBeEhCZnRZJkgtKXtgbGp8bW4oOFY+fXZBbUlUJHtpSktMVChXNyo0Qgp6dVU/Jj10YENnZy0r
JVluZSl5WjskamIwMV40VmJuOWtLNFNYYDc/ZyNzTldte0EyRj08TDgrZkR4TCNuZExDUSYKelVO
LVN2RjJAV14yQGl+VTg1aihLbmdvTys9Kk83N3w3IztLRSN6KEF5P183eXk/Z2lXLWhEZjdkdyM3
VCEtRm1OCnpZJk50ZCZOIVFQKig1ZTVYM2gyMl9ZM3JaYWpMSlV3PThxayoqXzIxOFVFYVEmI35y
ZChheEpXZDNrdyMjfil3NQp6ZF52eHxqaXxMQD1IfGZVbChzV3dVS0thUDJnYVZgazNYKT4yZDB2
QFd4cFJFQDR1VjN7cj55PXpoZCVjRWp5YzUKelR3NDB8PHpAOT1Ve0dCRzh1c3tPZ0B3JHctK3hi
XktLPVVqPiopRVhmZE98ayQ8WCg1KE4zQTtBM15FbWBAMz0kCnpGQF4qM05CM2BJcTtKTmRYQ0B1
QllYSGd3ZFg+UFZrdmtmPmJnUy0xNldlSEY4JT1EM0YmQktaZkIkWGt0bFMzYwpSLU19NlpnUXUm
WCVRfmxvQ0lIZEVGY0pVJgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxk
LXJlcGFpbnQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGlu
dXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjEzNjExY2Y1ZjdjN2Q3ZTM5ZmFiMjlkMjE1ZjE5Yzc0ZjM2MTU4YWYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWludC9m
aWx0ZXItY2hpbGQtcmVwYWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorbGF5ZXIg
YXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CitsYXllciBhdCAoMCwwKSBzaXplIDEyOHgxMjgKKyAgUmVuZGVyU1ZHUm9vdCB7c3ZnfSBhdCAo
MCwwKSBzaXplIDEwNngxMDYKKyAgICBSZW5kZXJTVkdIaWRkZW5Db250YWluZXIge2RlZnN9IGF0
ICgwLDApIHNpemUgMHgwCisgICAgICBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBb
aWQ9ImRyb3BTaGFkb3ciXSBbZmlsdGVyVW5pdHM9b2JqZWN0Qm91bmRpbmdCb3hdIFtwcmltaXRp
dmVVbml0cz11c2VyU3BhY2VPblVzZV0KKyAgICAgICAgW2ZlRHJvcFNoYWRvdyBzdGREZXZpYXRp
b249IjIuMDAsIDIuMDAiIGR4PSIzLjAwIiBkeT0iMy4wMCIgZmxvb2QtY29sb3I9IiMwMDAwMDAi
IGZsb29kLW9wYWNpdHk9IjEuMDBdCisgICAgICAgICAgW1NvdXJjZUdyYXBoaWNdCisgICAgUmVu
ZGVyU1ZHQ29udGFpbmVyIHtnfSBhdCAoMCwwKSBzaXplIDEwNngxMDYKKyAgICAgIFtmaWx0ZXI9
ImRyb3BTaGFkb3ciXSBSZW5kZXJTVkdSZXNvdXJjZUZpbHRlciB7ZmlsdGVyfSBhdCAoLTkuNjAs
LTkuNjApIHNpemUgMTE1LjIweDExNS4yMAorICAgICAgUmVuZGVyU1ZHUGF0aCB7cmVjdH0gYXQg
KDAsMCkgc2l6ZSA2NHg2NCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4
PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD02NC4wMF0gW2hlaWdodD02NC4wMF0KKyAgICAgIFJlbmRl
clNWR1BhdGgge3JlY3R9IGF0ICgzMiwzMikgc2l6ZSA2NHg2NCBbZmlsbD17W3R5cGU9U09MSURd
IFtjb2xvcj0jMDA4MDAwXX1dIFt4PTMyLjAwXSBbeT0zMi4wMF0gW3dpZHRoPTY0LjAwXSBbaGVp
Z2h0PTY0LjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvZmlsdGVyLWNo
aWxkLXJlcGFpbnQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJl
cGFpbnQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ2NWZlMDc0OGRiMzMyMzNhZTRmMTc0YWQ0MmMzYmIyZTgz
NWExMjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvcmVwYWludC9maWx0ZXIt
Y2hpbGQtcmVwYWludC5zdmcKQEAgLTAsMCArMSwzNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBz
dGFuZGFsb25lPSJubyI/PgorPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAx
LjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRk
Ij4KKzxzdmcgd2lkdGg9IjEyOHB4IiBoZWlnaHQ9IjEyOHB4IiB2ZXJzaW9uPSIxLjEiIHhtbG5z
PSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CisgIDxkZWZzPgorICAgIDxmaWx0ZXIgaWQ9
ImRyb3BTaGFkb3ciPgorICAgICAgPGZlRHJvcFNoYWRvdyBzdGREZXZpYXRpb249IjIiIGR4PSIz
IiBkeT0iMyIgZmxvb2QtY29sb3I9ImJsYWNrIi8+CisgICAgPC9maWx0ZXI+CisgIDwvZGVmcz4K
KworICA8dGl0bGU+CisgIFRlc3RzIHRoYXQgZHluYW1pY2FsbHkgdXBkYXRpbmcgdGhlIGNoaWxk
IG9mIGEgJmx0O2cmZ3Q7IHdpdGggYSBmaWx0ZXIgYXBwbGllZCBjb3JyZWN0bHkgcmVwYWludHMK
KyAgYWZmZWN0ZWQgcGFydHMgb2YgdGhlIGdyb3VwLiBCb3RoIHNxdWFyZXMgc2hvdWxkIGJlIGdy
ZWVuIGlmIHJlcGFpbnRpbmcgaXMgd29ya2luZyBwcm9wZXJseS4KKyAgPC90aXRsZT4KKworICA8
ZyBmaWx0ZXI9J3VybCgjZHJvcFNoYWRvdyknPgorICAgIDxyZWN0IHdpZHRoPSI2NCIgaGVpZ2h0
PSI2NCIgc3R5bGU9ImZpbGw6Z3JlZW4iLz4KKyAgICA8cmVjdCBpZD0ncG9rZScgeD0nMzInIHk9
JzMyJyB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHN0eWxlPSJmaWxsOnJlZCIvPgorICA8L2c+CisK
KyAgPHNjcmlwdD4KKyAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CisgICAgdmFyIHBv
a2UgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncG9rZScpOworICAgIHBva2Uuc3R5bGUuZmls
bCA9ICdncmVlbic7CisKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgfQorICB9LCAwKTsK
KworICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICB9CisgIDwvc2NyaXB0PgorPC9zdmc+CisK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>114569</attachid>
            <date>2011-11-10 14:14:19 -0800</date>
            <delta_ts>2011-11-11 15:41:13 -0800</delta_ts>
            <desc>Added the requested &apos;.&apos;</desc>
            <filename>bug-71733-20111110171418.patch</filename>
            <type>text/plain</type>
            <size>9427</size>
            <attacher name="Joel Webber">jgw</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTk4OTcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNjRmOWYyNjhhZTBkOTVm
NDU4ZDk1YjViMTQwMjE3ZWM0MmU4NDViLi45MzJiZTc3MmJhMTdlNmVhMGYzMWQyZDgwMGViZmU1
ZjNlYWI5NjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMTEtMTAgIEpvZWwg
V2ViYmVyICA8amd3QGdvb2dsZS5jb20+CisKKyAgICAgICAgUmVwYWludCBicm9rZW4gd2hlbiBj
aGlsZHJlbiBvZiBmaWx0ZXJlZCBTVkcgZWxlbWVudHMgYXJlIHVwZGF0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNzMzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdDogc3ZnL3JlcGFpbnQvZmls
dGVyLWNoaWxkLXJlcGFpbnQuc3ZnCisKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNW
R0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdDb250YWluZXI6Omxh
eW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5n
L3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1JlbmRlclN1
cHBvcnQ6OnNldE5lZWRzTGF5b3V0Rm9yRmlsdGVyZWRDb250YWluZXIpOgorCiAyMDExLTExLTEw
ICBCZW5qYW1pbiBQb3VsYWluICA8YmVuamFtaW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBEbyBu
b3Qgc2hhcmUgQ1NTIHN0eWxlIGZvciBNZWRpYUVsZW1lbnQgYmFja2VkIGJ5IGEgcGx1Z2luCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0NvbnRhaW5lci5j
cHAKaW5kZXggNjAwMGI1Yjg3MTcwZWI1NGZhNTAxZTI0ZDQ3N2E2NjM3NGU4ZDUwYy4uYTE4OTU1
Y2Q0YmZiMjA1MjcwOTIzNmMzYjk4YWM0NTc5NDkyOTQ1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHQ29udGFpbmVyLmNwcApAQCAtNjIsNyArNjIs
NyBAQCB2b2lkIFJlbmRlclNWR0NvbnRhaW5lcjo6bGF5b3V0KCkKICAgICAvLyBBbGxvdyBSZW5k
ZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyIHRvIHVwZGF0ZSBpdHMgdHJhbnNmb3JtLgogICAg
IGJvb2wgdXBkYXRlZFRyYW5zZm9ybSA9IGNhbGN1bGF0ZUxvY2FsVHJhbnNmb3JtKCk7CiAKLSAg
ICBTVkdSZW5kZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbih0aGlzLCBzZWxmTmVlZHNMYXlvdXQo
KSk7CisgICAgU1ZHUmVuZGVyU3VwcG9ydDo6bGF5b3V0Q2hpbGRyZW4odGhpcywgc2VsZk5lZWRz
TGF5b3V0KCkgfHwgU1ZHUmVuZGVyU3VwcG9ydDo6ZmlsdGVyc0ZvcmNlQ29udGFpbmVyTGF5b3V0
KHRoaXMpKTsKIAogICAgIC8vIEludmFsaWRhdGUgYWxsIHJlc291cmNlcyBvZiB0aGlzIGNsaWVu
dCBpZiBvdXIgbGF5b3V0IGNoYW5nZWQuCiAgICAgaWYgKG1fZXZlckhhZExheW91dCAmJiBuZWVk
c0xheW91dCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5k
ZXJTVkdSb290LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9v
dC5jcHAKaW5kZXggMTE5NWFmNDAyMTBlOGY2NjcyZDVkNzE0MmU0NTlhMjkxYjYzMDE2NC4uMjNl
OGFkODkxMjMzZGVjOTI4NmRjNWUzNTk4ZWFkYThjYjFiZWFiNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCkBAIC0yNDYsNyArMjQ2LDcgQEAg
dm9pZCBSZW5kZXJTVkdSb290OjpsYXlvdXQoKQogICAgIH0gZWxzZQogICAgICAgICBBU1NFUlQo
IW1fbmVlZHNTaXplTmVnb3RpYXRpb25XaXRoSG9zdERvY3VtZW50KTsKIAotICAgIFNWR1JlbmRl
clN1cHBvcnQ6OmxheW91dENoaWxkcmVuKHRoaXMsIG5lZWRzTGF5b3V0KTsKKyAgICBTVkdSZW5k
ZXJTdXBwb3J0OjpsYXlvdXRDaGlsZHJlbih0aGlzLCBuZWVkc0xheW91dCB8fCBTVkdSZW5kZXJT
dXBwb3J0OjpmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQodGhpcykpOwogICAgIG1faXNMYXlv
dXRTaXplQ2hhbmdlZCA9IGZhbHNlOwogCiAgICAgLy8gQXQgdGhpcyBwb2ludCBMYXlvdXRSZXBh
aW50ZXIgYWxyZWFkeSBncmFiYmVkIHRoZSBvbGQgYm91bmRzLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5jcHAKaW5kZXggMmJjZTZhMmZkNjVl
MmRiMTI3ZGUzYmE0NGEwYjRjZDAxOTg3ZWYwOC4uOWFiOTIzN2FhZmJmYjc5NDcwYTI0OWJhMWM3
NTU4NDZhMzFlNjJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdSZW5kZXJTdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1JlbmRlclN1cHBvcnQuY3BwCkBAIC0zMDMsNiArMzAzLDIwIEBAIHZvaWQgU1ZHUmVuZGVyU3Vw
cG9ydDo6aW50ZXJzZWN0UmVwYWludFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVj
dCogb2JqCiAgICAgICAgIHNoYWRvdy0+YWRqdXN0UmVjdEZvclNoYWRvdyhyZXBhaW50UmVjdCk7
CiB9CiAKK2Jvb2wgU1ZHUmVuZGVyU3VwcG9ydDo6ZmlsdGVyc0ZvcmNlQ29udGFpbmVyTGF5b3V0
KFJlbmRlck9iamVjdCogb2JqZWN0KQoreworICAgIC8vIElmIGFueSBvZiB0aGlzIGNvbnRhaW5l
cidzIGNoaWxkcmVuIG5lZWQgdG8gYmUgbGFpZCBvdXQsIGFuZCBhIGZpbHRlciBpcyBhcHBsaWVk
CisgICAgLy8gdG8gdGhlIGNvbnRhaW5lciwgd2UgbmVlZCB0byByZXBhaW50IHRoZSBlbnRpcmUg
Y29udGFpbmVyLgorICAgIGlmICghb2JqZWN0LT5ub3JtYWxDaGlsZE5lZWRzTGF5b3V0KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFNWR1Jlc291cmNlcyogcmVzb3VyY2VzID0gU1ZH
UmVzb3VyY2VzQ2FjaGU6OmNhY2hlZFJlc291cmNlc0ZvclJlbmRlck9iamVjdChvYmplY3QpOwor
ICAgIGlmICghcmVzb3VyY2VzIHx8ICFyZXNvdXJjZXMtPmZpbHRlcigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBTVkdSZW5kZXJTdXBwb3J0
Ojpwb2ludEluQ2xpcHBpbmdBcmVhKFJlbmRlck9iamVjdCogb2JqZWN0LCBjb25zdCBGbG9hdFBv
aW50JiBwb2ludCkKIHsKICAgICBBU1NFUlQob2JqZWN0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHUmVuZGVyU3VwcG9ydC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJTdXBwb3J0LmgKaW5kZXggZDc2NjQ2YzBiYWEwY2ZkMTA3
YzUxZDYyM2Y5MDNkZmM2ZDZhYTY1ZC4uOTg4NzBlYzgyN2E4ODQ4YWM4MzRmZWQ3OWFmZjNjMzAw
OWM0Y2E4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5k
ZXJTdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdSZW5kZXJT
dXBwb3J0LmgKQEAgLTU1LDYgKzU1LDkgQEAgcHVibGljOgogICAgIC8vIENhbGN1bGF0ZXMgdGhl
IHJlcGFpbnRSZWN0IGluIGNvbWJpbmF0aW9uIHdpdGggZmlsdGVyLCBjbGlwcGVyIGFuZCBtYXNr
ZXIgaW4gbG9jYWwgY29vcmRpbmF0ZXMuCiAgICAgc3RhdGljIHZvaWQgaW50ZXJzZWN0UmVwYWlu
dFJlY3RXaXRoUmVzb3VyY2VzKGNvbnN0IFJlbmRlck9iamVjdCosIEZsb2F0UmVjdCYpOwogCisg
ICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgY29udGFpbmVyIG5lZWRzIHRvIGJlIGxhaWQgb3V0
IGJlY2F1c2UgaXQncyBmaWx0ZXJlZCBhbmQgYSBjaGlsZCBpcyBiZWluZyBsYWlkIG91dC4KKyAg
ICBzdGF0aWMgYm9vbCBmaWx0ZXJzRm9yY2VDb250YWluZXJMYXlvdXQoUmVuZGVyT2JqZWN0Kik7
CisKICAgICAvLyBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHBhc3NlZCBwb2ludCBsaWVzIGluIGEg
Y2xpcHBpbmcgYXJlYQogICAgIHN0YXRpYyBib29sIHBvaW50SW5DbGlwcGluZ0FyZWEoUmVuZGVy
T2JqZWN0KiwgY29uc3QgRmxvYXRQb2ludCYpOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjJmZmRlMGZhMjVkNTU3YzRj
ZjVlNzM5YTM5NTYwOGRlNDNlODllNi4uMTFlMzgzYWFlNzI3MWNiMjQzMmNlYjNjZDhmMDBiMTgz
YWYxYzQyZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDExLTExLTEwICBKb2VsIFdlYmJlciAg
PGpnd0Bnb29nbGUuY29tPgorCisgICAgICAgIFJlcGFpbnQgYnJva2VuIHdoZW4gY2hpbGRyZW4g
b2YgZmlsdGVyZWQgU1ZHIGVsZW1lbnRzIGFyZSB1cGRhdGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTczMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tbGludXgvc3Zn
L3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQucG5nOiBBZGRlZC4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9zdmcvcmVwYWludC9maWx0ZXItY2hpbGQtcmVw
YWludC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9yZXBhaW50L2ZpbHRlci1j
aGlsZC1yZXBhaW50LnN2ZzogQWRkZWQuCisKIDIwMTEtMTEtMTAgIE9qYW4gVmFmYWkgIDxvamFu
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBBZGQgYSBjb3VwbGUgdGVzdHMgdGhhdCBoYXZlIHN0
YXJ0ZWQgaGl0dGluZyBhc3NlcnRzIG9uIHRoZSBtYWMgYm90cy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1y
ZXBhaW50LWV4cGVjdGVkLnBuZyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnBuZwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5jNzljMzUwZjg1NDFlYjg1NTA4OWMzNWY1NTdhNzgzZWE2NzNmMmM3CkdJVCBiaW5hcnkgcGF0
Y2gKbGl0ZXJhbCAzMzkxCnpjbWVBU0BOPyhvbEh5YHVWQnEhaWEweX55VXsrdllWMmE+aTAqWik9
aF5obEElQFdzJGxIYG9rPG19P29UbX09MQp6TUJgTSRHe2FPUVE7UzNjJWFwV2E2R014e1dIVTJV
M3NiWVNMPEBvQU9+KTcqY3JKUm5JRUdacmQzKHB1UG51SnsKentoPyVYd00oKX0lSk1+dkEyUzQ9
KzhiRmt1WWh5TVZZdnBTQWVHJXNPO2RZWV9XeFFQXnYwV0tfSClZdmY5anVWCnpfblNXY1EyT0lT
LX5HUGpeQjVSRClJVkQ7X2FYbW4rM3VTOythaCQ5V2slXnVlezM8WU58NTJoYSU8Xi1SJHA3ewp6
cE1TUVdVO3BwViZwJkBgPUFRP0ZiTGFmX2F4bmIzVD5JbUkpY2ZQQD9kXnZqWmlyZnxyPzA7fSk5
Un1kIXZwe0MKejU5MDt6LU16Y15gcytmT18zUEwzdzt4e2xvUG5YeyZ3KlFjK1ljTXEqeDl9Tntg
Pm0lPiVyJDQ4Nj90eyVLPT54Cnp1ZV5iUUEmSDViS3x6ZzlqSz8zb1VKPF54e3FncTREfWhsVmY5
QjU+PTZrI0U9OSRrdkU3cEN+I1B7Xm1CQU1nQwp6YGItUz5jNWk7VEtHP3RGelROLU5LY0FsbWd9
YFRFUTJoRHg9Rk9XYy0zJCVpe1N5OGpzPDV9U3Y2MTB4em5XRUEKelMhd0JlZDhJZmIhfjQxNkUm
Ql9+JWVUal5LVkc8Si0jJEFUelVBfG44RVAxcVVXOyRMe25taHx6clgrWS0reTFmCnplIVd1Nig3
PUJuVTVkXmowMTluMGAjUzQpV3hJZD57KGJ4UT9jS1h+emIldUZ7fj19MSYrdVVHWjJyUnJ2KEdO
ZQp6K19oc3ojUU4oJDh7WTxxT0VWbiFaNkBFQXhIQmZ0WSZILSl7YGxqfG1uKDhWPn12QW1JVCR7
aUpLTFQoVzcqNEIKenVVPyY9dGBDZ2ctKyVZbmUpeVo7JGpiMDFeNFZibjlrSzRTWGA3P2cjc05X
bXtBMkY9PEw4K2ZEeEwjbmRMQ1EmCnpVTi1TdkYyQFdeMkBpflU4NWooS25nb08rPSpPNzd8NyM7
S0UjeihBeT9fN3l5P2dpVy1oRGY3ZHcjN1QhLUZtTgp6WSZOdGQmTiFRUCooNWU1WDNoMjJfWTNy
WmFqTEpVdz04cWsqKl8yMThVRWFRJiN+cmQoYXhKV2Qza3cjI34pdzUKemRednh8aml8TEA9SHxm
VWwoc1d3VUtLYVAyZ2FWYGszWCk+MmQwdkBXeHBSRUA0dVYze3I+eT16aGQlY0VqeWM1CnpUdzQw
fDx6QDk9VXtHQkc4dXN7T2dAdyR3LSt4Yl5LSz1Vaj4qKUVYZmRPfGskPFgoNShOM0E7QTNeRW1g
QDM9JAp6RkBeKjNOQjNgSXE7Sk5kWENAdUJZWEhnd2RYPlBWa3ZrZj5iZ1MtMTZXZUhGOCU9RDNG
JkJLWmZCJFhrdGxTM2MKUi1NfTZaZ1F1JlglUX5sb0NJSGRFRmNKVSYKCmxpdGVyYWwgMApIY21W
P2QwMDAwMQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4
L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBh
aW50LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMzYxMWNmNWY3YzdkN2UzOWZhYjI5ZDIxNWYx
OWM3NGYzNjE1OGFmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0tbGludXgvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJW
aWV3IGF0ICgwLDApIHNpemUgODAweDYwMAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSAxMjh4MTI4Cisg
IFJlbmRlclNWR1Jvb3Qge3N2Z30gYXQgKDAsMCkgc2l6ZSAxMDZ4MTA2CisgICAgUmVuZGVyU1ZH
SGlkZGVuQ29udGFpbmVyIHtkZWZzfSBhdCAoMCwwKSBzaXplIDB4MAorICAgICAgUmVuZGVyU1ZH
UmVzb3VyY2VGaWx0ZXIge2ZpbHRlcn0gW2lkPSJkcm9wU2hhZG93Il0gW2ZpbHRlclVuaXRzPW9i
amVjdEJvdW5kaW5nQm94XSBbcHJpbWl0aXZlVW5pdHM9dXNlclNwYWNlT25Vc2VdCisgICAgICAg
IFtmZURyb3BTaGFkb3cgc3RkRGV2aWF0aW9uPSIyLjAwLCAyLjAwIiBkeD0iMy4wMCIgZHk9IjMu
MDAiIGZsb29kLWNvbG9yPSIjMDAwMDAwIiBmbG9vZC1vcGFjaXR5PSIxLjAwXQorICAgICAgICAg
IFtTb3VyY2VHcmFwaGljXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6
ZSAxMDZ4MTA2CisgICAgICBbZmlsdGVyPSJkcm9wU2hhZG93Il0gUmVuZGVyU1ZHUmVzb3VyY2VG
aWx0ZXIge2ZpbHRlcn0gYXQgKC05LjYwLC05LjYwKSBzaXplIDExNS4yMHgxMTUuMjAKKyAgICAg
IFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgNjR4NjQgW2ZpbGw9e1t0eXBlPVNP
TElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0wLjAwXSBbeT0wLjAwXSBbd2lkdGg9NjQuMDBdIFto
ZWlnaHQ9NjQuMDBdCisgICAgICBSZW5kZXJTVkdQYXRoIHtyZWN0fSBhdCAoMzIsMzIpIHNpemUg
NjR4NjQgW2ZpbGw9e1t0eXBlPVNPTElEXSBbY29sb3I9IzAwODAwMF19XSBbeD0zMi4wMF0gW3k9
MzIuMDBdIFt3aWR0aD02NC4wMF0gW2hlaWdodD02NC4wMF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N2Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LnN2ZyBiL0xheW91dFRlc3RzL3N2
Zy9yZXBhaW50L2ZpbHRlci1jaGlsZC1yZXBhaW50LnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NjVmZTA3NDhk
YjMzMjMzYWU0ZjE3NGFkNDJjM2JiMmU4MzVhMTI1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3ZnL3JlcGFpbnQvZmlsdGVyLWNoaWxkLXJlcGFpbnQuc3ZnCkBAIC0wLDAgKzEsMzUg
QEAKKzw/eG1sIHZlcnNpb249IjEuMCIgc3RhbmRhbG9uZT0ibm8iPz4KKzwhRE9DVFlQRSBzdmcg
UFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBo
aWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cis8c3ZnIHdpZHRoPSIxMjhweCIgaGVpZ2h0PSIx
MjhweCIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgor
ICA8ZGVmcz4KKyAgICA8ZmlsdGVyIGlkPSJkcm9wU2hhZG93Ij4KKyAgICAgIDxmZURyb3BTaGFk
b3cgc3RkRGV2aWF0aW9uPSIyIiBkeD0iMyIgZHk9IjMiIGZsb29kLWNvbG9yPSJibGFjayIvPgor
ICAgIDwvZmlsdGVyPgorICA8L2RlZnM+CisKKyAgPHRpdGxlPgorICBUZXN0cyB0aGF0IGR5bmFt
aWNhbGx5IHVwZGF0aW5nIHRoZSBjaGlsZCBvZiBhICZsdDtnJmd0OyB3aXRoIGEgZmlsdGVyIGFw
cGxpZWQgY29ycmVjdGx5IHJlcGFpbnRzCisgIGFmZmVjdGVkIHBhcnRzIG9mIHRoZSBncm91cC4g
Qm90aCBzcXVhcmVzIHNob3VsZCBiZSBncmVlbiBpZiByZXBhaW50aW5nIGlzIHdvcmtpbmcgcHJv
cGVybHkuCisgIDwvdGl0bGU+CisKKyAgPGcgZmlsdGVyPSd1cmwoI2Ryb3BTaGFkb3cpJz4KKyAg
ICA8cmVjdCB3aWR0aD0iNjQiIGhlaWdodD0iNjQiIHN0eWxlPSJmaWxsOmdyZWVuIi8+CisgICAg
PHJlY3QgaWQ9J3Bva2UnIHg9JzMyJyB5PSczMicgd2lkdGg9IjY0IiBoZWlnaHQ9IjY0IiBzdHls
ZT0iZmlsbDpyZWQiLz4KKyAgPC9nPgorCisgIDxzY3JpcHQ+CisgIHdpbmRvdy5zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeworICAgIHZhciBwb2tlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Bv
a2UnKTsKKyAgICBwb2tlLnN0eWxlLmZpbGwgPSAnZ3JlZW4nOworCisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgIH0KKyAgfSwgMCk7CisKKyAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgfQor
ICA8L3NjcmlwdD4KKzwvc3ZnPgorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>