<?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>98221</bug_id>
          
          <creation_ts>2012-10-02 18:12:07 -0700</creation_ts>
          <short_desc>Make tables which don&apos;t use col/row span much faster to layout</short_desc>
          <delta_ts>2012-10-09 11:20:02 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>98798</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Seidel (no email)">eric</reporter>
          <assigned_to name="Eric Seidel (no email)">eric</assigned_to>
          <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>pravind.2k4</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>733282</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-02 18:12:07 -0700</bug_when>
    <thetext>Make tables which don&apos;t use col/row span much faster to layout</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733288</commentid>
    <comment_count>1</comment_count>
      <attachid>166791</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-02 18:19:49 -0700</bug_when>
    <thetext>Created attachment 166791
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733290</commentid>
    <comment_count>2</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-02 18:20:57 -0700</bug_when>
    <thetext>I&apos;m open to other ways of doing this.  I suspect this is just getting back a &quot;regression&quot; from http://trac.webkit.org/changeset/97691.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733292</commentid>
    <comment_count>3</comment_count>
      <attachid>166791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-02 18:24:28 -0700</bug_when>
    <thetext>Comment on attachment 166791
Patch

Attachment 166791 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/14131463</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733293</commentid>
    <comment_count>4</comment_count>
      <attachid>166791</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 18:24:40 -0700</bug_when>
    <thetext>Comment on attachment 166791
Patch

Attachment 166791 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14137401</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733295</commentid>
    <comment_count>5</comment_count>
      <attachid>166791</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2012-10-02 18:25:19 -0700</bug_when>
    <thetext>Comment on attachment 166791
Patch

Attachment 166791 did not pass qt-wk2-ews (qt):
Output: http://queues.webkit.org/results/14130522</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733299</commentid>
    <comment_count>6</comment_count>
      <attachid>166791</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-02 18:29:25 -0700</bug_when>
    <thetext>Comment on attachment 166791
Patch

Updating now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733301</commentid>
    <comment_count>7</comment_count>
      <attachid>166794</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-02 18:32:47 -0700</bug_when>
    <thetext>Created attachment 166794
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733313</commentid>
    <comment_count>8</comment_count>
      <attachid>166794</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-02 18:53:10 -0700</bug_when>
    <thetext>Comment on attachment 166794
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        It also looks like we could consider removing m_hasHTMLTableCellElement since that appears
&gt; +        to have been a previous attempt at such an optimization from http://trac.webkit.org/changeset/97691.

m_hasHTMLTableCellElement is basically determining if we are an HTML table cell&apos;s renderer as CSS doesn&apos;t define spanning rows / columns. With your optimization, I think it should be removed, folded into m_hasColSpan and m_hasRowSpan.

&gt; Source/WebCore/rendering/RenderTableCell.cpp:56
&gt; +    , m_hasColSpan(false)
&gt; +    , m_hasRowSpan(false)

Not a huge fan of those names, how about m_hasColumnSpanSet or m_hasColumnSpanAttribute.

&gt; Source/WebCore/rendering/RenderTableCell.cpp:221
&gt; +    // The vast majority of table cells do not have a colspan or rowspan,
&gt; +    // so we keep a bool to know if we need to bother reading from the DOM.
&gt; +    m_hasColSpan = parseColSpanFromDOM() != 1;
&gt; +    m_hasRowSpan = parseRowSpanFromDOM() != 1;

You should do it on colSpanOrRowSpanChanged instead of forcing this cost for every layout.

&gt; Source/WebCore/rendering/RenderTableCell.h:245
&gt; +    unsigned m_column : 28;
&gt;      bool m_cellWidthChanged : 1;
&gt;      bool m_hasHTMLTableCellElement : 1;
&gt; +    bool m_hasColSpan: 1;
&gt; +    bool m_hasRowSpan: 1;

If we want those fields to be packed on Windows, they should have the same type. See https://lists.webkit.org/pipermail/webkit-dev/2012-March/020134.html

(we probably want to keep table cells small and add a COMPILE_ASSERT).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733316</commentid>
    <comment_count>9</comment_count>
      <attachid>166794</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-02 18:57:57 -0700</bug_when>
    <thetext>Comment on attachment 166794
Patch

Attachment 166794 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14129449

New failing tests:
css1/cascade/important.html
css1/basic/class_as_selector.html
css1/box_properties/border_color.html
css1/box_properties/border_bottom.html
css1/basic/grouping.html
css1/box_properties/border_bottom_width.html
css1/box_properties/border_bottom_width_inline.html
css1/classification/list_style_position.html
css1/basic/id_as_selector.html
css1/basic/inheritance.html
css1/box_properties/border_color_inline.html
css1/box_properties/border.html
css1/color_and_background/background_position.html
WebFrameTest.FindInPageMatchRects
css1/color_and_background/background_attachment.html
css1/classification/list_style_image.html
css1/cascade/cascade_order.html
css1/color_and_background/background.html
css1/classification/list_style.html
css1/conformance/forward_compatible_parsing.html
css1/box_properties/border_inline.html
css1/color_and_background/background_color.html
css1/color_and_background/background_image.html
css1/box_properties/border_bottom_inline.html
css1/basic/containment.html
css1/basic/contextual_selectors.html
css1/basic/comments.html
css1/color_and_background/background_repeat.html
css1/classification/white_space.html
css1/classification/display.html
css1/classification/list_style_type.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>733522</commentid>
    <comment_count>10</comment_count>
      <attachid>166794</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 03:11:13 -0700</bug_when>
    <thetext>Comment on attachment 166794
Patch

Attachment 166794 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14124784

New failing tests:
css1/cascade/important.html
css1/basic/class_as_selector.html
css1/box_properties/border_color.html
css1/box_properties/border_bottom.html
css1/basic/grouping.html
css1/box_properties/border_bottom_width.html
css1/box_properties/border_bottom_width_inline.html
css1/classification/list_style_position.html
css1/basic/id_as_selector.html
css1/basic/inheritance.html
css1/box_properties/border_color_inline.html
css1/box_properties/border.html
css1/color_and_background/background_position.html
css1/color_and_background/background_attachment.html
css1/classification/list_style_image.html
css1/cascade/cascade_order.html
css1/color_and_background/background.html
css1/classification/list_style.html
css1/conformance/forward_compatible_parsing.html
css1/box_properties/border_inline.html
css1/color_and_background/background_color.html
css1/color_and_background/background_image.html
css1/box_properties/border_bottom_inline.html
css1/basic/containment.html
css1/basic/contextual_selectors.html
css1/basic/comments.html
css1/classification/white_space.html
css1/font_properties/font.html
css1/classification/display.html
css1/classification/list_style_type.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734839</commentid>
    <comment_count>11</comment_count>
      <attachid>167134</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-04 11:06:54 -0700</bug_when>
    <thetext>Created attachment 167134
Addressed Julien&apos;s feedback, but still fails tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735064</commentid>
    <comment_count>12</comment_count>
      <attachid>167186</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-04 15:20:46 -0700</bug_when>
    <thetext>Created attachment 167186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735066</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-04 15:21:36 -0700</bug_when>
    <thetext>I may need to change bool to unsigned or the compile may fail on Windows.  If it does, I&apos;ll fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735087</commentid>
    <comment_count>14</comment_count>
      <attachid>167186</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-10-04 15:51:54 -0700</bug_when>
    <thetext>Comment on attachment 167186
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        so I stole another 2 bits from RenderTableCell::m_column to avoid

you stole 1 bit actually ;)

&gt; Source/WebCore/rendering/RenderTableCell.cpp:55
&gt; +COMPILE_ASSERT(sizeof(RenderTableCell) == sizeof(SameSizeAsRenderTableCell), RenderTableCell_should_stay_small);

As you pointed out, this will likely fail on Windows due to the different member&apos;s type.

&gt; Source/WebCore/rendering/RenderTableCell.cpp:81
&gt; +    if (!node())
&gt; +        return 1;

This could be moved around the call to updateColAndRowSpanFlags() in the constructor and removed from both parse function. You are guaranteed to have the right type if you get called from colSpanOrRowSpanChanged.

&gt; Source/WebCore/rendering/RenderTableCell.cpp:123
&gt; +    // FIXME: I suspect that we could return early here if !m_hasColSpan &amp;&amp; !m_hasRowSpan.

I don&apos;t think this is true. You could probably bail out if the old / new values of rowSpan and colSpan were identical though but we don&apos;t have enough information in this function to check that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735105</commentid>
    <comment_count>15</comment_count>
      <attachid>167186</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-04 16:21:46 -0700</bug_when>
    <thetext>Comment on attachment 167186
Patch

Attachment 167186 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14168470</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735809</commentid>
    <comment_count>16</comment_count>
      <attachid>167359</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-05 11:28:34 -0700</bug_when>
    <thetext>Created attachment 167359
ready</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735812</commentid>
    <comment_count>17</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-05 11:31:12 -0700</bug_when>
    <thetext>I&apos;ll mark cq+ once the bots like it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735931</commentid>
    <comment_count>18</comment_count>
      <attachid>167359</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 13:47:08 -0700</bug_when>
    <thetext>Comment on attachment 167359
ready

Clearing flags on attachment: 167359

Committed r130548: &lt;http://trac.webkit.org/changeset/130548&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>735932</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-05 13:47:13 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166791</attachid>
            <date>2012-10-02 18:19:49 -0700</date>
            <delta_ts>2012-10-02 18:29:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98221-20121002181901.patch</filename>
            <type>text/plain</type>
            <size>4890</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NTRhY2E3OTY3OGFl
M2FkNmE4YzMzZGEyN2Q1OTE5MzM0ZGE4Yy4uZjBmODk4ODEyY2YyMGM1M2ZiZGQxYjRmNTFlMDg1
NTU3ODc5NWNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEyLTEwLTAyICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRhYmxlcyB3aGljaCBk
b24ndCB1c2UgY29sL3JvdyBzcGFuIG11Y2ggZmFzdGVyIHRvIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNeSBzZW5zZSBpcyB0aGF0IG1vc3Qg
dGFibGVzIG9uIHdlYnBhZ2VzIGRvIG5vdCB1c2UgY29sc3Bhbi9yb3dzcGFuCisgICAgICAgIHNv
IEkgc3RvbGUgYW5vdGhlciAyIGJpdHMgZnJvbSBSZW5kZXJUYWJsZUNlbGw6Om1fY29sdW1uIHRv
IGF2b2lkCisgICAgICAgIGhhdmluZyB0byByZS1wYXJzZSB0aGUgY29sU3Bhbi9yb3dTcGFuIGF0
dHJpYnV0ZXMgZm9yIGV2ZXJ5IGNlbGwKKyAgICAgICAgd2hlbiBkb2luZyB0YWJsZSBsYXlvdXQu
CisgICAgICAgIFRoaXMgY29tcGxldGVseSByZW1vdmVkIHRoZXNlIHN5bWJvbHMgZnJvbSBtYW51
YWwgdGVzdGluZyBvZiBkb2NzLmdvb2dsZS5jb20KKyAgICAgICAgYW5kIG1vdmUgb3VyIHJvYm9o
b3JuZXQvcmVzaXplY29sLmh0bWwgbnVtYmVyIGZyb20gYW4gYXZlcmFnZSBvZiAzMjIxbXMgdG8g
MjYwOG1zCisgICAgICAgIHdoaWNoIGxvb2tzIGFsbW9zdCBhIDIwJSBzcGVlZHVwLiA6KQorCisg
ICAgICAgIEknbSBoYXBweSB0byBzdGVhbCB0aGVzZSBiaXRzIGZyb20gbV9pbnRyaW5zaWNQYWRk
aW5nQmVmb3JlL21faW50cmluc2ljUGFkZGluZ0FmdGVyIGluc3RlYWQuCisgICAgICAgIEkgYWxz
byBsb29rcyBsaWtlIHdlIGNvdWxkIGNvbnNpZGVyIHJlbW92aW5nIG1faGFzSFRNTFRhYmxlQ2Vs
bEVsZW1lbnQgc2luY2UgdGhhdCBhcHBlYXJzCisgICAgICAgIHRvIGhhdmUgYmVlbiBhIHByZXZp
b3VzIGF0dGVtcHQgYXQgc3VjaCBhbiBvcHRpbWl6YXRpb24gZnJvbSBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC85NzY5MS4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJs
ZUNlbGwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYXJzZUNvbFNwYW5G
cm9tRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6cGFyc2VSb3dTcGFu
RnJvbURPTSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OmxheW91dCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
Q2VsbDo6cm93U3Bhbik6CisgICAgICAgIChSZW5kZXJUYWJsZUNlbGwpOgorCiAyMDEyLTEwLTAy
ICBUYWthc2hpIFNha2Ftb3RvICA8dGFzYWtAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbU2hhZG93
XSBTaGFkb3dSb290IHNob3VsZCBrbm93IHdoZXRoZXIgPHNoYWRvdz4gaW4gaXRzIHRyZWVzY29w
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCA5
NDRhOTBjNzBmMTA0ODBkNmI2MTk5ODBiNjdlODZjMGFmMThkYzU0Li45NTcwZjU4ZTA4ZThhNmJl
N2Q2ZTI4YWZkODNmZjhjMGExNDY5YjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVDZWxsLmNwcApAQCAtNTIsNiArNTIsOCBAQCBSZW5kZXJUYWJsZUNlbGw6OlJl
bmRlclRhYmxlQ2VsbChOb2RlKiBub2RlKQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRl
eCkKICAgICAsIG1fY2VsbFdpZHRoQ2hhbmdlZChmYWxzZSkKICAgICAsIG1faGFzSFRNTFRhYmxl
Q2VsbEVsZW1lbnQobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgbm9kZS0+aGFz
VGFnTmFtZSh0aFRhZykpKQorICAgICwgbV9oYXNDb2xTcGFuKGZhbHNlKQorICAgICwgbV9oYXNS
b3dTcGFuKGZhbHNlKQogICAgICwgbV9pbnRyaW5zaWNQYWRkaW5nQmVmb3JlKDApCiAgICAgLCBt
X2ludHJpbnNpY1BhZGRpbmdBZnRlcigwKQogewpAQCAtNzIsNyArNzQsNyBAQCBpbmxpbmUgYm9v
bCBpc01hdGhNTEVsZW1lbnQoTm9kZSogbm9kZSkKIH0KICNlbmRpZgogCi11bnNpZ25lZCBSZW5k
ZXJUYWJsZUNlbGw6OmNvbFNwYW4oKSBjb25zdAordW5zaWduZWQgUmVuZGVyVGFibGVDZWxsOjpw
YXJzZUNvbFNwYW5Gcm9tRE9NKCkgY29uc3QKIHsKICAgICBpZiAoVU5MSUtFTFkoIW1faGFzSFRN
TFRhYmxlQ2VsbEVsZW1lbnQpKSB7CiAjaWYgRU5BQkxFKE1BVEhNTCkKQEAgLTg1LDcgKzg3LDcg
QEAgdW5zaWduZWQgUmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuKCkgY29uc3QKICAgICByZXR1cm4g
dG9IVE1MVGFibGVDZWxsRWxlbWVudChub2RlKCkpLT5jb2xTcGFuKCk7CiB9CiAKLXVuc2lnbmVk
IFJlbmRlclRhYmxlQ2VsbDo6cm93U3BhbigpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUYWJsZUNl
bGw6OnBhcnNlUm93U3BhbkZyb21ET00oKSBjb25zdAogewogICAgIGlmIChVTkxJS0VMWSghbV9o
YXNIVE1MVGFibGVDZWxsRWxlbWVudCkpIHsKICNpZiBFTkFCTEUoTUFUSE1MKQpAQCAtMjEzLDYg
KzIxNSwxMSBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6c2V0Q2VsbExvZ2ljYWxXaWR0aChMYXlv
dXRVbml0IHcpCiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpsYXlvdXQoKQogeworICAgIC8vIFRo
ZSB2YXN0IG1ham9yaXR5IG9mIHRhYmxlIGNlbGxzIGRvIG5vdCBoYXZlIGEgY29sc3BhbiBvciBy
b3dzcGFuLAorICAgIC8vIHNvIHdlIGtlZXAgYSBib29sIHRvIGtub3cgaWYgd2UgbmVlZCB0byBi
b3RoZXIgcmVhZGluZyBmcm9tIHRoZSBET00uCisgICAgbV9oYXNDb2xTcGFuID0gcGFyc2VDb2xT
cGFuRnJvbURPTSgpICE9IDE7CisgICAgbV9oYXNSb3dTcGFuID0gcGFyc2VSb3dTcGFuRnJvbURP
TSgpICE9IDE7CisKICAgICB1cGRhdGVGaXJzdExldHRlcigpOwogICAgIGxheW91dEJsb2NrKGNl
bGxXaWR0aENoYW5nZWQoKSk7CiAgICAgc2V0Q2VsbFdpZHRoQ2hhbmdlZChmYWxzZSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKaW5kZXggNDVkYjdhYTE5Yzc5
N2Q3MTIxMzhhODEyOTJiOGI4YTRmNjE1YzI1Ny4uYmUzOGU5NmJhM2FmM2VkNjc2NDUxOGI5OTk2
YTQwNDA2MWU1YzVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaApAQCAtMzksOCArMzksMTggQEAgY2xhc3MgUmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJl
bmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5kZXJUYWJsZUNlbGwoTm9kZSop
OwogICAgIAotICAgIHVuc2lnbmVkIGNvbFNwYW4oKSBjb25zdDsKLSAgICB1bnNpZ25lZCByb3dT
cGFuKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29sU3BhbigpIGNvbnN0CisgICAgeworICAgICAg
ICBpZiAoIW1faGFzQ29sU3BhbikKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICByZXR1
cm4gcGFyc2VDb2xTcGFuRnJvbURPTSgpOworICAgIH0KKyAgICB1bnNpZ25lZCByb3dTcGFuKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNSb3dTcGFuKQorICAgICAgICAgICAgcmV0
dXJuIDE7CisgICAgICAgIHJldHVybiBwYXJzZVJvd1NwYW5Gcm9tRE9NKCk7CisgICAgfQogCiAg
ICAgLy8gQ2FsbGVkIGZyb20gSFRNTFRhYmxlQ2VsbEVsZW1lbnQuCiAgICAgdm9pZCBjb2xTcGFu
T3JSb3dTcGFuQ2hhbmdlZCgpOwpAQCAtMjI1LDkgKzIzNSwxNCBAQCBwcml2YXRlOgogICAgIENv
bGxhcHNlZEJvcmRlclZhbHVlIGNvbXB1dGVDb2xsYXBzZWRCZWZvcmVCb3JkZXIoSW5jbHVkZUJv
cmRlckNvbG9yT3JOb3QgPSBJbmNsdWRlQm9yZGVyQ29sb3IpIGNvbnN0OwogICAgIENvbGxhcHNl
ZEJvcmRlclZhbHVlIGNvbXB1dGVDb2xsYXBzZWRBZnRlckJvcmRlcihJbmNsdWRlQm9yZGVyQ29s
b3JPck5vdCA9IEluY2x1ZGVCb3JkZXJDb2xvcikgY29uc3Q7CiAKLSAgICB1bnNpZ25lZCBtX2Nv
bHVtbiA6IDMwOworICAgIHVuc2lnbmVkIHBhcnNlUm93U3BhbkZyb21ET00oKSBjb25zdDsKKyAg
ICB1bnNpZ25lZCBwYXJzZUNvbFNwYW5Gcm9tRE9NKCkgY29uc3Q7CisKKyAgICB1bnNpZ25lZCBt
X2NvbHVtbiA6IDI4OwogICAgIGJvb2wgbV9jZWxsV2lkdGhDaGFuZ2VkIDogMTsKICAgICBib29s
IG1faGFzSFRNTFRhYmxlQ2VsbEVsZW1lbnQgOiAxOworICAgIGJvb2wgbV9oYXNDb2xTcGFuOiAx
OworICAgIGJvb2wgbV9oYXNSb3dTcGFuOiAxOwogICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdC
ZWZvcmU7CiAgICAgaW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwogfTsK
</data>
<flag name="commit-queue"
          id="179243"
          type_id="3"
          status="-"
          setter="webkit-ews"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166794</attachid>
            <date>2012-10-02 18:32:47 -0700</date>
            <delta_ts>2012-10-04 11:06:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98221-20121002183200.patch</filename>
            <type>text/plain</type>
            <size>5254</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NTRhY2E3OTY3OGFl
M2FkNmE4YzMzZGEyN2Q1OTE5MzM0ZGE4Yy4uMmExYjY5NTYwNDExNTI4MTNlZTcwMzliNDUzYjQ2
ZWI0YTZjMDc4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEwLTAyICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRhYmxlcyB3aGljaCBk
b24ndCB1c2UgY29sL3JvdyBzcGFuIG11Y2ggZmFzdGVyIHRvIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNeSBzZW5zZSBpcyB0aGF0IG1vc3Qg
dGFibGVzIG9uIHdlYnBhZ2VzIGRvIG5vdCB1c2UgY29sc3Bhbi9yb3dzcGFuCisgICAgICAgIHNv
IEkgc3RvbGUgYW5vdGhlciAyIGJpdHMgZnJvbSBSZW5kZXJUYWJsZUNlbGw6Om1fY29sdW1uIHRv
IGF2b2lkCisgICAgICAgIGhhdmluZyB0byByZS1wYXJzZSB0aGUgY29sU3Bhbi9yb3dTcGFuIGF0
dHJpYnV0ZXMgZm9yIGV2ZXJ5IGNlbGwKKyAgICAgICAgd2hlbiBkb2luZyB0YWJsZSBsYXlvdXQu
CisgICAgICAgIFRoaXMgbWFkZSB0aGVzZSBzeW1ib2xzIGRpc2FwcGVhciBmcm9tIGJpZ2dyaWQu
aHRtbC9yZWRyYXcuaHRtbCAoZGdsYXprb3YncyBzcHJlYWRzaGVldHMgYmVuY2htYXJrcykKKyAg
ICAgICAgYXMgd2VsbCBhcyBtb3ZlZCBvdXIgcm9ib2hvcm5ldC9yZXNpemVjb2wuaHRtbCBudW1i
ZXIgZnJvbSBhbiBhdmVyYWdlIG9mIDMyMjFtcyB0byAyNjA4bXMgKH4yMCUhKS4KKworICAgICAg
ICBJJ20gaGFwcHkgdG8gc3RlYWwgdGhlc2UgYml0cyBmcm9tIG1faW50cmluc2ljUGFkZGluZ0Jl
Zm9yZS9tX2ludHJpbnNpY1BhZGRpbmdBZnRlciBpbnN0ZWFkLgorICAgICAgICBJdCBhbHNvIGxv
b2tzIGxpa2Ugd2UgY291bGQgY29uc2lkZXIgcmVtb3ZpbmcgbV9oYXNIVE1MVGFibGVDZWxsRWxl
bWVudCBzaW5jZSB0aGF0IGFwcGVhcnMKKyAgICAgICAgdG8gaGF2ZSBiZWVuIGEgcHJldmlvdXMg
YXR0ZW1wdCBhdCBzdWNoIGFuIG9wdGltaXphdGlvbiBmcm9tIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0Lzk3NjkxLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2Vs
bCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhcnNlQ29sU3BhbkZyb21E
T00pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYXJzZVJvd1NwYW5Gcm9t
RE9NKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6bGF5b3V0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZUNlbGw6OmNvbFNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxs
Ojpyb3dTcGFuKToKKyAgICAgICAgKFJlbmRlclRhYmxlQ2VsbCk6CisKIDIwMTItMTAtMDIgIFRh
a2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3ddIFNo
YWRvd1Jvb3Qgc2hvdWxkIGtub3cgd2hldGhlciA8c2hhZG93PiBpbiBpdHMgdHJlZXNjb3BlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDk0NGE5
MGM3MGYxMDQ4MGQ2YjYxOTk4MGI2N2U4NmMwYWYxOGRjNTQuLjk1NzBmNThlMDhlOGE2YmU3ZDZl
MjhhZmQ4M2ZmOGMwYTE0NjliMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwCkBAIC01Miw2ICs1Miw4IEBAIFJlbmRlclRhYmxlQ2VsbDo6UmVuZGVy
VGFibGVDZWxsKE5vZGUqIG5vZGUpCiAgICAgLCBtX2NvbHVtbih1bnNldENvbHVtbkluZGV4KQog
ICAgICwgbV9jZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKQogICAgICwgbV9oYXNIVE1MVGFibGVDZWxs
RWxlbWVudChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlLT5oYXNUYWdO
YW1lKHRoVGFnKSkpCisgICAgLCBtX2hhc0NvbFNwYW4oZmFsc2UpCisgICAgLCBtX2hhc1Jvd1Nw
YW4oZmFsc2UpCiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmUoMCkKICAgICAsIG1faW50
cmluc2ljUGFkZGluZ0FmdGVyKDApCiB7CkBAIC03Miw3ICs3NCw3IEBAIGlubGluZSBib29sIGlz
TWF0aE1MRWxlbWVudChOb2RlKiBub2RlKQogfQogI2VuZGlmCiAKLXVuc2lnbmVkIFJlbmRlclRh
YmxlQ2VsbDo6Y29sU3BhbigpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUYWJsZUNlbGw6OnBhcnNl
Q29sU3BhbkZyb21ET00oKSBjb25zdAogewogICAgIGlmIChVTkxJS0VMWSghbV9oYXNIVE1MVGFi
bGVDZWxsRWxlbWVudCkpIHsKICNpZiBFTkFCTEUoTUFUSE1MKQpAQCAtODUsNyArODcsNyBAQCB1
bnNpZ25lZCBSZW5kZXJUYWJsZUNlbGw6OmNvbFNwYW4oKSBjb25zdAogICAgIHJldHVybiB0b0hU
TUxUYWJsZUNlbGxFbGVtZW50KG5vZGUoKSktPmNvbFNwYW4oKTsKIH0KIAotdW5zaWduZWQgUmVu
ZGVyVGFibGVDZWxsOjpyb3dTcGFuKCkgY29uc3QKK3Vuc2lnbmVkIFJlbmRlclRhYmxlQ2VsbDo6
cGFyc2VSb3dTcGFuRnJvbURPTSgpIGNvbnN0CiB7CiAgICAgaWYgKFVOTElLRUxZKCFtX2hhc0hU
TUxUYWJsZUNlbGxFbGVtZW50KSkgewogI2lmIEVOQUJMRShNQVRITUwpCkBAIC0yMTMsNiArMjE1
LDExIEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpzZXRDZWxsTG9naWNhbFdpZHRoKExheW91dFVu
aXQgdykKIAogdm9pZCBSZW5kZXJUYWJsZUNlbGw6OmxheW91dCgpCiB7CisgICAgLy8gVGhlIHZh
c3QgbWFqb3JpdHkgb2YgdGFibGUgY2VsbHMgZG8gbm90IGhhdmUgYSBjb2xzcGFuIG9yIHJvd3Nw
YW4sCisgICAgLy8gc28gd2Uga2VlcCBhIGJvb2wgdG8ga25vdyBpZiB3ZSBuZWVkIHRvIGJvdGhl
ciByZWFkaW5nIGZyb20gdGhlIERPTS4KKyAgICBtX2hhc0NvbFNwYW4gPSBwYXJzZUNvbFNwYW5G
cm9tRE9NKCkgIT0gMTsKKyAgICBtX2hhc1Jvd1NwYW4gPSBwYXJzZVJvd1NwYW5Gcm9tRE9NKCkg
IT0gMTsKKwogICAgIHVwZGF0ZUZpcnN0TGV0dGVyKCk7CiAgICAgbGF5b3V0QmxvY2soY2VsbFdp
ZHRoQ2hhbmdlZCgpKTsKICAgICBzZXRDZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCA0NWRiN2FhMTljNzk3ZDcx
MjEzOGE4MTI5MmI4YjhhNGY2MTVjMjU3Li5mOWIzMmJiNjBjMjIzN2M4YWFhNGM0MGI4ZmEzNGNk
ZDRlOWFjZmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5o
CkBAIC0zMCw4ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHVuc2V0Q29sdW1uSW5kZXggPSAweDNGRkZGRkZGOwotc3RhdGljIGNvbnN0IHVu
c2lnbmVkIG1heENvbHVtbkluZGV4ID0gMHgzRkZGRkZGRTsgLy8gMSwwNzMsNzQxLDgyMworc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHVuc2V0Q29sdW1uSW5kZXggPSAweEZGRkZGRkY7CitzdGF0aWMg
Y29uc3QgdW5zaWduZWQgbWF4Q29sdW1uSW5kZXggPSAweEZGRkZGRkU7IC8vIDI2OCw0MzUsNDU0
CiAKIGVudW0gSW5jbHVkZUJvcmRlckNvbG9yT3JOb3QgeyBEb05vdEluY2x1ZGVCb3JkZXJDb2xv
ciwgSW5jbHVkZUJvcmRlckNvbG9yIH07CiAKQEAgLTM5LDggKzM5LDE4IEBAIGNsYXNzIFJlbmRl
clRhYmxlQ2VsbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
UmVuZGVyVGFibGVDZWxsKE5vZGUqKTsKICAgICAKLSAgICB1bnNpZ25lZCBjb2xTcGFuKCkgY29u
c3Q7Ci0gICAgdW5zaWduZWQgcm93U3BhbigpIGNvbnN0OworICAgIHVuc2lnbmVkIGNvbFNwYW4o
KSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc0NvbFNwYW4pCisgICAgICAgICAgICBy
ZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIHBhcnNlQ29sU3BhbkZyb21ET00oKTsKKyAgICB9Cisg
ICAgdW5zaWduZWQgcm93U3BhbigpIGNvbnN0CisgICAgeworICAgICAgICBpZiAoIW1faGFzUm93
U3BhbikKKyAgICAgICAgICAgIHJldHVybiAxOworICAgICAgICByZXR1cm4gcGFyc2VSb3dTcGFu
RnJvbURPTSgpOworICAgIH0KIAogICAgIC8vIENhbGxlZCBmcm9tIEhUTUxUYWJsZUNlbGxFbGVt
ZW50LgogICAgIHZvaWQgY29sU3Bhbk9yUm93U3BhbkNoYW5nZWQoKTsKQEAgLTIyNSw5ICsyMzUs
MTQgQEAgcHJpdmF0ZToKICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjb21wdXRlQ29sbGFwc2Vk
QmVmb3JlQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2xvck9yTm90ID0gSW5jbHVkZUJvcmRlckNvbG9y
KSBjb25zdDsKICAgICBDb2xsYXBzZWRCb3JkZXJWYWx1ZSBjb21wdXRlQ29sbGFwc2VkQWZ0ZXJC
b3JkZXIoSW5jbHVkZUJvcmRlckNvbG9yT3JOb3QgPSBJbmNsdWRlQm9yZGVyQ29sb3IpIGNvbnN0
OwogCi0gICAgdW5zaWduZWQgbV9jb2x1bW4gOiAzMDsKKyAgICB1bnNpZ25lZCBwYXJzZVJvd1Nw
YW5Gcm9tRE9NKCkgY29uc3Q7CisgICAgdW5zaWduZWQgcGFyc2VDb2xTcGFuRnJvbURPTSgpIGNv
bnN0OworCisgICAgdW5zaWduZWQgbV9jb2x1bW4gOiAyODsKICAgICBib29sIG1fY2VsbFdpZHRo
Q2hhbmdlZCA6IDE7CiAgICAgYm9vbCBtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50IDogMTsKKyAg
ICBib29sIG1faGFzQ29sU3BhbjogMTsKKyAgICBib29sIG1faGFzUm93U3BhbjogMTsKICAgICBp
bnQgbV9pbnRyaW5zaWNQYWRkaW5nQmVmb3JlOwogICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdB
ZnRlcjsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167134</attachid>
            <date>2012-10-04 11:06:54 -0700</date>
            <delta_ts>2012-10-04 15:20:43 -0700</delta_ts>
            <desc>Addressed Julien&apos;s feedback, but still fails tests</desc>
            <filename>bug-98221-20121004110604.patch</filename>
            <type>text/plain</type>
            <size>6877</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NTRhY2E3OTY3OGFl
M2FkNmE4YzMzZGEyN2Q1OTE5MzM0ZGE4Yy4uZTc1OWVhNmU1NDkzYjM2OWU1ZjQ2M2Y2ZjQyMzdl
ZTBkOWQzY2RiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTEwLTAzICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRhYmxlcyB3aGljaCBk
b24ndCB1c2UgY29sL3JvdyBzcGFuIG11Y2ggZmFzdGVyIHRvIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNeSBzZW5zZSBpcyB0aGF0IG1vc3Qg
dGFibGVzIG9uIHdlYnBhZ2VzIGRvIG5vdCB1c2UgY29sc3Bhbi9yb3dzcGFuCisgICAgICAgIHNv
IEkgc3RvbGUgYW5vdGhlciAyIGJpdHMgZnJvbSBSZW5kZXJUYWJsZUNlbGw6Om1fY29sdW1uIHRv
IGF2b2lkCisgICAgICAgIGhhdmluZyB0byByZS1wYXJzZSB0aGUgY29sU3Bhbi9yb3dTcGFuIGF0
dHJpYnV0ZXMgZm9yIGV2ZXJ5IGNlbGwKKyAgICAgICAgd2hlbiBkb2luZyB0YWJsZSBsYXlvdXQu
CisgICAgICAgIFRoaXMgbWFkZSB0aGVzZSBzeW1ib2xzIGRpc2FwcGVhciBmcm9tIGJpZ2dyaWQu
aHRtbC9yZWRyYXcuaHRtbCAoZGdsYXprb3YncyBzcHJlYWRzaGVldHMgYmVuY2htYXJrcykKKyAg
ICAgICAgYXMgd2VsbCBhcyBtb3ZlZCBvdXIgcm9ib2hvcm5ldC9yZXNpemVjb2wuaHRtbCBudW1i
ZXIgZnJvbSBhbiBhdmVyYWdlIG9mIDMyMjFtcyB0byAyNjA4bXMgKH4yMCUhKS4KKworICAgICAg
ICBJJ20gaGFwcHkgdG8gc3RlYWwgdGhlc2UgYml0cyBmcm9tIG1faW50cmluc2ljUGFkZGluZ0Jl
Zm9yZS9tX2ludHJpbnNpY1BhZGRpbmdBZnRlciBpbnN0ZWFkLgorICAgICAgICBJdCBhbHNvIGxv
b2tzIGxpa2Ugd2UgY291bGQgY29uc2lkZXIgcmVtb3ZpbmcgbV9oYXNIVE1MVGFibGVDZWxsRWxl
bWVudCBzaW5jZSB0aGF0IGFwcGVhcnMKKyAgICAgICAgdG8gaGF2ZSBiZWVuIGEgcHJldmlvdXMg
YXR0ZW1wdCBhdCBzdWNoIGFuIG9wdGltaXphdGlvbiBmcm9tIGh0dHA6Ly90cmFjLndlYmtpdC5v
cmcvY2hhbmdlc2V0Lzk3NjkxLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2Vs
bCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhcnNlQ29sU3BhbkZyb21E
T00pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYXJzZVJvd1NwYW5Gcm9t
RE9NKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6bGF5b3V0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZUNlbGw6OmNvbFNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxs
Ojpyb3dTcGFuKToKKyAgICAgICAgKFJlbmRlclRhYmxlQ2VsbCk6CisKIDIwMTItMTAtMDIgIFRh
a2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtTaGFkb3ddIFNo
YWRvd1Jvb3Qgc2hvdWxkIGtub3cgd2hldGhlciA8c2hhZG93PiBpbiBpdHMgdHJlZXNjb3BlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmluZGV4IDk0NGE5
MGM3MGYxMDQ4MGQ2YjYxOTk4MGI2N2U4NmMwYWYxOGRjNTQuLmJjZTc1YzhhNWU3N2NhMTM1OTdj
ODMwNTJmNTNlMmQwODc3NGM2MzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUYWJsZUNlbGwuY3BwCkBAIC00NywxMSArNDcsMTkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
CiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitzdHJ1Y3QgU2FtZVNpemVBc1JlbmRlclRh
YmxlQ2VsbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CisgICAgdW5zaWduZWQgYml0ZmllbGRzOwor
ICAgIGludCBwYWRkaW5nc1syXTsKK307CisKK0NPTVBJTEVfQVNTRVJUKHNpemVvZihSZW5kZXJU
YWJsZUNlbGwpID09IHNpemVvZihTYW1lU2l6ZUFzUmVuZGVyVGFibGVDZWxsKSwgUmVuZGVyVGFi
bGVDZWxsX3Nob3VsZF9zdGF5X3NtYWxsKTsKKwogUmVuZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJs
ZUNlbGwoTm9kZSogbm9kZSkKICAgICA6IFJlbmRlckJsb2NrKG5vZGUpCiAgICAgLCBtX2NvbHVt
bih1bnNldENvbHVtbkluZGV4KQogICAgICwgbV9jZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKQotICAg
ICwgbV9oYXNIVE1MVGFibGVDZWxsRWxlbWVudChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRk
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKSkpCisgICAgLCBtX2hhc0NvbFNwYW4oZmFs
c2UpCisgICAgLCBtX2hhc1Jvd1NwYW4oZmFsc2UpCiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdC
ZWZvcmUoMCkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0FmdGVyKDApCiB7CkBAIC02NSw0NiAr
NzMsMzQgQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OndpbGxCZVJlbW92ZWRGcm9tVHJlZSgpCiAg
ICAgc2VjdGlvbigpLT5yZW1vdmVDYWNoZWRDb2xsYXBzZWRCb3JkZXJzKHRoaXMpOwogfQogCi0j
aWYgRU5BQkxFKE1BVEhNTCkKLWlubGluZSBib29sIGlzTWF0aE1MRWxlbWVudChOb2RlKiBub2Rl
KQotewotICAgIHJldHVybiBub2RlICYmIG5vZGUtPmlzRWxlbWVudE5vZGUoKSAmJiB0b0VsZW1l
bnQobm9kZSktPmlzTWF0aE1MRWxlbWVudCgpOwotfQotI2VuZGlmCi0KLXVuc2lnbmVkIFJlbmRl
clRhYmxlQ2VsbDo6Y29sU3BhbigpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUYWJsZUNlbGw6OnBh
cnNlQ29sU3BhbkZyb21ET00oKSBjb25zdAogewotICAgIGlmIChVTkxJS0VMWSghbV9oYXNIVE1M
VGFibGVDZWxsRWxlbWVudCkpIHsKKyAgICBpZiAoIW5vZGUoKSkKKyAgICAgICAgcmV0dXJuIDE7
CisgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZSh0ZFRhZykpCisgICAgICAgIHJldHVybiB0b0hU
TUxUYWJsZUNlbGxFbGVtZW50KG5vZGUoKSktPmNvbFNwYW4oKTsKICNpZiBFTkFCTEUoTUFUSE1M
KQotICAgICAgICBpZiAoaXNNYXRoTUxFbGVtZW50KG5vZGUoKSkpCi0gICAgICAgICAgICByZXR1
cm4gdG9NYXRoTUxFbGVtZW50KG5vZGUoKSktPmNvbFNwYW4oKTsKKyAgICBpZiAobm9kZSgpLT5o
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGRUYWcpKQorICAgICAgICByZXR1cm4gdG9NYXRoTUxF
bGVtZW50KG5vZGUoKSktPmNvbFNwYW4oKTsKICNlbmRpZgotICAgICAgICByZXR1cm4gMTsKLSAg
ICB9Ci0KLSAgICByZXR1cm4gdG9IVE1MVGFibGVDZWxsRWxlbWVudChub2RlKCkpLT5jb2xTcGFu
KCk7CisgICAgcmV0dXJuIDE7CiB9CiAKLXVuc2lnbmVkIFJlbmRlclRhYmxlQ2VsbDo6cm93U3Bh
bigpIGNvbnN0Cit1bnNpZ25lZCBSZW5kZXJUYWJsZUNlbGw6OnBhcnNlUm93U3BhbkZyb21ET00o
KSBjb25zdAogewotICAgIGlmIChVTkxJS0VMWSghbV9oYXNIVE1MVGFibGVDZWxsRWxlbWVudCkp
IHsKKyAgICBpZiAoIW5vZGUoKSkKKyAgICAgICAgcmV0dXJuIDE7CisgICAgaWYgKG5vZGUoKS0+
aGFzVGFnTmFtZSh0ZFRhZykpCisgICAgICAgIHJldHVybiB0b0hUTUxUYWJsZUNlbGxFbGVtZW50
KG5vZGUoKSktPnJvd1NwYW4oKTsKICNpZiBFTkFCTEUoTUFUSE1MKQotICAgICAgICBpZiAoaXNN
YXRoTUxFbGVtZW50KG5vZGUoKSkpCi0gICAgICAgICAgICByZXR1cm4gdG9NYXRoTUxFbGVtZW50
KG5vZGUoKSktPnJvd1NwYW4oKTsKKyAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKE1hdGhNTE5h
bWVzOjptdGRUYWcpKQorICAgICAgICByZXR1cm4gdG9NYXRoTUxFbGVtZW50KG5vZGUoKSktPnJv
d1NwYW4oKTsKICNlbmRpZgotICAgICAgICByZXR1cm4gMTsKLSAgICB9Ci0KLSAgICByZXR1cm4g
dG9IVE1MVGFibGVDZWxsRWxlbWVudChub2RlKCkpLT5yb3dTcGFuKCk7CisgICAgcmV0dXJuIDE7
CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpCiB7
Ci0jaWYgRU5BQkxFKE1BVEhNTCkKLSAgICBBU1NFUlQobV9oYXNIVE1MVGFibGVDZWxsRWxlbWVu
dCB8fCBpc01hdGhNTEVsZW1lbnQobm9kZSgpKSk7Ci0jZWxzZQotICAgIEFTU0VSVChtX2hhc0hU
TUxUYWJsZUNlbGxFbGVtZW50KTsKLSNlbmRpZgogICAgIEFTU0VSVChub2RlKCkpOwogI2lmIEVO
QUJMRShNQVRITUwpCiAgICAgQVNTRVJUKG5vZGUoKS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgbm9k
ZSgpLT5oYXNUYWdOYW1lKHRoVGFnKSB8fCBub2RlKCktPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6
Om10ZFRhZykpOwpAQCAtMjEzLDYgKzIwOSwxMSBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6c2V0
Q2VsbExvZ2ljYWxXaWR0aChMYXlvdXRVbml0IHcpCiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjps
YXlvdXQoKQogeworICAgIC8vIFRoZSB2YXN0IG1ham9yaXR5IG9mIHRhYmxlIGNlbGxzIGRvIG5v
dCBoYXZlIGEgY29sc3BhbiBvciByb3dzcGFuLAorICAgIC8vIHNvIHdlIGtlZXAgYSBib29sIHRv
IGtub3cgaWYgd2UgbmVlZCB0byBib3RoZXIgcmVhZGluZyBmcm9tIHRoZSBET00uCisgICAgbV9o
YXNDb2xTcGFuID0gcGFyc2VDb2xTcGFuRnJvbURPTSgpICE9IDE7CisgICAgbV9oYXNSb3dTcGFu
ID0gcGFyc2VSb3dTcGFuRnJvbURPTSgpICE9IDE7CisKICAgICB1cGRhdGVGaXJzdExldHRlcigp
OwogICAgIGxheW91dEJsb2NrKGNlbGxXaWR0aENoYW5nZWQoKSk7CiAgICAgc2V0Q2VsbFdpZHRo
Q2hhbmdlZChmYWxzZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmgKaW5kZXggNDVkYjdhYTE5Yzc5N2Q3MTIxMzhhODEyOTJiOGI4YTRmNjE1YzI1Ny4uNmFlNmVj
NWYxM2Y2ZmEwNzNhYTQ4NDA2ZWRmZWU3NmRjMjY5YTk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaApAQCAtMzAsOCArMzAsOCBAQAogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENvbHVtbkluZGV4ID0gMHgz
RkZGRkZGRjsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5JbmRleCA9IDB4M0ZGRkZG
RkU7IC8vIDEsMDczLDc0MSw4MjMKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENvbHVtbklu
ZGV4ID0gMHgxRkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5JbmRleCA9
IDB4MUZGRkZGRkU7IC8vIDUzNiw4NzAsOTEwCiAKIGVudW0gSW5jbHVkZUJvcmRlckNvbG9yT3JO
b3QgeyBEb05vdEluY2x1ZGVCb3JkZXJDb2xvciwgSW5jbHVkZUJvcmRlckNvbG9yIH07CiAKQEAg
LTM5LDggKzM5LDE4IEBAIGNsYXNzIFJlbmRlclRhYmxlQ2VsbCA6IHB1YmxpYyBSZW5kZXJCbG9j
ayB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgUmVuZGVyVGFibGVDZWxsKE5vZGUqKTsKICAgICAK
LSAgICB1bnNpZ25lZCBjb2xTcGFuKCkgY29uc3Q7Ci0gICAgdW5zaWduZWQgcm93U3BhbigpIGNv
bnN0OworICAgIHVuc2lnbmVkIGNvbFNwYW4oKSBjb25zdAorICAgIHsKKyAgICAgICAgaWYgKCFt
X2hhc0NvbFNwYW4pCisgICAgICAgICAgICByZXR1cm4gMTsKKyAgICAgICAgcmV0dXJuIHBhcnNl
Q29sU3BhbkZyb21ET00oKTsKKyAgICB9CisgICAgdW5zaWduZWQgcm93U3BhbigpIGNvbnN0Cisg
ICAgeworICAgICAgICBpZiAoIW1faGFzUm93U3BhbikKKyAgICAgICAgICAgIHJldHVybiAxOwor
ICAgICAgICByZXR1cm4gcGFyc2VSb3dTcGFuRnJvbURPTSgpOworICAgIH0KIAogICAgIC8vIENh
bGxlZCBmcm9tIEhUTUxUYWJsZUNlbGxFbGVtZW50LgogICAgIHZvaWQgY29sU3Bhbk9yUm93U3Bh
bkNoYW5nZWQoKTsKQEAgLTIyNSw5ICsyMzUsMTMgQEAgcHJpdmF0ZToKICAgICBDb2xsYXBzZWRC
b3JkZXJWYWx1ZSBjb21wdXRlQ29sbGFwc2VkQmVmb3JlQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2xv
ck9yTm90ID0gSW5jbHVkZUJvcmRlckNvbG9yKSBjb25zdDsKICAgICBDb2xsYXBzZWRCb3JkZXJW
YWx1ZSBjb21wdXRlQ29sbGFwc2VkQWZ0ZXJCb3JkZXIoSW5jbHVkZUJvcmRlckNvbG9yT3JOb3Qg
PSBJbmNsdWRlQm9yZGVyQ29sb3IpIGNvbnN0OwogCi0gICAgdW5zaWduZWQgbV9jb2x1bW4gOiAz
MDsKKyAgICB1bnNpZ25lZCBwYXJzZVJvd1NwYW5Gcm9tRE9NKCkgY29uc3Q7CisgICAgdW5zaWdu
ZWQgcGFyc2VDb2xTcGFuRnJvbURPTSgpIGNvbnN0OworCisgICAgdW5zaWduZWQgbV9jb2x1bW4g
OiAyOTsKICAgICBib29sIG1fY2VsbFdpZHRoQ2hhbmdlZCA6IDE7Ci0gICAgYm9vbCBtX2hhc0hU
TUxUYWJsZUNlbGxFbGVtZW50IDogMTsKKyAgICBib29sIG1faGFzQ29sU3BhbjogMTsKKyAgICBi
b29sIG1faGFzUm93U3BhbjogMTsKICAgICBpbnQgbV9pbnRyaW5zaWNQYWRkaW5nQmVmb3JlOwog
ICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcjsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167186</attachid>
            <date>2012-10-04 15:20:46 -0700</date>
            <delta_ts>2012-10-05 11:28:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-98221-20121004151955.patch</filename>
            <type>text/plain</type>
            <size>7285</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjY4NTRhY2E3OTY3OGFl
M2FkNmE4YzMzZGEyN2Q1OTE5MzM0ZGE4Yy4uMDgzZGM4NmFmMjcyODZlOWU5M2IwZWYzMjQwYWI1
ZGE0NDM2MjFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTEwLTAzICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRhYmxlcyB3aGljaCBk
b24ndCB1c2UgY29sL3JvdyBzcGFuIG11Y2ggZmFzdGVyIHRvIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNeSBzZW5zZSBpcyB0aGF0IG1vc3Qg
dGFibGVzIG9uIHdlYnBhZ2VzIGRvIG5vdCB1c2UgY29sc3Bhbi9yb3dzcGFuCisgICAgICAgIHNv
IEkgc3RvbGUgYW5vdGhlciAyIGJpdHMgZnJvbSBSZW5kZXJUYWJsZUNlbGw6Om1fY29sdW1uIHRv
IGF2b2lkCisgICAgICAgIGhhdmluZyB0byByZS1wYXJzZSB0aGUgY29sU3Bhbi9yb3dTcGFuIGF0
dHJpYnV0ZXMgZm9yIGV2ZXJ5IGNlbGwKKyAgICAgICAgd2hlbiBkb2luZyB0YWJsZSBsYXlvdXQu
CisgICAgICAgIFRoaXMgbWFkZSB0aGVzZSBzeW1ib2xzIGRpc2FwcGVhciBmcm9tIGJpZ2dyaWQu
aHRtbC9yZWRyYXcuaHRtbCAoZGdsYXprb3YncyBzcHJlYWRzaGVldHMgYmVuY2htYXJrcykKKyAg
ICAgICAgYXMgd2VsbCBhcyBtb3ZlZCBvdXIgcm9ib2hvcm5ldC9yZXNpemVjb2wuaHRtbCBudW1i
ZXIgZnJvbSBhbiBhdmVyYWdlIG9mIDMyMjFtcyB0byAyNjA4bXMgKH4yMCUhKS4KKworICAgICAg
ICBJIHJlbW92ZWQgbV9oYXNIVE1MVGFibGVDZWxsRWxlbWVudCBzaW5jZSBpdCB3YXMgYXR0ZW1w
dGluZyB0byBkbyB0aGUgc2FtZSBzb3J0IG9mIG9wdGltaXphdGlvbiBmcm9tIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0Lzk3NjkxLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OlJlbmRl
clRhYmxlQ2VsbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnBhcnNlQ29s
U3BhbkZyb21ET00pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpwYXJzZVJv
d1NwYW5Gcm9tRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2VsbDo6bGF5b3V0
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUYWJsZUNlbGw6OmNvbFNwYW4pOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVDZWxsOjpyb3dTcGFuKToKKyAgICAgICAgKFJlbmRlclRhYmxlQ2VsbCk6CisKIDIwMTIt
MTAtMDIgIFRha2FzaGkgU2FrYW1vdG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIFtT
aGFkb3ddIFNoYWRvd1Jvb3Qgc2hvdWxkIGtub3cgd2hldGhlciA8c2hhZG93PiBpbiBpdHMgdHJl
ZXNjb3BlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVD
ZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCmlu
ZGV4IDk0NGE5MGM3MGYxMDQ4MGQ2YjYxOTk4MGI2N2U4NmMwYWYxOGRjNTQuLjcwODA4YzcyYTJl
ODUyNzY5NTYzZDlhN2YyMDk4Nzg1MDY4ZDU1ODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwCkBAIC00NywxNCArNDcsMjQgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogCitzdHJ1Y3QgU2FtZVNpemVB
c1JlbmRlclRhYmxlQ2VsbCA6IHB1YmxpYyBSZW5kZXJCbG9jayB7CisgICAgdW5zaWduZWQgYml0
ZmllbGRzOworICAgIGludCBwYWRkaW5nc1syXTsKK307CisKK0NPTVBJTEVfQVNTRVJUKHNpemVv
ZihSZW5kZXJUYWJsZUNlbGwpID09IHNpemVvZihTYW1lU2l6ZUFzUmVuZGVyVGFibGVDZWxsKSwg
UmVuZGVyVGFibGVDZWxsX3Nob3VsZF9zdGF5X3NtYWxsKTsKKworCiBSZW5kZXJUYWJsZUNlbGw6
OlJlbmRlclRhYmxlQ2VsbChOb2RlKiBub2RlKQogICAgIDogUmVuZGVyQmxvY2sobm9kZSkKICAg
ICAsIG1fY29sdW1uKHVuc2V0Q29sdW1uSW5kZXgpCiAgICAgLCBtX2NlbGxXaWR0aENoYW5nZWQo
ZmFsc2UpCi0gICAgLCBtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50KG5vZGUgJiYgKG5vZGUtPmhh
c1RhZ05hbWUodGRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhUYWcpKSkKICAgICAsIG1faW50
cmluc2ljUGFkZGluZ0JlZm9yZSgwKQogICAgICwgbV9pbnRyaW5zaWNQYWRkaW5nQWZ0ZXIoMCkK
IHsKKyAgICAvLyBXZSBvbmx5IHVwZGF0ZSB0aGUgZmxhZ3Mgd2hlbiBub3RpZmllZCBvZiBET00g
Y2hhbmdlcyBpbiBjb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpCisgICAgLy8gc28gd2UgbmVlZCB0
byBzZXQgdGhlaXIgaW5pdGlhbCB2YWx1ZXMgaGVyZSBpbiBjYXNlIHNvbWV0aGluZyBhc2tzIGZv
ciBjb2xTcGFuKCkvcm93U3BhbigpIGJlZm9yZSB0aGVuLgorICAgIHVwZGF0ZUNvbEFuZFJvd1Nw
YW5GbGFncygpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6d2lsbEJlUmVtb3ZlZEZyb21U
cmVlKCkKQEAgLTY1LDQ2ICs3NSw0MiBAQCB2b2lkIFJlbmRlclRhYmxlQ2VsbDo6d2lsbEJlUmVt
b3ZlZEZyb21UcmVlKCkKICAgICBzZWN0aW9uKCktPnJlbW92ZUNhY2hlZENvbGxhcHNlZEJvcmRl
cnModGhpcyk7CiB9CiAKLSNpZiBFTkFCTEUoTUFUSE1MKQotaW5saW5lIGJvb2wgaXNNYXRoTUxF
bGVtZW50KE5vZGUqIG5vZGUpCi17Ci0gICAgcmV0dXJuIG5vZGUgJiYgbm9kZS0+aXNFbGVtZW50
Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aXNNYXRoTUxFbGVtZW50KCk7Ci19Ci0jZW5kaWYK
LQotdW5zaWduZWQgUmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuKCkgY29uc3QKK3Vuc2lnbmVkIFJl
bmRlclRhYmxlQ2VsbDo6cGFyc2VDb2xTcGFuRnJvbURPTSgpIGNvbnN0CiB7Ci0gICAgaWYgKFVO
TElLRUxZKCFtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50KSkgeworICAgIGlmICghbm9kZSgpKQor
ICAgICAgICByZXR1cm4gMTsKKyAgICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBu
b2RlKCktPmhhc1RhZ05hbWUodGhUYWcpKQorICAgICAgICByZXR1cm4gdG9IVE1MVGFibGVDZWxs
RWxlbWVudChub2RlKCkpLT5jb2xTcGFuKCk7CiAjaWYgRU5BQkxFKE1BVEhNTCkKLSAgICAgICAg
aWYgKGlzTWF0aE1MRWxlbWVudChub2RlKCkpKQotICAgICAgICAgICAgcmV0dXJuIHRvTWF0aE1M
RWxlbWVudChub2RlKCkpLT5jb2xTcGFuKCk7CisgICAgaWYgKG5vZGUoKS0+aGFzVGFnTmFtZShN
YXRoTUxOYW1lczo6bXRkVGFnKSkKKyAgICAgICAgcmV0dXJuIHRvTWF0aE1MRWxlbWVudChub2Rl
KCkpLT5jb2xTcGFuKCk7CiAjZW5kaWYKLSAgICAgICAgcmV0dXJuIDE7Ci0gICAgfQotCi0gICAg
cmV0dXJuIHRvSFRNTFRhYmxlQ2VsbEVsZW1lbnQobm9kZSgpKS0+Y29sU3BhbigpOworICAgIHJl
dHVybiAxOwogfQogCi11bnNpZ25lZCBSZW5kZXJUYWJsZUNlbGw6OnJvd1NwYW4oKSBjb25zdAor
dW5zaWduZWQgUmVuZGVyVGFibGVDZWxsOjpwYXJzZVJvd1NwYW5Gcm9tRE9NKCkgY29uc3QKIHsK
LSAgICBpZiAoVU5MSUtFTFkoIW1faGFzSFRNTFRhYmxlQ2VsbEVsZW1lbnQpKSB7CisgICAgaWYg
KCFub2RlKCkpCisgICAgICAgIHJldHVybiAxOworICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUo
dGRUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZSh0aFRhZykpCisgICAgICAgIHJldHVybiB0b0hU
TUxUYWJsZUNlbGxFbGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKICNpZiBFTkFCTEUoTUFUSE1M
KQotICAgICAgICBpZiAoaXNNYXRoTUxFbGVtZW50KG5vZGUoKSkpCi0gICAgICAgICAgICByZXR1
cm4gdG9NYXRoTUxFbGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKKyAgICBpZiAobm9kZSgpLT5o
YXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGRUYWcpKQorICAgICAgICByZXR1cm4gdG9NYXRoTUxF
bGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKICNlbmRpZgotICAgICAgICByZXR1cm4gMTsKLSAg
ICB9CisgICAgcmV0dXJuIDE7Cit9CiAKLSAgICByZXR1cm4gdG9IVE1MVGFibGVDZWxsRWxlbWVu
dChub2RlKCkpLT5yb3dTcGFuKCk7Cit2b2lkIFJlbmRlclRhYmxlQ2VsbDo6dXBkYXRlQ29sQW5k
Um93U3BhbkZsYWdzKCkKK3sKKyAgICAvLyBUaGUgdmFzdCBtYWpvcml0eSBvZiB0YWJsZSBjZWxs
cyBkbyBub3QgaGF2ZSBhIGNvbHNwYW4gb3Igcm93c3BhbiwKKyAgICAvLyBzbyB3ZSBrZWVwIGEg
Ym9vbCB0byBrbm93IGlmIHdlIG5lZWQgdG8gYm90aGVyIHJlYWRpbmcgZnJvbSB0aGUgRE9NLgor
ICAgIG1faGFzQ29sU3BhbiA9IHBhcnNlQ29sU3BhbkZyb21ET00oKSAhPSAxOworICAgIG1faGFz
Um93U3BhbiA9IHBhcnNlUm93U3BhbkZyb21ET00oKSAhPSAxOwogfQogCiB2b2lkIFJlbmRlclRh
YmxlQ2VsbDo6Y29sU3Bhbk9yUm93U3BhbkNoYW5nZWQoKQogewotI2lmIEVOQUJMRShNQVRITUwp
Ci0gICAgQVNTRVJUKG1faGFzSFRNTFRhYmxlQ2VsbEVsZW1lbnQgfHwgaXNNYXRoTUxFbGVtZW50
KG5vZGUoKSkpOwotI2Vsc2UKLSAgICBBU1NFUlQobV9oYXNIVE1MVGFibGVDZWxsRWxlbWVudCk7
Ci0jZW5kaWYKICAgICBBU1NFUlQobm9kZSgpKTsKICNpZiBFTkFCTEUoTUFUSE1MKQogICAgIEFT
U0VSVChub2RlKCktPmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZSh0aFRh
ZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGRUYWcpKTsKQEAgLTExMiw2
ICsxMTgsMTAgQEAgdm9pZCBSZW5kZXJUYWJsZUNlbGw6OmNvbFNwYW5PclJvd1NwYW5DaGFuZ2Vk
KCkKICAgICBBU1NFUlQobm9kZSgpLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlKCktPmhhc1Rh
Z05hbWUodGhUYWcpKTsKICNlbmRpZgogCisgICAgdXBkYXRlQ29sQW5kUm93U3BhbkZsYWdzKCk7
CisKKyAgICAvLyBGSVhNRTogSSBzdXNwZWN0IHRoYXQgd2UgY291bGQgcmV0dXJuIGVhcmx5IGhl
cmUgaWYgIW1faGFzQ29sU3BhbiAmJiAhbV9oYXNSb3dTcGFuLgorCiAgICAgc2V0TmVlZHNMYXlv
dXRBbmRQcmVmV2lkdGhzUmVjYWxjKCk7CiAgICAgaWYgKHBhcmVudCgpICYmIHNlY3Rpb24oKSkK
ICAgICAgICAgc2VjdGlvbigpLT5zZXROZWVkc0NlbGxSZWNhbGMoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAppbmRleCA0NWRiN2FhMTljNzk3ZDcxMjEzOGE4
MTI5MmI4YjhhNGY2MTVjMjU3Li5hMzQ2ZGE1ZmM1NWU2ODNiMzVmY2FlOWJlNzBiYThkNDE1YWY1
MzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0z
MCw4ICszMCw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHVuc2V0Q29sdW1uSW5kZXggPSAweDNGRkZGRkZGOwotc3RhdGljIGNvbnN0IHVuc2lnbmVk
IG1heENvbHVtbkluZGV4ID0gMHgzRkZGRkZGRTsgLy8gMSwwNzMsNzQxLDgyMworc3RhdGljIGNv
bnN0IHVuc2lnbmVkIHVuc2V0Q29sdW1uSW5kZXggPSAweDFGRkZGRkZGOworc3RhdGljIGNvbnN0
IHVuc2lnbmVkIG1heENvbHVtbkluZGV4ID0gMHgxRkZGRkZGRTsgLy8gNTM2LDg3MCw5MTAKIAog
ZW51bSBJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCB7IERvTm90SW5jbHVkZUJvcmRlckNvbG9yLCBJ
bmNsdWRlQm9yZGVyQ29sb3IgfTsKIApAQCAtMzksOCArMzksMTggQEAgY2xhc3MgUmVuZGVyVGFi
bGVDZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBSZW5k
ZXJUYWJsZUNlbGwoTm9kZSopOwogICAgIAotICAgIHVuc2lnbmVkIGNvbFNwYW4oKSBjb25zdDsK
LSAgICB1bnNpZ25lZCByb3dTcGFuKCkgY29uc3Q7CisgICAgdW5zaWduZWQgY29sU3BhbigpIGNv
bnN0CisgICAgeworICAgICAgICBpZiAoIW1faGFzQ29sU3BhbikKKyAgICAgICAgICAgIHJldHVy
biAxOworICAgICAgICByZXR1cm4gcGFyc2VDb2xTcGFuRnJvbURPTSgpOworICAgIH0KKyAgICB1
bnNpZ25lZCByb3dTcGFuKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmICghbV9oYXNSb3dTcGFu
KQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiBwYXJzZVJvd1NwYW5Gcm9t
RE9NKCk7CisgICAgfQogCiAgICAgLy8gQ2FsbGVkIGZyb20gSFRNTFRhYmxlQ2VsbEVsZW1lbnQu
CiAgICAgdm9pZCBjb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpOwpAQCAtMjI1LDkgKzIzNSwxNSBA
QCBwcml2YXRlOgogICAgIENvbGxhcHNlZEJvcmRlclZhbHVlIGNvbXB1dGVDb2xsYXBzZWRCZWZv
cmVCb3JkZXIoSW5jbHVkZUJvcmRlckNvbG9yT3JOb3QgPSBJbmNsdWRlQm9yZGVyQ29sb3IpIGNv
bnN0OwogICAgIENvbGxhcHNlZEJvcmRlclZhbHVlIGNvbXB1dGVDb2xsYXBzZWRBZnRlckJvcmRl
cihJbmNsdWRlQm9yZGVyQ29sb3JPck5vdCA9IEluY2x1ZGVCb3JkZXJDb2xvcikgY29uc3Q7CiAK
LSAgICB1bnNpZ25lZCBtX2NvbHVtbiA6IDMwOworICAgIHZvaWQgdXBkYXRlQ29sQW5kUm93U3Bh
bkZsYWdzKCk7CisKKyAgICB1bnNpZ25lZCBwYXJzZVJvd1NwYW5Gcm9tRE9NKCkgY29uc3Q7Cisg
ICAgdW5zaWduZWQgcGFyc2VDb2xTcGFuRnJvbURPTSgpIGNvbnN0OworCisgICAgdW5zaWduZWQg
bV9jb2x1bW4gOiAyOTsKICAgICBib29sIG1fY2VsbFdpZHRoQ2hhbmdlZCA6IDE7Ci0gICAgYm9v
bCBtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50IDogMTsKKyAgICBib29sIG1faGFzQ29sU3Bhbjog
MTsKKyAgICBib29sIG1faGFzUm93U3BhbjogMTsKICAgICBpbnQgbV9pbnRyaW5zaWNQYWRkaW5n
QmVmb3JlOwogICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcjsKIH07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>167359</attachid>
            <date>2012-10-05 11:28:34 -0700</date>
            <delta_ts>2012-10-05 13:47:08 -0700</delta_ts>
            <desc>ready</desc>
            <filename>bug-98221-20121005112742.patch</filename>
            <type>text/plain</type>
            <size>7424</size>
            <attacher name="Eric Seidel (no email)">eric</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwNTMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDEzYmIyZTJhMWJhNGVm
Y2ZmNTk5OTA5YWFkNDdlNTZiNjVkMTlhYi4uNWNkMTVlY2VkNjg0ODkyZmFiMzJiNzE1ZWM4ZmM0
OWQ4YmY1YTQwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTEwLTA1ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KKworICAgICAgICBNYWtlIHRhYmxlcyB3aGljaCBk
b24ndCB1c2UgY29sL3JvdyBzcGFuIG11Y2ggZmFzdGVyIHRvIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTgyMjEKKworICAgICAgICBSZXZp
ZXdlZCBieSBKdWxpZW4gQ2hhZmZyYWl4LgorCisgICAgICAgIE15IHNlbnNlIGlzIHRoYXQgbW9z
dCB0YWJsZXMgb24gd2VicGFnZXMgZG8gbm90IHVzZSBjb2xzcGFuL3Jvd3NwYW4KKyAgICAgICAg
c28gSSBzdG9sZSBhbm90aGVyIGJpdCBmcm9tIFJlbmRlclRhYmxlQ2VsbDo6bV9jb2x1bW4gdG8g
YXZvaWQKKyAgICAgICAgaGF2aW5nIHRvIHJlLXBhcnNlIHRoZSBjb2xTcGFuL3Jvd1NwYW4gYXR0
cmlidXRlcyBmb3IgZXZlcnkgY2VsbAorICAgICAgICB3aGVuIGRvaW5nIHRhYmxlIGxheW91dC4K
KyAgICAgICAgVGhpcyBtYWRlIHRoZXNlIHN5bWJvbHMgZGlzYXBwZWFyIGZyb20gYmlnZ3JpZC5o
dG1sL3JlZHJhdy5odG1sIChkZ2xhemtvdidzIHNwcmVhZHNoZWV0cyBiZW5jaG1hcmtzKQorICAg
ICAgICBhcyB3ZWxsIGFzIG1vdmVkIG91ciByb2JvaG9ybmV0L3Jlc2l6ZWNvbC5odG1sIG51bWJl
ciBmcm9tIGFuIGF2ZXJhZ2Ugb2YgMzIyMW1zIHRvIDI2MDhtcyAofjIwJSEpLgorCisgICAgICAg
IEkgcmVtb3ZlZCBtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50IChmcm9tIGh0dHA6Ly90cmFjLndl
YmtpdC5vcmcvY2hhbmdlc2V0Lzk3NjkxKQorICAgICAgICBzaW5jZSBpdCB3YXMgYXR0ZW1wdGlu
ZyB0byBkbyB0aGUgc2FtZSBzb3J0IG9mIG9wdGltaXphdGlvbi4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVD
ZWxsOjpSZW5kZXJUYWJsZUNlbGwpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxs
OjpwYXJzZUNvbFNwYW5Gcm9tRE9NKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlQ2Vs
bDo6cGFyc2VSb3dTcGFuRnJvbURPTSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNl
bGw6OmxheW91dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlQ2VsbDo6cm93U3Bhbik6CisgICAgICAgIChSZW5kZXJUYWJsZUNlbGwp
OgorCiAyMDEyLTEwLTA1ICBKb3PDqSBEYXBlbmEgUGF6ICA8amRhcGVuYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIEFkZCBzdXBwb3J0IGZvciBjcmVhdGluZyBFR0wgY29udGV4dHMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggMGI3YTgw
ZGIxMGFmOGNkNWQxODE0ZGY0YjdiYjQzY2ZiMGRkOTk2ZC4uOTlmN2FlNzZjMDM3MmZlM2JlYWY2
OWQ1OGI1NDMyZGY1Mjc1MDk3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlQ2VsbC5jcHAKQEAgLTQ3LDE0ICs0NywyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiAKK3N0cnVjdCBTYW1lU2l6ZUFzUmVuZGVyVGFi
bGVDZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKKyAgICB1bnNpZ25lZCBiaXRmaWVsZHM7Cisg
ICAgaW50IHBhZGRpbmdzWzJdOworfTsKKworQ09NUElMRV9BU1NFUlQoc2l6ZW9mKFJlbmRlclRh
YmxlQ2VsbCkgPT0gc2l6ZW9mKFNhbWVTaXplQXNSZW5kZXJUYWJsZUNlbGwpLCBSZW5kZXJUYWJs
ZUNlbGxfc2hvdWxkX3N0YXlfc21hbGwpOworCisKIFJlbmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFi
bGVDZWxsKE5vZGUqIG5vZGUpCiAgICAgOiBSZW5kZXJCbG9jayhub2RlKQogICAgICwgbV9jb2x1
bW4odW5zZXRDb2x1bW5JbmRleCkKICAgICAsIG1fY2VsbFdpZHRoQ2hhbmdlZChmYWxzZSkKLSAg
ICAsIG1faGFzSFRNTFRhYmxlQ2VsbEVsZW1lbnQobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFtZSh0
ZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aFRhZykpKQogICAgICwgbV9pbnRyaW5zaWNQYWRk
aW5nQmVmb3JlKDApCiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcigwKQogeworICAgIC8v
IFdlIG9ubHkgdXBkYXRlIHRoZSBmbGFncyB3aGVuIG5vdGlmaWVkIG9mIERPTSBjaGFuZ2VzIGlu
IGNvbFNwYW5PclJvd1NwYW5DaGFuZ2VkKCkKKyAgICAvLyBzbyB3ZSBuZWVkIHRvIHNldCB0aGVp
ciBpbml0aWFsIHZhbHVlcyBoZXJlIGluIGNhc2Ugc29tZXRoaW5nIGFza3MgZm9yIGNvbFNwYW4o
KS9yb3dTcGFuKCkgYmVmb3JlIHRoZW4uCisgICAgdXBkYXRlQ29sQW5kUm93U3BhbkZsYWdzKCk7
CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjp3aWxsQmVSZW1vdmVkRnJvbVRyZWUoKQpAQCAt
NjUsNDYgKzc1LDQwIEBAIHZvaWQgUmVuZGVyVGFibGVDZWxsOjp3aWxsQmVSZW1vdmVkRnJvbVRy
ZWUoKQogICAgIHNlY3Rpb24oKS0+cmVtb3ZlQ2FjaGVkQ29sbGFwc2VkQm9yZGVycyh0aGlzKTsK
IH0KIAotI2lmIEVOQUJMRShNQVRITUwpCi1pbmxpbmUgYm9vbCBpc01hdGhNTEVsZW1lbnQoTm9k
ZSogbm9kZSkKLXsKLSAgICByZXR1cm4gbm9kZSAmJiBub2RlLT5pc0VsZW1lbnROb2RlKCkgJiYg
dG9FbGVtZW50KG5vZGUpLT5pc01hdGhNTEVsZW1lbnQoKTsKLX0KLSNlbmRpZgotCi11bnNpZ25l
ZCBSZW5kZXJUYWJsZUNlbGw6OmNvbFNwYW4oKSBjb25zdAordW5zaWduZWQgUmVuZGVyVGFibGVD
ZWxsOjpwYXJzZUNvbFNwYW5Gcm9tRE9NKCkgY29uc3QKIHsKLSAgICBpZiAoVU5MSUtFTFkoIW1f
aGFzSFRNTFRhYmxlQ2VsbEVsZW1lbnQpKSB7CisgICAgQVNTRVJUKG5vZGUoKSk7CisgICAgaWYg
KG5vZGUoKS0+aGFzVGFnTmFtZSh0ZFRhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKHRoVGFnKSkK
KyAgICAgICAgcmV0dXJuIHRvSFRNTFRhYmxlQ2VsbEVsZW1lbnQobm9kZSgpKS0+Y29sU3Bhbigp
OwogI2lmIEVOQUJMRShNQVRITUwpCi0gICAgICAgIGlmIChpc01hdGhNTEVsZW1lbnQobm9kZSgp
KSkKLSAgICAgICAgICAgIHJldHVybiB0b01hdGhNTEVsZW1lbnQobm9kZSgpKS0+Y29sU3Bhbigp
OworICAgIGlmIChub2RlKCktPmhhc1RhZ05hbWUoTWF0aE1MTmFtZXM6Om10ZFRhZykpCisgICAg
ICAgIHJldHVybiB0b01hdGhNTEVsZW1lbnQobm9kZSgpKS0+Y29sU3BhbigpOwogI2VuZGlmCi0g
ICAgICAgIHJldHVybiAxOwotICAgIH0KLQotICAgIHJldHVybiB0b0hUTUxUYWJsZUNlbGxFbGVt
ZW50KG5vZGUoKSktPmNvbFNwYW4oKTsKKyAgICByZXR1cm4gMTsKIH0KIAotdW5zaWduZWQgUmVu
ZGVyVGFibGVDZWxsOjpyb3dTcGFuKCkgY29uc3QKK3Vuc2lnbmVkIFJlbmRlclRhYmxlQ2VsbDo6
cGFyc2VSb3dTcGFuRnJvbURPTSgpIGNvbnN0CiB7Ci0gICAgaWYgKFVOTElLRUxZKCFtX2hhc0hU
TUxUYWJsZUNlbGxFbGVtZW50KSkgeworICAgIEFTU0VSVChub2RlKCkpOworICAgIGlmIChub2Rl
KCktPmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZSh0aFRhZykpCisgICAg
ICAgIHJldHVybiB0b0hUTUxUYWJsZUNlbGxFbGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKICNp
ZiBFTkFCTEUoTUFUSE1MKQotICAgICAgICBpZiAoaXNNYXRoTUxFbGVtZW50KG5vZGUoKSkpCi0g
ICAgICAgICAgICByZXR1cm4gdG9NYXRoTUxFbGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKKyAg
ICBpZiAobm9kZSgpLT5oYXNUYWdOYW1lKE1hdGhNTE5hbWVzOjptdGRUYWcpKQorICAgICAgICBy
ZXR1cm4gdG9NYXRoTUxFbGVtZW50KG5vZGUoKSktPnJvd1NwYW4oKTsKICNlbmRpZgotICAgICAg
ICByZXR1cm4gMTsKLSAgICB9CisgICAgcmV0dXJuIDE7Cit9CiAKLSAgICByZXR1cm4gdG9IVE1M
VGFibGVDZWxsRWxlbWVudChub2RlKCkpLT5yb3dTcGFuKCk7Cit2b2lkIFJlbmRlclRhYmxlQ2Vs
bDo6dXBkYXRlQ29sQW5kUm93U3BhbkZsYWdzKCkKK3sKKyAgICAvLyBUaGUgdmFzdCBtYWpvcml0
eSBvZiB0YWJsZSBjZWxscyBkbyBub3QgaGF2ZSBhIGNvbHNwYW4gb3Igcm93c3BhbiwKKyAgICAv
LyBzbyB3ZSBrZWVwIGEgYm9vbCB0byBrbm93IGlmIHdlIG5lZWQgdG8gYm90aGVyIHJlYWRpbmcg
ZnJvbSB0aGUgRE9NLgorICAgIG1faGFzQ29sU3BhbiA9IG5vZGUoKSAmJiBwYXJzZUNvbFNwYW5G
cm9tRE9NKCkgIT0gMTsKKyAgICBtX2hhc1Jvd1NwYW4gPSBub2RlKCkgJiYgcGFyc2VSb3dTcGFu
RnJvbURPTSgpICE9IDE7CiB9CiAKIHZvaWQgUmVuZGVyVGFibGVDZWxsOjpjb2xTcGFuT3JSb3dT
cGFuQ2hhbmdlZCgpCiB7Ci0jaWYgRU5BQkxFKE1BVEhNTCkKLSAgICBBU1NFUlQobV9oYXNIVE1M
VGFibGVDZWxsRWxlbWVudCB8fCBpc01hdGhNTEVsZW1lbnQobm9kZSgpKSk7Ci0jZWxzZQotICAg
IEFTU0VSVChtX2hhc0hUTUxUYWJsZUNlbGxFbGVtZW50KTsKLSNlbmRpZgogICAgIEFTU0VSVChu
b2RlKCkpOwogI2lmIEVOQUJMRShNQVRITUwpCiAgICAgQVNTRVJUKG5vZGUoKS0+aGFzVGFnTmFt
ZSh0ZFRhZykgfHwgbm9kZSgpLT5oYXNUYWdOYW1lKHRoVGFnKSB8fCBub2RlKCktPmhhc1RhZ05h
bWUoTWF0aE1MTmFtZXM6Om10ZFRhZykpOwpAQCAtMTEyLDYgKzExNiwxMCBAQCB2b2lkIFJlbmRl
clRhYmxlQ2VsbDo6Y29sU3Bhbk9yUm93U3BhbkNoYW5nZWQoKQogICAgIEFTU0VSVChub2RlKCkt
Pmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUoKS0+aGFzVGFnTmFtZSh0aFRhZykpOwogI2VuZGlm
CiAKKyAgICB1cGRhdGVDb2xBbmRSb3dTcGFuRmxhZ3MoKTsKKworICAgIC8vIEZJWE1FOiBJIHN1
c3BlY3QgdGhhdCB3ZSBjb3VsZCByZXR1cm4gZWFybHkgaGVyZSBpZiAhbV9oYXNDb2xTcGFuICYm
ICFtX2hhc1Jvd1NwYW4uCisKICAgICBzZXROZWVkc0xheW91dEFuZFByZWZXaWR0aHNSZWNhbGMo
KTsKICAgICBpZiAocGFyZW50KCkgJiYgc2VjdGlvbigpKQogICAgICAgICBzZWN0aW9uKCktPnNl
dE5lZWRzQ2VsbFJlY2FsYygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
Q2VsbC5oCmluZGV4IGU4NzY0MTlkNGJhYTEzZGQ2YWQyODhlZGZmZDg4ZTA4ZGI5YmJkODIuLjg0
MWNlMWM3YTQ0MzY0OWYzOTYxZTc2YTViNTY4Y2EyMzUzNTlkOTYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTMwLDggKzMwLDggQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1zdGF0aWMgY29uc3QgdW5zaWduZWQgdW5zZXRDb2x1bW5JbmRleCA9
IDB4M0ZGRkZGRkY7Ci1zdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4Q29sdW1uSW5kZXggPSAweDNG
RkZGRkZFOyAvLyAxLDA3Myw3NDEsODIzCitzdGF0aWMgY29uc3QgdW5zaWduZWQgdW5zZXRDb2x1
bW5JbmRleCA9IDB4MUZGRkZGRkY7CitzdGF0aWMgY29uc3QgdW5zaWduZWQgbWF4Q29sdW1uSW5k
ZXggPSAweDFGRkZGRkZFOyAvLyA1MzYsODcwLDkxMAogCiBlbnVtIEluY2x1ZGVCb3JkZXJDb2xv
ck9yTm90IHsgRG9Ob3RJbmNsdWRlQm9yZGVyQ29sb3IsIEluY2x1ZGVCb3JkZXJDb2xvciB9Owog
CkBAIC0zOSw4ICszOSwxOCBAQCBjbGFzcyBSZW5kZXJUYWJsZUNlbGwgOiBwdWJsaWMgUmVuZGVy
QmxvY2sgewogcHVibGljOgogICAgIGV4cGxpY2l0IFJlbmRlclRhYmxlQ2VsbChOb2RlKik7CiAg
ICAgCi0gICAgdW5zaWduZWQgY29sU3BhbigpIGNvbnN0OwotICAgIHVuc2lnbmVkIHJvd1NwYW4o
KSBjb25zdDsKKyAgICB1bnNpZ25lZCBjb2xTcGFuKCkgY29uc3QKKyAgICB7CisgICAgICAgIGlm
ICghbV9oYXNDb2xTcGFuKQorICAgICAgICAgICAgcmV0dXJuIDE7CisgICAgICAgIHJldHVybiBw
YXJzZUNvbFNwYW5Gcm9tRE9NKCk7CisgICAgfQorICAgIHVuc2lnbmVkIHJvd1NwYW4oKSBjb25z
dAorICAgIHsKKyAgICAgICAgaWYgKCFtX2hhc1Jvd1NwYW4pCisgICAgICAgICAgICByZXR1cm4g
MTsKKyAgICAgICAgcmV0dXJuIHBhcnNlUm93U3BhbkZyb21ET00oKTsKKyAgICB9CiAKICAgICAv
LyBDYWxsZWQgZnJvbSBIVE1MVGFibGVDZWxsRWxlbWVudC4KICAgICB2b2lkIGNvbFNwYW5PclJv
d1NwYW5DaGFuZ2VkKCk7CkBAIC0yMjcsOSArMjM3LDE2IEBAIHByaXZhdGU6CiAgICAgQ29sbGFw
c2VkQm9yZGVyVmFsdWUgY29tcHV0ZUNvbGxhcHNlZEJlZm9yZUJvcmRlcihJbmNsdWRlQm9yZGVy
Q29sb3JPck5vdCA9IEluY2x1ZGVCb3JkZXJDb2xvcikgY29uc3Q7CiAgICAgQ29sbGFwc2VkQm9y
ZGVyVmFsdWUgY29tcHV0ZUNvbGxhcHNlZEFmdGVyQm9yZGVyKEluY2x1ZGVCb3JkZXJDb2xvck9y
Tm90ID0gSW5jbHVkZUJvcmRlckNvbG9yKSBjb25zdDsKIAotICAgIHVuc2lnbmVkIG1fY29sdW1u
IDogMzA7Ci0gICAgYm9vbCBtX2NlbGxXaWR0aENoYW5nZWQgOiAxOwotICAgIGJvb2wgbV9oYXNI
VE1MVGFibGVDZWxsRWxlbWVudCA6IDE7CisgICAgdm9pZCB1cGRhdGVDb2xBbmRSb3dTcGFuRmxh
Z3MoKTsKKworICAgIHVuc2lnbmVkIHBhcnNlUm93U3BhbkZyb21ET00oKSBjb25zdDsKKyAgICB1
bnNpZ25lZCBwYXJzZUNvbFNwYW5Gcm9tRE9NKCkgY29uc3Q7CisKKyAgICAvLyBOb3RlIE1TVkMg
d2lsbCBvbmx5IHBhY2sgbWVtYmVycyBpZiB0aGV5IGhhdmUgaWRlbnRpY2FsIHR5cGVzLCBoZW5j
ZSB3ZSB1c2UgdW5zaWduZWQgaW5zdGVhZCBvZiBib29sIGhlcmUuCisgICAgdW5zaWduZWQgbV9j
b2x1bW4gOiAyOTsKKyAgICB1bnNpZ25lZCBtX2NlbGxXaWR0aENoYW5nZWQgOiAxOworICAgIHVu
c2lnbmVkIG1faGFzQ29sU3BhbjogMTsKKyAgICB1bnNpZ25lZCBtX2hhc1Jvd1NwYW46IDE7CiAg
ICAgaW50IG1faW50cmluc2ljUGFkZGluZ0JlZm9yZTsKICAgICBpbnQgbV9pbnRyaW5zaWNQYWRk
aW5nQWZ0ZXI7CiB9Owo=
</data>

          </attachment>
      

    </bug>

</bugzilla>