<?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>103510</bug_id>
          
          <creation_ts>2012-11-28 05:27:39 -0800</creation_ts>
          <short_desc>Reduce the children repaints when moved multiple times during the layout</short_desc>
          <delta_ts>2012-12-05 03:29:50 -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>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>
          
          <blocked>62048</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>777790</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-28 05:27:39 -0800</bug_when>
    <thetext>We could cache the children positions before the layout and move to the final position after the layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777796</commentid>
    <comment_count>1</comment_count>
      <attachid>176463</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-28 05:33:56 -0800</bug_when>
    <thetext>Created attachment 176463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778024</commentid>
    <comment_count>2</comment_count>
      <attachid>176463</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-28 10:20:02 -0800</bug_when>
    <thetext>Comment on attachment 176463
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        No new tests. Covered by existing tests in css3/flexbox.

Can you make a repaint test that shows the improvement?

&gt; Source/WebCore/rendering/RenderFlexibleBox.h:81
&gt; +    typedef WTF::HashMap&lt;const RenderBox*, LayoutRect&gt; ChildrenFrameRect;

Can we use a Vector&lt;LayoutRect&gt; instead of a HashMap?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>778774</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-29 00:33:37 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 176463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        No new tests. Covered by existing tests in css3/flexbox.
&gt; 
&gt; Can you make a repaint test that shows the improvement?

Sure, I&apos;ll try.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.h:81
&gt; &gt; +    typedef WTF::HashMap&lt;const RenderBox*, LayoutRect&gt; ChildrenFrameRect;
&gt; 
&gt; Can we use a Vector&lt;LayoutRect&gt; instead of a HashMap?

I used a hash map, because I&apos;m iterating the children using the flexbox order, I&apos;m not sure if it&apos;s important to repaint in that order, though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779123</commentid>
    <comment_count>4</comment_count>
      <attachid>176463</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-29 10:04:34 -0800</bug_when>
    <thetext>Comment on attachment 176463
Patch

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

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:385
&gt; +        if (!selfNeedsLayout() &amp;&amp; child-&gt;checkForRepaintDuringLayout())
&gt; +            child-&gt;repaintDuringLayoutIfMoved(childrenOldRects.get(child));

We should also make sure that the old position is different from the current position before repainting.

&gt;&gt;&gt; Source/WebCore/rendering/RenderFlexibleBox.h:81
&gt;&gt;&gt; +    typedef WTF::HashMap&lt;const RenderBox*, LayoutRect&gt; ChildrenFrameRect;
&gt;&gt; 
&gt;&gt; Can we use a Vector&lt;LayoutRect&gt; instead of a HashMap?
&gt; 
&gt; I used a hash map, because I&apos;m iterating the children using the flexbox order, I&apos;m not sure if it&apos;s important to repaint in that order, though.

That&apos;s a good point, we have to iterate the children using the flexbox order.  The existing order-painting.html test might cover this?  Should be easy to test.

I guess we don&apos;t have the order iterator when you saved the child boxes. Hmm, I think we could save the child boxes right before layoutFlexItems() and I think this will still work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>779847</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-29 23:27:23 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 176463 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176463&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:385
&gt; &gt; +        if (!selfNeedsLayout() &amp;&amp; child-&gt;checkForRepaintDuringLayout())
&gt; &gt; +            child-&gt;repaintDuringLayoutIfMoved(childrenOldRects.get(child));
&gt; 
&gt; We should also make sure that the old position is different from the current position before repainting.

That check is already done by repaintDuringLayoutIfMoved().

&gt; &gt;&gt;&gt; Source/WebCore/rendering/RenderFlexibleBox.h:81
&gt; &gt;&gt;&gt; +    typedef WTF::HashMap&lt;const RenderBox*, LayoutRect&gt; ChildrenFrameRect;
&gt; &gt;&gt; 
&gt; &gt;&gt; Can we use a Vector&lt;LayoutRect&gt; instead of a HashMap?
&gt; &gt; 
&gt; &gt; I used a hash map, because I&apos;m iterating the children using the flexbox order, I&apos;m not sure if it&apos;s important to repaint in that order, though.
&gt; 
&gt; That&apos;s a good point, we have to iterate the children using the flexbox order.  The existing order-painting.html test might cover this?  Should be easy to test.
&gt; 
&gt; I guess we don&apos;t have the order iterator when you saved the child boxes. Hmm, I think we could save the child boxes right before layoutFlexItems() and I think this will still work.

Right, I&apos;ll try that way. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780055</commentid>
    <comment_count>6</comment_count>
      <attachid>176952</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-11-30 05:55:55 -0800</bug_when>
    <thetext>Created attachment 176952
Updated patch

Use a Vector instead of a hash map and include a repaint test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780237</commentid>
    <comment_count>7</comment_count>
      <attachid>176952</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-11-30 10:57:33 -0800</bug_when>
    <thetext>Comment on attachment 176952
Updated patch

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

&gt; LayoutTests/css3/flexbox/repaint-column-reverse.html:23
&gt; +    if (window.testRunner) {
&gt; +        testRunner.waitUntilDone();
&gt; +        testRunner.display();

Please add testRunner.dumpAsText(true) so we get the pixel result, but no render tree dump which isn&apos;t important for this test.

&gt; LayoutTests/css3/flexbox/repaint-column-reverse.html:29
&gt; +        document.body.appendChild(document.createTextNode(
&gt; +            &quot;This test checks that for flex items that are moved multiple times during the layout &quot;
&gt; +            + &quot;only the initial and final positions are repainted. Only the blue flex item should be repainted &quot;
&gt; +            + &quot;after changing its position. If the other flex items are repainted, this test fails.&quot;));
&gt; +    }

I would always include this text. It makes it easier for gardeners.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:395
&gt; +        childIndex++;

Nit: ++childIndex

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:735
&gt; +    iterator.first();

Ah right, previously the constructor would do this for us. Can we also remove the call to first() in the OrderIterator constructor?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781293</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-03 03:24:37 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 176952 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=176952&amp;action=review

Thanks for the review.

&gt; &gt; LayoutTests/css3/flexbox/repaint-column-reverse.html:23
&gt; &gt; +    if (window.testRunner) {
&gt; &gt; +        testRunner.waitUntilDone();
&gt; &gt; +        testRunner.display();
&gt; 
&gt; Please add testRunner.dumpAsText(true) so we get the pixel result, but no render tree dump which isn&apos;t important for this test.

Sure.

&gt; &gt; LayoutTests/css3/flexbox/repaint-column-reverse.html:29
&gt; &gt; +        document.body.appendChild(document.createTextNode(
&gt; &gt; +            &quot;This test checks that for flex items that are moved multiple times during the layout &quot;
&gt; &gt; +            + &quot;only the initial and final positions are repainted. Only the blue flex item should be repainted &quot;
&gt; &gt; +            + &quot;after changing its position. If the other flex items are repainted, this test fails.&quot;));
&gt; &gt; +    }
&gt; 
&gt; I would always include this text. It makes it easier for gardeners.

Ok, I was trying to avoid adding text to a pixel test, I won&apos;t be able to add the ref image indeed, because my system renders font slightly different.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:395
&gt; &gt; +        childIndex++;
&gt; 
&gt; Nit: ++childIndex

Ok.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:735
&gt; &gt; +    iterator.first();
&gt; 
&gt; Ah right, previously the constructor would do this for us. Can we also remove the call to first() in the OrderIterator constructor?

I&apos;ll check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781364</commentid>
    <comment_count>9</comment_count>
      <attachid>177236</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-03 05:27:27 -0800</bug_when>
    <thetext>Created attachment 177236
Patch for landing

Addressed review comments. I haven&apos;t included the text in the test in the end to avoid problems with text rendering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781371</commentid>
    <comment_count>10</comment_count>
      <attachid>177239</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-03 05:39:16 -0800</bug_when>
    <thetext>Created attachment 177239
Patch for landing

Forgot to include the png in the diff, sorry.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781609</commentid>
    <comment_count>11</comment_count>
      <attachid>177239</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 10:34:53 -0800</bug_when>
    <thetext>Comment on attachment 177239
Patch for landing

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

Looks pretty good. Needs a couple small improvements.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:336
&gt; +    WTF::Vector&lt;LayoutRect&gt; childrenOldRects;

Should be just Vector. Not WTF::Vector. Also, we should choose some amount of inline capacity to cut down on memory allocation and make performance better. A number large enough that it’s often larger than the number of children, but not so large that we use a ton of stack space.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:370
&gt; +void RenderFlexibleBox::childrenFrameRects(WTF::Vector&lt;LayoutRect&gt;&amp; childrenFrameRects)

No WTF prefix needed here.

A function like this that uses an out parameter should have “get” in its name. Or “append” to make clear its contract is that it appends to an existing vector.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781610</commentid>
    <comment_count>12</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-03 10:35:35 -0800</bug_when>
    <thetext>Syntax for inline capacity is Vector&lt;LayoutRect, 5&gt;, where 5 is the inline capacity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>781713</commentid>
    <comment_count>13</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-12-03 11:38:13 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; Ok, I was trying to avoid adding text to a pixel test, I won&apos;t be able to add the ref image indeed, because my system renders font slightly different.

Oh, I see.  Ok, keeping the text out of the test is fine.  It may also avoid having to generate separate results for different versions of OS X as anti-aliasing settings change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782348</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-04 01:08:41 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 177239 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=177239&amp;action=review
&gt; 
&gt; Looks pretty good. Needs a couple small improvements.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:336
&gt; &gt; +    WTF::Vector&lt;LayoutRect&gt; childrenOldRects;
&gt; 
&gt; Should be just Vector. Not WTF::Vector. Also, we should choose some amount of inline capacity to cut down on memory allocation and make performance better. A number large enough that it’s often larger than the number of children, but not so large that we use a ton of stack space.

This is a good point, we should probably use the same number for the childSizes vector. I think we could use 8. 

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:370
&gt; &gt; +void RenderFlexibleBox::childrenFrameRects(WTF::Vector&lt;LayoutRect&gt;&amp; childrenFrameRects)
&gt; 
&gt; No WTF prefix needed here.

Yes, I thought the same, but I saw the WTF prefix was used everywhere in RenderFlexibleBox, so I used it for consistency. I&apos;ll remove it.

&gt; A function like this that uses an out parameter should have “get” in its name. Or “append” to make clear its contract is that it appends to an existing vector.

Ok, I&apos;ll use add or append then, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782397</commentid>
    <comment_count>15</comment_count>
      <attachid>177453</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-04 02:12:29 -0800</bug_when>
    <thetext>Created attachment 177453
Updated patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782663</commentid>
    <comment_count>16</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-04 10:15:10 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; I saw the WTF prefix was used everywhere in RenderFlexibleBox, so I used it for consistency.

Someone should fix that mistake in RenderFlexibleBox.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782666</commentid>
    <comment_count>17</comment_count>
      <attachid>177453</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2012-12-04 10:18:54 -0800</bug_when>
    <thetext>Comment on attachment 177453
Updated patch

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

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:338
&gt; +    ChildrenFrameRects childrenOldRects;
&gt; +    appendChildrenFrameRects(childrenOldRects);
&gt;      layoutFlexItems(*m_orderIterator, lineContexts);

It’s strange that layoutFlexItems receives the iterator as an argument, but appendChildrenFrameRects and repaintChildrenDuringLayoutIfMoved both get the iterator directly from the data member. The three functions should do this consistently.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:396
&gt; +}

I think we should add this here:

    ASSERT(childIndex == childrenOldRects.size());

&gt; Source/WebCore/rendering/RenderFlexibleBox.h:81
&gt; +    typedef Vector&lt;LayoutRect, 8&gt; ChildrenFrameRects;

Needs a comment explaining where the number 8 came from.

I think the name ChildFrameRects would be better. Since rects is plural, children doesn’t also need to be plural. In English it would be &quot;child frame rectangles&quot; not &quot;children frame rectangles&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>782706</commentid>
    <comment_count>18</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-12-04 10:51:35 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:338
&gt; &gt; +    ChildrenFrameRects childrenOldRects;
&gt; &gt; +    appendChildrenFrameRects(childrenOldRects);
&gt; &gt;      layoutFlexItems(*m_orderIterator, lineContexts);
&gt; 
&gt; It’s strange that layoutFlexItems receives the iterator as an argument, but appendChildrenFrameRects and repaintChildrenDuringLayoutIfMoved both get the iterator directly from the data member. The three functions should do this consistently.

We should change layoutFlexItems, et al, to always use the member. It didn&apos;t used to be a member and we just never did the cleanup to stop passing it as an argument.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783540</commentid>
    <comment_count>19</comment_count>
      <attachid>177453</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-05 01:56:49 -0800</bug_when>
    <thetext>Comment on attachment 177453
Updated patch

Committed r136656: &lt;http://trac.webkit.org/changeset/136656&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>783595</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-12-05 03:29:50 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #14)
&gt; &gt; I saw the WTF prefix was used everywhere in RenderFlexibleBox, so I used it for consistency.
&gt; 
&gt; Someone should fix that mistake in RenderFlexibleBox.

https://bugs.webkit.org/show_bug.cgi?id=104109</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176463</attachid>
            <date>2012-11-28 05:33:56 -0800</date>
            <delta_ts>2012-11-30 05:55:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wcore-flexbox-repaints.diff</filename>
            <type>text/plain</type>
            <size>5533</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiOThmNmI4Li5jMWYzMzMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTItMTEtMjggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29t
PgorCisgICAgICAgIFJlZHVjZSB0aGUgY2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0
aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQ2FjaGUgdGhlIGNoaWxkcmVuIHBvc2l0aW9ucyBiZWZvcmUg
dGhlIGxheW91dCBhbmQgbW92ZSB0byB0aGUKKyAgICAgICAgZmluYWwgcG9zaXRpb24gYWZ0ZXIg
dGhlIGxheW91dC4KKworICAgICAgICBObyBuZXcgdGVzdHMuIENvdmVyZWQgYnkgZXhpc3Rpbmcg
dGVzdHMgaW4gY3NzMy9mbGV4Ym94LgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRC
bG9jayk6IENyZWF0ZSBhIGhhc2ggbWFwIHRvCisgICAgICAgIG1hcCB0aGUgY2hpbGRyZW4gdG8g
dGhlaXIgY3VycmVudCBmcmFtZSByZWN0IGJlZm9yZSB0aGUgbGF5b3V0IGFuZAorICAgICAgICBj
YWxsIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoKSBhZnRlciBsYXlvdXQuCisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6cmVwYWludENoaWxkcmVuRHVyaW5n
TGF5b3V0SWZNb3ZlZCk6CisgICAgICAgIENhbGwgcmVwYWludER1cmluZ0xheW91dElmTW92ZWQo
KSBmb3IgZXZlcnkgY2hpbGRyZW4gdXNpbmcgdGhlIG9sZAorICAgICAgICBmcmFtZSByZWN0cy4K
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpzZXRGbG93QXdhcmVMb2NhdGlv
bkZvckNoaWxkKTogRG8gbm90CisgICAgICAgIGNhbGwgcmVwYWludER1cmluZ0xheW91dElmTW92
ZWQoKS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKwogMjAxMi0x
MS0yNyAgTWlrZSBXZXN0ICA8bWt3c3RAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEltcHJvdmUg
V2ViU29ja2V0Q2hhbm5lbCBjb25uZWN0aW9uIGZhaWx1cmUgY29uc29sZSBtZXNzYWdlcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGUx
MWQ4NjUuLmNiOWQxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcApAQCAtMzIwLDYgKzMyMCwxMSBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94
OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgdXBk
YXRlUmVnaW9uc0FuZEV4Y2x1c2lvbnNMb2dpY2FsU2l6ZSgpOwogCiAgICAgTGF5b3V0U2l6ZSBw
cmV2aW91c1NpemUgPSBzaXplKCk7CisgICAgQ2hpbGRyZW5GcmFtZVJlY3QgY2hpbGRyZW5PbGRS
ZWN0czsKKyAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBmaXJzdENoaWxkQm94KCk7IGNoaWxk
OyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZ0JveCgpKSB7CisgICAgICAgIGlmICghY2hpbGQt
PmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY2hpbGRyZW5PbGRSZWN0cy5z
ZXQoY2hpbGQsIGNoaWxkLT5mcmFtZVJlY3QoKSk7CisgICAgfQogCiAgICAgc2V0TG9naWNhbEhl
aWdodCgwKTsKICAgICB1cGRhdGVMb2dpY2FsV2lkdGgoKTsKQEAgLTM0OSw2ICszNTQsNyBAQCB2
b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4s
IExheW91dFVuaXQpCiAgICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soKTsKICAgICBjbGVh
ckNoaWxkT3ZlcnJpZGVTaXplcygpOwogCisgICAgcmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0
SWZNb3ZlZChjaGlsZHJlbk9sZFJlY3RzKTsKICAgICAvLyBGSVhNRTogY3NzMy9mbGV4Ym94L3Jl
cGFpbnQtcnRsLWNvbHVtbi5odG1sIHNlZW1zIHRvIHJlcGFpbnQgbW9yZSBvdmVyZmxvdyB0aGFu
IGl0IG5lZWRzIHRvLgogICAgIGNvbXB1dGVPdmVyZmxvdyhvbGRDbGllbnRBZnRlckVkZ2UpOwog
ICAgIHN0YXRlUHVzaGVyLnBvcCgpOwpAQCAtMzY0LDYgKzM3MCwyMiBAQCB2b2lkIFJlbmRlckZs
ZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQp
CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCit2b2lkIFJlbmRlckZsZXhpYmxlQm94
OjpyZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IENoaWxkcmVuRnJhbWVS
ZWN0JiBjaGlsZHJlbk9sZFJlY3RzKQoreworICAgIEFTU0VSVChtX29yZGVySXRlcmF0b3IpOwor
CisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLT5maXJzdCgpOyBj
aGlsZDsgY2hpbGQgPSBtX29yZGVySXRlcmF0b3ItPm5leHQoKSkgeworICAgICAgICBpZiAoIWNo
aWxkcmVuT2xkUmVjdHMuY29udGFpbnMoY2hpbGQpKQorICAgICAgICAgICAgY29udGludWU7CisK
KyAgICAgICAgLy8gSWYgdGhlIGNoaWxkIG1vdmVkLCB3ZSBoYXZlIHRvIHJlcGFpbnQgaXQgYXMg
d2VsbCBhcyBhbnkgZmxvYXRpbmcvcG9zaXRpb25lZAorICAgICAgICAvLyBkZXNjZW5kYW50cy4g
QW4gZXhjZXB0aW9uIGlzIGlmIHdlIG5lZWQgYSBsYXlvdXQuIEluIHRoaXMgY2FzZSwgd2Uga25v
dyB3ZSdyZSBnb2luZyB0bworICAgICAgICAvLyByZXBhaW50IG91cnNlbHZlcyAoYW5kIHRoZSBj
aGlsZCkgYW55d2F5LgorICAgICAgICBpZiAoIXNlbGZOZWVkc0xheW91dCgpICYmIGNoaWxkLT5j
aGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQoKSkKKyAgICAgICAgICAgIGNoaWxkLT5yZXBhaW50
RHVyaW5nTGF5b3V0SWZNb3ZlZChjaGlsZHJlbk9sZFJlY3RzLmdldChjaGlsZCkpOworICAgIH0K
K30KKwogdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cGFpbnRDaGlsZHJlbihQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIHBhaW50
SW5mb0ZvckNoaWxkLCBib29sIHVzZVByaW50UmVjdCkKIHsKICAgICBBU1NFUlQobV9vcmRlckl0
ZXJhdG9yKTsKQEAgLTY2NCwyMSArNjg2LDEwIEBAIExheW91dFBvaW50IFJlbmRlckZsZXhpYmxl
Qm94OjpmbG93QXdhcmVMb2NhdGlvbkZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpIGNvbnN0CiAK
IHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnNldEZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQoUmVu
ZGVyQm94KiBjaGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uKQogewotICAgIExheW91
dFJlY3Qgb2xkRnJhbWVSZWN0ID0gY2hpbGQtPmZyYW1lUmVjdCgpOwotCiAgICAgaWYgKGlzSG9y
aXpvbnRhbEZsb3coKSkKICAgICAgICAgY2hpbGQtPnNldExvY2F0aW9uKGxvY2F0aW9uKTsKICAg
ICBlbHNlCiAgICAgICAgIGNoaWxkLT5zZXRMb2NhdGlvbihsb2NhdGlvbi50cmFuc3Bvc2VkUG9p
bnQoKSk7Ci0KLSAgICAvLyBJZiB0aGUgY2hpbGQgbW92ZWQsIHdlIGhhdmUgdG8gcmVwYWludCBp
dCBhcyB3ZWxsIGFzIGFueSBmbG9hdGluZy9wb3NpdGlvbmVkCi0gICAgLy8gZGVzY2VuZGFudHMu
IEFuIGV4Y2VwdGlvbiBpcyBpZiB3ZSBuZWVkIGEgbGF5b3V0LiBJbiB0aGlzIGNhc2UsIHdlIGtu
b3cgd2UncmUgZ29pbmcgdG8KLSAgICAvLyByZXBhaW50IG91cnNlbHZlcyAoYW5kIHRoZSBjaGls
ZCkgYW55d2F5LgotICAgIC8vIEZJWE1FOiBJbiBzb21lIGNhc2VzLCB3ZSBtaWdodCBvdmVycGFp
bnQgYXMgd2UgbW92ZSBhIGNoaWxkIG11bHRpcGxlIHRpbWVzLiBXZSBjb3VsZCByZWR1Y2UKLSAg
ICAvLyBvdmVycGFpbnRpbmcgYnkga2VlcGluZyB0cmFjayBvZiB0aGUgb3JpZ2luYWwgcG9zaXRp
b24gb2YgYSBjaGlsZCBhbmQgcnVubmluZyB0aGlzIGNoZWNrIG9uCi0gICAgLy8gdGhlIGZpbmFs
IHBvc2l0aW9uLgotICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hpbGQtPmNoZWNrRm9y
UmVwYWludER1cmluZ0xheW91dCgpKQotICAgICAgICBjaGlsZC0+cmVwYWludER1cmluZ0xheW91
dElmTW92ZWQob2xkRnJhbWVSZWN0KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJv
eDo6bWFpbkF4aXNCb3JkZXJBbmRQYWRkaW5nRXh0ZW50Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGls
ZCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgK
aW5kZXggOThlYWZjYS4uNzYyOGQ2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmgKQEAgLTc4LDYgKzc4LDggQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3Qg
TGluZUNvbnRleHQ7CiAgICAgc3RydWN0IFZpb2xhdGlvbjsKIAorICAgIHR5cGVkZWYgV1RGOjpI
YXNoTWFwPGNvbnN0IFJlbmRlckJveCosIExheW91dFJlY3Q+IENoaWxkcmVuRnJhbWVSZWN0Owor
CiAgICAgYm9vbCBoYXNPcnRob2dvbmFsRmxvdyhSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKICAg
ICBib29sIGlzQ29sdW1uRmxvdygpIGNvbnN0OwogICAgIGJvb2wgaXNMZWZ0VG9SaWdodEZsb3co
KSBjb25zdDsKQEAgLTEyMiw2ICsxMjQsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgdXBkYXRlQXV0
b01hcmdpbnNJbkNyb3NzQXhpcyhSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IGF2YWlsYWJs
ZUFsaWdubWVudFNwYWNlKTsKICAgICB2b2lkIHJlcG9zaXRpb25Mb2dpY2FsSGVpZ2h0RGVwZW5k
ZW50RmxleEl0ZW1zKE9yZGVySXRlcmF0b3ImLCBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4mLCBM
YXlvdXRVbml0JiBvbGRDbGllbnRBZnRlckVkZ2UpOwogICAgIHZvaWQgY2xlYXJDaGlsZE92ZXJy
aWRlU2l6ZXMoKTsKKyAgICB2b2lkIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQo
Y29uc3QgQ2hpbGRyZW5GcmFtZVJlY3QmKTsKIAogICAgIExheW91dFVuaXQgYXZhaWxhYmxlQWxp
Z25tZW50U3BhY2VGb3JDaGlsZChMYXlvdXRVbml0IGxpbmVDcm9zc0F4aXNFeHRlbnQsIFJlbmRl
ckJveCopOwogICAgIExheW91dFVuaXQgbWFyZ2luQm94QXNjZW50Rm9yQ2hpbGQoUmVuZGVyQm94
Kik7Cg==
</data>
<flag name="review"
          id="192253"
          type_id="1"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>176952</attachid>
            <date>2012-11-30 05:55:55 -0800</date>
            <delta_ts>2012-12-03 05:27:27 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-flexbox-repaint.diff</filename>
            <type>text/plain</type>
            <size>10385</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjE4MWEzLi41MjYzOWMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTEt
MzAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlZHVjZSB0aGUgY2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBk
dXJpbmcgdGhlIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgdGhhdCBmb3IgZmxleCBpdGVtcyBtb3ZlZCBtdWx0
aXBsZSB0aW1lcyBkdXJpbmcgdGhlCisgICAgICAgIGxheW91dCwgb25seSB0aGUgaW5pdGlhbCBh
bmQgZmluYWwgcG9zaXRpb25zIGFyZSByZXBhaW50ZWQuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhi
b3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1y
ZXZlcnNlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTEtMjkgIEtlaXNoaSBIYXR0b3Jp
ICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmV0dGVyIHR5cGUgYWhlYWQgZm9yIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTc0NmI4Li5lMDM2Mzkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTItMTEtMzAgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlZHVjZSB0aGUgY2hpbGRy
ZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxheW91dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FjaGUgdGhl
IGNoaWxkcmVuIHBvc2l0aW9ucyBiZWZvcmUgdGhlIGxheW91dCBhbmQgbW92ZSB0byB0aGUKKyAg
ICAgICAgZmluYWwgcG9zaXRpb24gYWZ0ZXIgdGhlIGxheW91dC4KKworICAgICAgICBUZXN0OiBj
c3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6OmxheW91dEJsb2NrKTogVXNlIGEgVmVjdG9yIHdpdGggdGhlCisgICAgICAgIGNo
aWxkcmVuIGZyYW1lIHJlY3RzIGJlZm9yZSB0aGUgbGF5b3V0IGFuZCBjYWxsCisgICAgICAgIHJl
cGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoKSB0byByZXBhaW50IHRoZSBjaGlsZHJl
biB0aGF0CisgICAgICAgIGhhdmUgYmVlbiBtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsZXhpYmxlQm94OjpjaGlsZHJlbkZyYW1lUmVjdHMpOiBSZXR1cm4gYSBWZWN0b3IKKyAgICAg
ICAgd2l0aCBjaGlsZHJlbiBmcmFtZSByZWN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
ZXhpYmxlQm94OjpyZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKToKKyAgICAgICAg
Q2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpIGZvciBldmVyeSBjaGlsZHJlbiB1c2lu
ZyB0aGUgb2xkCisgICAgICAgIGZyYW1lIHJlY3RzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmxleGlibGVCb3g6OnNldEZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQpOiBEbyBub3QKKyAgICAg
ICAgY2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6IE1ha2Ugc3VyZSB0aGUKKyAgICAg
ICAgcGFzc2VkIGl0ZXJhdG9yIHBvaW50cyB0byB0aGUgZmlyc3QgY2hpbGQuCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTItMTEtMjkgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQyXSBX
ZWJLaXRXZWJWaWV3QmFzZSBjcmVhdGVzIGEgR0wgY29udGV4dCBmb3IgdGhlIHJlZGlyZWN0ZWQg
WENvbXBvc2l0ZSB3aW5kb3cgY3Jhc2hpbmcgV2ViS2l0IGluIFh2ZmIKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hOWYwM2QyCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJl
dmVyc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOSBAQAorbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4
MDB4NjAwCisgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCww
KSBzaXplIDgwMHgxMDgKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDEw
OAorICAgIFJlbmRlckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDkyCisgICAgICBSZW5k
ZXJGbGV4aWJsZUJveCB7RElWfSBhdCAoMCwwKSBzaXplIDIwMHg5MgorICAgICAgICBSZW5kZXJC
bG9jayB7RElWfSBhdCAoMSw2MSkgc2l6ZSAxOTh4MzAgW2JnY29sb3I9IzAwMDBGRl0KKyAgICAg
ICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAsMzApIHNpemUgMjAweDMwIFtiZ2NvbG9yPSMwMDgw
MDBdCisgICAgICAgIFJlbmRlckJsb2NrIHtESVZ9IGF0ICgwLDApIHNpemUgMjAweDMwIFtiZ2Nv
bG9yPSNGRkZGMDBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWlu
dC1jb2x1bW4tcmV2ZXJzZS5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQt
Y29sdW1uLXJldmVyc2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi42
OTgyYWM4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFp
bnQtY29sdW1uLXJldmVyc2UuaHRtbApAQCAtMCwwICsxLDM3IEBACis8IURPQ1RZUEUgaHRtbD4K
KzxzdHlsZT4KKyNmbGV4Ym94IHsKKyAgICBkaXNwbGF5OiAtd2Via2l0LWZsZXg7CisgICAgLXdl
YmtpdC1mbGV4LWZsb3c6IGNvbHVtbi1yZXZlcnNlOworICAgIHdpZHRoOiAyMDBweDsKK30KKy5m
bGV4LWl0ZW0geworICAgIGhlaWdodDogMzBweDsKK30KKzwvc3R5bGU+Cis8c2NyaXB0PgorZnVu
Y3Rpb24gY2hhbmdlQ2hpbGRNYXJnaW4oKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJibHVlIikuc3R5bGUubWFyZ2luID0gIjFweCI7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKword2luZG93Lm9ubG9hZCA9
IGZ1bmN0aW9uKCkgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7Cisg
ICAgfSBlbHNlIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSgKKyAgICAgICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZs
ZXggaXRlbXMgdGhhdCBhcmUgbW92ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQg
IgorICAgICAgICAgICAgKyAib25seSB0aGUgaW5pdGlhbCBhbmQgZmluYWwgcG9zaXRpb25zIGFy
ZSByZXBhaW50ZWQuIE9ubHkgdGhlIGJsdWUgZmxleCBpdGVtIHNob3VsZCBiZSByZXBhaW50ZWQg
IgorICAgICAgICAgICAgKyAiYWZ0ZXIgY2hhbmdpbmcgaXRzIHBvc2l0aW9uLiBJZiB0aGUgb3Ro
ZXIgZmxleCBpdGVtcyBhcmUgcmVwYWludGVkLCB0aGlzIHRlc3QgZmFpbHMuIikpOworICAgIH0K
KyAgICBzZXRUaW1lb3V0KGNoYW5nZUNoaWxkTWFyZ2luLCAwKTsKK307Cis8L3NjcmlwdD4KKzxk
aXYgaWQ9ImZsZXhib3giPgorICA8ZGl2IGlkPSJibHVlIiBjbGFzcz0iZmxleC1pdGVtIiBzdHls
ZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPjwvZGl2PgorICA8ZGl2IGlkPSJncmVlbiIgY2xh
c3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+Cisg
IDxkaXYgaWQ9InllbGxvdyIgY2xhc3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91bmQtY29s
b3I6IHllbGxvdzsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1l
eHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2Zs
ZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNm
MWZmYzZkODBiOGZhZDRiZTkxNzEyMzdjM2E2NWRiZGJmNjk0MgpHSVQgYmluYXJ5IHBhdGNoCmxp
dGVyYWwgMjg5Nwp6Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxB
JUBXcyRsSGBvazxtfT9vVCF2JioKejY5YmJaUXYoYTU2aktYSmdPdD17T0xJZHI2TFdMSkw8PDhX
PEo2N0xoVmwjeVQjcjNuOTc4SlJ5dUd1cl9wcEhvCno+JXFzNGNYdWRVZChqbGJBS05JcVI8Jlc0
PWdkNj9BNllaYlNwSHtWYz0wRlJtVnFJYG9RYSEzTDJVeUFMbFAkQQp6YDE5cUBFNDZuQnsqUHIm
c01te05VQCZaQ1dlXlleRDh8T2VtayltfmVhNz1IJCE9WDcxSD1DM08jfHJ+YTlCdVoKenVVJjE8
ej54RnckMHhJNm5aYFI8NGZ6bEZ7JjMrS3opJTlhJVg7NlF3V1lVczcjZURLQnJxfUBWRygwK0BX
SVc8CnpJYipzMDlzfFAkUUU/ckhoOFlLIzcmPHNkOEtaJFBuaTU4SCFEdWNSJT58Pm1VXkV2RGwz
WntAYGxZZUpabk8xRQpSNWBiLUYyMldRJW12djRGTyNuPSo1VUt6RwoKbGl0ZXJhbCAwCkhjbVY/
ZDAwMDAxCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKaW5kZXggZTExZDg2NS4uZDNiODJmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0zMzMsNiArMzMzLDkgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0
KQogICAgIE9yZGVySGFzaFNldCBvcmRlclZhbHVlczsKICAgICBjb21wdXRlTWFpbkF4aXNQcmVm
ZXJyZWRTaXplcyhyZWxheW91dENoaWxkcmVuLCBvcmRlclZhbHVlcyk7CiAgICAgbV9vcmRlckl0
ZXJhdG9yID0gYWRvcHRQdHIobmV3IE9yZGVySXRlcmF0b3IodGhpcywgb3JkZXJWYWx1ZXMpKTsK
KworICAgIFdURjo6VmVjdG9yPExheW91dFJlY3Q+IGNoaWxkcmVuT2xkUmVjdHM7CisgICAgY2hp
bGRyZW5GcmFtZVJlY3RzKGNoaWxkcmVuT2xkUmVjdHMpOwogICAgIGxheW91dEZsZXhJdGVtcygq
bV9vcmRlckl0ZXJhdG9yLCBsaW5lQ29udGV4dHMpOwogCiAgICAgTGF5b3V0VW5pdCBvbGRDbGll
bnRBZnRlckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90dG9tKCk7CkBAIC0zNDksNiArMzUyLDcgQEAg
dm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVu
LCBMYXlvdXRVbml0KQogICAgIGNvbXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKCk7CiAgICAgY2xl
YXJDaGlsZE92ZXJyaWRlU2l6ZXMoKTsKIAorICAgIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91
dElmTW92ZWQoY2hpbGRyZW5PbGRSZWN0cyk7CiAgICAgLy8gRklYTUU6IGNzczMvZmxleGJveC9y
ZXBhaW50LXJ0bC1jb2x1bW4uaHRtbCBzZWVtcyB0byByZXBhaW50IG1vcmUgb3ZlcmZsb3cgdGhh
biBpdCBuZWVkcyB0by4KICAgICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsK
ICAgICBzdGF0ZVB1c2hlci5wb3AoKTsKQEAgLTM2NCw2ICszNjgsMzUgQEAgdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0
KQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAordm9pZCBSZW5kZXJGbGV4aWJsZUJv
eDo6Y2hpbGRyZW5GcmFtZVJlY3RzKFdURjo6VmVjdG9yPExheW91dFJlY3Q+JiBjaGlsZHJlbkZy
YW1lUmVjdHMpCit7CisgICAgQVNTRVJUKG1fb3JkZXJJdGVyYXRvcik7CisKKyAgICBmb3IgKFJl
bmRlckJveCogY2hpbGQgPSBtX29yZGVySXRlcmF0b3ItPmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9
IG1fb3JkZXJJdGVyYXRvci0+bmV4dCgpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpKQorICAgICAgICAgICAgY2hpbGRyZW5GcmFtZVJlY3RzLmFwcGVuZChj
aGlsZC0+ZnJhbWVSZWN0KCkpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6
cmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZChjb25zdCBXVEY6OlZlY3RvcjxMYXlv
dXRSZWN0PiYgY2hpbGRyZW5PbGRSZWN0cykKK3sKKyAgICBBU1NFUlQobV9vcmRlckl0ZXJhdG9y
KTsKKworICAgIHNpemVfdCBjaGlsZEluZGV4ID0gMDsKKyAgICBmb3IgKFJlbmRlckJveCogY2hp
bGQgPSBtX29yZGVySXRlcmF0b3ItPmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVy
YXRvci0+bmV4dCgpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbW92
ZWQsIHdlIGhhdmUgdG8gcmVwYWludCBpdCBhcyB3ZWxsIGFzIGFueSBmbG9hdGluZy9wb3NpdGlv
bmVkCisgICAgICAgIC8vIGRlc2NlbmRhbnRzLiBBbiBleGNlcHRpb24gaXMgaWYgd2UgbmVlZCBh
IGxheW91dC4gSW4gdGhpcyBjYXNlLCB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvCisgICAgICAgIC8v
IHJlcGFpbnQgb3Vyc2VsdmVzIChhbmQgdGhlIGNoaWxkKSBhbnl3YXkuCisgICAgICAgIGlmICgh
c2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hpbGQtPmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgp
KQorICAgICAgICAgICAgY2hpbGQtPnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKGNoaWxkcmVu
T2xkUmVjdHNbY2hpbGRJbmRleF0pOworICAgICAgICBjaGlsZEluZGV4Kys7CisgICAgfQorfQor
CisKIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWlu
dEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBwYWludElu
Zm9Gb3JDaGlsZCwgYm9vbCB1c2VQcmludFJlY3QpCiB7CiAgICAgQVNTRVJUKG1fb3JkZXJJdGVy
YXRvcik7CkBAIC02NjQsMjEgKzY5NywxMCBAQCBMYXlvdXRQb2ludCBSZW5kZXJGbGV4aWJsZUJv
eDo6Zmxvd0F3YXJlTG9jYXRpb25Gb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAogCiB2
b2lkIFJlbmRlckZsZXhpYmxlQm94OjpzZXRGbG93QXdhcmVMb2NhdGlvbkZvckNoaWxkKFJlbmRl
ckJveCogY2hpbGQsIGNvbnN0IExheW91dFBvaW50JiBsb2NhdGlvbikKIHsKLSAgICBMYXlvdXRS
ZWN0IG9sZEZyYW1lUmVjdCA9IGNoaWxkLT5mcmFtZVJlY3QoKTsKLQogICAgIGlmIChpc0hvcml6
b250YWxGbG93KCkpCiAgICAgICAgIGNoaWxkLT5zZXRMb2NhdGlvbihsb2NhdGlvbik7CiAgICAg
ZWxzZQogICAgICAgICBjaGlsZC0+c2V0TG9jYXRpb24obG9jYXRpb24udHJhbnNwb3NlZFBvaW50
KCkpOwotCi0gICAgLy8gSWYgdGhlIGNoaWxkIG1vdmVkLCB3ZSBoYXZlIHRvIHJlcGFpbnQgaXQg
YXMgd2VsbCBhcyBhbnkgZmxvYXRpbmcvcG9zaXRpb25lZAotICAgIC8vIGRlc2NlbmRhbnRzLiBB
biBleGNlcHRpb24gaXMgaWYgd2UgbmVlZCBhIGxheW91dC4gSW4gdGhpcyBjYXNlLCB3ZSBrbm93
IHdlJ3JlIGdvaW5nIHRvCi0gICAgLy8gcmVwYWludCBvdXJzZWx2ZXMgKGFuZCB0aGUgY2hpbGQp
IGFueXdheS4KLSAgICAvLyBGSVhNRTogSW4gc29tZSBjYXNlcywgd2UgbWlnaHQgb3ZlcnBhaW50
IGFzIHdlIG1vdmUgYSBjaGlsZCBtdWx0aXBsZSB0aW1lcy4gV2UgY291bGQgcmVkdWNlCi0gICAg
Ly8gb3ZlcnBhaW50aW5nIGJ5IGtlZXBpbmcgdHJhY2sgb2YgdGhlIG9yaWdpbmFsIHBvc2l0aW9u
IG9mIGEgY2hpbGQgYW5kIHJ1bm5pbmcgdGhpcyBjaGVjayBvbgotICAgIC8vIHRoZSBmaW5hbCBw
b3NpdGlvbi4KLSAgICBpZiAoIXNlbGZOZWVkc0xheW91dCgpICYmIGNoaWxkLT5jaGVja0ZvclJl
cGFpbnREdXJpbmdMYXlvdXQoKSkKLSAgICAgICAgY2hpbGQtPnJlcGFpbnREdXJpbmdMYXlvdXRJ
Zk1vdmVkKG9sZEZyYW1lUmVjdCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6
Om1haW5BeGlzQm9yZGVyQW5kUGFkZGluZ0V4dGVudEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQp
IGNvbnN0CkBAIC03MTAsNiArNzMyLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
RmxleEl0ZW1zKE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBXVEY6OlZlY3RvcjxMaW4KICAgICBk
b3VibGUgdG90YWxXZWlnaHRlZEZsZXhTaHJpbms7CiAgICAgTGF5b3V0VW5pdCBtaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQ7CiAKKyAgICBpdGVyYXRvci5maXJzdCgpOwogICAgIExheW91dFVu
aXQgY3Jvc3NBeGlzT2Zmc2V0ID0gZmxvd0F3YXJlQm9yZGVyQmVmb3JlKCkgKyBmbG93QXdhcmVQ
YWRkaW5nQmVmb3JlKCk7CiAgICAgd2hpbGUgKGNvbXB1dGVOZXh0RmxleExpbmUoaXRlcmF0b3Is
IG9yZGVyZWRDaGlsZHJlbiwgcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIHRvdGFsRmxleEdyb3cs
IHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rLCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpKSB7
CiAgICAgICAgIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNwYWNlID0gbWFpbkF4aXNDb250ZW50
RXh0ZW50KHByZWZlcnJlZE1haW5BeGlzRXh0ZW50KSAtIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA5
OGVhZmNhLi5lZjljYzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guaApAQCAtMTIyLDYgKzEyMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVB
dXRvTWFyZ2luc0luQ3Jvc3NBeGlzKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgYXZhaWxh
YmxlQWxpZ25tZW50U3BhY2UpOwogICAgIHZvaWQgcmVwb3NpdGlvbkxvZ2ljYWxIZWlnaHREZXBl
bmRlbnRGbGV4SXRlbXMoT3JkZXJJdGVyYXRvciYsIFdURjo6VmVjdG9yPExpbmVDb250ZXh0PiYs
IExheW91dFVuaXQmIG9sZENsaWVudEFmdGVyRWRnZSk7CiAgICAgdm9pZCBjbGVhckNoaWxkT3Zl
cnJpZGVTaXplcygpOworICAgIHZvaWQgY2hpbGRyZW5GcmFtZVJlY3RzKFdURjo6VmVjdG9yPExh
eW91dFJlY3Q+Jik7CisgICAgdm9pZCByZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVk
KGNvbnN0IFdURjo6VmVjdG9yPExheW91dFJlY3Q+Jik7CiAKICAgICBMYXlvdXRVbml0IGF2YWls
YWJsZUFsaWdubWVudFNwYWNlRm9yQ2hpbGQoTGF5b3V0VW5pdCBsaW5lQ3Jvc3NBeGlzRXh0ZW50
LCBSZW5kZXJCb3gqKTsKICAgICBMYXlvdXRVbml0IG1hcmdpbkJveEFzY2VudEZvckNoaWxkKFJl
bmRlckJveCopOwo=
</data>
<flag name="review"
          id="192898"
          type_id="1"
          status="+"
          setter="tony"
    />
    <flag name="commit-queue"
          id="192959"
          type_id="3"
          status="-"
          setter="tony"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177236</attachid>
            <date>2012-12-03 05:27:27 -0800</date>
            <delta_ts>2012-12-03 05:39:16 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-flexbox-repaints.diff</filename>
            <type>text/plain</type>
            <size>9911</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZjE4MWEzLi5kYjIwMzRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTIt
MDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlZHVjZSB0aGUgY2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBk
dXJpbmcgdGhlIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgdGhhdCBmb3IgZmxleCBpdGVtcyBtb3ZlZCBtdWx0
aXBsZSB0aW1lcyBkdXJpbmcgdGhlCisgICAgICAgIGxheW91dCwgb25seSB0aGUgaW5pdGlhbCBh
bmQgZmluYWwgcG9zaXRpb25zIGFyZSByZXBhaW50ZWQuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhi
b3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1y
ZXZlcnNlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTEtMjkgIEtlaXNoaSBIYXR0b3Jp
ICA8a2Vpc2hpQHdlYmtpdC5vcmc+CiAKICAgICAgICAgQmV0dGVyIHR5cGUgYWhlYWQgZm9yIERh
dGVUaW1lU3ltYm9saWNGaWVsZEVsZW1lbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA5MTc0NmI4Li43MGU2Y2Mx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMTItMDMgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlZHVjZSB0aGUgY2hpbGRy
ZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxheW91dAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzNTEwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2FjaGUgdGhl
IGNoaWxkcmVuIHBvc2l0aW9ucyBiZWZvcmUgdGhlIGxheW91dCBhbmQgbW92ZSB0byB0aGUKKyAg
ICAgICAgZmluYWwgcG9zaXRpb24gYWZ0ZXIgdGhlIGxheW91dC4KKworICAgICAgICBUZXN0OiBj
c3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS5odG1sCisKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxl
eGlibGVCb3g6Ok9yZGVySXRlcmF0b3I6Ok9yZGVySXRlcmF0b3IpOiBEbyBub3QKKyAgICAgICAg
Y2FsbCBmaXJzdCgpIG9uIHRoZSBjb25zcnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RmxleGlibGVCb3g6OmxheW91dEJsb2NrKTogVXNlIGEgVmVjdG9yIHdpdGggdGhlCisgICAgICAg
IGNoaWxkcmVuIGZyYW1lIHJlY3RzIGJlZm9yZSB0aGUgbGF5b3V0IGFuZCBjYWxsCisgICAgICAg
IHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoKSB0byByZXBhaW50IHRoZSBjaGls
ZHJlbiB0aGF0CisgICAgICAgIGhhdmUgYmVlbiBtb3ZlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckZsZXhpYmxlQm94OjpjaGlsZHJlbkZyYW1lUmVjdHMpOiBSZXR1cm4gYSBWZWN0b3IKKyAg
ICAgICAgd2l0aCBjaGlsZHJlbiBmcmFtZSByZWN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckZsZXhpYmxlQm94OjpyZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKToKKyAgICAg
ICAgQ2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpIGZvciBldmVyeSBjaGlsZHJlbiB1
c2luZyB0aGUgb2xkCisgICAgICAgIGZyYW1lIHJlY3RzLgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OnNldEZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQpOiBEbyBub3QKKyAg
ICAgICAgY2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6IE1ha2Ugc3VyZSB0aGUKKyAg
ICAgICAgcGFzc2VkIGl0ZXJhdG9yIHBvaW50cyB0byB0aGUgZmlyc3QgY2hpbGQuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTItMTEtMjkgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIFtXZWJLaXQy
XSBXZWJLaXRXZWJWaWV3QmFzZSBjcmVhdGVzIGEgR0wgY29udGV4dCBmb3IgdGhlIHJlZGlyZWN0
ZWQgWENvbXBvc2l0ZSB3aW5kb3cgY3Jhc2hpbmcgV2ViS2l0IGluIFh2ZmIKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1u
LXJldmVyc2UtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbCBiL0xheW91dFRl
c3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDJiODU3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKQEAgLTAsMCAr
MSwzOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisjZmxleGJveCB7CisgICAgZGlzcGxh
eTogLXdlYmtpdC1mbGV4OworICAgIC13ZWJraXQtZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTsK
KyAgICB3aWR0aDogMjAwcHg7Cit9CisuZmxleC1pdGVtIHsKKyAgICBoZWlnaHQ6IDMwcHg7Cit9
Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNoYW5nZUNoaWxkTWFyZ2luKCkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYmx1ZSIpLnN0eWxlLm1hcmdpbiA9ICIxcHgiOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5
KCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSgKKyAgICAgICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQg
Zm9yIGZsZXggaXRlbXMgdGhhdCBhcmUgbW92ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBs
YXlvdXQgIgorICAgICAgICAgICAgKyAib25seSB0aGUgaW5pdGlhbCBhbmQgZmluYWwgcG9zaXRp
b25zIGFyZSByZXBhaW50ZWQuIE9ubHkgdGhlIGJsdWUgZmxleCBpdGVtIHNob3VsZCBiZSByZXBh
aW50ZWQgIgorICAgICAgICAgICAgKyAiYWZ0ZXIgY2hhbmdpbmcgaXRzIHBvc2l0aW9uLiBJZiB0
aGUgb3RoZXIgZmxleCBpdGVtcyBhcmUgcmVwYWludGVkLCB0aGlzIHRlc3QgZmFpbHMuIikpOwor
ICAgIH0KKyAgICBzZXRUaW1lb3V0KGNoYW5nZUNoaWxkTWFyZ2luLCAwKTsKK307Cis8L3Njcmlw
dD4KKzxkaXYgaWQ9ImZsZXhib3giPgorICA8ZGl2IGlkPSJibHVlIiBjbGFzcz0iZmxleC1pdGVt
IiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsiPjwvZGl2PgorICA8ZGl2IGlkPSJncmVl
biIgY2xhc3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9k
aXY+CisgIDxkaXYgaWQ9InllbGxvdyIgY2xhc3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91
bmQtY29sb3I6IHllbGxvdzsiPjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2
ZXJzZS1leHBlY3RlZC5wbmcgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9j
c3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjNmMWZmYwpCaW5hcnkgZmlsZXMgL2Rldi9udWxs
IGFuZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvZmxleGJveC9y
ZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVkLnBuZyBkaWZmZXIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IGUxMWQ4NjUuLjBmYTEz
ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cApAQCAtNTgsNyArNTgsNiBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBjb3B5VG9WZWN0b3Io
b3JkZXJWYWx1ZXMsIG1fb3JkZXJWYWx1ZXMpOwogICAgICAgICBzdGQ6OnNvcnQobV9vcmRlclZh
bHVlcy5iZWdpbigpLCBtX29yZGVyVmFsdWVzLmVuZCgpKTsKLSAgICAgICAgZmlyc3QoKTsKICAg
ICB9CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRDaGlsZCgpIHsgcmV0dXJuIG1fY3VycmVudENo
aWxkOyB9CkBAIC0zMzMsNiArMzMyLDkgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIE9yZGVySGFzaFNl
dCBvcmRlclZhbHVlczsKICAgICBjb21wdXRlTWFpbkF4aXNQcmVmZXJyZWRTaXplcyhyZWxheW91
dENoaWxkcmVuLCBvcmRlclZhbHVlcyk7CiAgICAgbV9vcmRlckl0ZXJhdG9yID0gYWRvcHRQdHIo
bmV3IE9yZGVySXRlcmF0b3IodGhpcywgb3JkZXJWYWx1ZXMpKTsKKworICAgIFdURjo6VmVjdG9y
PExheW91dFJlY3Q+IGNoaWxkcmVuT2xkUmVjdHM7CisgICAgY2hpbGRyZW5GcmFtZVJlY3RzKGNo
aWxkcmVuT2xkUmVjdHMpOwogICAgIGxheW91dEZsZXhJdGVtcygqbV9vcmRlckl0ZXJhdG9yLCBs
aW5lQ29udGV4dHMpOwogCiAgICAgTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UgPSBjbGll
bnRMb2dpY2FsQm90dG9tKCk7CkBAIC0zNDksNiArMzUxLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJs
ZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAg
IGNvbXB1dGVSZWdpb25SYW5nZUZvckJsb2NrKCk7CiAgICAgY2xlYXJDaGlsZE92ZXJyaWRlU2l6
ZXMoKTsKIAorICAgIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoY2hpbGRyZW5P
bGRSZWN0cyk7CiAgICAgLy8gRklYTUU6IGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4u
aHRtbCBzZWVtcyB0byByZXBhaW50IG1vcmUgb3ZlcmZsb3cgdGhhbiBpdCBuZWVkcyB0by4KICAg
ICBjb21wdXRlT3ZlcmZsb3cob2xkQ2xpZW50QWZ0ZXJFZGdlKTsKICAgICBzdGF0ZVB1c2hlci5w
b3AoKTsKQEAgLTM2NCw2ICszNjcsMzUgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIHNldE5lZWRzTGF5
b3V0KGZhbHNlKTsKIH0KIAordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6Y2hpbGRyZW5GcmFtZVJl
Y3RzKFdURjo6VmVjdG9yPExheW91dFJlY3Q+JiBjaGlsZHJlbkZyYW1lUmVjdHMpCit7CisgICAg
QVNTRVJUKG1fb3JkZXJJdGVyYXRvcik7CisKKyAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBt
X29yZGVySXRlcmF0b3ItPmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci0+
bmV4dCgpKSB7CisgICAgICAgIGlmICghY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQor
ICAgICAgICAgICAgY2hpbGRyZW5GcmFtZVJlY3RzLmFwcGVuZChjaGlsZC0+ZnJhbWVSZWN0KCkp
OworICAgIH0KK30KKwordm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6cmVwYWludENoaWxkcmVuRHVy
aW5nTGF5b3V0SWZNb3ZlZChjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRSZWN0PiYgY2hpbGRyZW5P
bGRSZWN0cykKK3sKKyAgICBBU1NFUlQobV9vcmRlckl0ZXJhdG9yKTsKKworICAgIHNpemVfdCBj
aGlsZEluZGV4ID0gMDsKKyAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBtX29yZGVySXRlcmF0
b3ItPmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci0+bmV4dCgpKSB7Cisg
ICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBj
b250aW51ZTsKKworICAgICAgICAvLyBJZiB0aGUgY2hpbGQgbW92ZWQsIHdlIGhhdmUgdG8gcmVw
YWludCBpdCBhcyB3ZWxsIGFzIGFueSBmbG9hdGluZy9wb3NpdGlvbmVkCisgICAgICAgIC8vIGRl
c2NlbmRhbnRzLiBBbiBleGNlcHRpb24gaXMgaWYgd2UgbmVlZCBhIGxheW91dC4gSW4gdGhpcyBj
YXNlLCB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvCisgICAgICAgIC8vIHJlcGFpbnQgb3Vyc2VsdmVz
IChhbmQgdGhlIGNoaWxkKSBhbnl3YXkuCisgICAgICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkg
JiYgY2hpbGQtPmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91dCgpKQorICAgICAgICAgICAgY2hp
bGQtPnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKGNoaWxkcmVuT2xkUmVjdHNbY2hpbGRJbmRl
eF0pOworICAgICAgICArK2NoaWxkSW5kZXg7CisgICAgfQorfQorCisKIHZvaWQgUmVuZGVyRmxl
eGlibGVCb3g6OnBhaW50Q2hpbGRyZW4oUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91
dFBvaW50JiBwYWludE9mZnNldCwgUGFpbnRJbmZvJiBwYWludEluZm9Gb3JDaGlsZCwgYm9vbCB1
c2VQcmludFJlY3QpCiB7CiAgICAgQVNTRVJUKG1fb3JkZXJJdGVyYXRvcik7CkBAIC02NjQsMjEg
KzY5NiwxMCBAQCBMYXlvdXRQb2ludCBSZW5kZXJGbGV4aWJsZUJveDo6Zmxvd0F3YXJlTG9jYXRp
b25Gb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdAogCiB2b2lkIFJlbmRlckZsZXhpYmxl
Qm94OjpzZXRGbG93QXdhcmVMb2NhdGlvbkZvckNoaWxkKFJlbmRlckJveCogY2hpbGQsIGNvbnN0
IExheW91dFBvaW50JiBsb2NhdGlvbikKIHsKLSAgICBMYXlvdXRSZWN0IG9sZEZyYW1lUmVjdCA9
IGNoaWxkLT5mcmFtZVJlY3QoKTsKLQogICAgIGlmIChpc0hvcml6b250YWxGbG93KCkpCiAgICAg
ICAgIGNoaWxkLT5zZXRMb2NhdGlvbihsb2NhdGlvbik7CiAgICAgZWxzZQogICAgICAgICBjaGls
ZC0+c2V0TG9jYXRpb24obG9jYXRpb24udHJhbnNwb3NlZFBvaW50KCkpOwotCi0gICAgLy8gSWYg
dGhlIGNoaWxkIG1vdmVkLCB3ZSBoYXZlIHRvIHJlcGFpbnQgaXQgYXMgd2VsbCBhcyBhbnkgZmxv
YXRpbmcvcG9zaXRpb25lZAotICAgIC8vIGRlc2NlbmRhbnRzLiBBbiBleGNlcHRpb24gaXMgaWYg
d2UgbmVlZCBhIGxheW91dC4gSW4gdGhpcyBjYXNlLCB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvCi0g
ICAgLy8gcmVwYWludCBvdXJzZWx2ZXMgKGFuZCB0aGUgY2hpbGQpIGFueXdheS4KLSAgICAvLyBG
SVhNRTogSW4gc29tZSBjYXNlcywgd2UgbWlnaHQgb3ZlcnBhaW50IGFzIHdlIG1vdmUgYSBjaGls
ZCBtdWx0aXBsZSB0aW1lcy4gV2UgY291bGQgcmVkdWNlCi0gICAgLy8gb3ZlcnBhaW50aW5nIGJ5
IGtlZXBpbmcgdHJhY2sgb2YgdGhlIG9yaWdpbmFsIHBvc2l0aW9uIG9mIGEgY2hpbGQgYW5kIHJ1
bm5pbmcgdGhpcyBjaGVjayBvbgotICAgIC8vIHRoZSBmaW5hbCBwb3NpdGlvbi4KLSAgICBpZiAo
IXNlbGZOZWVkc0xheW91dCgpICYmIGNoaWxkLT5jaGVja0ZvclJlcGFpbnREdXJpbmdMYXlvdXQo
KSkKLSAgICAgICAgY2hpbGQtPnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKG9sZEZyYW1lUmVj
dCk7CiB9CiAKIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6Om1haW5BeGlzQm9yZGVyQW5k
UGFkZGluZ0V4dGVudEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpIGNvbnN0CkBAIC03MTAsNiAr
NzMxLDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKE9yZGVySXRl
cmF0b3ImIGl0ZXJhdG9yLCBXVEY6OlZlY3RvcjxMaW4KICAgICBkb3VibGUgdG90YWxXZWlnaHRl
ZEZsZXhTaHJpbms7CiAgICAgTGF5b3V0VW5pdCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQ7
CiAKKyAgICBpdGVyYXRvci5maXJzdCgpOwogICAgIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0
ID0gZmxvd0F3YXJlQm9yZGVyQmVmb3JlKCkgKyBmbG93QXdhcmVQYWRkaW5nQmVmb3JlKCk7CiAg
ICAgd2hpbGUgKGNvbXB1dGVOZXh0RmxleExpbmUoaXRlcmF0b3IsIG9yZGVyZWRDaGlsZHJlbiwg
cHJlZmVycmVkTWFpbkF4aXNFeHRlbnQsIHRvdGFsRmxleEdyb3csIHRvdGFsV2VpZ2h0ZWRGbGV4
U2hyaW5rLCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpKSB7CiAgICAgICAgIExheW91dFVu
aXQgYXZhaWxhYmxlRnJlZVNwYWNlID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KHByZWZlcnJlZE1h
aW5BeGlzRXh0ZW50KSAtIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA5OGVhZmNhLi5lZjljYzNhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaApAQCAtMTIy
LDYgKzEyMiw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCB1cGRhdGVBdXRvTWFyZ2luc0luQ3Jvc3NB
eGlzKFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgYXZhaWxhYmxlQWxpZ25tZW50U3BhY2Up
OwogICAgIHZvaWQgcmVwb3NpdGlvbkxvZ2ljYWxIZWlnaHREZXBlbmRlbnRGbGV4SXRlbXMoT3Jk
ZXJJdGVyYXRvciYsIFdURjo6VmVjdG9yPExpbmVDb250ZXh0PiYsIExheW91dFVuaXQmIG9sZENs
aWVudEFmdGVyRWRnZSk7CiAgICAgdm9pZCBjbGVhckNoaWxkT3ZlcnJpZGVTaXplcygpOworICAg
IHZvaWQgY2hpbGRyZW5GcmFtZVJlY3RzKFdURjo6VmVjdG9yPExheW91dFJlY3Q+Jik7CisgICAg
dm9pZCByZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IFdURjo6VmVjdG9y
PExheW91dFJlY3Q+Jik7CiAKICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUFsaWdubWVudFNwYWNl
Rm9yQ2hpbGQoTGF5b3V0VW5pdCBsaW5lQ3Jvc3NBeGlzRXh0ZW50LCBSZW5kZXJCb3gqKTsKICAg
ICBMYXlvdXRVbml0IG1hcmdpbkJveEFzY2VudEZvckNoaWxkKFJlbmRlckJveCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177239</attachid>
            <date>2012-12-03 05:39:16 -0800</date>
            <delta_ts>2012-12-04 02:12:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wcore-flexbox-repaints.diff</filename>
            <type>text/plain</type>
            <size>10264</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YjA1MzgwLi40NTA5ZjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTIt
MDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlZHVjZSB0aGUgY2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBk
dXJpbmcgdGhlIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgdGhhdCBmb3IgZmxleCBpdGVtcyBtb3ZlZCBtdWx0
aXBsZSB0aW1lcyBkdXJpbmcgdGhlCisgICAgICAgIGxheW91dCwgb25seSB0aGUgaW5pdGlhbCBh
bmQgZmluYWwgcG9zaXRpb25zIGFyZSByZXBhaW50ZWQuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhi
b3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1y
ZXZlcnNlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTItMDMgIEFsZXhpcyBNZW5hcmQg
IDxhbGV4aXNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIEVuYWJsZSBDU1MzIGJhY2tncm91
bmQtcG9zaXRpb24gb2Zmc2V0cyBieSBkZWZhdWx0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDY4M2Q5NmIuLjE1
ZGU2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMi0xMi0wMyAgQ2FybG9zIEdh
cmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAgICAgICAgUmVkdWNlIHRoZSBj
aGlsZHJlbiByZXBhaW50cyB3aGVuIG1vdmVkIG11bHRpcGxlIHRpbWVzIGR1cmluZyB0aGUgbGF5
b3V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDM1
MTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDYWNo
ZSB0aGUgY2hpbGRyZW4gcG9zaXRpb25zIGJlZm9yZSB0aGUgbGF5b3V0IGFuZCBtb3ZlIHRvIHRo
ZQorICAgICAgICBmaW5hbCBwb3NpdGlvbiBhZnRlciB0aGUgbGF5b3V0LgorCisgICAgICAgIFRl
c3Q6IGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKKworICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJGbGV4aWJsZUJveDo6T3JkZXJJdGVyYXRvcjo6T3JkZXJJdGVyYXRvcik6IERvIG5vdAorICAg
ICAgICBjYWxsIGZpcnN0KCkgb24gdGhlIGNvbnNydWN0b3IuCisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOiBVc2UgYSBWZWN0b3Igd2l0aCB0aGUKKyAg
ICAgICAgY2hpbGRyZW4gZnJhbWUgcmVjdHMgYmVmb3JlIHRoZSBsYXlvdXQgYW5kIGNhbGwKKyAg
ICAgICAgcmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3ZlZCgpIHRvIHJlcGFpbnQgdGhl
IGNoaWxkcmVuIHRoYXQKKyAgICAgICAgaGF2ZSBiZWVuIG1vdmVkLgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRmxleGlibGVCb3g6OmNoaWxkcmVuRnJhbWVSZWN0cyk6IFJldHVybiBhIFZlY3Rv
cgorICAgICAgICB3aXRoIGNoaWxkcmVuIGZyYW1lIHJlY3RzLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxleGlibGVCb3g6OnJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQpOgor
ICAgICAgICBDYWxsIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKCkgZm9yIGV2ZXJ5IGNoaWxk
cmVuIHVzaW5nIHRoZSBvbGQKKyAgICAgICAgZnJhbWUgcmVjdHMuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJGbGV4aWJsZUJveDo6c2V0Rmxvd0F3YXJlTG9jYXRpb25Gb3JDaGlsZCk6IERvIG5v
dAorICAgICAgICBjYWxsIHJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKCkuCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKTogTWFrZSBzdXJlIHRo
ZQorICAgICAgICBwYXNzZWQgaXRlcmF0b3IgcG9pbnRzIHRvIHRoZSBmaXJzdCBjaGlsZC4KKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaDoKKwogMjAxMi0xMi0wMyAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgcm9sbGluZyBvdXQgcjEzNjM3Ny4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi44YjEzNzg5Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEgQEAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94
L3JlcGFpbnQtY29sdW1uLXJldmVyc2UuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9y
ZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNDJiODU3NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJv
eC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWwKQEAgLTAsMCArMSwzOCBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c3R5bGU+CisjZmxleGJveCB7CisgICAgZGlzcGxheTogLXdlYmtpdC1mbGV4Owor
ICAgIC13ZWJraXQtZmxleC1mbG93OiBjb2x1bW4tcmV2ZXJzZTsKKyAgICB3aWR0aDogMjAwcHg7
Cit9CisuZmxleC1pdGVtIHsKKyAgICBoZWlnaHQ6IDMwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGNoYW5nZUNoaWxkTWFyZ2luKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgiYmx1ZSIpLnN0eWxlLm1hcmdpbiA9ICIxcHgiOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK3dpbmRvdy5v
bmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZSgKKyAgICAgICAgICAgICJUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZm9yIGZsZXggaXRlbXMgdGhh
dCBhcmUgbW92ZWQgbXVsdGlwbGUgdGltZXMgZHVyaW5nIHRoZSBsYXlvdXQgIgorICAgICAgICAg
ICAgKyAib25seSB0aGUgaW5pdGlhbCBhbmQgZmluYWwgcG9zaXRpb25zIGFyZSByZXBhaW50ZWQu
IE9ubHkgdGhlIGJsdWUgZmxleCBpdGVtIHNob3VsZCBiZSByZXBhaW50ZWQgIgorICAgICAgICAg
ICAgKyAiYWZ0ZXIgY2hhbmdpbmcgaXRzIHBvc2l0aW9uLiBJZiB0aGUgb3RoZXIgZmxleCBpdGVt
cyBhcmUgcmVwYWludGVkLCB0aGlzIHRlc3QgZmFpbHMuIikpOworICAgIH0KKyAgICBzZXRUaW1l
b3V0KGNoYW5nZUNoaWxkTWFyZ2luLCAwKTsKK307Cis8L3NjcmlwdD4KKzxkaXYgaWQ9ImZsZXhi
b3giPgorICA8ZGl2IGlkPSJibHVlIiBjbGFzcz0iZmxleC1pdGVtIiBzdHlsZT0iYmFja2dyb3Vu
ZC1jb2xvcjogYmx1ZTsiPjwvZGl2PgorICA8ZGl2IGlkPSJncmVlbiIgY2xhc3M9ImZsZXgtaXRl
bSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGdyZWVuOyI+PC9kaXY+CisgIDxkaXYgaWQ9Inll
bGxvdyIgY2xhc3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IHllbGxvdzsi
PjwvZGl2PgorPC9kaXY+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS1saW51eC9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC5wbmcg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1saW51eC9jc3MzL2ZsZXhib3gvcmVwYWlu
dC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjNmMWZmYzZkODBiOGZh
ZDRiZTkxNzEyMzdjM2E2NWRiZGJmNjk0MgpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMjg5Nwp6
Y21lQVNATj8ob2xIeWB1VkJxIWlhMHl+eVV7K3ZZVjJhPmkwKlopPWheaGxBJUBXcyRsSGBvazxt
fT9vVCF2JioKejY5YmJaUXYoYTU2aktYSmdPdD17T0xJZHI2TFdMSkw8PDhXPEo2N0xoVmwjeVQj
cjNuOTc4SlJ5dUd1cl9wcEhvCno+JXFzNGNYdWRVZChqbGJBS05JcVI8Jlc0PWdkNj9BNllaYlNw
SHtWYz0wRlJtVnFJYG9RYSEzTDJVeUFMbFAkQQp6YDE5cUBFNDZuQnsqUHImc01te05VQCZaQ1dl
XlleRDh8T2VtayltfmVhNz1IJCE9WDcxSD1DM08jfHJ+YTlCdVoKenVVJjE8ej54RnckMHhJNm5a
YFI8NGZ6bEZ7JjMrS3opJTlhJVg7NlF3V1lVczcjZURLQnJxfUBWRygwK0BXSVc8CnpJYipzMDlz
fFAkUUU/ckhoOFlLIzcmPHNkOEtaJFBuaTU4SCFEdWNSJT58Pm1VXkV2RGwzWntAYGxZZUpabk8x
RQpSNWBiLUYyMldRJW12djRGTyNuPSo1VUt6RwoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggNDEw
YzVkMS4uYWRmZWQ4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guY3BwCkBAIC01OCw3ICs1OCw2IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGNv
cHlUb1ZlY3RvcihvcmRlclZhbHVlcywgbV9vcmRlclZhbHVlcyk7CiAgICAgICAgIHN0ZDo6c29y
dChtX29yZGVyVmFsdWVzLmJlZ2luKCksIG1fb3JkZXJWYWx1ZXMuZW5kKCkpOwotICAgICAgICBm
aXJzdCgpOwogICAgIH0KIAogICAgIFJlbmRlckJveCogY3VycmVudENoaWxkKCkgeyByZXR1cm4g
bV9jdXJyZW50Q2hpbGQ7IH0KQEAgLTMzMyw2ICszMzIsOSBAQCB2b2lkIFJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAg
T3JkZXJIYXNoU2V0IG9yZGVyVmFsdWVzOwogICAgIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNp
emVzKHJlbGF5b3V0Q2hpbGRyZW4sIG9yZGVyVmFsdWVzKTsKICAgICBtX29yZGVySXRlcmF0b3Ig
PSBhZG9wdFB0cihuZXcgT3JkZXJJdGVyYXRvcih0aGlzLCBvcmRlclZhbHVlcykpOworCisgICAg
V1RGOjpWZWN0b3I8TGF5b3V0UmVjdD4gY2hpbGRyZW5PbGRSZWN0czsKKyAgICBjaGlsZHJlbkZy
YW1lUmVjdHMoY2hpbGRyZW5PbGRSZWN0cyk7CiAgICAgbGF5b3V0RmxleEl0ZW1zKCptX29yZGVy
SXRlcmF0b3IsIGxpbmVDb250ZXh0cyk7CiAKICAgICBMYXlvdXRVbml0IG9sZENsaWVudEFmdGVy
RWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKQEAgLTM0OSw2ICszNTEsNyBAQCB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91
dFVuaXQpCiAgICAgY29tcHV0ZVJlZ2lvblJhbmdlRm9yQmxvY2soKTsKICAgICBjbGVhckNoaWxk
T3ZlcnJpZGVTaXplcygpOwogCisgICAgcmVwYWludENoaWxkcmVuRHVyaW5nTGF5b3V0SWZNb3Zl
ZChjaGlsZHJlbk9sZFJlY3RzKTsKICAgICAvLyBGSVhNRTogY3NzMy9mbGV4Ym94L3JlcGFpbnQt
cnRsLWNvbHVtbi5odG1sIHNlZW1zIHRvIHJlcGFpbnQgbW9yZSBvdmVyZmxvdyB0aGFuIGl0IG5l
ZWRzIHRvLgogICAgIGNvbXB1dGVPdmVyZmxvdyhvbGRDbGllbnRBZnRlckVkZ2UpOwogICAgIHN0
YXRlUHVzaGVyLnBvcCgpOwpAQCAtMzY0LDYgKzM2NywzNSBAQCB2b2lkIFJlbmRlckZsZXhpYmxl
Qm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAg
c2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCit2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpjaGls
ZHJlbkZyYW1lUmVjdHMoV1RGOjpWZWN0b3I8TGF5b3V0UmVjdD4mIGNoaWxkcmVuRnJhbWVSZWN0
cykKK3sKKyAgICBBU1NFUlQobV9vcmRlckl0ZXJhdG9yKTsKKworICAgIGZvciAoUmVuZGVyQm94
KiBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci0+Zmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRl
ckl0ZXJhdG9yLT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKCFjaGlsZC0+aXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpCisgICAgICAgICAgICBjaGlsZHJlbkZyYW1lUmVjdHMuYXBwZW5kKGNoaWxkLT5m
cmFtZVJlY3QoKSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpyZXBhaW50
Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IFdURjo6VmVjdG9yPExheW91dFJlY3Q+
JiBjaGlsZHJlbk9sZFJlY3RzKQoreworICAgIEFTU0VSVChtX29yZGVySXRlcmF0b3IpOworCisg
ICAgc2l6ZV90IGNoaWxkSW5kZXggPSAwOworICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IG1f
b3JkZXJJdGVyYXRvci0+Zmlyc3QoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLT5u
ZXh0KCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKKyAg
ICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIC8vIElmIHRoZSBjaGlsZCBtb3ZlZCwgd2Ug
aGF2ZSB0byByZXBhaW50IGl0IGFzIHdlbGwgYXMgYW55IGZsb2F0aW5nL3Bvc2l0aW9uZWQKKyAg
ICAgICAgLy8gZGVzY2VuZGFudHMuIEFuIGV4Y2VwdGlvbiBpcyBpZiB3ZSBuZWVkIGEgbGF5b3V0
LiBJbiB0aGlzIGNhc2UsIHdlIGtub3cgd2UncmUgZ29pbmcgdG8KKyAgICAgICAgLy8gcmVwYWlu
dCBvdXJzZWx2ZXMgKGFuZCB0aGUgY2hpbGQpIGFueXdheS4KKyAgICAgICAgaWYgKCFzZWxmTmVl
ZHNMYXlvdXQoKSAmJiBjaGlsZC0+Y2hlY2tGb3JSZXBhaW50RHVyaW5nTGF5b3V0KCkpCisgICAg
ICAgICAgICBjaGlsZC0+cmVwYWludER1cmluZ0xheW91dElmTW92ZWQoY2hpbGRyZW5PbGRSZWN0
c1tjaGlsZEluZGV4XSk7CisgICAgICAgICsrY2hpbGRJbmRleDsKKyAgICB9Cit9CisKKwogdm9p
ZCBSZW5kZXJGbGV4aWJsZUJveDo6cGFpbnRDaGlsZHJlbihQYWludEluZm8mIHBhaW50SW5mbywg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0LCBQYWludEluZm8mIHBhaW50SW5mb0ZvckNo
aWxkLCBib29sIHVzZVByaW50UmVjdCkKIHsKICAgICBBU1NFUlQobV9vcmRlckl0ZXJhdG9yKTsK
QEAgLTY2NCwyMSArNjk2LDEwIEBAIExheW91dFBvaW50IFJlbmRlckZsZXhpYmxlQm94OjpmbG93
QXdhcmVMb2NhdGlvbkZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpIGNvbnN0CiAKIHZvaWQgUmVu
ZGVyRmxleGlibGVCb3g6OnNldEZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQoUmVuZGVyQm94KiBj
aGlsZCwgY29uc3QgTGF5b3V0UG9pbnQmIGxvY2F0aW9uKQogewotICAgIExheW91dFJlY3Qgb2xk
RnJhbWVSZWN0ID0gY2hpbGQtPmZyYW1lUmVjdCgpOwotCiAgICAgaWYgKGlzSG9yaXpvbnRhbEZs
b3coKSkKICAgICAgICAgY2hpbGQtPnNldExvY2F0aW9uKGxvY2F0aW9uKTsKICAgICBlbHNlCiAg
ICAgICAgIGNoaWxkLT5zZXRMb2NhdGlvbihsb2NhdGlvbi50cmFuc3Bvc2VkUG9pbnQoKSk7Ci0K
LSAgICAvLyBJZiB0aGUgY2hpbGQgbW92ZWQsIHdlIGhhdmUgdG8gcmVwYWludCBpdCBhcyB3ZWxs
IGFzIGFueSBmbG9hdGluZy9wb3NpdGlvbmVkCi0gICAgLy8gZGVzY2VuZGFudHMuIEFuIGV4Y2Vw
dGlvbiBpcyBpZiB3ZSBuZWVkIGEgbGF5b3V0LiBJbiB0aGlzIGNhc2UsIHdlIGtub3cgd2UncmUg
Z29pbmcgdG8KLSAgICAvLyByZXBhaW50IG91cnNlbHZlcyAoYW5kIHRoZSBjaGlsZCkgYW55d2F5
LgotICAgIC8vIEZJWE1FOiBJbiBzb21lIGNhc2VzLCB3ZSBtaWdodCBvdmVycGFpbnQgYXMgd2Ug
bW92ZSBhIGNoaWxkIG11bHRpcGxlIHRpbWVzLiBXZSBjb3VsZCByZWR1Y2UKLSAgICAvLyBvdmVy
cGFpbnRpbmcgYnkga2VlcGluZyB0cmFjayBvZiB0aGUgb3JpZ2luYWwgcG9zaXRpb24gb2YgYSBj
aGlsZCBhbmQgcnVubmluZyB0aGlzIGNoZWNrIG9uCi0gICAgLy8gdGhlIGZpbmFsIHBvc2l0aW9u
LgotICAgIGlmICghc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hpbGQtPmNoZWNrRm9yUmVwYWludER1
cmluZ0xheW91dCgpKQotICAgICAgICBjaGlsZC0+cmVwYWludER1cmluZ0xheW91dElmTW92ZWQo
b2xkRnJhbWVSZWN0KTsKIH0KIAogTGF5b3V0VW5pdCBSZW5kZXJGbGV4aWJsZUJveDo6bWFpbkF4
aXNCb3JkZXJBbmRQYWRkaW5nRXh0ZW50Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkgY29uc3QK
QEAgLTcxMCw2ICs3MzEsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRGbGV4SXRl
bXMoT3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIFdURjo6VmVjdG9yPExpbgogICAgIGRvdWJsZSB0
b3RhbFdlaWdodGVkRmxleFNocmluazsKICAgICBMYXlvdXRVbml0IG1pbk1heEFwcGxpZWRNYWlu
QXhpc0V4dGVudDsKIAorICAgIGl0ZXJhdG9yLmZpcnN0KCk7CiAgICAgTGF5b3V0VW5pdCBjcm9z
c0F4aXNPZmZzZXQgPSBmbG93QXdhcmVCb3JkZXJCZWZvcmUoKSArIGZsb3dBd2FyZVBhZGRpbmdC
ZWZvcmUoKTsKICAgICB3aGlsZSAoY29tcHV0ZU5leHRGbGV4TGluZShpdGVyYXRvciwgb3JkZXJl
ZENoaWxkcmVuLCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCwgdG90YWxGbGV4R3JvdywgdG90YWxX
ZWlnaHRlZEZsZXhTaHJpbmssIG1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCkpIHsKICAgICAg
ICAgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UgPSBtYWluQXhpc0NvbnRlbnRFeHRlbnQo
cHJlZmVycmVkTWFpbkF4aXNFeHRlbnQpIC0gcHJlZmVycmVkTWFpbkF4aXNFeHRlbnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmluZGV4IGM2NGIzY2Iu
Ljk4M2ExYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5oCkBAIC0xMjIsNiArMTIyLDggQEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUF1dG9NYXJn
aW5zSW5Dcm9zc0F4aXMoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBhdmFpbGFibGVBbGln
bm1lbnRTcGFjZSk7CiAgICAgdm9pZCByZXBvc2l0aW9uTG9naWNhbEhlaWdodERlcGVuZGVudEZs
ZXhJdGVtcyhPcmRlckl0ZXJhdG9yJiwgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+JiwgTGF5b3V0
VW5pdCYgb2xkQ2xpZW50QWZ0ZXJFZGdlKTsKICAgICB2b2lkIGNsZWFyQ2hpbGRPdmVycmlkZVNp
emVzKCk7CisgICAgdm9pZCBjaGlsZHJlbkZyYW1lUmVjdHMoV1RGOjpWZWN0b3I8TGF5b3V0UmVj
dD4mKTsKKyAgICB2b2lkIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoY29uc3Qg
V1RGOjpWZWN0b3I8TGF5b3V0UmVjdD4mKTsKIAogICAgIExheW91dFVuaXQgYXZhaWxhYmxlQWxp
Z25tZW50U3BhY2VGb3JDaGlsZChMYXlvdXRVbml0IGxpbmVDcm9zc0F4aXNFeHRlbnQsIFJlbmRl
ckJveCopOwogICAgIExheW91dFVuaXQgbWFyZ2luQm94QXNjZW50Rm9yQ2hpbGQoUmVuZGVyQm94
Kik7Cg==
</data>
<flag name="review"
          id="193294"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>177453</attachid>
            <date>2012-12-04 02:12:29 -0800</date>
            <delta_ts>2012-12-05 01:56:49 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>wcore-flexbox-repaints.diff</filename>
            <type>text/plain</type>
            <size>10524</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjNjgxNDU2Li40OWE3YmQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTItMTIt
MDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAg
IFJlZHVjZSB0aGUgY2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBk
dXJpbmcgdGhlIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTAzNTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgQWRkIHRlc3QgdG8gY2hlY2sgdGhhdCBmb3IgZmxleCBpdGVtcyBtb3ZlZCBtdWx0
aXBsZSB0aW1lcyBkdXJpbmcgdGhlCisgICAgICAgIGxheW91dCwgb25seSB0aGUgaW5pdGlhbCBh
bmQgZmluYWwgcG9zaXRpb25zIGFyZSByZXBhaW50ZWQuCisKKyAgICAgICAgKiBjc3MzL2ZsZXhi
b3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGNzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHBsYXRmb3JtL2Nocm9taXVtLWxpbnV4L2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1y
ZXZlcnNlLWV4cGVjdGVkLnBuZzogQWRkZWQuCisKIDIwMTItMTItMDQgIFRha2FzaGkgU2FrYW1v
dG8gIDx0YXNha0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIFdlYktpdCBnYXJk
ZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1
bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWlu
dC1jb2x1bW4tcmV2ZXJzZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uOGIxMzc4OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxl
eGJveC9yZXBhaW50LWNvbHVtbi1yZXZlcnNlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9yZXBhaW50LWNvbHVtbi1yZXZl
cnNlLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJz
ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjQyYjg1NzYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2
ZXJzZS5odG1sCkBAIC0wLDAgKzEsMzggQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorI2Zs
ZXhib3ggeworICAgIGRpc3BsYXk6IC13ZWJraXQtZmxleDsKKyAgICAtd2Via2l0LWZsZXgtZmxv
dzogY29sdW1uLXJldmVyc2U7CisgICAgd2lkdGg6IDIwMHB4OworfQorLmZsZXgtaXRlbSB7Cisg
ICAgaGVpZ2h0OiAzMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjaGFuZ2VD
aGlsZE1hcmdpbigpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsdWUiKS5zdHls
ZS5tYXJnaW4gPSAiMXB4IjsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCh0cnVlKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAg
IHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoCisgICAgICAgICAgICAiVGhp
cyB0ZXN0IGNoZWNrcyB0aGF0IGZvciBmbGV4IGl0ZW1zIHRoYXQgYXJlIG1vdmVkIG11bHRpcGxl
IHRpbWVzIGR1cmluZyB0aGUgbGF5b3V0ICIKKyAgICAgICAgICAgICsgIm9ubHkgdGhlIGluaXRp
YWwgYW5kIGZpbmFsIHBvc2l0aW9ucyBhcmUgcmVwYWludGVkLiBPbmx5IHRoZSBibHVlIGZsZXgg
aXRlbSBzaG91bGQgYmUgcmVwYWludGVkICIKKyAgICAgICAgICAgICsgImFmdGVyIGNoYW5naW5n
IGl0cyBwb3NpdGlvbi4gSWYgdGhlIG90aGVyIGZsZXggaXRlbXMgYXJlIHJlcGFpbnRlZCwgdGhp
cyB0ZXN0IGZhaWxzLiIpKTsKKyAgICB9CisgICAgc2V0VGltZW91dChjaGFuZ2VDaGlsZE1hcmdp
biwgMCk7Cit9OworPC9zY3JpcHQ+Cis8ZGl2IGlkPSJmbGV4Ym94Ij4KKyAgPGRpdiBpZD0iYmx1
ZSIgY2xhc3M9ImZsZXgtaXRlbSIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6IGJsdWU7Ij48L2Rp
dj4KKyAgPGRpdiBpZD0iZ3JlZW4iIGNsYXNzPSJmbGV4LWl0ZW0iIHN0eWxlPSJiYWNrZ3JvdW5k
LWNvbG9yOiBncmVlbjsiPjwvZGl2PgorICA8ZGl2IGlkPSJ5ZWxsb3ciIGNsYXNzPSJmbGV4LWl0
ZW0iIHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7Ij48L2Rpdj4KKzwvZGl2PgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbGludXgvY3NzMy9mbGV4Ym94
L3JlcGFpbnQtY29sdW1uLXJldmVyc2UtZXhwZWN0ZWQucG5nIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0tbGludXgvY3NzMy9mbGV4Ym94L3JlcGFpbnQtY29sdW1uLXJldmVyc2UtZXhw
ZWN0ZWQucG5nCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzZjFmZmM2ZDgwYjhmYWQ0YmU5MTcxMjM3YzNhNjVkYmRi
ZjY5NDIKR0lUIGJpbmFyeSBwYXRjaApsaXRlcmFsIDI4OTcKemNtZUFTQE4/KG9sSHlgdVZCcSFp
YTB5fnlVeyt2WVYyYT5pMCpaKT1oXmhsQSVAV3MkbEhgb2s8bX0/b1QhdiYqCno2OWJiWlF2KGE1
NmpLWEpnT3Q9e09MSWRyNkxXTEpMPDw4VzxKNjdMaFZsI3lUI3Izbjk3OEpSeXVHdXJfcHBIbwp6
PiVxczRjWHVkVWQoamxiQUtOSXFSPCZXND1nZDY/QTZZWmJTcEh7VmM9MEZSbVZxSWBvUWEhM0wy
VXlBTGxQJEEKemAxOXFARTQ2bkJ7KlByJnNNbXtOVUAmWkNXZV5ZXkQ4fE9lbWspbX5lYTc9SCQh
PVg3MUg9QzNPI3xyfmE5QnVaCnp1VSYxPHo+eEZ3JDB4STZuWmBSPDRmemxGeyYzK0t6KSU5YSVY
OzZRd1dZVXM3I2VES0JycX1AVkcoMCtAV0lXPAp6SWIqczA5c3xQJFFFP3JIaDhZSyM3JjxzZDhL
WiRQbmk1OEghRHVjUiU+fD5tVV5FdkRsM1p7QGBsWWVKWm5PMUUKUjVgYi1GMjJXUSVtdnY0Rk8j
bj0qNVVLekcKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4NWY4ZjQ2Li40
M2EzMjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTItMTItMDQgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFJlZHVjZSB0aGUg
Y2hpbGRyZW4gcmVwYWludHMgd2hlbiBtb3ZlZCBtdWx0aXBsZSB0aW1lcyBkdXJpbmcgdGhlIGxh
eW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAz
NTEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2Fj
aGUgdGhlIGNoaWxkcmVuIHBvc2l0aW9ucyBiZWZvcmUgdGhlIGxheW91dCBhbmQgbW92ZSB0byB0
aGUKKyAgICAgICAgZmluYWwgcG9zaXRpb24gYWZ0ZXIgdGhlIGxheW91dC4KKworICAgICAgICBU
ZXN0OiBjc3MzL2ZsZXhib3gvcmVwYWludC1jb2x1bW4tcmV2ZXJzZS5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6Ok9yZGVySXRlcmF0b3I6Ok9yZGVySXRlcmF0b3IpOiBEbyBub3QKKyAg
ICAgICAgY2FsbCBmaXJzdCgpIG9uIHRoZSBjb25zcnVjdG9yLgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKTogVXNlIGEgVmVjdG9yIHdpdGggdGhlCisg
ICAgICAgIGNoaWxkcmVuIGZyYW1lIHJlY3RzIGJlZm9yZSB0aGUgbGF5b3V0IGFuZCBjYWxsCisg
ICAgICAgIHJlcGFpbnRDaGlsZHJlbkR1cmluZ0xheW91dElmTW92ZWQoKSB0byByZXBhaW50IHRo
ZSBjaGlsZHJlbiB0aGF0CisgICAgICAgIGhhdmUgYmVlbiBtb3ZlZC4KKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckZsZXhpYmxlQm94OjphcHBlbmRDaGlsZHJlbkZyYW1lUmVjdHMpOiBSZXR1cm4g
YQorICAgICAgICBWZWN0b3Igd2l0aCBjaGlsZHJlbiBmcmFtZSByZWN0cy4KKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpyZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1v
dmVkKToKKyAgICAgICAgQ2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpIGZvciBldmVy
eSBjaGlsZHJlbiB1c2luZyB0aGUgb2xkCisgICAgICAgIGZyYW1lIHJlY3RzLgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OnNldEZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQp
OiBEbyBub3QKKyAgICAgICAgY2FsbCByZXBhaW50RHVyaW5nTGF5b3V0SWZNb3ZlZCgpLgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6IE1ha2Ug
c3VyZSB0aGUKKyAgICAgICAgcGFzc2VkIGl0ZXJhdG9yIHBvaW50cyB0byB0aGUgZmlyc3QgY2hp
bGQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIwMTItMTIt
MDMgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFtHVEtdIFNpbXBsaWZ5IEdPYmplY3QgRE9NIGJpbmRpbmdzIGNvZGUgZm9yIGhhbmRsaW5nIHBy
b3BlcnRpZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4
aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3gu
Y3BwCmluZGV4IDQxMGM1ZDEuLjQ1OWMxMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtNTgsNyArNTgsNiBAQCBwdWJsaWM6CiAgICAg
ewogICAgICAgICBjb3B5VG9WZWN0b3Iob3JkZXJWYWx1ZXMsIG1fb3JkZXJWYWx1ZXMpOwogICAg
ICAgICBzdGQ6OnNvcnQobV9vcmRlclZhbHVlcy5iZWdpbigpLCBtX29yZGVyVmFsdWVzLmVuZCgp
KTsKLSAgICAgICAgZmlyc3QoKTsKICAgICB9CiAKICAgICBSZW5kZXJCb3gqIGN1cnJlbnRDaGls
ZCgpIHsgcmV0dXJuIG1fY3VycmVudENoaWxkOyB9CkBAIC0zMzMsNiArMzMyLDkgQEAgdm9pZCBS
ZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlv
dXRVbml0KQogICAgIE9yZGVySGFzaFNldCBvcmRlclZhbHVlczsKICAgICBjb21wdXRlTWFpbkF4
aXNQcmVmZXJyZWRTaXplcyhyZWxheW91dENoaWxkcmVuLCBvcmRlclZhbHVlcyk7CiAgICAgbV9v
cmRlckl0ZXJhdG9yID0gYWRvcHRQdHIobmV3IE9yZGVySXRlcmF0b3IodGhpcywgb3JkZXJWYWx1
ZXMpKTsKKworICAgIENoaWxkcmVuRnJhbWVSZWN0cyBjaGlsZHJlbk9sZFJlY3RzOworICAgIGFw
cGVuZENoaWxkcmVuRnJhbWVSZWN0cyhjaGlsZHJlbk9sZFJlY3RzKTsKICAgICBsYXlvdXRGbGV4
SXRlbXMoKm1fb3JkZXJJdGVyYXRvciwgbGluZUNvbnRleHRzKTsKIAogICAgIExheW91dFVuaXQg
b2xkQ2xpZW50QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwpAQCAtMzQ5LDYgKzM1
MSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBjb21wdXRlUmVnaW9uUmFuZ2VGb3JCbG9jaygpOwog
ICAgIGNsZWFyQ2hpbGRPdmVycmlkZVNpemVzKCk7CiAKKyAgICByZXBhaW50Q2hpbGRyZW5EdXJp
bmdMYXlvdXRJZk1vdmVkKGNoaWxkcmVuT2xkUmVjdHMpOwogICAgIC8vIEZJWE1FOiBjc3MzL2Zs
ZXhib3gvcmVwYWludC1ydGwtY29sdW1uLmh0bWwgc2VlbXMgdG8gcmVwYWludCBtb3JlIG92ZXJm
bG93IHRoYW4gaXQgbmVlZHMgdG8uCiAgICAgY29tcHV0ZU92ZXJmbG93KG9sZENsaWVudEFmdGVy
RWRnZSk7CiAgICAgc3RhdGVQdXNoZXIucG9wKCk7CkBAIC0zNjQsNiArMzY3LDM0IEBAIHZvaWQg
UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5
b3V0VW5pdCkKICAgICBzZXROZWVkc0xheW91dChmYWxzZSk7CiB9CiAKK3ZvaWQgUmVuZGVyRmxl
eGlibGVCb3g6OmFwcGVuZENoaWxkcmVuRnJhbWVSZWN0cyhDaGlsZHJlbkZyYW1lUmVjdHMmIGNo
aWxkcmVuRnJhbWVSZWN0cykKK3sKKyAgICBBU1NFUlQobV9vcmRlckl0ZXJhdG9yKTsKKworICAg
IGZvciAoUmVuZGVyQm94KiBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci0+Zmlyc3QoKTsgY2hpbGQ7
IGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLT5uZXh0KCkpIHsKKyAgICAgICAgaWYgKCFjaGlsZC0+
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCisgICAgICAgICAgICBjaGlsZHJlbkZyYW1lUmVjdHMu
YXBwZW5kKGNoaWxkLT5mcmFtZVJlY3QoKSk7CisgICAgfQorfQorCit2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjpyZXBhaW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IENoaWxkcmVu
RnJhbWVSZWN0cyYgY2hpbGRyZW5PbGRSZWN0cykKK3sKKyAgICBBU1NFUlQobV9vcmRlckl0ZXJh
dG9yKTsKKworICAgIHNpemVfdCBjaGlsZEluZGV4ID0gMDsKKyAgICBmb3IgKFJlbmRlckJveCog
Y2hpbGQgPSBtX29yZGVySXRlcmF0b3ItPmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJ
dGVyYXRvci0+bmV4dCgpKSB7CisgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlv
bmVkKCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAvLyBJZiB0aGUgY2hpbGQg
bW92ZWQsIHdlIGhhdmUgdG8gcmVwYWludCBpdCBhcyB3ZWxsIGFzIGFueSBmbG9hdGluZy9wb3Np
dGlvbmVkCisgICAgICAgIC8vIGRlc2NlbmRhbnRzLiBBbiBleGNlcHRpb24gaXMgaWYgd2UgbmVl
ZCBhIGxheW91dC4gSW4gdGhpcyBjYXNlLCB3ZSBrbm93IHdlJ3JlIGdvaW5nIHRvCisgICAgICAg
IC8vIHJlcGFpbnQgb3Vyc2VsdmVzIChhbmQgdGhlIGNoaWxkKSBhbnl3YXkuCisgICAgICAgIGlm
ICghc2VsZk5lZWRzTGF5b3V0KCkgJiYgY2hpbGQtPmNoZWNrRm9yUmVwYWludER1cmluZ0xheW91
dCgpKQorICAgICAgICAgICAgY2hpbGQtPnJlcGFpbnREdXJpbmdMYXlvdXRJZk1vdmVkKGNoaWxk
cmVuT2xkUmVjdHNbY2hpbGRJbmRleF0pOworICAgICAgICArK2NoaWxkSW5kZXg7CisgICAgfQor
fQorCiB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpwYWludENoaWxkcmVuKFBhaW50SW5mbyYgcGFp
bnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQsIFBhaW50SW5mbyYgcGFpbnRJ
bmZvRm9yQ2hpbGQsIGJvb2wgdXNlUHJpbnRSZWN0KQogewogICAgIEFTU0VSVChtX29yZGVySXRl
cmF0b3IpOwpAQCAtNjY0LDIxICs2OTUsMTAgQEAgTGF5b3V0UG9pbnQgUmVuZGVyRmxleGlibGVC
b3g6OmZsb3dBd2FyZUxvY2F0aW9uRm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKIAog
dm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6c2V0Rmxvd0F3YXJlTG9jYXRpb25Gb3JDaGlsZChSZW5k
ZXJCb3gqIGNoaWxkLCBjb25zdCBMYXlvdXRQb2ludCYgbG9jYXRpb24pCiB7Ci0gICAgTGF5b3V0
UmVjdCBvbGRGcmFtZVJlY3QgPSBjaGlsZC0+ZnJhbWVSZWN0KCk7Ci0KICAgICBpZiAoaXNIb3Jp
em9udGFsRmxvdygpKQogICAgICAgICBjaGlsZC0+c2V0TG9jYXRpb24obG9jYXRpb24pOwogICAg
IGVsc2UKICAgICAgICAgY2hpbGQtPnNldExvY2F0aW9uKGxvY2F0aW9uLnRyYW5zcG9zZWRQb2lu
dCgpKTsKLQotICAgIC8vIElmIHRoZSBjaGlsZCBtb3ZlZCwgd2UgaGF2ZSB0byByZXBhaW50IGl0
IGFzIHdlbGwgYXMgYW55IGZsb2F0aW5nL3Bvc2l0aW9uZWQKLSAgICAvLyBkZXNjZW5kYW50cy4g
QW4gZXhjZXB0aW9uIGlzIGlmIHdlIG5lZWQgYSBsYXlvdXQuIEluIHRoaXMgY2FzZSwgd2Uga25v
dyB3ZSdyZSBnb2luZyB0bwotICAgIC8vIHJlcGFpbnQgb3Vyc2VsdmVzIChhbmQgdGhlIGNoaWxk
KSBhbnl3YXkuCi0gICAgLy8gRklYTUU6IEluIHNvbWUgY2FzZXMsIHdlIG1pZ2h0IG92ZXJwYWlu
dCBhcyB3ZSBtb3ZlIGEgY2hpbGQgbXVsdGlwbGUgdGltZXMuIFdlIGNvdWxkIHJlZHVjZQotICAg
IC8vIG92ZXJwYWludGluZyBieSBrZWVwaW5nIHRyYWNrIG9mIHRoZSBvcmlnaW5hbCBwb3NpdGlv
biBvZiBhIGNoaWxkIGFuZCBydW5uaW5nIHRoaXMgY2hlY2sgb24KLSAgICAvLyB0aGUgZmluYWwg
cG9zaXRpb24uCi0gICAgaWYgKCFzZWxmTmVlZHNMYXlvdXQoKSAmJiBjaGlsZC0+Y2hlY2tGb3JS
ZXBhaW50RHVyaW5nTGF5b3V0KCkpCi0gICAgICAgIGNoaWxkLT5yZXBhaW50RHVyaW5nTGF5b3V0
SWZNb3ZlZChvbGRGcmFtZVJlY3QpOwogfQogCiBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94
OjptYWluQXhpc0JvcmRlckFuZFBhZGRpbmdFeHRlbnRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxk
KSBjb25zdApAQCAtNzEwLDYgKzczMCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91
dEZsZXhJdGVtcyhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwgV1RGOjpWZWN0b3I8TGluCiAgICAg
ZG91YmxlIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rOwogICAgIExheW91dFVuaXQgbWluTWF4QXBw
bGllZE1haW5BeGlzRXh0ZW50OwogCisgICAgaXRlcmF0b3IuZmlyc3QoKTsKICAgICBMYXlvdXRV
bml0IGNyb3NzQXhpc09mZnNldCA9IGZsb3dBd2FyZUJvcmRlckJlZm9yZSgpICsgZmxvd0F3YXJl
UGFkZGluZ0JlZm9yZSgpOwogICAgIHdoaWxlIChjb21wdXRlTmV4dEZsZXhMaW5lKGl0ZXJhdG9y
LCBvcmRlcmVkQ2hpbGRyZW4sIHByZWZlcnJlZE1haW5BeGlzRXh0ZW50LCB0b3RhbEZsZXhHcm93
LCB0b3RhbFdlaWdodGVkRmxleFNocmluaywgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50KSkg
ewogICAgICAgICBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSA9IG1haW5BeGlzQ29udGVu
dEV4dGVudChwcmVmZXJyZWRNYWluQXhpc0V4dGVudCkgLSBwcmVmZXJyZWRNYWluQXhpc0V4dGVu
dDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKaW5kZXgg
YzY0YjNjYi4uMGJlZjBkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmgKQEAgLTc4LDYgKzc4LDggQEAgcHJpdmF0ZToKICAgICBzdHJ1Y3QgTGluZUNv
bnRleHQ7CiAgICAgc3RydWN0IFZpb2xhdGlvbjsKIAorICAgIHR5cGVkZWYgVmVjdG9yPExheW91
dFJlY3QsIDg+IENoaWxkcmVuRnJhbWVSZWN0czsKKwogICAgIGJvb2wgaGFzT3J0aG9nb25hbEZs
b3coUmVuZGVyQm94KiBjaGlsZCkgY29uc3Q7CiAgICAgYm9vbCBpc0NvbHVtbkZsb3coKSBjb25z
dDsKICAgICBib29sIGlzTGVmdFRvUmlnaHRGbG93KCkgY29uc3Q7CkBAIC0xMjIsNiArMTI0LDgg
QEAgcHJpdmF0ZToKICAgICBib29sIHVwZGF0ZUF1dG9NYXJnaW5zSW5Dcm9zc0F4aXMoUmVuZGVy
Qm94KiBjaGlsZCwgTGF5b3V0VW5pdCBhdmFpbGFibGVBbGlnbm1lbnRTcGFjZSk7CiAgICAgdm9p
ZCByZXBvc2l0aW9uTG9naWNhbEhlaWdodERlcGVuZGVudEZsZXhJdGVtcyhPcmRlckl0ZXJhdG9y
JiwgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+JiwgTGF5b3V0VW5pdCYgb2xkQ2xpZW50QWZ0ZXJF
ZGdlKTsKICAgICB2b2lkIGNsZWFyQ2hpbGRPdmVycmlkZVNpemVzKCk7CisgICAgdm9pZCBhcHBl
bmRDaGlsZHJlbkZyYW1lUmVjdHMoQ2hpbGRyZW5GcmFtZVJlY3RzJik7CisgICAgdm9pZCByZXBh
aW50Q2hpbGRyZW5EdXJpbmdMYXlvdXRJZk1vdmVkKGNvbnN0IENoaWxkcmVuRnJhbWVSZWN0cyYp
OwogCiAgICAgTGF5b3V0VW5pdCBhdmFpbGFibGVBbGlnbm1lbnRTcGFjZUZvckNoaWxkKExheW91
dFVuaXQgbGluZUNyb3NzQXhpc0V4dGVudCwgUmVuZGVyQm94Kik7CiAgICAgTGF5b3V0VW5pdCBt
YXJnaW5Cb3hBc2NlbnRGb3JDaGlsZChSZW5kZXJCb3gqKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>