<?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>99796</bug_id>
          
          <creation_ts>2012-10-18 19:04:26 -0700</creation_ts>
          <short_desc>ASSERTION FAILED: m_next in LayoutState.cpp</short_desc>
          <delta_ts>2012-12-13 11:17:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>MathML</component>
          <version>420+</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://svgwg.org/svg2-draft/single-page.html</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philip Rogers">pdr</reporter>
          <assigned_to name="Dave Barton">dbarton</assigned_to>
          <cc>dbarton</cc>
    
    <cc>eric</cc>
    
    <cc>fred.wang</cc>
    
    <cc>inferno</cc>
    
    <cc>krit</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745884</commentid>
    <comment_count>0</comment_count>
    <who name="Philip Rogers">pdr</who>
    <bug_when>2012-10-18 19:04:26 -0700</bug_when>
    <thetext>We assert on the SVG2 draft page: https://svgwg.org/svg2-draft/single-page.html.

I think it&apos;s likely this is related to MathML.

Debug assert:
ASSERTION FAILED: m_next
../../third_party/WebKit/Source/WebCore/rendering/LayoutState.cpp(49) : WebCore::LayoutState::LayoutState(WebCore::LayoutState *, WebCore::RenderBox *, const LayoutSize &amp;, LayoutUnit, bool, WebCore::ColumnInfo *)
1   0x2cffb33 WebCore::LayoutState::LayoutState(WebCore::LayoutState*, WebCore::RenderBox*, WebCore::FractionalLayoutSize const&amp;, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
2   0x2cff984 WebCore::LayoutState::LayoutState(WebCore::LayoutState*, WebCore::RenderBox*, WebCore::FractionalLayoutSize const&amp;, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
3   0x2dd5cb5 WebCore::RenderView::pushLayoutState(WebCore::RenderBox*, WebCore::FractionalLayoutSize const&amp;, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
4   0x2dd5a5f WebCore::LayoutStateMaintainer::push(WebCore::RenderBox*, WebCore::FractionalLayoutSize, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
5   0x2dd592d WebCore::LayoutStateMaintainer::LayoutStateMaintainer(WebCore::RenderView*, WebCore::RenderBox*, WebCore::FractionalLayoutSize, bool, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
6   0x2dc65a4 WebCore::LayoutStateMaintainer::LayoutStateMaintainer(WebCore::RenderView*, WebCore::RenderBox*, WebCore::FractionalLayoutSize, bool, WebCore::FractionalLayoutUnit, bool, WebCore::ColumnInfo*)
7   0x2e29e07 WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::FractionalLayoutUnit)
8   0x2d09565 WebCore::RenderBlock::layout()
9   0x2f31599 WebCore::RenderObject::layoutIfNeeded()
10  0x3020c1f WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights()
11  0x3026fd3 WebCore::RenderMathMLRow::computePreferredLogicalWidths()
12  0x2dabdd2 WebCore::RenderBox::maxPreferredLogicalWidth() const
13  0x3020b61 WebCore::RenderMathMLBlock::computeChildrenPreferredLogicalHeights()
14  0x3026fd3 WebCore::RenderMathMLRow::computePreferredLogicalWidths()
15  0x2dabd42 WebCore::RenderBox::minPreferredLogicalWidth() const
16  0x2d2baaa WebCore::RenderBlock::computeInlinePreferredLogicalWidths()
17  0x2d2ac8e WebCore::RenderBlock::computePreferredLogicalWidths()
18  0x2f8f4c1 WebCore::RenderTableCell::computePreferredLogicalWidths()
19  0x2c9a636 WebCore::AutoTableLayout::recalcColumn(unsigned int)
20  0x2c9b3fe WebCore::AutoTableLayout::fullRecalc()
21  0x2c9b485 WebCore::AutoTableLayout::computePreferredLogicalWidths(WebCore::FractionalLayoutUnit&amp;, WebCore::FractionalLayoutUnit&amp;)
22  0x2f867ca WebCore::RenderTable::computePreferredLogicalWidths()
23  0x2dabd42 WebCore::RenderBox::minPreferredLogicalWidth() const
24  0x2d2c9b1 WebCore::RenderBlock::computeBlockPreferredLogicalWidths()
25  0x2d2aca1 WebCore::RenderBlock::computePreferredLogicalWidths()
26  0x2dabd42 WebCore::RenderBox::minPreferredLogicalWidth() const
27  0x2d2c9b1 WebCore::RenderBlock::computeBlockPreferredLogicalWidths()
28  0x2d2aca1 WebCore::RenderBlock::computePreferredLogicalWidths()
29  0x2dabd42 WebCore::RenderBox::minPreferredLogicalWidth() const
30  0x2d2c9b1 WebCore::RenderBlock::computeBlockPreferredLogicalWidths()
31  0x2d2aca1 WebCore::RenderBlock::computePreferredLogicalWidths()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745888</commentid>
    <comment_count>1</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2012-10-18 19:11:25 -0700</bug_when>
    <thetext>Niiiiice! Assertion on opening a Web standard specification :D.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>751208</commentid>
    <comment_count>2</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-25 14:27:52 -0700</bug_when>
    <thetext>I have 2 problems:

1. I can&apos;t reproduce the assert failing. That spec page hasn&apos;t changed, but I&apos;ve tried in debug builds of both Safari (base webkit) and Chrome. There&apos;s only one &lt;math&gt; element inside a &lt;table&gt; in that page, so that must be causing the problem. It&apos;d be great to have that inside some page that would reliably trigger the assert failure.

2. I guess I don&apos;t understand LayoutState. MathML is perhaps unique in that because of operator stretching (think large parentheses or brackets), a preferred logical width often can&apos;t be calculated until one&apos;s children&apos;s &quot;preferred logical height&quot; is known. See RenderMathMLBlock.h/cpp. I now see that RenderMedia::layout has this comment: &quot;When calling layout() on a child node, a parent must either push a LayoutStateMaintainter, or instantiate LayoutStateDisabler.&quot; I guess I need to at least do one of those in RenderMathMLBlock::computeChildrenPreferredLogicalHeights before doing child-&gt;layoutIfNeeded(). I gather that even LayoutStateDisabler is maybe really to disable only repainting, and further LayoutStates will still be pushed for offset calculations for some reason, which might still trigger this assert? (RenderView.h says: &quot;Note that even when disabled, LayoutState is still used to store layoutDelta.&quot; Why?) Sorry I am so confused. Is there a document or set of tests or person you can point me to for learning more about these issues? I had thought the two lines in RenderMathMLBlock::computeChildrenPreferredLogicalHeights:

    // Ensure a full repaint will happen after layout finishes.
    setNeedsLayout(true, MarkOnlyThis);

would deal with all this, and it&apos;s worked in existing tests for months up to now, but apparently that is not enough. Thanks for any help or pointers!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752597</commentid>
    <comment_count>3</comment_count>
      <attachid>171053</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-26 17:09:43 -0700</bug_when>
    <thetext>Created attachment 171053
bug 100465 test case 1 crash log on my Mac, shows this bug 99796</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752599</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-26 17:11:53 -0700</bug_when>
    <thetext>Thanks very much to smfr and eseidel for helping me with LayoutState in irc chat.

I now have a patch for this but don&apos;t know how to test it. This bug occurs when something asks for a typical MathML object&apos;s preferred logical width(s) when *not* doing an actual layout, so there&apos;s no LayoutState. How can I make this happen, especially during LayoutTestRunner? I can&apos;t reproduce this exact bug (99796), and I don&apos;t see the bottom of the stack trace in comment 0 here. A Chrome Canary user is crashing with a stack trace ending (at least the version I&apos;ve seen) with:

0x020a5e3e	[Google Chrome Framework]	- RenderBox.cpp:665]	WebCore::RenderBox::minPreferredLogicalWidth
0x014afb6f	[Google Chrome Framework]	- WebFrameImpl.cpp:646]	WebKit::WebFrameImpl::contentsPreferredWidth

This is inside Source/WebKit/chromium/src/WebFrameImpl.cpp, which is chromium-specific, right? There&apos;s also a big stack trace in bug 100464, which I think is a duplicate of this bug. Finally, on my machine the first test case in bug 100465 apparently causes this bug also, with a stack trace I just attached here.

I see repainting tests in LayoutTests, but I need something different here. Any short explanation, example or hint would be greatly appreciated!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752621</commentid>
    <comment_count>5</comment_count>
      <attachid>171064</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-26 17:48:31 -0700</bug_when>
    <thetext>Created attachment 171064
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752623</commentid>
    <comment_count>6</comment_count>
      <attachid>171064</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-26 17:56:42 -0700</bug_when>
    <thetext>Comment on attachment 171064
Patch

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

&gt; Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp:172
&gt; +    if (!hadLayoutState)
&gt; +        renderView-&gt;pushLayoutState(this);

I&apos;m curious as to why we don&apos;t just always push?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752630</commentid>
    <comment_count>7</comment_count>
      <attachid>171064</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-10-26 18:15:47 -0700</bug_when>
    <thetext>Comment on attachment 171064
Patch

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

&gt;&gt; Source/WebCore/rendering/mathml/RenderMathMLBlock.cpp:172
&gt;&gt; +        renderView-&gt;pushLayoutState(this);
&gt; 
&gt; I&apos;m curious as to why we don&apos;t just always push?

RenderView.cpp:858 in void RenderView::pushLayoutState(RenderObject* root):
    ASSERT(m_layoutState == 0);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752633</commentid>
    <comment_count>8</comment_count>
      <attachid>171064</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-10-26 18:20:17 -0700</bug_when>
    <thetext>Comment on attachment 171064
Patch

OK.  This seems like a reasonable mitigation then.  You might wait until tomorrow to mark cq+, just in case others who know LayoutState better than I choose to comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752807</commentid>
    <comment_count>9</comment_count>
      <attachid>171064</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-27 11:28:14 -0700</bug_when>
    <thetext>Comment on attachment 171064
Patch

Clearing flags on attachment: 171064

Committed r132737: &lt;http://trac.webkit.org/changeset/132737&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>752808</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-27 11:28:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>790778</commentid>
    <comment_count>11</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-12-13 11:17:41 -0800</bug_when>
    <thetext>*** Bug 100464 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>171053</attachid>
            <date>2012-10-26 17:09:43 -0700</date>
            <delta_ts>2012-10-26 17:09:43 -0700</delta_ts>
            <desc>bug 100465 test case 1 crash log on my Mac, shows this bug 99796</desc>
            <filename>465-1-crash-log.txt</filename>
            <type>text/plain</type>
            <size>12554</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">Y3Jhc2ggbG9nIGZvciBEdW1wUmVuZGVyVHJlZSAocGlkIDk3NjQyKToKU1RET1VUOiA8ZW1wdHk+
ClNUREVSUjogQVNTRVJUSU9OIEZBSUxFRDogbV9sYXlvdXRTdGF0ZURpc2FibGVDb3VudCA9PSAw
ClNUREVSUjogL1VzZXJzL2RyYi9kZXZlbC9XZWJLaXQvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5n
eXAvLi4vcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwKDg1NykgOiB2b2lkIFdlYkNvcmU6OlJlbmRl
clZpZXc6OnB1c2hMYXlvdXRTdGF0ZShXZWJDb3JlOjpSZW5kZXJPYmplY3QgKikKU1RERVJSOiAx
ICAgMHgyOTdiYzAwOCBXZWJDb3JlOjpSZW5kZXJWaWV3OjpwdXNoTGF5b3V0U3RhdGUoV2ViQ29y
ZTo6UmVuZGVyT2JqZWN0KikKU1RERVJSOiAyICAgMHgyOTdlZGRmMSBXZWJDb3JlOjpSZW5kZXJN
YXRoTUxCbG9jazo6Y29tcHV0ZUNoaWxkcmVuUHJlZmVycmVkTG9naWNhbEhlaWdodHMoKQpTVERF
UlI6IDMgICAweDI5N2YzZTIzIFdlYkNvcmU6OlJlbmRlck1hdGhNTFJvdzo6Y29tcHV0ZVByZWZl
cnJlZExvZ2ljYWxXaWR0aHMoKQpTVERFUlI6IDQgICAweDI5NTgxN2EyIFdlYkNvcmU6OlJlbmRl
ckJveDo6bWF4UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QKU1RERVJSOiA1ICAgMHgyOTZj
Y2IwNCBXZWJDb3JlOjpSZW5kZXJNYXJxdWVlOjpjb21wdXRlUG9zaXRpb24oV2ViQ29yZTo6RU1h
cnF1ZWVEaXJlY3Rpb24sIGJvb2wpClNUREVSUjogNiAgIDB4Mjk2Y2Q0MGEgV2ViQ29yZTo6UmVu
ZGVyTWFycXVlZTo6dXBkYXRlTWFycXVlZVBvc2l0aW9uKCkKU1RERVJSOiA3ICAgMHgyOTY1ODM5
OCBXZWJDb3JlOjpSZW5kZXJMYXllcjo6dXBkYXRlTGF5ZXJQb3NpdGlvbnNBZnRlclNjcm9sbCh1
bnNpZ25lZCBpbnQpClNUREVSUjogOCAgIDB4Mjk2NWUyY2UgV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OnNjcm9sbFRvKGludCwgaW50KQpTVERFUlI6IDkgICAweDI5NjYxNmZjIFdlYkNvcmU6OlJlbmRl
ckxheWVyOjpzZXRTY3JvbGxPZmZzZXQoV2ViQ29yZTo6SW50UG9pbnQgY29uc3QmKQpTVERFUlI6
IDEwICAweDI4MzE2NjY5IFdlYkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkNo
YW5nZWQoV2ViQ29yZTo6SW50UG9pbnQgY29uc3QmKQpTVERFUlI6IDExICAweDI4MzE2YjMxIFdl
YkNvcmU6OlNjcm9sbGFibGVBcmVhOjpzZXRTY3JvbGxPZmZzZXRGcm9tQW5pbWF0aW9uKFdlYkNv
cmU6OkludFBvaW50IGNvbnN0JikKU1RERVJSOiAxMiAgMHgyODMwOGUxYSBXZWJDb3JlOjpTY3Jv
bGxBbmltYXRvcjo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKCkKU1RERVJSOiAxMyAgMHgyODUzOWU2
OSBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6bm90aWZ5UG9zaXRpb25DaGFuZ2VkKCkKU1RE
RVJSOiAxNCAgMHgyODUzOWJkNyBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6aW1tZWRpYXRl
U2Nyb2xsVG8oV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdCYpClNUREVSUjogMTUgIDB4Mjg1Mzlh
YTQgV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbFRvT2Zmc2V0V2l0aG91dEFuaW1h
dGlvbihXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0JikKU1RERVJSOiAxNiAgMHgyODMxNjMyMCBX
ZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9uKFdl
YkNvcmU6OkZsb2F0UG9pbnQgY29uc3QmKQpTVERFUlI6IDE3ICAweDI5NjVkYzkxIFdlYkNvcmU6
OlJlbmRlckxheWVyOjpzY3JvbGxUb09mZnNldChXZWJDb3JlOjpJbnRTaXplIGNvbnN0JiwgV2Vi
Q29yZTo6UmVuZGVyTGF5ZXI6OlNjcm9sbE9mZnNldENsYW1waW5nKQpTVERFUlI6IDE4ICAweDI5
NTljMzAxIFdlYkNvcmU6OlJlbmRlckxheWVyOjpzY3JvbGxUb1hPZmZzZXQoaW50LCBXZWJDb3Jl
OjpSZW5kZXJMYXllcjo6U2Nyb2xsT2Zmc2V0Q2xhbXBpbmcpClNUREVSUjogMTkgIDB4Mjk1N2Q2
YWIgV2ViQ29yZTo6UmVuZGVyQm94OjpzdHlsZURpZENoYW5nZShXZWJDb3JlOjpTdHlsZURpZmZl
cmVuY2UsIFdlYkNvcmU6OlJlbmRlclN0eWxlIGNvbnN0KikKU1RERVJSOiAyMCAgMHgyOTRkN2I1
ZiBXZWJDb3JlOjpSZW5kZXJCbG9jazo6c3R5bGVEaWRDaGFuZ2UoV2ViQ29yZTo6U3R5bGVEaWZm
ZXJlbmNlLCBXZWJDb3JlOjpSZW5kZXJTdHlsZSBjb25zdCopClNUREVSUjogMjEgIDB4Mjk3MDZj
ZTggV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZXRTdHlsZShXVEY6OlBhc3NSZWZQdHI8V2ViQ29y
ZTo6UmVuZGVyU3R5bGU+KQpTVERFUlI6IDIyICAweDI5NzA2MzBjIFdlYkNvcmU6OlJlbmRlck9i
amVjdDo6c2V0QW5pbWF0YWJsZVN0eWxlKFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpSZW5kZXJT
dHlsZT4pClNUREVSUjogMjMgIDB4MjY4NTUwNTcgV2ViQ29yZTo6Tm9kZTo6c2V0UmVuZGVyU3R5
bGUoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJlbmRlclN0eWxlPikKU1RERVJSOiAyNCAgMHgy
NjdkZDU5NSBXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZShXZWJDb3JlOjpOb2RlOjpTdHls
ZUNoYW5nZSkKU1RERVJSOiAyNSAgMHgyNjdkZGExOCBXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNT
dHlsZShXZWJDb3JlOjpOb2RlOjpTdHlsZUNoYW5nZSkKU1RERVJSOiAyNiAgMHgyNjdkZGExOCBX
ZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZShXZWJDb3JlOjpOb2RlOjpTdHlsZUNoYW5nZSkK
U1RERVJSOiAyNyAgMHgyNjcxZDNmYyBXZWJDb3JlOjpEb2N1bWVudDo6cmVjYWxjU3R5bGUoV2Vi
Q29yZTo6Tm9kZTo6U3R5bGVDaGFuZ2UpClNUREVSUjogMjggIDB4MjY3MWRkMGQgV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQpTVERFUlI6IDI5ICAweDI2NzFkZjVkIFdl
YkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQpTVERFUlI6IDMwICAweDI5NjZiZDgyIFdl
YkNvcmU6OlJlbmRlckxheWVyOjpoaXRUZXN0KFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0IGNvbnN0
JiwgV2ViQ29yZTo6SGl0VGVzdExvY2F0aW9uIGNvbnN0JiwgV2ViQ29yZTo6SGl0VGVzdFJlc3Vs
dCYpClNUREVSUjogMzEgIDB4Mjk3YjZmNDIgV2ViQ29yZTo6UmVuZGVyVmlldzo6aGl0VGVzdChX
ZWJDb3JlOjpIaXRUZXN0UmVxdWVzdCBjb25zdCYsIFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbiBj
b25zdCYsIFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKQpTVERFUlI6IFs5NzY0MjotMTYwMzYzMTgw
ODozNTQ0OTc4NDM1NzgyMjc6RVJST1I6cHJvY2Vzc191dGlsX3Bvc2l4LmNjKDE0NCldIFJlY2Vp
dmVkIHNpZ25hbCAxMQpTVERFUlI6IAkwICAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAg
ICAgICAgMHgyNjk3M2YyZiBiYXNlOjpkZWJ1Zzo6U3RhY2tUcmFjZTo6U3RhY2tUcmFjZSgpICsg
NjMKU1RERVJSOiAJMSAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY5
NzNlY2IgYmFzZTo6ZGVidWc6OlN0YWNrVHJhY2U6OlN0YWNrVHJhY2UoKSArIDQzClNUREVSUjog
CTIgICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI2YTMxNDg3IGJhc2U6
Oihhbm9ueW1vdXMgbmFtZXNwYWNlKTo6U3RhY2tEdW1wU2lnbmFsSGFuZGxlcihpbnQsIF9fc2ln
aW5mbyosIF9fZGFyd2luX3Vjb250ZXh0KikgKyAyOTUKU1RERVJSOiAJMyAgIGxpYlN5c3RlbS5C
LmR5bGliICAgICAgICAgICAgICAgICAgIDB4OTU4ODQwNWIgX3NpZ3RyYW1wICsgNDMKU1RERVJS
OiAJNCAgID8/PyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDB4ZmZmZmZmZmYgMHgw
ICsgNDI5NDk2NzI5NQpTVERFUlI6IAk1ICAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAg
ICAgICAgMHgyOTdlZGRmMSBXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6Y29tcHV0ZUNoaWxk
cmVuUHJlZmVycmVkTG9naWNhbEhlaWdodHMoKSArIDI3MwpTVERFUlI6IAk2ICAgRHVtcFJlbmRl
clRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyOTdmM2UyMyBXZWJDb3JlOjpSZW5kZXJNYXRo
TUxSb3c6OmNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgKyAxNzkKU1RERVJSOiAJNyAg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjk1ODE3YTIgV2ViQ29yZTo6
UmVuZGVyQm94OjptYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdCArIDgyClNUREVSUjog
CTggICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI5NmNjYjA0IFdlYkNv
cmU6OlJlbmRlck1hcnF1ZWU6OmNvbXB1dGVQb3NpdGlvbihXZWJDb3JlOjpFTWFycXVlZURpcmVj
dGlvbiwgYm9vbCkgKyAyOTIKU1RERVJSOiAJOSAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAg
ICAgICAgICAgIDB4Mjk2Y2Q0MGEgV2ViQ29yZTo6UmVuZGVyTWFycXVlZTo6dXBkYXRlTWFycXVl
ZVBvc2l0aW9uKCkgKyAxNzAKU1RERVJSOiAJMTAgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAg
ICAgICAgICAgIDB4Mjk2NTgzOTggV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZUxheWVyUG9z
aXRpb25zQWZ0ZXJTY3JvbGwodW5zaWduZWQgaW50KSArIDQ1NgpTVERFUlI6IAkxMSAgRHVtcFJl
bmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyOTY1ZTJjZSBXZWJDb3JlOjpSZW5kZXJM
YXllcjo6c2Nyb2xsVG8oaW50LCBpbnQpICsgMzk4ClNUREVSUjogCTEyICBEdW1wUmVuZGVyVHJl
ZSAgICAgICAgICAgICAgICAgICAgICAweDI5NjYxNmZjIFdlYkNvcmU6OlJlbmRlckxheWVyOjpz
ZXRTY3JvbGxPZmZzZXQoV2ViQ29yZTo6SW50UG9pbnQgY29uc3QmKSArIDkyClNUREVSUjogCTEz
ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI4MzE2NjY5IFdlYkNvcmU6
OlNjcm9sbGFibGVBcmVhOjpzY3JvbGxQb3NpdGlvbkNoYW5nZWQoV2ViQ29yZTo6SW50UG9pbnQg
Y29uc3QmKSArIDM0NQpTVERFUlI6IAkxNCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAg
ICAgICAgMHgyODMxNmIzMSBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2V0U2Nyb2xsT2Zmc2V0
RnJvbUFuaW1hdGlvbihXZWJDb3JlOjpJbnRQb2ludCBjb25zdCYpICsgOTcKU1RERVJSOiAJMTUg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjgzMDhlMWEgV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3I6Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpICsgOTAKU1RERVJSOiAJMTYg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjg1MzllNjkgV2ViQ29yZTo6
U2Nyb2xsQW5pbWF0b3JNYWM6Om5vdGlmeVBvc2l0aW9uQ2hhbmdlZCgpICsgNTcKU1RERVJSOiAJ
MTcgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjg1MzliZDcgV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OmltbWVkaWF0ZVNjcm9sbFRvKFdlYkNvcmU6OkZsb2F0UG9p
bnQgY29uc3QmKSArIDI2MwpTVERFUlI6IAkxOCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAg
ICAgICAgICAgMHgyODUzOWFhNCBXZWJDb3JlOjpTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsVG9P
ZmZzZXRXaXRob3V0QW5pbWF0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3QmKSArIDEwMApT
VERFUlI6IAkxOSAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyODMxNjMy
MCBXZWJDb3JlOjpTY3JvbGxhYmxlQXJlYTo6c2Nyb2xsVG9PZmZzZXRXaXRob3V0QW5pbWF0aW9u
KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3QmKSArIDgwClNUREVSUjogCTIwICBEdW1wUmVuZGVy
VHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI5NjVkYzkxIFdlYkNvcmU6OlJlbmRlckxheWVy
OjpzY3JvbGxUb09mZnNldChXZWJDb3JlOjpJbnRTaXplIGNvbnN0JiwgV2ViQ29yZTo6UmVuZGVy
TGF5ZXI6OlNjcm9sbE9mZnNldENsYW1waW5nKSArIDI0MQpTVERFUlI6IAkyMSAgRHVtcFJlbmRl
clRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyOTU5YzMwMSBXZWJDb3JlOjpSZW5kZXJMYXll
cjo6c2Nyb2xsVG9YT2Zmc2V0KGludCwgV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OlNjcm9sbE9mZnNl
dENsYW1waW5nKSArIDExMwpTVERFUlI6IAkyMiAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAg
ICAgICAgICAgMHgyOTU3ZDZhYiBXZWJDb3JlOjpSZW5kZXJCb3g6OnN0eWxlRGlkQ2hhbmdlKFdl
YkNvcmU6OlN0eWxlRGlmZmVyZW5jZSwgV2ViQ29yZTo6UmVuZGVyU3R5bGUgY29uc3QqKSArIDkw
NwpTVERFUlI6IAkyMyAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyOTRk
N2I1ZiBXZWJDb3JlOjpSZW5kZXJCbG9jazo6c3R5bGVEaWRDaGFuZ2UoV2ViQ29yZTo6U3R5bGVE
aWZmZXJlbmNlLCBXZWJDb3JlOjpSZW5kZXJTdHlsZSBjb25zdCopICsgNzkKU1RERVJSOiAJMjQg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjk3MDZjZTggV2ViQ29yZTo6
UmVuZGVyT2JqZWN0OjpzZXRTdHlsZShXVEY6OlBhc3NSZWZQdHI8V2ViQ29yZTo6UmVuZGVyU3R5
bGU+KSArIDE1MjgKU1RERVJSOiAJMjUgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAg
ICAgIDB4Mjk3MDYzMGMgV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzZXRBbmltYXRhYmxlU3R5bGUo
V1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJlbmRlclN0eWxlPikgKyAxNzIKU1RERVJSOiAJMjYg
IER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY4NTUwNTcgV2ViQ29yZTo6
Tm9kZTo6c2V0UmVuZGVyU3R5bGUoV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OlJlbmRlclN0eWxl
PikgKyAxMDMKU1RERVJSOiAJMjcgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAg
IDB4MjY3ZGQ1OTUgV2ViQ29yZTo6RWxlbWVudDo6cmVjYWxjU3R5bGUoV2ViQ29yZTo6Tm9kZTo6
U3R5bGVDaGFuZ2UpICsgMTQ2MQpTVERFUlI6IAkyOCAgRHVtcFJlbmRlclRyZWUgICAgICAgICAg
ICAgICAgICAgICAgMHgyNjdkZGExOCBXZWJDb3JlOjpFbGVtZW50OjpyZWNhbGNTdHlsZShXZWJD
b3JlOjpOb2RlOjpTdHlsZUNoYW5nZSkgKyAyNjE2ClNUREVSUjogCTI5ICBEdW1wUmVuZGVyVHJl
ZSAgICAgICAgICAgICAgICAgICAgICAweDI2N2RkYTE4IFdlYkNvcmU6OkVsZW1lbnQ6OnJlY2Fs
Y1N0eWxlKFdlYkNvcmU6Ok5vZGU6OlN0eWxlQ2hhbmdlKSArIDI2MTYKU1RERVJSOiAJMzAgIER1
bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY3MWQzZmMgV2ViQ29yZTo6RG9j
dW1lbnQ6OnJlY2FsY1N0eWxlKFdlYkNvcmU6Ok5vZGU6OlN0eWxlQ2hhbmdlKSArIDEyNzYKU1RE
RVJSOiAJMzEgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY3MWRkMGQg
V2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKSArIDQ3NwpTVERFUlI6IAkz
MiAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyNjcxZGY1ZCBXZWJDb3Jl
OjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkgKyAyMDUKU1RERVJSOiAJMzMgIER1bXBSZW5kZXJU
cmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjk2NmJkODIgV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmhpdFRlc3QoV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3QgY29uc3QmLCBXZWJDb3JlOjpIaXRUZXN0
TG9jYXRpb24gY29uc3QmLCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JikgKyAyMTAKU1RERVJSOiAJ
MzQgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4Mjk3YjZmNDIgV2ViQ29y
ZTo6UmVuZGVyVmlldzo6aGl0VGVzdChXZWJDb3JlOjpIaXRUZXN0UmVxdWVzdCBjb25zdCYsIFdl
YkNvcmU6OkhpdFRlc3RMb2NhdGlvbiBjb25zdCYsIFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKSAr
IDk4ClNUREVSUjogCTM1ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI5
N2I2ZWIyIFdlYkNvcmU6OlJlbmRlclZpZXc6OmhpdFRlc3QoV2ViQ29yZTo6SGl0VGVzdFJlcXVl
c3QgY29uc3QmLCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JikgKyA5OApTVERFUlI6IAkzNiAgRHVt
cFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyNjcyM2JhOCBXZWJDb3JlOjpEb2N1
bWVudDo6cHJlcGFyZU1vdXNlRXZlbnQoV2ViQ29yZTo6SGl0VGVzdFJlcXVlc3QgY29uc3QmLCBX
ZWJDb3JlOjpGcmFjdGlvbmFsTGF5b3V0UG9pbnQgY29uc3QmLCBXZWJDb3JlOjpQbGF0Zm9ybU1v
dXNlRXZlbnQgY29uc3QmKSArIDQwOApTVERFUlI6IAkzNyAgRHVtcFJlbmRlclRyZWUgICAgICAg
ICAgICAgICAgICAgICAgMHgyOTI5MTllNCBXZWJDb3JlOjpFdmVudEhhbmRsZXI6OnByZXBhcmVN
b3VzZUV2ZW50KFdlYkNvcmU6OkhpdFRlc3RSZXF1ZXN0IGNvbnN0JiwgV2ViQ29yZTo6UGxhdGZv
cm1Nb3VzZUV2ZW50IGNvbnN0JikgKyAzNzIKU1RERVJSOiAJMzggIER1bXBSZW5kZXJUcmVlICAg
ICAgICAgICAgICAgICAgICAgIDB4MjkyOTIwOWUgV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5k
bGVNb3VzZU1vdmVFdmVudChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQgY29uc3QmLCBXZWJD
b3JlOjpIaXRUZXN0UmVzdWx0KiwgYm9vbCkgKyA5NDIKU1RERVJSOiAJMzkgIER1bXBSZW5kZXJU
cmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjkyOTFiMDcgV2ViQ29yZTo6RXZlbnRIYW5kbGVy
Ojptb3VzZU1vdmVkKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudCBjb25zdCYpICsgMjQ3ClNU
REVSUjogCTQwICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI5Mjg5NTMw
IFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6ZmFrZU1vdXNlTW92ZUV2ZW50VGltZXJGaXJlZChXZWJD
b3JlOjpUaW1lcjxXZWJDb3JlOjpFdmVudEhhbmRsZXI+KikgKyA2ODgKU1RERVJSOiAJNDEgIER1
bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjkyYWM4OTcgV2ViQ29yZTo6VGlt
ZXI8V2ViQ29yZTo6RXZlbnRIYW5kbGVyPjo6ZmlyZWQoKSArIDEzNQpTVERFUlI6IAk0MiAgRHVt
cFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyODMyYTk2YiBXZWJDb3JlOjpUaHJl
YWRUaW1lcnM6OnNoYXJlZFRpbWVyRmlyZWRJbnRlcm5hbCgpICsgMzQ3ClNUREVSUjogCTQzICBE
dW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDI4MzJhNmVmIFdlYkNvcmU6OlRo
cmVhZFRpbWVyczo6c2hhcmVkVGltZXJGaXJlZCgpICsgNDcKU1RERVJSOiAJNDQgIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MmE0YmRkNTkgd2Via2l0X2dsdWU6OldlYktp
dFBsYXRmb3JtU3VwcG9ydEltcGw6OkRvVGltZW91dCgpICsgNzMKU1RERVJSOiAJNDUgIER1bXBS
ZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MmE0YmU5NTQgYmFzZTo6aW50ZXJuYWw6
OlJ1bm5hYmxlQWRhcHRlcjx2b2lkICh3ZWJraXRfZ2x1ZTo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0
SW1wbDo6KikoKT46OlJ1bih3ZWJraXRfZ2x1ZTo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0SW1wbCop
ICsgMTMyClNUREVSUjogCTQ2ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAw
eDJhNGJlODUzIGJhc2U6OmludGVybmFsOjpJbnZva2VIZWxwZXI8ZmFsc2UsIHZvaWQsIGJhc2U6
OmludGVybmFsOjpSdW5uYWJsZUFkYXB0ZXI8dm9pZCAod2Via2l0X2dsdWU6OldlYktpdFBsYXRm
b3JtU3VwcG9ydEltcGw6OiopKCk+LCB2b2lkICgpKHdlYmtpdF9nbHVlOjpXZWJLaXRQbGF0Zm9y
bVN1cHBvcnRJbXBsKik+OjpNYWtlSXRTbyhiYXNlOjppbnRlcm5hbDo6UnVubmFibGVBZGFwdGVy
PHZvaWQgKHdlYmtpdF9nbHVlOjpXZWJLaXRQbGF0Zm9ybVN1cHBvcnRJbXBsOjoqKSgpPiwgd2Vi
a2l0X2dsdWU6OldlYktpdFBsYXRmb3JtU3VwcG9ydEltcGwqKSArIDY3ClNUREVSUjogCTQ3ICBE
dW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAgICAgICAweDJhNGJlNzkzIGJhc2U6OmludGVy
bmFsOjpJbnZva2VyPDEsIGJhc2U6OmludGVybmFsOjpCaW5kU3RhdGU8YmFzZTo6aW50ZXJuYWw6
OlJ1bm5hYmxlQWRhcHRlcjx2b2lkICh3ZWJraXRfZ2x1ZTo6V2ViS2l0UGxhdGZvcm1TdXBwb3J0
SW1wbDo6KikoKT4sIHZvaWQgKCkod2Via2l0X2dsdWU6OldlYktpdFBsYXRmb3JtU3VwcG9ydElt
cGwqKSwgdm9pZCAoKShiYXNlOjppbnRlcm5hbDo6VW5yZXRhaW5lZFdyYXBwZXI8d2Via2l0X2ds
dWU6OldlYktpdFBsYXRmb3JtU3VwcG9ydEltcGw+KT4sIHZvaWQgKCkod2Via2l0X2dsdWU6Oldl
YktpdFBsYXRmb3JtU3VwcG9ydEltcGwqKT46OlJ1bihiYXNlOjppbnRlcm5hbDo6QmluZFN0YXRl
QmFzZSopICsgMTE1ClNUREVSUjogCTQ4ICBEdW1wUmVuZGVyVHJlZSAgICAgICAgICAgICAgICAg
ICAgICAweDI2OWUwMGZiIGJhc2U6OkNhbGxiYWNrPHZvaWQgKCkoKT46OlJ1bigpIGNvbnN0ICsg
NzUKU1RERVJSOiAJNDkgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjZh
YjVhNTAgYmFzZTo6VGltZXI6OlJ1blNjaGVkdWxlZFRhc2soKSArIDM2OApTVERFUlI6IAk1MCAg
RHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyNmFiNWM1OSBiYXNlOjpCYXNl
VGltZXJUYXNrSW50ZXJuYWw6OlJ1bigpICsgODkKU1RERVJSOiAJNTEgIER1bXBSZW5kZXJUcmVl
ICAgICAgICAgICAgICAgICAgICAgIDB4MjZhYjY1MjQgYmFzZTo6aW50ZXJuYWw6OlJ1bm5hYmxl
QWRhcHRlcjx2b2lkIChiYXNlOjpCYXNlVGltZXJUYXNrSW50ZXJuYWw6OiopKCk+OjpSdW4oYmFz
ZTo6QmFzZVRpbWVyVGFza0ludGVybmFsKikgKyAxMzIKU1RERVJSOiAJNTIgIER1bXBSZW5kZXJU
cmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjZhYjY0MjMgYmFzZTo6aW50ZXJuYWw6Okludm9r
ZUhlbHBlcjxmYWxzZSwgdm9pZCwgYmFzZTo6aW50ZXJuYWw6OlJ1bm5hYmxlQWRhcHRlcjx2b2lk
IChiYXNlOjpCYXNlVGltZXJUYXNrSW50ZXJuYWw6OiopKCk+LCB2b2lkICgpKGJhc2U6OkJhc2VU
aW1lclRhc2tJbnRlcm5hbCopPjo6TWFrZUl0U28oYmFzZTo6aW50ZXJuYWw6OlJ1bm5hYmxlQWRh
cHRlcjx2b2lkIChiYXNlOjpCYXNlVGltZXJUYXNrSW50ZXJuYWw6OiopKCk+LCBiYXNlOjpCYXNl
VGltZXJUYXNrSW50ZXJuYWwqKSArIDY3ClNUREVSUjogCTUzICBEdW1wUmVuZGVyVHJlZSAgICAg
ICAgICAgICAgICAgICAgICAweDI2YWI2MzVlIGJhc2U6OmludGVybmFsOjpJbnZva2VyPDEsIGJh
c2U6OmludGVybmFsOjpCaW5kU3RhdGU8YmFzZTo6aW50ZXJuYWw6OlJ1bm5hYmxlQWRhcHRlcjx2
b2lkIChiYXNlOjpCYXNlVGltZXJUYXNrSW50ZXJuYWw6OiopKCk+LCB2b2lkICgpKGJhc2U6OkJh
c2VUaW1lclRhc2tJbnRlcm5hbCopLCB2b2lkICgpKGJhc2U6OmludGVybmFsOjpPd25lZFdyYXBw
ZXI8YmFzZTo6QmFzZVRpbWVyVGFza0ludGVybmFsPik+LCB2b2lkICgpKGJhc2U6OkJhc2VUaW1l
clRhc2tJbnRlcm5hbCopPjo6UnVuKGJhc2U6OmludGVybmFsOjpCaW5kU3RhdGVCYXNlKikgKyAx
MTAKU1RERVJSOiAJNTQgIER1bXBSZW5kZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY5
ZTAwZmIgYmFzZTo6Q2FsbGJhY2s8dm9pZCAoKSgpPjo6UnVuKCkgY29uc3QgKyA3NQpTVERFUlI6
IAk1NSAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyNjlkZDY1NyBNZXNz
YWdlTG9vcDo6UnVuVGFzayhiYXNlOjpQZW5kaW5nVGFzayBjb25zdCYpICsgMTE1OQpTVERFUlI6
IAk1NiAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgyNjlkZGI1MiBNZXNz
YWdlTG9vcDo6RGVmZXJPclJ1blBlbmRpbmdUYXNrKGJhc2U6OlBlbmRpbmdUYXNrIGNvbnN0Jikg
KyA5OApTVERFUlI6IAk1NyAgRHVtcFJlbmRlclRyZWUgICAgICAgICAgICAgICAgICAgICAgMHgy
NjlkZGQ1MiBNZXNzYWdlTG9vcDo6RG9Xb3JrKCkgKyAzMjIKU1RERVJSOiAJNTggIER1bXBSZW5k
ZXJUcmVlICAgICAgICAgICAgICAgICAgICAgIDB4MjY5NDljY2IgYmFzZTo6TWVzc2FnZVB1bXBD
RlJ1bkxvb3BCYXNlOjpSdW5Xb3JrKCkgKyAxMDcKU1RERVJSOiAJNTkgIER1bXBSZW5kZXJUcmVl
ICAgICAgICAgICAgICAgICAgICAgIDB4MjY5NDk0ODIgYmFzZTo6TWVzc2FnZVB1bXBDRlJ1bkxv
b3BCYXNlOjpSdW5Xb3JrU291cmNlKHZvaWQqKSArIDUwClNUREVSUjogCTYwICBDb3JlRm91bmRh
dGlvbiAgICAgICAgICAgICAgICAgICAgICAweDlhYTY1NDJiIF9fQ0ZSdW5Mb29wRG9Tb3VyY2Vz
MCArIDE1NjMKU1RERVJSOiAJNjEgIENvcmVGb3VuZGF0aW9uICAgICAgICAgICAgICAgICAgICAg
IDB4OWFhNjJlZWYgX19DRlJ1bkxvb3BSdW4gKyAxMDcxClNUREVSUjogYXg6IGJiYWRiZWVmLCBi
eDogMmJjNjJhMDAsIGN4OiA1M2FjODU5NywgZHg6IDUzYWM4NTk3ClNUREVSUjogZGk6IDJhZWUy
MDFkLCBzaTogMmFlZTFmZGEsIGJwOiBiZmZmYmMwOCwgc3A6IGJmZmZiYmMwLCBzczogMWYsIGZs
YWdzOiAxMDI4NgpTVERFUlI6IGlwOiAyOTdiYzAxMiwgY3M6IDE3LCBkczogMWYsIGVzOiAxZiwg
ZnM6IDAsIGdzOiAzNwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>171064</attachid>
            <date>2012-10-26 17:48:31 -0700</date>
            <delta_ts>2012-10-27 11:28:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-99796-20121026174702.patch</filename>
            <type>text/plain</type>
            <size>3961</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMjcxMykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTEwLTI2ICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIEFTU0VSVElPTiBGQUlM
RUQ6IG1fbmV4dCBpbiBMYXlvdXRTdGF0ZS5jcHAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk5Nzk2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQmVmb3JlIFJlbmRlck1hdGhNTEJsb2NrOjpjb21wdXRlQ2hp
bGRyZW5QcmVmZXJyZWRMb2dpY2FsSGVpZ2h0cyBjYWxscyBjaGlsZC0+bGF5b3V0SWZOZWVkZWQo
KSwKKyAgICAgICAgaXQgbXVzdCBlbnN1cmUgYSBsYXlvdXRTdGF0ZSBleGlzdHMuIFdlIGRpc2Fi
bGUgaXQgaW4gYW55IGNhc2UsIHNpbmNlIHdlIGFyZSBqdXN0IGNhbGN1bGF0aW5nCisgICAgICAg
IG1ldHJpY3MgaGVyZSwgYW5kIHRoZSBmaW5hbCBsYXlvdXQgbWF5IHdlbGwgaGFwcGVuIGFnYWlu
LgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gSSBkb24ndCBrbm93IGhvdyB0byBjcmVhdGUgYW4g
YXV0b21hdGVkIHRlc3QgZm9yIHRoaXMuIFRoZSBjcmFzaGVzIHVzZXJzIGFyZQorICAgICAgICBz
ZWVpbmcgYXJlIGZsYWt5LgorCisgICAgICAgICogcmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRo
TUxCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJNYXRoTUxCbG9jazo6Y29tcHV0
ZUNoaWxkcmVuUHJlZmVycmVkTG9naWNhbEhlaWdodHMpOgorCiAyMDEyLTEwLTI2ICBTaGVyaWZm
IEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTMyNjk1LgpJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL21h
dGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL21hdGhtbC9SZW5kZXJNYXRoTUxCbG9jay5jcHAJKHJldmlzaW9uIDEzMjE3OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9tYXRobWwvUmVuZGVyTWF0aE1MQmxvY2suY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAKICNpbmNsdWRlICJHcmFwaGljc0Nv
bnRleHQuaCIKICNpbmNsdWRlICJNYXRoTUxOYW1lcy5oIgorI2luY2x1ZGUgIlJlbmRlclZpZXcu
aCIKIAogI2lmIEVOQUJMRShERUJVR19NQVRIX0xBWU9VVCkKICNpbmNsdWRlICJQYWludEluZm8u
aCIKQEAgLTE2NSwyNSArMTY2LDM1IEBAIHZvaWQgUmVuZGVyTWF0aE1MQmxvY2s6OmNvbXB1dGVD
aGlsZHJlblAKICAgICAvLyBFbnN1cmUgYSBmdWxsIHJlcGFpbnQgd2lsbCBoYXBwZW4gYWZ0ZXIg
bGF5b3V0IGZpbmlzaGVzLgogICAgIHNldE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7
CiAgICAgCi0gICAgTGF5b3V0VW5pdCBvbGRBdmFpbGFibGVMb2dpY2FsV2lkdGggPSBhdmFpbGFi
bGVMb2dpY2FsV2lkdGgoKTsKLSAgICBzZXRMb2dpY2FsV2lkdGgoY0xhcmdlTG9naWNhbFdpZHRo
KTsKLSAgICAKLSAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNo
aWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAgIGlmICghY2hpbGQt
PmlzQm94KCkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICBSZW5kZXJWaWV3KiByZW5kZXJW
aWV3ID0gdmlldygpOworICAgIGJvb2wgaGFkTGF5b3V0U3RhdGUgPSByZW5kZXJWaWV3LT5sYXlv
dXRTdGF0ZSgpOworICAgIGlmICghaGFkTGF5b3V0U3RhdGUpCisgICAgICAgIHJlbmRlclZpZXct
PnB1c2hMYXlvdXRTdGF0ZSh0aGlzKTsKKyAgICB7CisgICAgICAgIExheW91dFN0YXRlRGlzYWJs
ZXIgbGF5b3V0U3RhdGVEaXNhYmxlcihyZW5kZXJWaWV3KTsKICAgICAgICAgCi0gICAgICAgIC8v
IEJlY2F1c2Ugb3VyIHdpZHRoIGNoYW5nZWQsIHxjaGlsZHwgbWF5IG5lZWQgbGF5b3V0LgotICAg
ICAgICBpZiAoY2hpbGQtPm1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpID4gb2xkQXZhaWxhYmxl
TG9naWNhbFdpZHRoKQotICAgICAgICAgICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KHRydWUsIE1h
cmtPbmx5VGhpcyk7CisgICAgICAgIExheW91dFVuaXQgb2xkQXZhaWxhYmxlTG9naWNhbFdpZHRo
ID0gYXZhaWxhYmxlTG9naWNhbFdpZHRoKCk7CisgICAgICAgIHNldExvZ2ljYWxXaWR0aChjTGFy
Z2VMb2dpY2FsV2lkdGgpOwogICAgICAgICAKLSAgICAgICAgUmVuZGVyTWF0aE1MQmxvY2sqIGNo
aWxkTWF0aE1MQmxvY2sgPSBjaGlsZC0+aXNSZW5kZXJNYXRoTUxCbG9jaygpID8gdG9SZW5kZXJN
YXRoTUxCbG9jayhjaGlsZCkgOiAwOwotICAgICAgICBpZiAoY2hpbGRNYXRoTUxCbG9jayAmJiAh
Y2hpbGRNYXRoTUxCbG9jay0+aXNQcmVmZXJyZWRMb2dpY2FsSGVpZ2h0RGlydHkoKSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAvLyBMYXlvdXQgb3VyIGNoaWxkIHRvIGNvbXB1dGUg
aXRzIHByZWZlcnJlZCBsb2dpY2FsIGhlaWdodC4KLSAgICAgICAgY2hpbGQtPmxheW91dElmTmVl
ZGVkKCk7Ci0gICAgICAgIGlmIChjaGlsZE1hdGhNTEJsb2NrKQotICAgICAgICAgICAgY2hpbGRN
YXRoTUxCbG9jay0+c2V0UHJlZmVycmVkTG9naWNhbEhlaWdodChjaGlsZE1hdGhNTEJsb2NrLT5s
b2dpY2FsSGVpZ2h0KCkpOworICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2hpbGQgPSBmaXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7CisgICAgICAg
ICAgICBpZiAoIWNoaWxkLT5pc0JveCgpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgCisgICAgICAgICAgICAvLyBCZWNhdXNlIG91ciB3aWR0aCBjaGFuZ2VkLCB8Y2hp
bGR8IG1heSBuZWVkIGxheW91dC4KKyAgICAgICAgICAgIGlmIChjaGlsZC0+bWF4UHJlZmVycmVk
TG9naWNhbFdpZHRoKCkgPiBvbGRBdmFpbGFibGVMb2dpY2FsV2lkdGgpCisgICAgICAgICAgICAg
ICAgY2hpbGQtPnNldE5lZWRzTGF5b3V0KHRydWUsIE1hcmtPbmx5VGhpcyk7CisgICAgICAgICAg
ICAKKyAgICAgICAgICAgIFJlbmRlck1hdGhNTEJsb2NrKiBjaGlsZE1hdGhNTEJsb2NrID0gY2hp
bGQtPmlzUmVuZGVyTWF0aE1MQmxvY2soKSA/IHRvUmVuZGVyTWF0aE1MQmxvY2soY2hpbGQpIDog
MDsKKyAgICAgICAgICAgIGlmIChjaGlsZE1hdGhNTEJsb2NrICYmICFjaGlsZE1hdGhNTEJsb2Nr
LT5pc1ByZWZlcnJlZExvZ2ljYWxIZWlnaHREaXJ0eSgpKQorICAgICAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICAgICAgLy8gTGF5b3V0IG91ciBjaGlsZCB0byBjb21wdXRlIGl0cyBwcmVm
ZXJyZWQgbG9naWNhbCBoZWlnaHQuCisgICAgICAgICAgICBjaGlsZC0+bGF5b3V0SWZOZWVkZWQo
KTsKKyAgICAgICAgICAgIGlmIChjaGlsZE1hdGhNTEJsb2NrKQorICAgICAgICAgICAgICAgIGNo
aWxkTWF0aE1MQmxvY2stPnNldFByZWZlcnJlZExvZ2ljYWxIZWlnaHQoY2hpbGRNYXRoTUxCbG9j
ay0+bG9naWNhbEhlaWdodCgpKTsKKyAgICAgICAgfQogICAgIH0KKyAgICBpZiAoIWhhZExheW91
dFN0YXRlKQorICAgICAgICByZW5kZXJWaWV3LT5wb3BMYXlvdXRTdGF0ZSh0aGlzKTsKIH0KIAog
TGF5b3V0VW5pdCBSZW5kZXJNYXRoTUxCbG9jazo6cHJlZmVycmVkTG9naWNhbEhlaWdodEFmdGVy
U2l6aW5nKFJlbmRlck9iamVjdCogY2hpbGQpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>