<?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>69521</bug_id>
          
          <creation_ts>2011-10-06 05:32:57 -0700</creation_ts>
          <short_desc>Shrink BorderValue</short_desc>
          <delta_ts>2012-03-18 23:52:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>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>
          <dependson>69662</dependson>
    
    <dependson>69746</dependson>
    
    <dependson>81180</dependson>
    
    <dependson>81498</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>479083</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-06 05:32:57 -0700</bug_when>
    <thetext>BorderValue is currently bloated up to 12 bytes, and 8 bytes of that is the Color class. We could &quot;unroll&quot; that member and pack the color validity flag with the rest of BorderValue&apos;s bits, reducing BorderValue to 8 bytes.

Patch idea coming that reduces memory consumption by 760 kB when loading the full HTML5 spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479084</commentid>
    <comment_count>1</comment_count>
      <attachid>109947</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-06 05:34:16 -0700</bug_when>
    <thetext>Created attachment 109947
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479092</commentid>
    <comment_count>2</comment_count>
      <attachid>109947</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-06 05:49:35 -0700</bug_when>
    <thetext>Comment on attachment 109947
Proposed patch

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

&gt; Source/WebCore/rendering/style/BorderValue.h:73
&gt; +    const Color&amp; color() const { return Color(m_rgba, m_validColor); }

Shame on me, this should not return a const-reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479096</commentid>
    <comment_count>3</comment_count>
      <attachid>109947</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-06 05:51:05 -0700</bug_when>
    <thetext>Comment on attachment 109947
Proposed patch

Attachment 109947 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/9978188</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479099</commentid>
    <comment_count>4</comment_count>
      <attachid>109947</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-06 05:53:14 -0700</bug_when>
    <thetext>Comment on attachment 109947
Proposed patch

Attachment 109947 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9981210</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479318</commentid>
    <comment_count>5</comment_count>
      <attachid>109984</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-06 11:28:57 -0700</bug_when>
    <thetext>Created attachment 109984
Proposed patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479347</commentid>
    <comment_count>6</comment_count>
      <attachid>109984</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2011-10-06 11:50:50 -0700</bug_when>
    <thetext>Comment on attachment 109984
Proposed patch v2

r=me, seems like a nice win.

I think the new temporaries will largely get optimized out but it would still be good to verify that we are not regressing performance here (with sampling or even by looking into the assembly output) before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>479453</commentid>
    <comment_count>7</comment_count>
      <attachid>109984</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-06 13:57:50 -0700</bug_when>
    <thetext>Comment on attachment 109984
Proposed patch v2

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

&gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:222
&gt; -    typedef const Color&amp; (RenderStyle::*GetterFunction)() const;
&gt; +    typedef const Color (RenderStyle::*GetterFunction)() const;

The const here should be removed. The return type can and should just be Color. Almost every case where this patch says const Color it should just say Color.

&gt; Source/WebCore/platform/graphics/Color.h:81
&gt; -    Color(RGBA32 col) : m_color(col), m_valid(true) { }
&gt; +    Color(RGBA32 col, bool valid = true) : m_color(col), m_valid(valid) { }

If you are touching this line I suggest changing the name to “color”.

I also suggest asserting that m_valid is only false if the color is zero.

    ASSERT(!m_color || m_valid);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480054</commentid>
    <comment_count>8</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-07 09:06:28 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; I think the new temporaries will largely get optimized out but it would still be good to verify that we are not regressing performance here (with sampling or even by looking into the assembly output) before landing.

Dug through the assembly output on Lion and the temporaries get nicely inlined in release mode.

(In reply to comment #7)
&gt; (From update of attachment 109984 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109984&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/css/CSSStyleApplyProperty.cpp:222
&gt; &gt; -    typedef const Color&amp; (RenderStyle::*GetterFunction)() const;
&gt; &gt; +    typedef const Color (RenderStyle::*GetterFunction)() const;
&gt; 
&gt; The const here should be removed. The return type can and should just be Color. Almost every case where this patch says const Color it should just say Color.

Noted, will tweak before landing.

&gt; &gt; Source/WebCore/platform/graphics/Color.h:81
&gt; &gt; -    Color(RGBA32 col) : m_color(col), m_valid(true) { }
&gt; &gt; +    Color(RGBA32 col, bool valid = true) : m_color(col), m_valid(valid) { }
&gt; 
&gt; If you are touching this line I suggest changing the name to “color”.
&gt; 
&gt; I also suggest asserting that m_valid is only false if the color is zero.
&gt; 
&gt;     ASSERT(!m_color || m_valid);

Sure, will do as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480065</commentid>
    <comment_count>9</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-07 09:23:41 -0700</bug_when>
    <thetext>Committed r96944: &lt;http://trac.webkit.org/changeset/96944&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480224</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 12:42:39 -0700</bug_when>
    <thetext>This patch appears to have caused many tests to crash:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/33723</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480256</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 13:15:33 -0700</bug_when>
    <thetext>Could someone investigate failures? If not, I&apos;m rolling out the patch soon since we&apos;re losing significant test coverage due to nrwt exiting early after 20 tests crashed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480263</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 13:20:23 -0700</bug_when>
    <thetext>I&apos;m sorry but I&apos;m rolling out the patch for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480269</commentid>
    <comment_count>13</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-07 13:24:23 -0700</bug_when>
    <thetext>Reopen the bug since the patch was rolled out in http://trac.webkit.org/changeset/96976.

Here is a link to crash logs:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r96944%20(33723)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480516</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-10-08 00:40:32 -0700</bug_when>
    <thetext>Looking at the following two builds, it appears that we just need to touch config.h to trigger a full rebuild:
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/33736
http://build.webkit.org/builders/SnowLeopard%20Intel%20Release%20%28Tests%29/builds/33737</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480864</commentid>
    <comment_count>15</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-10 00:51:56 -0700</bug_when>
    <thetext>Committed r97045: &lt;http://trac.webkit.org/changeset/97045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>480878</commentid>
    <comment_count>16</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-10-10 02:06:05 -0700</bug_when>
    <thetext>Reopening since it was rolled out again. Touching config.h did not help.

This is the backtrace on SL testers:
0   com.apple.WebCore             	0x000000010140bd3c WTF::RefCountedBase::ref() + 16 (RefCounted.h:47)
1   com.apple.WebCore             	0x000000010140be5d void WTF::refIfNotNull&lt;WebCore::StyleImage&gt;(WebCore::StyleImage*) + 41 (PassRefPtr.h:53)
2   com.apple.WebCore             	0x0000000101eb39be WTF::RefPtr&lt;WebCore::StyleImage&gt;::RefPtr(WTF::RefPtr&lt;WebCore::StyleImage&gt; const&amp;) + 42 (RefPtr.h:44)
3   com.apple.WebCore             	0x000000010143ee4f WebCore::NinePieceImage::NinePieceImage(WebCore::NinePieceImage const&amp;) + 29 (NinePieceImage.h:37)
4   com.apple.WebCore             	0x00000001020447b3 WebCore::BorderData::BorderData(WebCore::BorderData const&amp;) + 159 (BorderData.h:35)
5   com.apple.WebCore             	0x0000000102044596 WebCore::StyleSurroundData::StyleSurroundData(WebCore::StyleSurroundData const&amp;) + 178 (StyleSurroundData.cpp:40)
6   com.apple.WebCore             	0x0000000101221bc2 WebCore::StyleSurroundData::copy() const + 48 (StyleSurroundData.h:38)
7   com.apple.WebCore             	0x0000000101412fd5 WebCore::DataRef&lt;WebCore::StyleSurroundData&gt;::access() + 57 (DataRef.h:41)
8   com.apple.WebCore             	0x0000000101442176 WebCore::RenderStyle::setMarginTop(WebCore::Length) + 62 (RenderStyle.h:1059)
9   com.apple.WebCore             	0x0000000101404432 WebCore::ApplyPropertyDefaultBase&lt;WebCore::Length, WebCore::Length, WebCore::Length&gt;::setValue(WebCore::RenderStyle*, WebCore::Length) const + 108 (CSSStyleApplyProperty.cpp:110)
10  com.apple.WebCore             	0x0000000101410026 WebCore::ApplyPropertyLength&lt;(WebCore::LengthAuto)1, (WebCore::LengthIntrinsic)0, (WebCore::LengthMinIntrinsic)0, (WebCore::LengthNone)0, (WebCore::LengthUndefined)0, (WebCore::LengthFlexDirection)0&gt;::applyValue(WebCore::CSSStyleSelector*, WebCore::CSSValue*) const + 334 (CSSStyleApplyProperty.cpp:345)
11  com.apple.WebCore             	0x000000010141d375 WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*) + 447 (CSSStyleSelector.cpp:2434)
12  com.apple.WebCore             	0x00000001014486b7 void WebCore::CSSStyleSelector::applyDeclarations&lt;false&gt;(bool, int, int) + 189 (CSSStyleSelector.cpp:2210)
13  com.apple.WebCore             	0x000000010142da92 WebCore::CSSStyleSelector::styleForElement(WebCore::Element*, WebCore::RenderStyle*, bool, bool, bool) + 3750 (CSSStyleSelector.cpp:1284)
14  com.apple.WebCore             	0x00000001015ecef6 WebCore::Element::styleForRenderer() + 118 (Element.cpp:1057)
15  com.apple.WebCore             	0x0000000101d18890 WebCore::NodeRendererFactory::createRendererIfNeeded() + 294 (NodeRenderingContext.cpp:325)
16  com.apple.WebCore             	0x0000000101d06b36 WebCore::Node::createRendererIfNeeded() + 34 (Node.cpp:1475)
17  com.apple.WebCore             	0x00000001015edc5b WebCore::Element::attach() + 35 (Element.cpp:967)
18  com.apple.WebCore             	0x000000010172b309 WTF::PassRefPtr&lt;WebCore::Element&gt; WebCore::HTMLConstructionSite::attach&lt;WebCore::Element&gt;(WebCore::ContainerNode*, WTF::PassRefPtr&lt;WebCore::Element&gt;) + 499 (HTMLConstructionSite.cpp:112)
19  com.apple.WebCore             	0x00000001017292c0 WebCore::HTMLConstructionSite::attachToCurrent(WTF::PassRefPtr&lt;WebCore::Element&gt;) + 66 (HTMLConstructionSite.cpp:263)
20  com.apple.WebCore             	0x00000001017298f5 WebCore::HTMLConstructionSite::insertHTMLBodyElement(WebCore::AtomicHTMLToken&amp;) + 117 (HTMLConstructionSite.cpp:276)
21  com.apple.WebCore             	0x00000001017c18c4 WebCore::HTMLTreeBuilder::processStartTag(WebCore::AtomicHTMLToken&amp;) + 1056 (HTMLTreeBuilder.cpp:1198)
22  com.apple.WebCore             	0x00000001017c3b57 WebCore::HTMLTreeBuilder::defaultForAfterHead() + 103 (HTMLTreeBuilder.cpp:2715)
23  com.apple.WebCore             	0x00000001017c57dd WebCore::HTMLTreeBuilder::processEndOfFile(WebCore::AtomicHTMLToken&amp;) + 653 (HTMLTreeBuilder.cpp:2612)
24  com.apple.WebCore             	0x00000001017c3d0e WebCore::HTMLTreeBuilder::processToken(WebCore::AtomicHTMLToken&amp;) + 248 (HTMLTreeBuilder.cpp:496)
25  com.apple.WebCore             	0x00000001017c8a10 WebCore::HTMLTreeBuilder::constructTreeFromAtomicToken(WebCore::AtomicHTMLToken&amp;) + 30 (HTMLTreeBuilder.cpp:467)
26  com.apple.WebCore             	0x00000001017c8b05 WebCore::HTMLTreeBuilder::constructTreeFromToken(WebCore::HTMLToken&amp;) + 81 (HTMLTreeBuilder.cpp:454)
27  com.apple.WebCore             	0x00000001017410de WebCore::HTMLDocumentParser::pumpTokenizer(WebCore::HTMLDocumentParser::SynchronousMode) + 610 (HTMLDocumentParser.cpp:279)
28  com.apple.WebCore             	0x0000000101741427 WebCore::HTMLDocumentParser::pumpTokenizerIfPossible(WebCore::HTMLDocumentParser::SynchronousMode) + 161 (HTMLDocumentParser.cpp:178)
29  com.apple.WebCore             	0x0000000101741b8f WebCore::HTMLDocumentParser::prepareToStopParsing() + 117 (HTMLDocumentParser.cpp:144)
30  com.apple.WebCore             	0x000000010173fc9c WebCore::HTMLDocumentParser::attemptToEnd() + 58 (HTMLDocumentParser.cpp:403)
31  com.apple.WebCore             	0x000000010173ff34 WebCore::HTMLDocumentParser::finish() + 54 (HTMLDocumentParser.cpp:430)
32  com.apple.WebCore             	0x00000001014e7c9e WebCore::DocumentWriter::endIfNotLoadingMainResource() + 206 (DocumentWriter.cpp:236)
33  com.apple.WebCore             	0x00000001014e7ce5 WebCore::DocumentWriter::end() + 41 (DocumentWriter.cpp:215)
34  com.apple.WebCore             	0x0000000101680d3b WebCore::FrameLoader::init() + 735 (FrameLoader.cpp:240)
35  com.apple.WebKit              	0x0000000100c61e78 WebCore::Frame::init() + 28 (Frame.h:276)
36  com.apple.WebKit              	0x0000000100c5e94b +[WebFrame(WebInternal) _createFrameWithPage:frameName:frameView:ownerElement:] + 775 (WebFrame.mm:279)
37  com.apple.WebKit              	0x0000000100c5de1c +[WebFrame(WebInternal) _createMainFrameWithPage:frameName:frameView:] + 80 (WebFrame.mm:286)
38  com.apple.WebKit              	0x0000000100d1775a -[WebView(WebPrivate) _commonInitializationWithFrameName:groupName:] + 2891 (WebView.mm:744)
39  com.apple.WebKit              	0x0000000100d145fe -[WebView(WebPrivate) _initWithFrame:frameName:groupName:usesDocumentViews:] + 361 (WebView.mm:823)
40  com.apple.WebKit              	0x0000000100d0f5b8 -[WebView initWithFrame:frameName:groupName:] + 262 (WebView.mm:3059)
41  DumpRenderTree                	0x000000010001151a createWebViewAndOffscreenWindow() + 405 (DumpRenderTree.mm:447)
42  DumpRenderTree                	0x0000000100013d7e dumpRenderTree(int, char const**) + 102 (DumpRenderTree.mm:772)
43  DumpRenderTree                	0x000000010001406a main + 97 (DumpRenderTree.mm:833)
44  DumpRenderTree                	0x000000010000213c start + 52

I can&apos;t reproduce locally on Lion. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>525842</commentid>
    <comment_count>17</comment_count>
      <attachid>109984</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-12-21 16:50:02 -0800</bug_when>
    <thetext>Comment on attachment 109984
Proposed patch v2

Need to debug this properly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579036</commentid>
    <comment_count>18</comment_count>
      <attachid>109984</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-14 19:08:31 -0700</bug_when>
    <thetext>Comment on attachment 109984
Proposed patch v2

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

&gt; Source/WebCore/rendering/style/BorderValue.h:84
&gt; +    bool m_validColor : 1;

Ugh... please use unsigned here. Or else we&apos;ll end up allocating 4 extra byte on Windows :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579047</commentid>
    <comment_count>19</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-14 19:14:30 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 109984 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=109984&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/style/BorderValue.h:84
&gt; &gt; +    bool m_validColor : 1;
&gt; 
&gt; Ugh... please use unsigned here. Or else we&apos;ll end up allocating 4 extra byte on Windows :(

Yeah I will. This patch is pretty moldy, it predates my knowledge of the MSVC bitfield stupidity. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580880</commentid>
    <comment_count>20</comment_count>
      <attachid>132359</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-16 13:28:55 -0700</bug_when>
    <thetext>Created attachment 132359
I made a patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581002</commentid>
    <comment_count>21</comment_count>
      <attachid>132359</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-16 15:03:29 -0700</bug_when>
    <thetext>Comment on attachment 132359
I made a patch.

Clearing flags on attachment: 132359

Committed r111076: &lt;http://trac.webkit.org/changeset/111076&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581003</commentid>
    <comment_count>22</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-16 15:03:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581501</commentid>
    <comment_count>23</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-18 15:47:55 -0700</bug_when>
    <thetext>Reopen, because it broke the Qt 32 bit build. I don&apos;t know how, I don&apos;t know why only the 32 bit build. Unfortunately it was hidden build break, because http://trac.webkit.org/changeset/111075 broke the build previously and only http://trac.webkit.org/changeset/111106 fixed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581502</commentid>
    <comment_count>24</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-18 15:48:31 -0700</bug_when>
    <thetext>cc1plus: warnings being treated as errors
In file included from ../../../../Source/JavaScriptCore/wtf/HashMap.h:25,
                 from ../../../../Source/WebCore/platform/network/HTTPHeaderMap.h:32,
                 from ../../../../Source/WebCore/platform/network/ResourceResponseBase.h:31,
                 from ../../../../Source/WebCore/platform/network/qt/ResourceResponse.h:30,
                 from ../../../../Source/WebCore/platform/network/AuthenticationChallengeBase.h:31,
                 from ../../../../Source/WebCore/platform/network/qt/AuthenticationChallenge.h:29,
                 from ../../../../Source/WebCore/platform/network/ResourceHandle.h:30,
                 from ../../../../Source/WebCore/loader/ResourceLoaderOptions.h:35,
                 from ../../../../Source/WebCore/loader/cache/CachedResource.h:31,
                 from ../../../../Source/WebCore/loader/cache/CachedImage.h:27,
                 from ../../../../Source/WebCore/rendering/RenderObject.h:30,
                 from ../../../../Source/WebCore/rendering/RenderBoxModelObject.h:28,
                 from ../../../../Source/WebCore/rendering/RenderBox.h:27,
                 from ../../../../Source/WebCore/rendering/RenderBlock.h:30,
                 from ../../../../Source/WebCore/rendering/RenderTable.h:31,
                 from ../../../../Source/WebCore/rendering/RenderTableSection.h:29,
                 from ../../../../Source/WebCore/rendering/RenderTableSection.cpp:28:
../../../../Source/JavaScriptCore/wtf/HashTraits.h: In member function &apos;void WTF::HashTable&lt;Key, Value, Extractor, HashFunctions, Traits, KeyTraits&gt;::rehash(int) [with Key = std::pair&lt;const WebCore::RenderTableCell*, int&gt;, Value = std::pair&lt;std::pair&lt;const WebCore::RenderTableCell*, int&gt;, WebCore::CollapsedBorderValue&gt;, Extractor = WTF::PairFirstExtractor&lt;std::pair&lt;std::pair&lt;const WebCore::RenderTableCell*, int&gt;, WebCore::CollapsedBorderValue&gt; &gt;, HashFunctions = WTF::PairHash&lt;const WebCore::RenderTableCell*, int&gt;, Traits = WTF::PairHashTraits&lt;WTF::HashTraits&lt;std::pair&lt;const WebCore::RenderTableCell*, int&gt; &gt;, WTF::HashTraits&lt;WebCore::CollapsedBorderValue&gt; &gt;, KeyTraits = WTF::HashTraits&lt;std::pair&lt;const WebCore::RenderTableCell*, int&gt; &gt;]&apos;:
../../../../Source/JavaScriptCore/wtf/HashTraits.h:153: error: &apos;__y&apos; may be used uninitialized in this function
../../../../Source/JavaScriptCore/wtf/HashTraits.h:153: note: &apos;__y&apos; was declared here
In file included from ../../../../Source/WebCore/platform/network/HTTPHeaderMap.h:32,
                 from ../../../../Source/WebCore/platform/network/ResourceResponseBase.h:31,
                 from ../../../../Source/WebCore/platform/network/qt/ResourceResponse.h:30,
                 from ../../../../Source/WebCore/platform/network/AuthenticationChallengeBase.h:31,
                 from ../../../../Source/WebCore/platform/network/qt/AuthenticationChallenge.h:29,
                 from ../../../../Source/WebCore/platform/network/ResourceHandle.h:30,
                 from ../../../../Source/WebCore/loader/ResourceLoaderOptions.h:35,
                 from ../../../../Source/WebCore/loader/cache/CachedResource.h:31,
                 from ../../../../Source/WebCore/loader/cache/CachedImage.h:27,
                 from ../../../../Source/WebCore/rendering/RenderObject.h:30,
                 from ../../../../Source/WebCore/rendering/RenderBoxModelObject.h:28,
                 from ../../../../Source/WebCore/rendering/RenderBox.h:27,
                 from ../../../../Source/WebCore/rendering/RenderBlock.h:30,
                 from ../../../../Source/WebCore/rendering/RenderTable.h:31,
                 from ../../../../Source/WebCore/rendering/RenderTableSection.h:29,
                 from ../../../../Source/WebCore/rendering/RenderTableSection.cpp:28:
../../../../Source/WebCore/rendering/RenderTableSection.cpp: In member function &apos;std::pair&lt;typename WTF::HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt;::iterator, bool&gt; WTF::HashMap&lt;KeyArg, MappedArg, HashArg, KeyTraitsArg, MappedTraitsArg&gt;::set(const typename KeyTraitsArg::TraitType&amp;, typename MappedTraitsArg::PassInType) [with KeyArg = std::pair&lt;const WebCore::RenderTableCell*, int&gt;, MappedArg = WebCore::CollapsedBorderValue, HashArg = WTF::PairHash&lt;const WebCore::RenderTableCell*, int&gt;, KeyTraitsArg = WTF::HashTraits&lt;std::pair&lt;const WebCore::RenderTableCell*, int&gt; &gt;, MappedTraitsArg = WTF::HashTraits&lt;WebCore::CollapsedBorderValue&gt;]&apos;:
../../../../Source/WebCore/rendering/RenderTableSection.cpp:1424: error: &apos;__y&apos; may be used uninitialized in this function
../../../../Source/JavaScriptCore/wtf/HashTraits.h:153: note: &apos;__y&apos; was declared here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581560</commentid>
    <comment_count>25</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2012-03-18 18:53:15 -0700</bug_when>
    <thetext>Wait what? Which compiler version of this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581638</commentid>
    <comment_count>26</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-18 23:09:35 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; Wait what? Which compiler version of this?
gcc version 4.4.5 (Debian 4.4.5-8)

But 64 bit bots have the same gcc version and everything works with it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>581652</commentid>
    <comment_count>27</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-03-18 23:52:01 -0700</bug_when>
    <thetext>I filed a new bug report to fix the build - https://bugs.webkit.org/show_bug.cgi?id=81498</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109947</attachid>
            <date>2011-10-06 05:34:16 -0700</date>
            <delta_ts>2011-10-06 05:57:35 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-69521.diff</filename>
            <type>text/plain</type>
            <size>8849</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyYzg1ZGQ3Li41Yzc4YmQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQg
QEAKKzIwMTEtMTAtMDYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFNocmluayBCb3JkZXJWYWx1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5NTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVW5yb2xsIEJvcmRlclZhbHVlJ3MgQ29sb3IgbWVtYmVyIHNvIHdlIGNh
biBwYWNrIHRoZSBjb2xvcidzIHZhbGlkaXR5IGZsYWcKKyAgICAgICAgaW4gQm9yZGVyVmFsdWUn
cyBiaXRmaWVsZC4KKworICAgICAgICBUaGlzIHNocmlua3MgQm9yZGVyVmFsdWUgYnkgMzIgYml0
LCB3aGljaCBpbiB0dXJuIHNocmlua3MgQm9yZGVyRGF0YSBieQorICAgICAgICAxNiBieXRlcy4g
VGhpcyByZWR1Y2VzIG1lbW9yeSBjb25zdW1wdGlvbiBieSA3NjAga0Igd2hlbiBsb2FkaW5nIHRo
ZSBmdWxsCisgICAgICAgIEhUTUw1IHNwZWMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToKKworICAgICAgICAg
ICAgQWxsb3cgY29uc3RydWN0aW9uIG9mIENvbG9yIG9iamVjdHMgd2l0aCBzcGVjaWZpYyB2YWxp
ZGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok91dGxpbmVWYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVy
aW5nL3N0eWxlL0JvcmRlclZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJWYWx1ZTo6
aXNUcmFuc3BhcmVudCk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJWYWx1ZTo6b3BlcmF0b3I9
PSk6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJWYWx1ZTo6c2V0Q29sb3IpOgorICAgICAgICAo
V2ViQ29yZTo6Qm9yZGVyVmFsdWU6OmNvbG9yKToKKworICAgICAgICAgICAgVW5yb2xsIG1fY29s
b3IgaW50byBCb3JkZXJWYWx1ZSBieSBzcGxpdHRpbmcgaXQgaW50byBhbiBSR0JBMzIgYW5kIGEg
Ym9vbC4KKyAgICAgICAgICAgIE1hZGUgdGhvc2UgdmFyaWFibGVzIHByaXZhdGUgYW5kIGFkZGVk
IGNvbG9yKCksIHNldENvbG9yKCkgYWNjZXNzb3JzLgorCisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0
Qm9yZGVyTGVmdENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRC
b3JkZXJSaWdodENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRC
b3JkZXJUb3BDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0Qm9y
ZGVyQm90dG9tQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldE91
dGxpbmVDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0Q29sdW1u
UnVsZUNvbG9yKToKKworICAgICAgICAgICAgQWRkZWQgYSBTRVRfQk9SREVSVkFMVUVfQ09MT1Ig
bWFjcm8gYW5kIHVzZSB0aGF0IGluc3RlYWQgb2YgU0VUX1ZBUgorICAgICAgICAgICAgd2hlbiBz
ZXR0aW5nIEJvcmRlclZhbHVlIGNvbG9ycy4KKwogMjAxMS0xMC0wMyAgSGFucyBXZW5uYm9yZyAg
PGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogUmVtb3ZlIFNRTGl0ZS1M
ZXZlbERCIG1pZ3JhdGlvbiBjb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Db2xvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQ29s
b3IuaAppbmRleCA3NDgxNzQ0Li4yZThhZWExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Db2xvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0NvbG9yLmgKQEAgLTc4LDcgKzc4LDcgQEAgY2xhc3MgQ29sb3IgewogICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAgIENvbG9yKCkgOiBtX2NvbG9yKDApLCBt
X3ZhbGlkKGZhbHNlKSB7IH0KLSAgICBDb2xvcihSR0JBMzIgY29sKSA6IG1fY29sb3IoY29sKSwg
bV92YWxpZCh0cnVlKSB7IH0KKyAgICBDb2xvcihSR0JBMzIgY29sLCBib29sIHZhbGlkID0gdHJ1
ZSkgOiBtX2NvbG9yKGNvbCksIG1fdmFsaWQodmFsaWQpIHsgfQogICAgIENvbG9yKGludCByLCBp
bnQgZywgaW50IGIpIDogbV9jb2xvcihtYWtlUkdCKHIsIGcsIGIpKSwgbV92YWxpZCh0cnVlKSB7
IH0KICAgICBDb2xvcihpbnQgciwgaW50IGcsIGludCBiLCBpbnQgYSkgOiBtX2NvbG9yKG1ha2VS
R0JBKHIsIGcsIGIsIGEpKSwgbV92YWxpZCh0cnVlKSB7IH0KICAgICAvLyBDb2xvciBpcyBjdXJy
ZW50bHkgbGltaXRlZCB0byAzMmJpdCBSR0JBLCBwZXJoYXBzIHNvbWUgZGF5IHdlJ2xsIHN1cHBv
cnQgYmV0dGVyIGNvbG9ycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL0JvcmRlclZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVy
VmFsdWUuaAppbmRleCBkOWYxOGEwLi4yMTJjOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvQm9yZGVyVmFsdWUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAKICAg
ICBib29sIGlzVHJhbnNwYXJlbnQoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIG1fY29s
b3IuaXNWYWxpZCgpICYmICFtX2NvbG9yLmFscGhhKCk7CisgICAgICAgIHJldHVybiBtX3ZhbGlk
Q29sb3IgJiYgIWFscGhhQ2hhbm5lbChtX3JnYmEpOwogICAgIH0KIAogICAgIGJvb2wgaXNWaXNp
YmxlKGJvb2wgY2hlY2tTdHlsZSA9IHRydWUpIGNvbnN0CkBAIC01Nyw3ICs1Nyw3IEBAIHB1Ymxp
YzoKIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBCb3JkZXJWYWx1ZSYgbykgY29uc3QKICAg
ICB7Ci0gICAgICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93aWR0aCAmJiBtX3N0eWxlID09IG8u
bV9zdHlsZSAmJiBtX2NvbG9yID09IG8ubV9jb2xvcjsKKyAgICAgICAgcmV0dXJuIG1fd2lkdGgg
PT0gby5tX3dpZHRoICYmIG1fc3R5bGUgPT0gby5tX3N0eWxlICYmIGNvbG9yKCkgPT0gby5jb2xv
cigpOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBCb3JkZXJWYWx1ZSYgbykg
Y29uc3QKQEAgLTY1LDEyICs2NSwyMyBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiAhKCp0aGlz
ID09IG8pOwogICAgIH0KICAgICAKLSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJl
dHVybiBtX2NvbG9yOyB9CisgICAgdm9pZCBzZXRDb2xvcihjb25zdCBDb2xvciYgY29sb3IpCisg
ICAgeworICAgICAgICBtX3JnYmEgPSBjb2xvci5yZ2IoKTsKKyAgICAgICAgbV92YWxpZENvbG9y
ID0gY29sb3IuaXNWYWxpZCgpOworICAgIH0KKyAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25z
dCB7IHJldHVybiBDb2xvcihtX3JnYmEsIG1fdmFsaWRDb2xvcik7IH0KKwogICAgIHVuc2lnbmVk
IHNob3J0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogICAgIEVCb3JkZXJTdHls
ZSBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3JkZXJTdHlsZT4obV9zdHls
ZSk7IH0KIAorcHJpdmF0ZToKKyAgICAvLyBJbnN0ZWFkIG9mIHVzaW5nIHRoZSBDb2xvciBjbGFz
cyBoZXJlLCB3ZSAidW5yb2xsIiBpdHMgbWVtYmVycyBvbnRvIEJvcmRlclZhbHVlCisgICAgLy8g
dG8gbWF4aW1pemUgc3RydWN0IHBhY2tpbmcuIFVzZSBhY2Nlc3NvcnMgdG8gcmVhZC93cml0ZS4K
KyAgICBSR0JBMzIgbV9yZ2JhOworICAgIGJvb2wgbV92YWxpZENvbG9yIDogMTsKKwogcHJvdGVj
dGVkOgotICAgIENvbG9yIG1fY29sb3I7CiAgICAgdW5zaWduZWQgbV93aWR0aCA6IDEyOwogICAg
IHVuc2lnbmVkIG1fc3R5bGUgOiA0OyAvLyBFQm9yZGVyU3R5bGUKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oCmluZGV4IDBlOTE0OGQuLjRlZDU3ZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvT3V0bGluZVZhbHVlLmgKQEAg
LTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBP
dXRsaW5lVmFsdWUmIG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV93aWR0aCA9PSBv
Lm1fd2lkdGggJiYgbV9zdHlsZSA9PSBvLm1fc3R5bGUgJiYgbV9jb2xvciA9PSBvLm1fY29sb3Ig
JiYgbV9vZmZzZXQgPT0gby5tX29mZnNldCAmJiBtX2lzQXV0byA9PSBvLm1faXNBdXRvOworICAg
ICAgICByZXR1cm4gbV93aWR0aCA9PSBvLm1fd2lkdGggJiYgbV9zdHlsZSA9PSBvLm1fc3R5bGUg
JiYgY29sb3IoKSA9PSBvLmNvbG9yKCkgJiYgbV9vZmZzZXQgPT0gby5tX29mZnNldCAmJiBtX2lz
QXV0byA9PSBvLm1faXNBdXRvOwogICAgIH0KICAgICAKICAgICBib29sIG9wZXJhdG9yIT0oY29u
c3QgT3V0bGluZVZhbHVlJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuaAppbmRleCBiNWNhYjQ3Li45NTY1MmU3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTUsNiArOTUsMTAgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wgY29tcGFyZUVxdWFsKGNv
bnN0IFQmIHQsIGNvbnN0IFUmIHUKICAgICBpZiAoIWNvbXBhcmVFcXVhbChncm91cC0+dmFyaWFi
bGUsIHZhbHVlKSkgXAogICAgICAgICBncm91cC5hY2Nlc3MoKS0+dmFyaWFibGUgPSB2YWx1ZTsK
IAorI2RlZmluZSBTRVRfQk9SREVSVkFMVUVfQ09MT1IoZ3JvdXAsIHZhcmlhYmxlLCB2YWx1ZSkg
XAorICAgIGlmICghY29tcGFyZUVxdWFsKGdyb3VwLT52YXJpYWJsZS5jb2xvcigpLCB2YWx1ZSkp
IFwKKyAgICAgICAgZ3JvdXAuYWNjZXNzKCktPnZhcmlhYmxlLnNldENvbG9yKHZhbHVlKTsKKwog
bmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBzdGQ6Om1heDsKQEAgLTk0NCwyMSArOTQ4LDIx
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Qm9yZGVyTGVmdFdpZHRoKHVuc2lnbmVkIHNob3J0
IHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fbGVmdC5tX3dpZHRoLCB2KSB9CiAgICAg
dm9pZCBzZXRCb3JkZXJMZWZ0U3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgYm9yZGVyLm1fbGVmdC5tX3N0eWxlLCB2KSB9Ci0gICAgdm9pZCBzZXRCb3JkZXJMZWZ0Q29s
b3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fbGVmdC5tX2Nv
bG9yLCB2KSB9CisgICAgdm9pZCBzZXRCb3JkZXJMZWZ0Q29sb3IoY29uc3QgQ29sb3ImIHYpIHsg
U0VUX0JPUkRFUlZBTFVFX0NPTE9SKHN1cnJvdW5kLCBib3JkZXIubV9sZWZ0LCB2KTsgfQogICAg
IHZvaWQgc2V0Qm9yZGVyUmlnaHRXaWR0aCh1bnNpZ25lZCBzaG9ydCB2KSB7IFNFVF9WQVIoc3Vy
cm91bmQsIGJvcmRlci5tX3JpZ2h0Lm1fd2lkdGgsIHYpIH0KICAgICB2b2lkIHNldEJvcmRlclJp
Z2h0U3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fcmln
aHQubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0Qm9yZGVyUmlnaHRDb2xvcihjb25zdCBDb2xv
ciYgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9yaWdodC5tX2NvbG9yLCB2KSB9Cisg
ICAgdm9pZCBzZXRCb3JkZXJSaWdodENvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJW
QUxVRV9DT0xPUihzdXJyb3VuZCwgYm9yZGVyLm1fcmlnaHQsIHYpOyB9CiAgICAgdm9pZCBzZXRC
b3JkZXJUb3BXaWR0aCh1bnNpZ25lZCBzaG9ydCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRl
ci5tX3RvcC5tX3dpZHRoLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJUb3BTdHlsZShFQm9yZGVy
U3R5bGUgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3AubV9zdHlsZSwgdikgfQot
ICAgIHZvaWQgc2V0Qm9yZGVyVG9wQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihzdXJy
b3VuZCwgYm9yZGVyLm1fdG9wLm1fY29sb3IsIHYpIH0KKyAgICB2b2lkIHNldEJvcmRlclRvcENv
bG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJyb3VuZCwgYm9y
ZGVyLm1fdG9wLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21XaWR0aCh1bnNpZ25lZCBz
aG9ydCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbS5tX3dpZHRoLCB2KSB9
CiAgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21TdHlsZShFQm9yZGVyU3R5bGUgdikgeyBTRVRfVkFS
KHN1cnJvdW5kLCBib3JkZXIubV9ib3R0b20ubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0Qm9y
ZGVyQm90dG9tQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVy
Lm1fYm90dG9tLm1fY29sb3IsIHYpIH0KKyAgICB2b2lkIHNldEJvcmRlckJvdHRvbUNvbG9yKGNv
bnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJyb3VuZCwgYm9yZGVyLm1f
Ym90dG9tLCB2KSB9CiAKICAgICB2b2lkIHNldE91dGxpbmVXaWR0aCh1bnNpZ25lZCBzaG9ydCB2
KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV93aWR0aCwgdikgfQogICAgIHZv
aWQgc2V0T3V0bGluZVN0eWxlSXNBdXRvKE91dGxpbmVJc0F1dG8gaXNBdXRvKSB7IFNFVF9WQVIo
bV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9pc0F1dG8sIGlzQXV0bykgfQogICAgIHZvaWQgc2V0
T3V0bGluZVN0eWxlKEVCb3JkZXJTdHlsZSB2KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291
dGxpbmUubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0T3V0bGluZUNvbG9yKGNvbnN0IENvbG9y
JiB2KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9jb2xvciwgdikgfQorICAg
IHZvaWQgc2V0T3V0bGluZUNvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9D
T0xPUihtX2JhY2tncm91bmQsIG1fb3V0bGluZSwgdikgfQogCiAgICAgdm9pZCBzZXRPdmVyZmxv
d1goRU92ZXJmbG93IHYpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLl9vdmVyZmxvd1ggPSB2OyB9CiAg
ICAgdm9pZCBzZXRPdmVyZmxvd1koRU92ZXJmbG93IHYpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLl9v
dmVyZmxvd1kgPSB2OyB9CkBAIC0xMTUxLDcgKzExNTUsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBz
ZXRIYXNBdXRvQ29sdW1uQ291bnQoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fbXVsdGlDb2wsIG1fYXV0b0NvdW50LCB0cnVlKTsgU0VUX1ZBUihyYXJlTm9uSW5o
ZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9jb3VudCwgMCk7IH0KICAgICB2b2lk
IHNldENvbHVtbkdhcChmbG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNj
ZXNzKCktPm1fbXVsdGlDb2wsIG1fbm9ybWFsR2FwLCBmYWxzZSk7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fZ2FwLCBmKTsgfQogICAgIHZvaWQg
c2V0SGFzTm9ybWFsQ29sdW1uR2FwKCkgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFj
Y2VzcygpLT5tX211bHRpQ29sLCBtX25vcm1hbEdhcCwgdHJ1ZSk7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fZ2FwLCAwKTsgfQotICAgIHZvaWQg
c2V0Q29sdW1uUnVsZUNvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZS5tX2NvbG9yLCBjKTsgfQorICAg
IHZvaWQgc2V0Q29sdW1uUnVsZUNvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9CT1JERVJWQUxV
RV9DT0xPUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9ydWxl
LCBjKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVsZVN0eWxlKEVCb3JkZXJTdHlsZSBiKSB7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZS5t
X3N0eWxlLCBiKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVsZVdpZHRoKHVuc2lnbmVkIHNob3J0
IHcpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwg
bV9ydWxlLm1fd2lkdGgsIHcpOyB9CiAgICAgdm9pZCByZXNldENvbHVtblJ1bGUoKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZSwgQm9y
ZGVyVmFsdWUoKSkgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>109984</attachid>
            <date>2011-10-06 11:28:57 -0700</date>
            <delta_ts>2012-03-14 19:08:30 -0700</delta_ts>
            <desc>Proposed patch v2</desc>
            <filename>bug-69521-v2.diff</filename>
            <type>text/plain</type>
            <size>20015</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyYzg1ZGQ3Li5hMTZiMDE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzcg
QEAKKzIwMTEtMTAtMDYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFNocmluayBCb3JkZXJWYWx1ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTY5NTIxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVW5yb2xsIEJvcmRlclZhbHVlJ3MgQ29sb3IgbWVtYmVyIHNvIHdlIGNh
biBwYWNrIHRoZSBjb2xvcidzIHZhbGlkaXR5IGZsYWcKKyAgICAgICAgaW4gQm9yZGVyVmFsdWUn
cyBiaXRmaWVsZC4KKworICAgICAgICBUaGlzIHNocmlua3MgQm9yZGVyVmFsdWUgYnkgMzIgYml0
LCB3aGljaCBpbiB0dXJuIHNocmlua3MgQm9yZGVyRGF0YSBieQorICAgICAgICAxNiBieXRlcy4g
VGhpcyByZWR1Y2VzIG1lbW9yeSBjb25zdW1wdGlvbiBieSA3NjAga0Igd2hlbiBsb2FkaW5nIHRo
ZSBmdWxsCisgICAgICAgIEhUTUw1IHNwZWMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9Db2xvci5oOgorICAgICAgICAoV2ViQ29yZTo6Q29sb3I6OkNvbG9yKToKKworICAgICAgICAg
ICAgQWxsb3cgY29uc3RydWN0aW9uIG9mIENvbG9yIG9iamVjdHMgd2l0aCBzcGVjaWZpYyB2YWxp
ZGl0eS4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJWYWx1ZS5oOgorICAgICAg
ICAoV2ViQ29yZTo6Qm9yZGVyVmFsdWU6OkJvcmRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkJvcmRlclZhbHVlOjppc1RyYW5zcGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlclZh
bHVlOjpvcGVyYXRvcj09KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlclZhbHVlOjpzZXRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJWYWx1ZTo6Y29sb3IpOgorICAgICAgICAqIHJl
bmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok91dGxpbmVW
YWx1ZTo6b3BlcmF0b3I9PSk6CisKKyAgICAgICAgICAgIFVucm9sbCBtX2NvbG9yIGludG8gQm9y
ZGVyVmFsdWUgYnkgc3BsaXR0aW5nIGl0IGludG8gYW4gUkdCQTMyIGFuZCBhIGJvb2wuCisgICAg
ICAgICAgICBNYWRlIHRob3NlIHZhcmlhYmxlcyBwcml2YXRlIGFuZCBhZGRlZCBjb2xvcigpLCBz
ZXRDb2xvcigpIGFjY2Vzc29ycy4KKworICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5oOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEJvcmRlckxlZnRD
b2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0Qm9yZGVyUmlnaHRD
b2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c2V0Qm9yZGVyVG9wQ29s
b3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldEJvcmRlckJvdHRvbUNv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzZXRPdXRsaW5lQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OnNldENvbHVtblJ1bGVDb2xvcik6
CisKKyAgICAgICAgICAgIEFkZGVkIGEgU0VUX0JPUkRFUlZBTFVFX0NPTE9SIG1hY3JvIGFuZCB1
c2UgdGhhdCBpbnN0ZWFkIG9mIFNFVF9WQVIKKyAgICAgICAgICAgIHdoZW4gc2V0dGluZyBCb3Jk
ZXJWYWx1ZSBjb2xvcnMuCisKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpmaWxs
UGFpbnRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6c3Ryb2tlUGFp
bnRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6Ym9yZGVyTGVmdENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpib3JkZXJSaWdodENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpib3JkZXJUb3BDb2xvcik6Cisg
ICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6Ym9yZGVyQm90dG9tQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmJhY2tncm91bmRDb2xvcik6CisgICAgICAg
IChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6Y29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6SW5o
ZXJpdGVkRmxhZ3M6OmNvbHVtblJ1bGVDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0
ZWRGbGFnczo6b3V0bGluZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdz
Ojp0ZXh0RW1waGFzaXNDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6
dGV4dEZpbGxDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpJbmhlcml0ZWRGbGFnczo6dGV4dFN0
cm9rZUNvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkluaGVyaXRlZEZsYWdzOjpzdG9wQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmZsb29kQ29sb3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5oZXJpdGVkRmxhZ3M6OmxpZ2h0aW5nQ29sb3IpOgorCisgICAgICAgICAg
ICBNYWRlIGNvbG9yIGdldHRlcnMgcmV0dXJuICJjb25zdCBDb2xvciIgaW5zdGVhZCBvZiAiY29u
c3QgQ29sb3ImIiBzaW5jZQorICAgICAgICAgICAgQm9yZGVyVmFsdWUgbm8gbG9uZ2VyIGhhcyBh
biBhY3R1YWwgb2JqZWN0IHRvIHJldHVybiB0aGUgcmVmZXJlbmNlIHRvLgorCisgICAgICAgICog
Y3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBseVBy
b3BlcnR5Q29sb3I6OmFwcGx5SW5oZXJpdFZhbHVlKToKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlByb3BlcnR5V3JhcHBlckNv
bG9yOjpQcm9wZXJ0eVdyYXBwZXJDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpQcm9wZXJ0eVdy
YXBwZXJDb2xvcjo6YmxlbmQpOgorICAgICAgICAoV2ViQ29yZTo6UHJvcGVydHlXcmFwcGVyTWF5
YmVJbnZhbGlkQ29sb3I6OlByb3BlcnR5V3JhcHBlck1heWJlSW52YWxpZENvbG9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OlByb3BlcnR5V3JhcHBlclNWR1BhaW50OjpQcm9wZXJ0eVdyYXBwZXJTVkdQ
YWludCk6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25CYXNlOjplbnN1cmVQcm9wZXJ0eU1h
cCk6CisKKyAgICAgICAgICAgIEFkYXB0IHRvIFJlbmRlclN0eWxlIGNvbG9yIGdldHRlcnMgbm93
IHJldHVybmluZyAiY29uc3QgQ29sb3IiIGluc3RlYWQgb2YKKyAgICAgICAgICAgICJjb25zdCBD
b2xvciYiLgorCiAyMDExLTEwLTAzICBIYW5zIFdlbm5ib3JnICA8aGFuc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgSW5kZXhlZERCOiBSZW1vdmUgU1FMaXRlLUxldmVsREIgbWlncmF0aW9uIGNv
ZGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdHlsZUFwcGx5UHJvcGVydHku
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQcm9wZXJ0eS5jcHAKaW5kZXgg
NmYwMWI0Ny4uOGVhNzVjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxl
QXBwbHlQcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N0eWxlQXBwbHlQ
cm9wZXJ0eS5jcHAKQEAgLTIxOSw5ICsyMTksOSBAQCBlbnVtIENvbG9ySW5oZXJpdCB7Tm9Jbmhl
cml0RnJvbVBhcmVudCA9IDAsIEluaGVyaXRGcm9tUGFyZW50fTsKIHRlbXBsYXRlIDxDb2xvcklu
aGVyaXQgaW5oZXJpdENvbG9yRnJvbVBhcmVudD4KIGNsYXNzIEFwcGx5UHJvcGVydHlDb2xvciA6
IHB1YmxpYyBBcHBseVByb3BlcnR5QmFzZSB7CiBwdWJsaWM6Ci0gICAgdHlwZWRlZiBjb25zdCBD
b2xvciYgKFJlbmRlclN0eWxlOjoqR2V0dGVyRnVuY3Rpb24pKCkgY29uc3Q7CisgICAgdHlwZWRl
ZiBjb25zdCBDb2xvciAoUmVuZGVyU3R5bGU6OipHZXR0ZXJGdW5jdGlvbikoKSBjb25zdDsKICAg
ICB0eXBlZGVmIHZvaWQgKFJlbmRlclN0eWxlOjoqU2V0dGVyRnVuY3Rpb24pKGNvbnN0IENvbG9y
Jik7Ci0gICAgdHlwZWRlZiBjb25zdCBDb2xvciYgKFJlbmRlclN0eWxlOjoqRGVmYXVsdEZ1bmN0
aW9uKSgpIGNvbnN0OworICAgIHR5cGVkZWYgY29uc3QgQ29sb3IgKFJlbmRlclN0eWxlOjoqRGVm
YXVsdEZ1bmN0aW9uKSgpIGNvbnN0OwogICAgIHR5cGVkZWYgQ29sb3IgKCpJbml0aWFsRnVuY3Rp
b24pKCk7CiAKICAgICBBcHBseVByb3BlcnR5Q29sb3IoR2V0dGVyRnVuY3Rpb24gZ2V0dGVyLCBT
ZXR0ZXJGdW5jdGlvbiBzZXR0ZXIsIERlZmF1bHRGdW5jdGlvbiBkZWZhdWx0RnVuY3Rpb24sIElu
aXRpYWxGdW5jdGlvbiBpbml0aWFsRnVuY3Rpb24gPSAwKQpAQCAtMjM1LDcgKzIzNSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGFwcGx5SW5oZXJpdFZhbHVlKENTU1N0
eWxlU2VsZWN0b3IqIHNlbGVjdG9yKSBjb25zdAogICAgIHsKLSAgICAgICAgY29uc3QgQ29sb3Im
IGNvbG9yID0gKHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT4qbV9nZXR0ZXIpKCk7CisgICAgICAg
IGNvbnN0IENvbG9yIGNvbG9yID0gKHNlbGVjdG9yLT5wYXJlbnRTdHlsZSgpLT4qbV9nZXR0ZXIp
KCk7CiAgICAgICAgIGlmIChtX2RlZmF1bHQgJiYgIWNvbG9yLmlzVmFsaWQoKSkKICAgICAgICAg
ICAgIChzZWxlY3Rvci0+c3R5bGUoKS0+Km1fc2V0dGVyKSgoc2VsZWN0b3ItPnBhcmVudFN0eWxl
KCktPiptX2RlZmF1bHQpKCkpOwogICAgICAgICBlbHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCmluZGV4IGFkM2M1OTIuLjdlNDBiN2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCkBA
IC0yOTUsNiArMjk1LDIzIEBAIHByb3RlY3RlZDoKICAgICB2b2lkIChSZW5kZXJTdHlsZTo6Km1f
c2V0dGVyKShUKTsKIH07CiAKK2NsYXNzIFByb3BlcnR5V3JhcHBlckNvbG9yIDogcHVibGljIFBy
b3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBDb2xvcj4geworcHVibGljOgorICAgIFByb3BlcnR5
V3JhcHBlckNvbG9yKGludCBwcm9wLCBjb25zdCBDb2xvciAoUmVuZGVyU3R5bGU6OipnZXR0ZXIp
KCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxlOjoqc2V0dGVyKShjb25zdCBDb2xvciYpKQorICAg
ICAgICA6IFByb3BlcnR5V3JhcHBlckdldHRlcjxjb25zdCBDb2xvcj4ocHJvcCwgZ2V0dGVyKQor
ICAgICAgICAsIG1fc2V0dGVyKHNldHRlcikKKyAgICB7CisgICAgfQorCisgICAgdmlydHVhbCB2
b2lkIGJsZW5kKGNvbnN0IEFuaW1hdGlvbkJhc2UqIGFuaW0sIFJlbmRlclN0eWxlKiBkc3QsIGNv
bnN0IFJlbmRlclN0eWxlKiBhLCBjb25zdCBSZW5kZXJTdHlsZSogYiwgZG91YmxlIHByb2dyZXNz
KSBjb25zdAorICAgIHsKKyAgICAgICAgKGRzdC0+Km1fc2V0dGVyKShibGVuZEZ1bmMoYW5pbSwg
KGEtPipQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8Y29uc3QgQ29sb3I+OjptX2dldHRlcikoKSwgKGIt
PipQcm9wZXJ0eVdyYXBwZXJHZXR0ZXI8Y29uc3QgQ29sb3I+OjptX2dldHRlcikoKSwgcHJvZ3Jl
c3MpKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICB2b2lkIChSZW5kZXJTdHlsZTo6Km1fc2V0
dGVyKShjb25zdCBDb2xvciYpOworfTsKKwogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElO
RykKIGNsYXNzIFByb3BlcnR5V3JhcHBlckFjY2VsZXJhdGVkT3BhY2l0eSA6IHB1YmxpYyBQcm9w
ZXJ0eVdyYXBwZXI8ZmxvYXQ+IHsKIHB1YmxpYzoKQEAgLTQ3MCw3ICs0ODcsNyBAQCBwcml2YXRl
OgogCiBjbGFzcyBQcm9wZXJ0eVdyYXBwZXJNYXliZUludmFsaWRDb2xvciA6IHB1YmxpYyBQcm9w
ZXJ0eVdyYXBwZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQcm9wZXJ0eVdyYXBwZXJNYXliZUludmFs
aWRDb2xvcihpbnQgcHJvcCwgY29uc3QgQ29sb3ImIChSZW5kZXJTdHlsZTo6KmdldHRlcikoKSBj
b25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXIpKGNvbnN0IENvbG9yJikpCisgICAgUHJv
cGVydHlXcmFwcGVyTWF5YmVJbnZhbGlkQ29sb3IoaW50IHByb3AsIGNvbnN0IENvbG9yIChSZW5k
ZXJTdHlsZTo6KmdldHRlcikoKSBjb25zdCwgdm9pZCAoUmVuZGVyU3R5bGU6OipzZXR0ZXIpKGNv
bnN0IENvbG9yJikpCiAgICAgICAgIDogUHJvcGVydHlXcmFwcGVyQmFzZShwcm9wKQogICAgICAg
ICAsIG1fZ2V0dGVyKGdldHRlcikKICAgICAgICAgLCBtX3NldHRlcihzZXR0ZXIpCkBAIC01MDks
NyArNTI2LDcgQEAgcHVibGljOgogICAgIH0KIAogcHJpdmF0ZToKLSAgICBjb25zdCBDb2xvciYg
KFJlbmRlclN0eWxlOjoqbV9nZXR0ZXIpKCkgY29uc3Q7CisgICAgY29uc3QgQ29sb3IgKFJlbmRl
clN0eWxlOjoqbV9nZXR0ZXIpKCkgY29uc3Q7CiAgICAgdm9pZCAoUmVuZGVyU3R5bGU6OiptX3Nl
dHRlcikoY29uc3QgQ29sb3ImKTsKIH07CiAKQEAgLTY3Myw3ICs2OTAsNyBAQCBwcml2YXRlOgog
I2lmIEVOQUJMRShTVkcpCiBjbGFzcyBQcm9wZXJ0eVdyYXBwZXJTVkdQYWludCA6IHB1YmxpYyBQ
cm9wZXJ0eVdyYXBwZXJCYXNlIHsKIHB1YmxpYzoKLSAgICBQcm9wZXJ0eVdyYXBwZXJTVkdQYWlu
dChpbnQgcHJvcCwgY29uc3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgKFJlbmRlclN0eWxlOjoq
cGFpbnRUeXBlR2V0dGVyKSgpIGNvbnN0LCBjb25zdCBDb2xvciYgKFJlbmRlclN0eWxlOjoqZ2V0
dGVyKSgpIGNvbnN0LCB2b2lkIChSZW5kZXJTdHlsZTo6KnNldHRlcikoY29uc3QgQ29sb3ImKSkK
KyAgICBQcm9wZXJ0eVdyYXBwZXJTVkdQYWludChpbnQgcHJvcCwgY29uc3QgU1ZHUGFpbnQ6OlNW
R1BhaW50VHlwZSYgKFJlbmRlclN0eWxlOjoqcGFpbnRUeXBlR2V0dGVyKSgpIGNvbnN0LCBjb25z
dCBDb2xvciAoUmVuZGVyU3R5bGU6OipnZXR0ZXIpKCkgY29uc3QsIHZvaWQgKFJlbmRlclN0eWxl
Ojoqc2V0dGVyKShjb25zdCBDb2xvciYpKQogICAgICAgICA6IFByb3BlcnR5V3JhcHBlckJhc2Uo
cHJvcCkKICAgICAgICAgLCBtX3BhaW50VHlwZUdldHRlcihwYWludFR5cGVHZXR0ZXIpCiAgICAg
ICAgICwgbV9nZXR0ZXIoZ2V0dGVyKQpAQCAtNzI3LDcgKzc0NCw3IEBAIHB1YmxpYzoKIAogcHJp
dmF0ZToKICAgICBjb25zdCBTVkdQYWludDo6U1ZHUGFpbnRUeXBlJiAoUmVuZGVyU3R5bGU6Oipt
X3BhaW50VHlwZUdldHRlcikoKSBjb25zdDsKLSAgICBjb25zdCBDb2xvciYgKFJlbmRlclN0eWxl
OjoqbV9nZXR0ZXIpKCkgY29uc3Q7CisgICAgY29uc3QgQ29sb3IgKFJlbmRlclN0eWxlOjoqbV9n
ZXR0ZXIpKCkgY29uc3Q7CiAgICAgdm9pZCAoUmVuZGVyU3R5bGU6OiptX3NldHRlcikoY29uc3Qg
Q29sb3ImKTsKIH07CiAjZW5kaWYKQEAgLTc3MCw5ICs3ODcsOSBAQCB2b2lkIEFuaW1hdGlvbkJh
c2U6OmVuc3VyZVByb3BlcnR5TWFwKCkKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVu
ZChuZXcgUHJvcGVydHlXcmFwcGVyPExlbmd0aD4oQ1NTUHJvcGVydHlQYWRkaW5nUmlnaHQsICZS
ZW5kZXJTdHlsZTo6cGFkZGluZ1JpZ2h0LCAmUmVuZGVyU3R5bGU6OnNldFBhZGRpbmdSaWdodCkp
OwogICAgICAgICBnUHJvcGVydHlXcmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXI8
TGVuZ3RoPihDU1NQcm9wZXJ0eVBhZGRpbmdUb3AsICZSZW5kZXJTdHlsZTo6cGFkZGluZ1RvcCwg
JlJlbmRlclN0eWxlOjpzZXRQYWRkaW5nVG9wKSk7CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJz
LT5hcHBlbmQobmV3IFByb3BlcnR5V3JhcHBlcjxMZW5ndGg+KENTU1Byb3BlcnR5UGFkZGluZ0Jv
dHRvbSwgJlJlbmRlclN0eWxlOjpwYWRkaW5nQm90dG9tLCAmUmVuZGVyU3R5bGU6OnNldFBhZGRp
bmdCb3R0b20pKTsKLSAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVy
dHlXcmFwcGVyPGNvbnN0IENvbG9yJj4oQ1NTUHJvcGVydHlDb2xvciwgJlJlbmRlclN0eWxlOjpj
b2xvciwgJlJlbmRlclN0eWxlOjpzZXRDb2xvcikpOworICAgICAgICBnUHJvcGVydHlXcmFwcGVy
cy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJDb2xvcihDU1NQcm9wZXJ0eUNvbG9yLCAmUmVu
ZGVyU3R5bGU6OmNvbG9yLCAmUmVuZGVyU3R5bGU6OnNldENvbG9yKSk7CiAKLSAgICAgICAgZ1By
b3BlcnR5V3JhcHBlcnMtPmFwcGVuZChuZXcgUHJvcGVydHlXcmFwcGVyPGNvbnN0IENvbG9yJj4o
Q1NTUHJvcGVydHlCYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6YmFja2dyb3VuZENvbG9y
LCAmUmVuZGVyU3R5bGU6OnNldEJhY2tncm91bmRDb2xvcikpOworICAgICAgICBnUHJvcGVydHlX
cmFwcGVycy0+YXBwZW5kKG5ldyBQcm9wZXJ0eVdyYXBwZXJDb2xvcihDU1NQcm9wZXJ0eUJhY2tn
cm91bmRDb2xvciwgJlJlbmRlclN0eWxlOjpiYWNrZ3JvdW5kQ29sb3IsICZSZW5kZXJTdHlsZTo6
c2V0QmFja2dyb3VuZENvbG9yKSk7CiAKICAgICAgICAgZ1Byb3BlcnR5V3JhcHBlcnMtPmFwcGVu
ZChuZXcgRmlsbExheWVyc1Byb3BlcnR5V3JhcHBlcihDU1NQcm9wZXJ0eUJhY2tncm91bmRQb3Np
dGlvblgsICZSZW5kZXJTdHlsZTo6YmFja2dyb3VuZExheWVycywgJlJlbmRlclN0eWxlOjphY2Nl
c3NCYWNrZ3JvdW5kTGF5ZXJzKSk7CiAgICAgICAgIGdQcm9wZXJ0eVdyYXBwZXJzLT5hcHBlbmQo
bmV3IEZpbGxMYXllcnNQcm9wZXJ0eVdyYXBwZXIoQ1NTUHJvcGVydHlCYWNrZ3JvdW5kUG9zaXRp
b25ZLCAmUmVuZGVyU3R5bGU6OmJhY2tncm91bmRMYXllcnMsICZSZW5kZXJTdHlsZTo6YWNjZXNz
QmFja2dyb3VuZExheWVycykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvQ29sb3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0NvbG9y
LmgKaW5kZXggNzQ4MTc0NC4uMmU4YWVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvQ29sb3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Db2xvci5oCkBAIC03OCw3ICs3OCw3IEBAIGNsYXNzIENvbG9yIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICBDb2xvcigpIDogbV9jb2xvcigwKSwgbV92
YWxpZChmYWxzZSkgeyB9Ci0gICAgQ29sb3IoUkdCQTMyIGNvbCkgOiBtX2NvbG9yKGNvbCksIG1f
dmFsaWQodHJ1ZSkgeyB9CisgICAgQ29sb3IoUkdCQTMyIGNvbCwgYm9vbCB2YWxpZCA9IHRydWUp
IDogbV9jb2xvcihjb2wpLCBtX3ZhbGlkKHZhbGlkKSB7IH0KICAgICBDb2xvcihpbnQgciwgaW50
IGcsIGludCBiKSA6IG1fY29sb3IobWFrZVJHQihyLCBnLCBiKSksIG1fdmFsaWQodHJ1ZSkgeyB9
CiAgICAgQ29sb3IoaW50IHIsIGludCBnLCBpbnQgYiwgaW50IGEpIDogbV9jb2xvcihtYWtlUkdC
QShyLCBnLCBiLCBhKSksIG1fdmFsaWQodHJ1ZSkgeyB9CiAgICAgLy8gQ29sb3IgaXMgY3VycmVu
dGx5IGxpbWl0ZWQgdG8gMzJiaXQgUkdCQSwgcGVyaGFwcyBzb21lIGRheSB3ZSdsbCBzdXBwb3J0
IGJldHRlciBjb2xvcnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9Cb3JkZXJWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL0JvcmRlclZh
bHVlLmgKaW5kZXggZDlmMThhMC4uZGYwNmExMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL0JvcmRlclZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL0JvcmRlclZhbHVlLmgKQEAgLTM0LDcgKzM0LDkgQEAgY2xhc3MgQm9yZGVyVmFs
dWUgewogZnJpZW5kIGNsYXNzIFJlbmRlclN0eWxlOwogcHVibGljOgogICAgIEJvcmRlclZhbHVl
KCkKLSAgICAgICAgOiBtX3dpZHRoKDMpCisgICAgICAgIDogbV9yZ2JhKDApCisgICAgICAgICwg
bV92YWxpZENvbG9yKGZhbHNlKQorICAgICAgICAsIG1fd2lkdGgoMykKICAgICAgICAgLCBtX3N0
eWxlKEJOT05FKQogICAgICAgICAsIG1faXNBdXRvKEFVVE9fT0ZGKQogICAgIHsKQEAgLTQ3LDcg
KzQ5LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc1RyYW5zcGFyZW50KCkgY29uc3QKICAgICB7
Ci0gICAgICAgIHJldHVybiBtX2NvbG9yLmlzVmFsaWQoKSAmJiAhbV9jb2xvci5hbHBoYSgpOwor
ICAgICAgICByZXR1cm4gbV92YWxpZENvbG9yICYmICFhbHBoYUNoYW5uZWwobV9yZ2JhKTsKICAg
ICB9CiAKICAgICBib29sIGlzVmlzaWJsZShib29sIGNoZWNrU3R5bGUgPSB0cnVlKSBjb25zdApA
QCAtNTcsNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQm9y
ZGVyVmFsdWUmIG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV93aWR0aCA9PSBvLm1f
d2lkdGggJiYgbV9zdHlsZSA9PSBvLm1fc3R5bGUgJiYgbV9jb2xvciA9PSBvLm1fY29sb3I7Cisg
ICAgICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93aWR0aCAmJiBtX3N0eWxlID09IG8ubV9zdHls
ZSAmJiBjb2xvcigpID09IG8uY29sb3IoKTsKICAgICB9CiAKICAgICBib29sIG9wZXJhdG9yIT0o
Y29uc3QgQm9yZGVyVmFsdWUmIG8pIGNvbnN0CkBAIC02NSwxMiArNjcsMjMgQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gISgqdGhpcyA9PSBvKTsKICAgICB9CiAgICAgCi0gICAgY29uc3QgQ29s
b3ImIGNvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9jb2xvcjsgfQorICAgIHZvaWQgc2V0Q29sb3Io
Y29uc3QgQ29sb3ImIGNvbG9yKQorICAgIHsKKyAgICAgICAgbV9yZ2JhID0gY29sb3IucmdiKCk7
CisgICAgICAgIG1fdmFsaWRDb2xvciA9IGNvbG9yLmlzVmFsaWQoKTsKKyAgICB9CisgICAgQ29s
b3IgY29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcihtX3JnYmEsIG1fdmFsaWRDb2xvcik7IH0K
KwogICAgIHVuc2lnbmVkIHNob3J0IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQog
ICAgIEVCb3JkZXJTdHlsZSBzdHlsZSgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEVCb3Jk
ZXJTdHlsZT4obV9zdHlsZSk7IH0KIAorcHJpdmF0ZToKKyAgICAvLyBJbnN0ZWFkIG9mIHVzaW5n
IHRoZSBDb2xvciBjbGFzcyBoZXJlLCB3ZSAidW5yb2xsIiBpdHMgbWVtYmVycyBvbnRvIEJvcmRl
clZhbHVlCisgICAgLy8gdG8gbWF4aW1pemUgc3RydWN0IHBhY2tpbmcuIFVzZSBhY2Nlc3NvcnMg
dG8gcmVhZC93cml0ZS4KKyAgICBSR0JBMzIgbV9yZ2JhOworICAgIGJvb2wgbV92YWxpZENvbG9y
IDogMTsKKwogcHJvdGVjdGVkOgotICAgIENvbG9yIG1fY29sb3I7CiAgICAgdW5zaWduZWQgbV93
aWR0aCA6IDEyOwogICAgIHVuc2lnbmVkIG1fc3R5bGUgOiA0OyAvLyBFQm9yZGVyU3R5bGUKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oCmluZGV4IDBl
OTE0OGQuLjRlZDU3ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9PdXRsaW5lVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvT3V0
bGluZVZhbHVlLmgKQEAgLTM5LDcgKzM5LDcgQEAgcHVibGljOgogICAgIAogICAgIGJvb2wgb3Bl
cmF0b3I9PShjb25zdCBPdXRsaW5lVmFsdWUmIG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1
cm4gbV93aWR0aCA9PSBvLm1fd2lkdGggJiYgbV9zdHlsZSA9PSBvLm1fc3R5bGUgJiYgbV9jb2xv
ciA9PSBvLm1fY29sb3IgJiYgbV9vZmZzZXQgPT0gby5tX29mZnNldCAmJiBtX2lzQXV0byA9PSBv
Lm1faXNBdXRvOworICAgICAgICByZXR1cm4gbV93aWR0aCA9PSBvLm1fd2lkdGggJiYgbV9zdHls
ZSA9PSBvLm1fc3R5bGUgJiYgY29sb3IoKSA9PSBvLmNvbG9yKCkgJiYgbV9vZmZzZXQgPT0gby5t
X29mZnNldCAmJiBtX2lzQXV0byA9PSBvLm1faXNBdXRvOwogICAgIH0KICAgICAKICAgICBib29s
IG9wZXJhdG9yIT0oY29uc3QgT3V0bGluZVZhbHVlJiBvKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAppbmRleCBiNWNhYjQ3Li5mMjc3YjliIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuaApAQCAtOTUs
NiArOTUsMTAgQEAgdGVtcGxhdGU8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4gaW5saW5lIGJvb2wg
Y29tcGFyZUVxdWFsKGNvbnN0IFQmIHQsIGNvbnN0IFUmIHUKICAgICBpZiAoIWNvbXBhcmVFcXVh
bChncm91cC0+dmFyaWFibGUsIHZhbHVlKSkgXAogICAgICAgICBncm91cC5hY2Nlc3MoKS0+dmFy
aWFibGUgPSB2YWx1ZTsKIAorI2RlZmluZSBTRVRfQk9SREVSVkFMVUVfQ09MT1IoZ3JvdXAsIHZh
cmlhYmxlLCB2YWx1ZSkgXAorICAgIGlmICghY29tcGFyZUVxdWFsKGdyb3VwLT52YXJpYWJsZS5j
b2xvcigpLCB2YWx1ZSkpIFwKKyAgICAgICAgZ3JvdXAuYWNjZXNzKCktPnZhcmlhYmxlLnNldENv
bG9yKHZhbHVlKTsKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiB1c2luZyBzdGQ6Om1heDsKQEAg
LTk0NCwyMSArOTQ4LDIxIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0Qm9yZGVyTGVmdFdpZHRo
KHVuc2lnbmVkIHNob3J0IHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fbGVmdC5tX3dp
ZHRoLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJMZWZ0U3R5bGUoRUJvcmRlclN0eWxlIHYpIHsg
U0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fbGVmdC5tX3N0eWxlLCB2KSB9Ci0gICAgdm9pZCBz
ZXRCb3JkZXJMZWZ0Q29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9y
ZGVyLm1fbGVmdC5tX2NvbG9yLCB2KSB9CisgICAgdm9pZCBzZXRCb3JkZXJMZWZ0Q29sb3IoY29u
c3QgQ29sb3ImIHYpIHsgU0VUX0JPUkRFUlZBTFVFX0NPTE9SKHN1cnJvdW5kLCBib3JkZXIubV9s
ZWZ0LCB2KTsgfQogICAgIHZvaWQgc2V0Qm9yZGVyUmlnaHRXaWR0aCh1bnNpZ25lZCBzaG9ydCB2
KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3JpZ2h0Lm1fd2lkdGgsIHYpIH0KICAgICB2
b2lkIHNldEJvcmRlclJpZ2h0U3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZBUihzdXJyb3Vu
ZCwgYm9yZGVyLm1fcmlnaHQubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0Qm9yZGVyUmlnaHRD
b2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9yaWdodC5t
X2NvbG9yLCB2KSB9CisgICAgdm9pZCBzZXRCb3JkZXJSaWdodENvbG9yKGNvbnN0IENvbG9yJiB2
KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJyb3VuZCwgYm9yZGVyLm1fcmlnaHQsIHYpOyB9
CiAgICAgdm9pZCBzZXRCb3JkZXJUb3BXaWR0aCh1bnNpZ25lZCBzaG9ydCB2KSB7IFNFVF9WQVIo
c3Vycm91bmQsIGJvcmRlci5tX3RvcC5tX3dpZHRoLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJU
b3BTdHlsZShFQm9yZGVyU3R5bGUgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3Au
bV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0Qm9yZGVyVG9wQ29sb3IoY29uc3QgQ29sb3ImIHYp
IHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wLm1fY29sb3IsIHYpIH0KKyAgICB2b2lk
IHNldEJvcmRlclRvcENvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xP
UihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21X
aWR0aCh1bnNpZ25lZCBzaG9ydCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRv
bS5tX3dpZHRoLCB2KSB9CiAgICAgdm9pZCBzZXRCb3JkZXJCb3R0b21TdHlsZShFQm9yZGVyU3R5
bGUgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV9ib3R0b20ubV9zdHlsZSwgdikgfQot
ICAgIHZvaWQgc2V0Qm9yZGVyQm90dG9tQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihz
dXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tLm1fY29sb3IsIHYpIH0KKyAgICB2b2lkIHNldEJvcmRl
ckJvdHRvbUNvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJy
b3VuZCwgYm9yZGVyLm1fYm90dG9tLCB2KSB9CiAKICAgICB2b2lkIHNldE91dGxpbmVXaWR0aCh1
bnNpZ25lZCBzaG9ydCB2KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV93aWR0
aCwgdikgfQogICAgIHZvaWQgc2V0T3V0bGluZVN0eWxlSXNBdXRvKE91dGxpbmVJc0F1dG8gaXNB
dXRvKSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9pc0F1dG8sIGlzQXV0bykg
fQogICAgIHZvaWQgc2V0T3V0bGluZVN0eWxlKEVCb3JkZXJTdHlsZSB2KSB7IFNFVF9WQVIobV9i
YWNrZ3JvdW5kLCBtX291dGxpbmUubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0T3V0bGluZUNv
bG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9WQVIobV9iYWNrZ3JvdW5kLCBtX291dGxpbmUubV9j
b2xvciwgdikgfQorICAgIHZvaWQgc2V0T3V0bGluZUNvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNF
VF9CT1JERVJWQUxVRV9DT0xPUihtX2JhY2tncm91bmQsIG1fb3V0bGluZSwgdikgfQogCiAgICAg
dm9pZCBzZXRPdmVyZmxvd1goRU92ZXJmbG93IHYpIHsgbm9uaW5oZXJpdGVkX2ZsYWdzLl9vdmVy
Zmxvd1ggPSB2OyB9CiAgICAgdm9pZCBzZXRPdmVyZmxvd1koRU92ZXJmbG93IHYpIHsgbm9uaW5o
ZXJpdGVkX2ZsYWdzLl9vdmVyZmxvd1kgPSB2OyB9CkBAIC0xMTUxLDcgKzExNTUsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzZXRIYXNBdXRvQ29sdW1uQ291bnQoKSB7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fYXV0b0NvdW50LCB0cnVlKTsgU0VU
X1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9jb3VudCwg
MCk7IH0KICAgICB2b2lkIHNldENvbHVtbkdhcChmbG9hdCBmKSB7IFNFVF9WQVIocmFyZU5vbklu
aGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fbm9ybWFsR2FwLCBmYWxzZSk7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fZ2FwLCBm
KTsgfQogICAgIHZvaWQgc2V0SGFzTm9ybWFsQ29sdW1uR2FwKCkgeyBTRVRfVkFSKHJhcmVOb25J
bmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX25vcm1hbEdhcCwgdHJ1ZSk7IFNF
VF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fZ2FwLCAw
KTsgfQotICAgIHZvaWQgc2V0Q29sdW1uUnVsZUNvbG9yKGNvbnN0IENvbG9yJiBjKSB7IFNFVF9W
QVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fcnVsZS5tX2Nv
bG9yLCBjKTsgfQorICAgIHZvaWQgc2V0Q29sdW1uUnVsZUNvbG9yKGNvbnN0IENvbG9yJiBjKSB7
IFNFVF9CT1JERVJWQUxVRV9DT0xPUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9t
dWx0aUNvbCwgbV9ydWxlLCBjKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVsZVN0eWxlKEVCb3Jk
ZXJTdHlsZSBiKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVs
dGlDb2wsIG1fcnVsZS5tX3N0eWxlLCBiKTsgfQogICAgIHZvaWQgc2V0Q29sdW1uUnVsZVdpZHRo
KHVuc2lnbmVkIHNob3J0IHcpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3Mo
KS0+bV9tdWx0aUNvbCwgbV9ydWxlLm1fd2lkdGgsIHcpOyB9CiAgICAgdm9pZCByZXNldENvbHVt
blJ1bGUoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVyaXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlD
b2wsIG1fcnVsZSwgQm9yZGVyVmFsdWUoKSkgfQpAQCAtMTIzMSwxMyArMTIzNSwxMyBAQCBwdWJs
aWM6CiAgICAgU1ZHUmVuZGVyU3R5bGUqIGFjY2Vzc1NWR1N0eWxlKCkgeyByZXR1cm4gbV9zdmdT
dHlsZS5hY2Nlc3MoKTsgfQogCiAgICAgY29uc3QgU1ZHUGFpbnQ6OlNWR1BhaW50VHlwZSYgZmls
bFBhaW50VHlwZSgpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPmZpbGxQYWludFR5cGUoKTsg
fQotICAgIGNvbnN0IENvbG9yJiBmaWxsUGFpbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0
eWxlKCktPmZpbGxQYWludENvbG9yKCk7IH0KKyAgICBjb25zdCBDb2xvciBmaWxsUGFpbnRDb2xv
cigpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPmZpbGxQYWludENvbG9yKCk7IH0KICAgICB2
b2lkIHNldEZpbGxQYWludENvbG9yKGNvbnN0IENvbG9yJiBjKSB7IGFjY2Vzc1NWR1N0eWxlKCkt
PnNldEZpbGxQYWludChTVkdQYWludDo6U1ZHX1BBSU5UVFlQRV9SR0JDT0xPUiwgYywgIiIpOyB9
CiAgICAgZmxvYXQgZmlsbE9wYWNpdHkoKSBjb25zdCB7IHJldHVybiBzdmdTdHlsZSgpLT5maWxs
T3BhY2l0eSgpOyB9CiAgICAgdm9pZCBzZXRGaWxsT3BhY2l0eShmbG9hdCBmKSB7IGFjY2Vzc1NW
R1N0eWxlKCktPnNldEZpbGxPcGFjaXR5KGYpOyB9CiAKICAgICBjb25zdCBTVkdQYWludDo6U1ZH
UGFpbnRUeXBlJiBzdHJva2VQYWludFR5cGUoKSBjb25zdCB7IHJldHVybiBzdmdTdHlsZSgpLT5z
dHJva2VQYWludFR5cGUoKTsgfQotICAgIGNvbnN0IENvbG9yJiBzdHJva2VQYWludENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gc3ZnU3R5bGUoKS0+c3Ryb2tlUGFpbnRDb2xvcigpOyB9CisgICAgY29u
c3QgQ29sb3Igc3Ryb2tlUGFpbnRDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPnN0
cm9rZVBhaW50Q29sb3IoKTsgfQogICAgIHZvaWQgc2V0U3Ryb2tlUGFpbnRDb2xvcihjb25zdCBD
b2xvciYgYykgeyBhY2Nlc3NTVkdTdHlsZSgpLT5zZXRTdHJva2VQYWludChTVkdQYWludDo6U1ZH
X1BBSU5UVFlQRV9SR0JDT0xPUiwgYywgIiIpOyB9CiAgICAgZmxvYXQgc3Ryb2tlT3BhY2l0eSgp
IGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPnN0cm9rZU9wYWNpdHkoKTsgfQogICAgIHZvaWQg
c2V0U3Ryb2tlT3BhY2l0eShmbG9hdCBmKSB7IGFjY2Vzc1NWR1N0eWxlKCktPnNldFN0cm9rZU9w
YWNpdHkoZik7IH0KQEAgLTE1MDksMjQgKzE1MTMsMjQgQEAgcHJpdmF0ZToKICAgICB9CiAKICAg
ICAvLyBDb2xvciBhY2Nlc3NvcnMgYXJlIGFsbCBwcml2YXRlIHRvIG1ha2Ugc3VyZSBjYWxsZXJz
IHVzZSB2aXNpdGVkRGVwZW5kZW50Q29sb3IgaW5zdGVhZCB0byBhY2Nlc3MgdGhlbS4KLSAgICBj
b25zdCBDb2xvciYgYm9yZGVyTGVmdENvbG9yKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJv
cmRlci5sZWZ0KCkuY29sb3IoKTsgfQotICAgIGNvbnN0IENvbG9yJiBib3JkZXJSaWdodENvbG9y
KCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRlci5yaWdodCgpLmNvbG9yKCk7IH0KLSAg
ICBjb25zdCBDb2xvciYgYm9yZGVyVG9wQ29sb3IoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+
Ym9yZGVyLnRvcCgpLmNvbG9yKCk7IH0KLSAgICBjb25zdCBDb2xvciYgYm9yZGVyQm90dG9tQ29s
b3IoKSBjb25zdCB7IHJldHVybiBzdXJyb3VuZC0+Ym9yZGVyLmJvdHRvbSgpLmNvbG9yKCk7IH0K
LSAgICBjb25zdCBDb2xvciYgYmFja2dyb3VuZENvbG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNr
Z3JvdW5kLT5jb2xvcigpOyB9Ci0gICAgY29uc3QgQ29sb3ImIGNvbG9yKCkgY29uc3QgeyByZXR1
cm4gaW5oZXJpdGVkLT5jb2xvcjsgfQotICAgIGNvbnN0IENvbG9yJiBjb2x1bW5SdWxlQ29sb3Io
KSBjb25zdCB7IHJldHVybiByYXJlTm9uSW5oZXJpdGVkRGF0YS0+bV9tdWx0aUNvbC0+bV9ydWxl
LmNvbG9yKCk7IH0KLSAgICBjb25zdCBDb2xvciYgb3V0bGluZUNvbG9yKCkgY29uc3QgeyByZXR1
cm4gbV9iYWNrZ3JvdW5kLT5vdXRsaW5lKCkuY29sb3IoKTsgfQotICAgIGNvbnN0IENvbG9yJiB0
ZXh0RW1waGFzaXNDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0
RW1waGFzaXNDb2xvcjsgfQotICAgIGNvbnN0IENvbG9yJiB0ZXh0RmlsbENvbG9yKCkgY29uc3Qg
eyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEtPnRleHRGaWxsQ29sb3I7IH0KLSAgICBjb25zdCBD
b2xvciYgdGV4dFN0cm9rZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFyZUluaGVyaXRlZERhdGEt
PnRleHRTdHJva2VDb2xvcjsgfQorICAgIGNvbnN0IENvbG9yIGJvcmRlckxlZnRDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIubGVmdCgpLmNvbG9yKCk7IH0KKyAgICBjb25z
dCBDb2xvciBib3JkZXJSaWdodENvbG9yKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRl
ci5yaWdodCgpLmNvbG9yKCk7IH0KKyAgICBjb25zdCBDb2xvciBib3JkZXJUb3BDb2xvcigpIGNv
bnN0IHsgcmV0dXJuIHN1cnJvdW5kLT5ib3JkZXIudG9wKCkuY29sb3IoKTsgfQorICAgIGNvbnN0
IENvbG9yIGJvcmRlckJvdHRvbUNvbG9yKCkgY29uc3QgeyByZXR1cm4gc3Vycm91bmQtPmJvcmRl
ci5ib3R0b20oKS5jb2xvcigpOyB9CisgICAgY29uc3QgQ29sb3IgYmFja2dyb3VuZENvbG9yKCkg
Y29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kLT5jb2xvcigpOyB9CisgICAgY29uc3QgQ29sb3Ig
Y29sb3IoKSBjb25zdCB7IHJldHVybiBpbmhlcml0ZWQtPmNvbG9yOyB9CisgICAgY29uc3QgQ29s
b3IgY29sdW1uUnVsZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFyZU5vbkluaGVyaXRlZERhdGEt
Pm1fbXVsdGlDb2wtPm1fcnVsZS5jb2xvcigpOyB9CisgICAgY29uc3QgQ29sb3Igb3V0bGluZUNv
bG9yKCkgY29uc3QgeyByZXR1cm4gbV9iYWNrZ3JvdW5kLT5vdXRsaW5lKCkuY29sb3IoKTsgfQor
ICAgIGNvbnN0IENvbG9yIHRleHRFbXBoYXNpc0NvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFyZUlu
aGVyaXRlZERhdGEtPnRleHRFbXBoYXNpc0NvbG9yOyB9CisgICAgY29uc3QgQ29sb3IgdGV4dEZp
bGxDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHJhcmVJbmhlcml0ZWREYXRhLT50ZXh0RmlsbENvbG9y
OyB9CisgICAgY29uc3QgQ29sb3IgdGV4dFN0cm9rZUNvbG9yKCkgY29uc3QgeyByZXR1cm4gcmFy
ZUluaGVyaXRlZERhdGEtPnRleHRTdHJva2VDb2xvcjsgfQogICAgIAogICAgIGNvbnN0IENvbG9y
IGNvbG9ySW5jbHVkaW5nRmFsbGJhY2soaW50IGNvbG9yUHJvcGVydHkpIGNvbnN0OwogCiAjaWYg
RU5BQkxFKFNWRykKLSAgICBjb25zdCBDb2xvciYgc3RvcENvbG9yKCkgY29uc3QgeyByZXR1cm4g
c3ZnU3R5bGUoKS0+c3RvcENvbG9yKCk7IH0KLSAgICBjb25zdCBDb2xvciYgZmxvb2RDb2xvcigp
IGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPmZsb29kQ29sb3IoKTsgfQotICAgIGNvbnN0IENv
bG9yJiBsaWdodGluZ0NvbG9yKCkgY29uc3QgeyByZXR1cm4gc3ZnU3R5bGUoKS0+bGlnaHRpbmdD
b2xvcigpOyB9CisgICAgY29uc3QgQ29sb3Igc3RvcENvbG9yKCkgY29uc3QgeyByZXR1cm4gc3Zn
U3R5bGUoKS0+c3RvcENvbG9yKCk7IH0KKyAgICBjb25zdCBDb2xvciBmbG9vZENvbG9yKCkgY29u
c3QgeyByZXR1cm4gc3ZnU3R5bGUoKS0+Zmxvb2RDb2xvcigpOyB9CisgICAgY29uc3QgQ29sb3Ig
bGlnaHRpbmdDb2xvcigpIGNvbnN0IHsgcmV0dXJuIHN2Z1N0eWxlKCktPmxpZ2h0aW5nQ29sb3Io
KTsgfQogI2VuZGlmCiAKICAgICB2b2lkIGFwcGVuZENvbnRlbnQoUGFzc093blB0cjxDb250ZW50
RGF0YT4pOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132359</attachid>
            <date>2012-03-16 13:28:55 -0700</date>
            <delta_ts>2012-03-16 15:03:29 -0700</delta_ts>
            <desc>I made a patch.</desc>
            <filename>bug-69521.diff</filename>
            <type>text/plain</type>
            <size>8176</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA5NDg4Y2VlLi41MzgyOTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMDMtMTYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFNocmluayBCb3JkZXJWYWx1ZS4KKyAgICAgICAgPGh0dHA6Ly93ZWJraXQub3JnL2IvNjk1
MjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Bs
aXQgQm9yZGVyVmFsdWUncyBDb2xvciBtZW1iZXIgaW50byBSR0JBMzIvYm9vbCBidWRkaWVzIGFu
ZCBzdGFzaCB0aGUgYm9vbCBpbgorICAgICAgICB0aGUgQm9yZGVyVmFsdWUgYml0ZmllbGQuCisK
KyAgICAgICAgVGhpcyBzaHJpbmtzIEJvcmRlclZhbHVlIGJ5IDQgYnl0ZXMsIGluIHR1cm4gc2hy
aW5raW5nIEJvcmRlckRhdGEgYnkgMTYgYnl0ZXMuCisgICAgICAgIEFsdG9nZXRoZXIgdGhpcyB5
aWVsZHMgfjgwMCBrQiBpbiByZWR1Y2VkIG1lbW9yeSBjb25zdW1wdGlvbiB3aGVuIHZpZXdpbmcg
dGhlIGZ1bGwKKyAgICAgICAgSFRNTDUgc3BlYyBhdCA8aHR0cDovL3doYXR3Zy5vcmcvYz4KKwor
ICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9Cb3JkZXJWYWx1ZS5oOgorICAgICAgICAoV2ViQ29y
ZTo6Qm9yZGVyVmFsdWU6OkJvcmRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlclZh
bHVlOjppc1RyYW5zcGFyZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRlclZhbHVlOjpvcGVy
YXRvcj09KToKKyAgICAgICAgKEJvcmRlclZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkJvcmRl
clZhbHVlOjpzZXRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpCb3JkZXJWYWx1ZTo6Y29sb3Ip
OgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaDoKKyAgICAgICAgKFdl
YkNvcmU6Ok91dGxpbmVWYWx1ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgICogcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcDoKKyAgICAgICAgKFNhbWVTaXplQXNCb3JkZXJWYWx1ZSk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisKIDIwMTItMDMtMTUgIEFu
ZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbmRlclN0eWxlOiBS
ZXR1cm4gQ29sb3Igb2JqZWN0cyBieSB2YWx1ZSBpbnN0ZWFkIG9mIGFzIGNvbnN0IHJlZmVyZW5j
ZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvQm9yZGVyVmFs
dWUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9Cb3JkZXJWYWx1ZS5oCmluZGV4
IGQ5ZDQwNGIuLmM4ZjY1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9Cb3JkZXJWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9C
b3JkZXJWYWx1ZS5oCkBAIC0zNCw3ICszNCw5IEBAIGNsYXNzIEJvcmRlclZhbHVlIHsKIGZyaWVu
ZCBjbGFzcyBSZW5kZXJTdHlsZTsKIHB1YmxpYzoKICAgICBCb3JkZXJWYWx1ZSgpCi0gICAgICAg
IDogbV93aWR0aCgzKQorICAgICAgICA6IG1fY29sb3IoMCkKKyAgICAgICAgLCBtX2NvbG9ySXNW
YWxpZChmYWxzZSkKKyAgICAgICAgLCBtX3dpZHRoKDMpCiAgICAgICAgICwgbV9zdHlsZShCTk9O
RSkKICAgICAgICAgLCBtX2lzQXV0byhBVVRPX09GRikKICAgICB7CkBAIC00Nyw3ICs0OSw3IEBA
IHB1YmxpYzoKIAogICAgIGJvb2wgaXNUcmFuc3BhcmVudCgpIGNvbnN0CiAgICAgewotICAgICAg
ICByZXR1cm4gbV9jb2xvci5pc1ZhbGlkKCkgJiYgIW1fY29sb3IuYWxwaGEoKTsKKyAgICAgICAg
cmV0dXJuIG1fY29sb3JJc1ZhbGlkICYmICFhbHBoYUNoYW5uZWwobV9jb2xvcik7CiAgICAgfQog
CiAgICAgYm9vbCBpc1Zpc2libGUoYm9vbCBjaGVja1N0eWxlID0gdHJ1ZSkgY29uc3QKQEAgLTU3
LDIxICs1OSwzMCBAQCBwdWJsaWM6CiAKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgQm9yZGVy
VmFsdWUmIG8pIGNvbnN0CiAgICAgewotICAgICAgICByZXR1cm4gbV93aWR0aCA9PSBvLm1fd2lk
dGggJiYgbV9zdHlsZSA9PSBvLm1fc3R5bGUgJiYgbV9jb2xvciA9PSBvLm1fY29sb3I7CisgICAg
ICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93aWR0aCAmJiBtX3N0eWxlID09IG8ubV9zdHlsZSAm
JiBtX2NvbG9yID09IG8ubV9jb2xvciAmJiBtX2NvbG9ySXNWYWxpZCA9PSBvLm1fY29sb3JJc1Zh
bGlkOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3IhPShjb25zdCBCb3JkZXJWYWx1ZSYgbykg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiAhKCp0aGlzID09IG8pOwogICAgIH0KLSAgICAK
LSAgICBjb25zdCBDb2xvciYgY29sb3IoKSBjb25zdCB7IHJldHVybiBtX2NvbG9yOyB9CisKKyAg
ICB2b2lkIHNldENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKKyAgICB7CisgICAgICAgIG1fY29s
b3IgPSBjb2xvci5yZ2IoKTsKKyAgICAgICAgbV9jb2xvcklzVmFsaWQgPSBjb2xvci5pc1ZhbGlk
KCk7CisgICAgfQorCisgICAgQ29sb3IgY29sb3IoKSBjb25zdCB7IHJldHVybiBDb2xvcihtX2Nv
bG9yLCBtX2NvbG9ySXNWYWxpZCk7IH0KKwogICAgIHVuc2lnbmVkIHdpZHRoKCkgY29uc3QgeyBy
ZXR1cm4gbV93aWR0aDsgfQogICAgIEVCb3JkZXJTdHlsZSBzdHlsZSgpIGNvbnN0IHsgcmV0dXJu
IHN0YXRpY19jYXN0PEVCb3JkZXJTdHlsZT4obV9zdHlsZSk7IH0KIAogcHJvdGVjdGVkOgotICAg
IENvbG9yIG1fY29sb3I7Ci0gICAgdW5zaWduZWQgbV93aWR0aCA6IDI3OworICAgIFJHQkEzMiBt
X2NvbG9yOworICAgIHVuc2lnbmVkIG1fY29sb3JJc1ZhbGlkIDogMTsKKworICAgIHVuc2lnbmVk
IG1fd2lkdGggOiAyNjsKICAgICB1bnNpZ25lZCBtX3N0eWxlIDogNDsgLy8gRUJvcmRlclN0eWxl
CiAKICAgICAvLyBUaGlzIGlzIG9ubHkgdXNlZCBieSBPdXRsaW5lVmFsdWUgYnV0IG1vdmVkIGhl
cmUgdG8ga2VlcCB0aGUgYml0cyBwYWNrZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3R5bGUvT3V0bGluZVZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvT3V0bGluZVZhbHVlLmgKaW5kZXggMGU5MTQ4ZC4uZjM4MGFmNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL091dGxpbmVWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9PdXRsaW5lVmFsdWUuaApAQCAtMzksNyArMzksNyBA
QCBwdWJsaWM6CiAgICAgCiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IE91dGxpbmVWYWx1ZSYg
bykgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3dpZHRoID09IG8ubV93aWR0aCAmJiBt
X3N0eWxlID09IG8ubV9zdHlsZSAmJiBtX2NvbG9yID09IG8ubV9jb2xvciAmJiBtX29mZnNldCA9
PSBvLm1fb2Zmc2V0ICYmIG1faXNBdXRvID09IG8ubV9pc0F1dG87CisgICAgICAgIHJldHVybiBt
X3dpZHRoID09IG8ubV93aWR0aCAmJiBtX3N0eWxlID09IG8ubV9zdHlsZSAmJiBtX2NvbG9yID09
IG8ubV9jb2xvciAmJiBtX2NvbG9ySXNWYWxpZCA9PSBvLm1fY29sb3JJc1ZhbGlkICYmIG1fb2Zm
c2V0ID09IG8ubV9vZmZzZXQgJiYgbV9pc0F1dG8gPT0gby5tX2lzQXV0bzsKICAgICB9CiAgICAg
CiAgICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IE91dGxpbmVWYWx1ZSYgbykgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDhjMWEz
YWQuLmQ4NmI1MTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcApAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2Ugc3RkOwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgU2FtZVNpemVBc0JvcmRlclZhbHVlIHsKLSAgICBDb2xv
ciBtX2NvbG9yOworICAgIFJHQkEzMiBtX2NvbG9yOwogICAgIHVuc2lnbmVkIG1fd2lkdGg7CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCmluZGV4
IDViZmRiMmUuLmRkODk5ZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5oCkBAIC05NSw2ICs5NSwxMCBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBULCB0eXBl
bmFtZSBVPiBpbmxpbmUgYm9vbCBjb21wYXJlRXF1YWwoY29uc3QgVCYgdCwgY29uc3QgVSYgdQog
ICAgIGlmICghY29tcGFyZUVxdWFsKGdyb3VwLT52YXJpYWJsZSwgdmFsdWUpKSBcCiAgICAgICAg
IGdyb3VwLmFjY2VzcygpLT52YXJpYWJsZSA9IHZhbHVlOwogCisjZGVmaW5lIFNFVF9CT1JERVJW
QUxVRV9DT0xPUihncm91cCwgdmFyaWFibGUsIHZhbHVlKSBcCisgICAgaWYgKCFjb21wYXJlRXF1
YWwoZ3JvdXAtPnZhcmlhYmxlLmNvbG9yKCksIHZhbHVlKSkgXAorICAgICAgICBncm91cC5hY2Nl
c3MoKS0+dmFyaWFibGUuc2V0Q29sb3IodmFsdWUpOworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IHVzaW5nIHN0ZDo6bWF4OwpAQCAtMTA2NywyMSArMTA3MSwyMSBAQCBwdWJsaWM6CiAKICAgICB2
b2lkIHNldEJvcmRlckxlZnRXaWR0aCh1bnNpZ25lZCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJv
cmRlci5tX2xlZnQubV93aWR0aCwgdikgfQogICAgIHZvaWQgc2V0Qm9yZGVyTGVmdFN0eWxlKEVC
b3JkZXJTdHlsZSB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2xlZnQubV9zdHlsZSwg
dikgfQotICAgIHZvaWQgc2V0Qm9yZGVyTGVmdENvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9W
QVIoc3Vycm91bmQsIGJvcmRlci5tX2xlZnQubV9jb2xvciwgdikgfQorICAgIHZvaWQgc2V0Qm9y
ZGVyTGVmdENvbG9yKGNvbnN0IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJy
b3VuZCwgYm9yZGVyLm1fbGVmdCwgdikgfQogICAgIHZvaWQgc2V0Qm9yZGVyUmlnaHRXaWR0aCh1
bnNpZ25lZCB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3JpZ2h0Lm1fd2lkdGgsIHYp
IH0KICAgICB2b2lkIHNldEJvcmRlclJpZ2h0U3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgYm9yZGVyLm1fcmlnaHQubV9zdHlsZSwgdikgfQotICAgIHZvaWQgc2V0Qm9y
ZGVyUmlnaHRDb2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIu
bV9yaWdodC5tX2NvbG9yLCB2KSB9CisgICAgdm9pZCBzZXRCb3JkZXJSaWdodENvbG9yKGNvbnN0
IENvbG9yJiB2KSB7IFNFVF9CT1JERVJWQUxVRV9DT0xPUihzdXJyb3VuZCwgYm9yZGVyLm1fcmln
aHQsIHYpIH0KICAgICB2b2lkIHNldEJvcmRlclRvcFdpZHRoKHVuc2lnbmVkIHYpIHsgU0VUX1ZB
UihzdXJyb3VuZCwgYm9yZGVyLm1fdG9wLm1fd2lkdGgsIHYpIH0KICAgICB2b2lkIHNldEJvcmRl
clRvcFN0eWxlKEVCb3JkZXJTdHlsZSB2KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX3Rv
cC5tX3N0eWxlLCB2KSB9Ci0gICAgdm9pZCBzZXRCb3JkZXJUb3BDb2xvcihjb25zdCBDb2xvciYg
dikgeyBTRVRfVkFSKHN1cnJvdW5kLCBib3JkZXIubV90b3AubV9jb2xvciwgdikgfQorICAgIHZv
aWQgc2V0Qm9yZGVyVG9wQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX0JPUkRFUlZBTFVFX0NP
TE9SKHN1cnJvdW5kLCBib3JkZXIubV90b3AsIHYpIH0KICAgICB2b2lkIHNldEJvcmRlckJvdHRv
bVdpZHRoKHVuc2lnbmVkIHYpIHsgU0VUX1ZBUihzdXJyb3VuZCwgYm9yZGVyLm1fYm90dG9tLm1f
d2lkdGgsIHYpIH0KICAgICB2b2lkIHNldEJvcmRlckJvdHRvbVN0eWxlKEVCb3JkZXJTdHlsZSB2
KSB7IFNFVF9WQVIoc3Vycm91bmQsIGJvcmRlci5tX2JvdHRvbS5tX3N0eWxlLCB2KSB9Ci0gICAg
dm9pZCBzZXRCb3JkZXJCb3R0b21Db2xvcihjb25zdCBDb2xvciYgdikgeyBTRVRfVkFSKHN1cnJv
dW5kLCBib3JkZXIubV9ib3R0b20ubV9jb2xvciwgdikgfQorICAgIHZvaWQgc2V0Qm9yZGVyQm90
dG9tQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX0JPUkRFUlZBTFVFX0NPTE9SKHN1cnJvdW5k
LCBib3JkZXIubV9ib3R0b20sIHYpIH0KIAogICAgIHZvaWQgc2V0T3V0bGluZVdpZHRoKHVuc2ln
bmVkIHNob3J0IHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0bGluZS5tX3dpZHRoLCB2
KSB9CiAgICAgdm9pZCBzZXRPdXRsaW5lU3R5bGVJc0F1dG8oT3V0bGluZUlzQXV0byBpc0F1dG8p
IHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0bGluZS5tX2lzQXV0bywgaXNBdXRvKSB9CiAg
ICAgdm9pZCBzZXRPdXRsaW5lU3R5bGUoRUJvcmRlclN0eWxlIHYpIHsgU0VUX1ZBUihtX2JhY2tn
cm91bmQsIG1fb3V0bGluZS5tX3N0eWxlLCB2KSB9Ci0gICAgdm9pZCBzZXRPdXRsaW5lQ29sb3Io
Y29uc3QgQ29sb3ImIHYpIHsgU0VUX1ZBUihtX2JhY2tncm91bmQsIG1fb3V0bGluZS5tX2NvbG9y
LCB2KSB9CisgICAgdm9pZCBzZXRPdXRsaW5lQ29sb3IoY29uc3QgQ29sb3ImIHYpIHsgU0VUX0JP
UkRFUlZBTFVFX0NPTE9SKG1fYmFja2dyb3VuZCwgbV9vdXRsaW5lLCB2KSB9CiAKICAgICB2b2lk
IHNldE92ZXJmbG93WChFT3ZlcmZsb3cgdikgeyBub25pbmhlcml0ZWRfZmxhZ3MuX292ZXJmbG93
WCA9IHY7IH0KICAgICB2b2lkIHNldE92ZXJmbG93WShFT3ZlcmZsb3cgdikgeyBub25pbmhlcml0
ZWRfZmxhZ3MuX292ZXJmbG93WSA9IHY7IH0KQEAgLTEyODgsNyArMTI5Miw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldEhhc0F1dG9Db2x1bW5Db3VudCgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9hdXRvQ291bnQsIHRydWUpOyBTRVRfVkFS
KHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRpQ29sLCBtX2NvdW50LCAwKTsg
fQogICAgIHZvaWQgc2V0Q29sdW1uR2FwKGZsb2F0IGYpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJp
dGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9ub3JtYWxHYXAsIGZhbHNlKTsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9nYXAsIGYpOyB9
CiAgICAgdm9pZCBzZXRIYXNOb3JtYWxDb2x1bW5HYXAoKSB7IFNFVF9WQVIocmFyZU5vbkluaGVy
aXRlZERhdGEuYWNjZXNzKCktPm1fbXVsdGlDb2wsIG1fbm9ybWFsR2FwLCB0cnVlKTsgU0VUX1ZB
UihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9nYXAsIDApOyB9
Ci0gICAgdm9pZCBzZXRDb2x1bW5SdWxlQ29sb3IoY29uc3QgQ29sb3ImIGMpIHsgU0VUX1ZBUihy
YXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwgbV9ydWxlLm1fY29sb3Is
IGMpOyB9CisgICAgdm9pZCBzZXRDb2x1bW5SdWxlQ29sb3IoY29uc3QgQ29sb3ImIGMpIHsgU0VU
X0JPUkRFUlZBTFVFX0NPTE9SKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5tX211bHRp
Q29sLCBtX3J1bGUsIGMpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5SdWxlU3R5bGUoRUJvcmRlclN0
eWxlIGIpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNv
bCwgbV9ydWxlLm1fc3R5bGUsIGIpOyB9CiAgICAgdm9pZCBzZXRDb2x1bW5SdWxlV2lkdGgodW5z
aWduZWQgc2hvcnQgdykgeyBTRVRfVkFSKHJhcmVOb25Jbmhlcml0ZWREYXRhLmFjY2VzcygpLT5t
X211bHRpQ29sLCBtX3J1bGUubV93aWR0aCwgdyk7IH0KICAgICB2b2lkIHJlc2V0Q29sdW1uUnVs
ZSgpIHsgU0VUX1ZBUihyYXJlTm9uSW5oZXJpdGVkRGF0YS5hY2Nlc3MoKS0+bV9tdWx0aUNvbCwg
bV9ydWxlLCBCb3JkZXJWYWx1ZSgpKSB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>