<?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>82240</bug_id>
          
          <creation_ts>2012-03-26 13:43:52 -0700</creation_ts>
          <short_desc>apply cross axis constraints before aligning children in flexbox</short_desc>
          <delta_ts>2012-03-26 15:47:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>mitz</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>588084</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-26 13:43:52 -0700</bug_when>
    <thetext>apply cross axis constraints before aligning children in flexbox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588091</commentid>
    <comment_count>1</comment_count>
      <attachid>133883</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-26 13:48:37 -0700</bug_when>
    <thetext>Created attachment 133883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588132</commentid>
    <comment_count>2</comment_count>
      <attachid>133883</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2012-03-26 14:34:24 -0700</bug_when>
    <thetext>Comment on attachment 133883
Patch

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

Yay! This looks great!

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:274
&gt; +    if (!isMultiline() &amp;&amp; lineContexts.size() == 1)

Should this also have ASSERT(lineContexts.size() &lt;= 1)? Can we have a non-1 size if it&apos;s not multiline other than the case of no flex items? Meh. Maybe it&apos;s overkill.

This maybe deserves a comment? I had to read a bunch of code to piece together that we need to reset crossAxisExtent *after* computeLogicalHeight.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:285
&gt; +        lineContexts[0].crossAxisExtent = crossAxisContentExtent();
&gt; +    alignChildren(flexIterator, lineContexts);
&gt; +
&gt; +    if (style()-&gt;flexWrap() == FlexWrapReverse) {
&gt; +        if (isHorizontalFlow())
&gt; +            oldClientAfterEdge = clientLogicalBottom();
&gt; +        flipForWrapReverse(flexIterator, lineContexts);
&gt; +    }
&gt; +
&gt; +    // direction:rtl + flex-direction:column means the cross-axis direction is flipped.
&gt; +    flipForRightToLeftColumn(flexIterator);

Would make the code a bit more readable to move this into a function IMO. repositionLogicalHeightDependentFlexItems? It&apos;s wordy, but it make the logic of computeLogicalWidth--&gt;layoutItems--&gt;computeLogicalHeight--&gt;resposition more clear, e.g. someone modifying this code will be more likely to understand that they can only reposition things in repositionHeightDependentFlexItems.

I guess the confusing thing there is that alignChildren isn&apos;t necessarily height-dependent, but I think that&apos;s OK.

&gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:929
&gt;          layoutColumnReverse(children, childSizes, crossAxisOffset, availableFreeSpace);

Should we move this to after the computLogicalHeight call in layoutBlock? Then we would just have the 1 computeLogicalHeight call in all of flexbox layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588149</commentid>
    <comment_count>3</comment_count>
      <attachid>133896</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-26 14:45:57 -0700</bug_when>
    <thetext>Created attachment 133896
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588154</commentid>
    <comment_count>4</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-26 14:49:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 133883 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=133883&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:274
&gt; &gt; +    if (!isMultiline() &amp;&amp; lineContexts.size() == 1)
&gt; 
&gt; Should this also have ASSERT(lineContexts.size() &lt;= 1)? Can we have a non-1 size if it&apos;s not multiline other than the case of no flex items? Meh. Maybe it&apos;s overkill.
&gt; 
&gt; This maybe deserves a comment? I had to read a bunch of code to piece together that we need to reset crossAxisExtent *after* computeLogicalHeight.

I added a comment. Yes, the size == 1 is to make sure we don&apos;t have 0 items. Doesn&apos;t seem worth an ASSERT.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:285
&gt; &gt; +        lineContexts[0].crossAxisExtent = crossAxisContentExtent();
&gt; &gt; +    alignChildren(flexIterator, lineContexts);
&gt; &gt; +
&gt; &gt; +    if (style()-&gt;flexWrap() == FlexWrapReverse) {
&gt; &gt; +        if (isHorizontalFlow())
&gt; &gt; +            oldClientAfterEdge = clientLogicalBottom();
&gt; &gt; +        flipForWrapReverse(flexIterator, lineContexts);
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    // direction:rtl + flex-direction:column means the cross-axis direction is flipped.
&gt; &gt; +    flipForRightToLeftColumn(flexIterator);
&gt; 
&gt; Would make the code a bit more readable to move this into a function IMO. repositionLogicalHeightDependentFlexItems? It&apos;s wordy, but it make the logic of computeLogicalWidth--&gt;layoutItems--&gt;computeLogicalHeight--&gt;resposition more clear, e.g. someone modifying this code will be more likely to understand that they can only reposition things in repositionHeightDependentFlexItems.

Added a helper function.

&gt; &gt; Source/WebCore/rendering/RenderFlexibleBox.cpp:929
&gt; &gt;          layoutColumnReverse(children, childSizes, crossAxisOffset, availableFreeSpace);
&gt; 
&gt; Should we move this to after the computLogicalHeight call in layoutBlock? Then we would just have the 1 computeLogicalHeight call in all of flexbox layout.

Nope, then we would get the wrong bottom edge when calling clientLogicalBottom (when we reposition, there should be no bottom overhang). I could move it, but then I would have to do similar fixup like I do before flipForWrapReverse.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588190</commentid>
    <comment_count>5</comment_count>
      <attachid>133896</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 15:26:21 -0700</bug_when>
    <thetext>Comment on attachment 133896
Patch for landing

Clearing flags on attachment: 133896

Committed r112154: &lt;http://trac.webkit.org/changeset/112154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588191</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-26 15:26:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>588220</commentid>
    <comment_count>7</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-03-26 15:47:29 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; All reviewed patches have been landed.  Closing bug.

Looks like this broke on clang, but mitz fixed it.  Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133883</attachid>
            <date>2012-03-26 13:48:37 -0700</date>
            <delta_ts>2012-03-26 14:45:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-82240-20120326134853.patch</filename>
            <type>text/plain</type>
            <size>10566</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjMTY2NTMyYWRhZjEx
Y2YwOGIxMjM1ZjI0Zjg1OWY5N2JjZjYwZS4uMWYzMmU0MWRjMjFkOTU3ZGExMzU2NmI0YmY0ZDk5
YTNmZWQ1NGEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTI2ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgYXBwbHkgY3Jvc3MgYXhpcyBj
b25zdHJhaW50cyBiZWZvcmUgYWxpZ25pbmcgY2hpbGRyZW4gaW4gZmxleGJveAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIyNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXZSB3ZXJlbid0IGFwcGx5aW5n
IG1heC1oZWlnaHQgY29uc3RyYWludHMgYmVmb3JlIGFsaWduaW5nIGNoaWxkcmVuLgorICAgICAg
ICBUaGlzIHdvdWxkIGNhdXNlIGNlbnRlciwgZW5kLCBzdHJldGNoIGFsaWdubWVudCB0byBiZSB3
cm9uZyBpZiB3ZSBoaXQKKyAgICAgICAgYSBtYXgtaGVpZ2h0IG9uIGEgZmxleGJveC4KKworICAg
ICAgICBUaGlzIHBhdGNoIGFsc28gbW92ZXMgdGhlIHJlcG9zaXRpb25pbmcgbG9naWMgdG8gaGFw
cGVuIGFmdGVyCisgICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0LCB3aGljaCB3aWxsIGJlIHVz
ZWZ1bCBmb3IgZmxleC1saW5lLXBhY2suCisKKyAgICAgICAgTmV3IHRlc3QgY2FzZSBpbiBjc3Mz
L2ZsZXhib3gvZmxleC1hbGlnbi5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxl
eGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91
dEJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRGbGV4
SXRlbXMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFuZFBs
YWNlQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oOgor
CiAyMDEyLTAzLTI2ICBSb2JpbiBDYW8gIDxyb2Jpbi5jYW9AdG9yY2htb2JpbGUuY29tLmNuPgog
CiAgICAgICAgIFtCbGFja0JlcnJ5XSBVcHN0cmVhbSBMYXllckNvbXBvc2l0aW5nVGhyZWFkLnto
LCBjcHB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNw
cAppbmRleCBjYWFiYmFhNmE3ZWMzYjM4ZWVlZmYwZGNlZTZmZDQ3YmE1Y2FjMjE1Li4wN2MxMGNi
OTEzY2FjODFhYzJkYzhiMTdmMGJjODYwYjg4ZTVhZjAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTI1MCw5ICsyNTAsNyBAQCB2b2lk
IFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIGlu
dCwgQmxvY2tMYXlvdXRQYXNzKQogICAgIEludFNpemUgcHJldmlvdXNTaXplID0gc2l6ZSgpOwog
CiAgICAgc2V0TG9naWNhbEhlaWdodCgwKTsKLSAgICAvLyBXZSBuZWVkIHRvIGNhbGwgYm90aCBv
ZiB0aGVzZSBiZWNhdXNlIHdlIGdyYWIgYm90aCBjcm9zc0F4aXNFeHRlbnQgYW5kIG1haW5BeGlz
RXh0ZW50IGluIGxheW91dEZsZXhJdGVtcy4KICAgICBjb21wdXRlTG9naWNhbFdpZHRoKCk7Ci0g
ICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKIApA
QCAtMjY0LDExICsyNjIsMjggQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2so
Ym9vbCByZWxheW91dENoaWxkcmVuLCBpbnQsIEJsb2NrTGF5b3V0UGFzcykKICAgICAgICAgICAg
IGxheWVyKCktPnNldEhhc1ZlcnRpY2FsU2Nyb2xsYmFyKHRydWUpOwogICAgIH0KIAotICAgIGxh
eW91dEZsZXhJdGVtcyhyZWxheW91dENoaWxkcmVuKTsKKyAgICBXVEY6OlZlY3RvcjxMaW5lQ29u
dGV4dD4gbGluZUNvbnRleHRzOworICAgIEZsZXhPcmRlckhhc2hTZXQgZmxleE9yZGVyVmFsdWVz
OworICAgIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVzKHJlbGF5b3V0Q2hpbGRyZW4sIGZs
ZXhPcmRlclZhbHVlcyk7CisgICAgRmxleE9yZGVySXRlcmF0b3IgZmxleEl0ZXJhdG9yKHRoaXMs
IGZsZXhPcmRlclZhbHVlcyk7CisgICAgbGF5b3V0RmxleEl0ZW1zKHJlbGF5b3V0Q2hpbGRyZW4s
IGZsZXhJdGVyYXRvciwgbGluZUNvbnRleHRzKTsKIAogICAgIExheW91dFVuaXQgb2xkQ2xpZW50
QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwogICAgIGNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCk7CiAKKyAgICBpZiAoIWlzTXVsdGlsaW5lKCkgJiYgbGluZUNvbnRleHRzLnNpemUoKSA9
PSAxKQorICAgICAgICBsaW5lQ29udGV4dHNbMF0uY3Jvc3NBeGlzRXh0ZW50ID0gY3Jvc3NBeGlz
Q29udGVudEV4dGVudCgpOworICAgIGFsaWduQ2hpbGRyZW4oZmxleEl0ZXJhdG9yLCBsaW5lQ29u
dGV4dHMpOworCisgICAgaWYgKHN0eWxlKCktPmZsZXhXcmFwKCkgPT0gRmxleFdyYXBSZXZlcnNl
KSB7CisgICAgICAgIGlmIChpc0hvcml6b250YWxGbG93KCkpCisgICAgICAgICAgICBvbGRDbGll
bnRBZnRlckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90dG9tKCk7CisgICAgICAgIGZsaXBGb3JXcmFw
UmV2ZXJzZShmbGV4SXRlcmF0b3IsIGxpbmVDb250ZXh0cyk7CisgICAgfQorCisgICAgLy8gZGly
ZWN0aW9uOnJ0bCArIGZsZXgtZGlyZWN0aW9uOmNvbHVtbiBtZWFucyB0aGUgY3Jvc3MtYXhpcyBk
aXJlY3Rpb24gaXMgZmxpcHBlZC4KKyAgICBmbGlwRm9yUmlnaHRUb0xlZnRDb2x1bW4oZmxleEl0
ZXJhdG9yKTsKKwogICAgIGlmIChzaXplKCkgIT0gcHJldmlvdXNTaXplKQogICAgICAgICByZWxh
eW91dENoaWxkcmVuID0gdHJ1ZTsKIApAQCAtNTg5LDIxICs2MDQsMTYgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJGbGV4aWJsZUJveDo6Y29tcHV0ZUF2YWlsYWJsZUZyZWVTcGFjZShMYXlvdXRVbml0IHBy
ZWZlcnJlZE1haW4KICAgICByZXR1cm4gaGVpZ2h0UmVzdWx0IC0gcHJlZmVycmVkTWFpbkF4aXNF
eHRlbnQ7CiB9CiAKLXZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhib29s
IHJlbGF5b3V0Q2hpbGRyZW4pCit2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRGbGV4SXRl
bXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IsIFdU
Rjo6VmVjdG9yPExpbmVDb250ZXh0PiYgbGluZUNvbnRleHRzKQogewotICAgIEZsZXhPcmRlckhh
c2hTZXQgZmxleE9yZGVyVmFsdWVzOwotICAgIGNvbXB1dGVNYWluQXhpc1ByZWZlcnJlZFNpemVz
KHJlbGF5b3V0Q2hpbGRyZW4sIGZsZXhPcmRlclZhbHVlcyk7Ci0KICAgICBPcmRlcmVkRmxleEl0
ZW1MaXN0IG9yZGVyZWRDaGlsZHJlbjsKICAgICBMYXlvdXRVbml0IHByZWZlcnJlZE1haW5BeGlz
RXh0ZW50OwogICAgIGZsb2F0IHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eTsKICAgICBmbG9hdCB0
b3RhbE5lZ2F0aXZlRmxleGliaWxpdHk7CiAgICAgTGF5b3V0VW5pdCBtaW5NYXhBcHBsaWVkTWFp
bkF4aXNFeHRlbnQ7Ci0gICAgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+IGxpbmVDb250ZXh0czsK
LSAgICBGbGV4T3JkZXJJdGVyYXRvciBmbGV4SXRlcmF0b3IodGhpcywgZmxleE9yZGVyVmFsdWVz
KTsKIAogICAgIExheW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0ID0gZmxvd0F3YXJlQm9yZGVyQmVm
b3JlKCkgKyBmbG93QXdhcmVQYWRkaW5nQmVmb3JlKCk7Ci0gICAgd2hpbGUgKGNvbXB1dGVOZXh0
RmxleExpbmUoZmxleEl0ZXJhdG9yLCBvcmRlcmVkQ2hpbGRyZW4sIHByZWZlcnJlZE1haW5BeGlz
RXh0ZW50LCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0
eSwgbWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50KSkgeworICAgIHdoaWxlIChjb21wdXRlTmV4
dEZsZXhMaW5lKGl0ZXJhdG9yLCBvcmRlcmVkQ2hpbGRyZW4sIHByZWZlcnJlZE1haW5BeGlzRXh0
ZW50LCB0b3RhbFBvc2l0aXZlRmxleGliaWxpdHksIHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eSwg
bWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50KSkgewogICAgICAgICBMYXlvdXRVbml0IGF2YWls
YWJsZUZyZWVTcGFjZSA9IGNvbXB1dGVBdmFpbGFibGVGcmVlU3BhY2UocHJlZmVycmVkTWFpbkF4
aXNFeHRlbnQpOwogICAgICAgICBGbGV4U2lnbiBmbGV4U2lnbiA9IChtaW5NYXhBcHBsaWVkTWFp
bkF4aXNFeHRlbnQgPCBwcmVmZXJyZWRNYWluQXhpc0V4dGVudCArIGF2YWlsYWJsZUZyZWVTcGFj
ZSkgPyBQb3NpdGl2ZUZsZXhpYmlsaXR5IDogTmVnYXRpdmVGbGV4aWJpbGl0eTsKICAgICAgICAg
SW5mbGV4aWJsZUZsZXhJdGVtU2l6ZSBpbmZsZXhpYmxlSXRlbXM7CkBAIC02MTUsMTQgKzYyNSw2
IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhib29sIHJlbGF5b3V0
Q2hpbGRyZW4pCiAKICAgICAgICAgbGF5b3V0QW5kUGxhY2VDaGlsZHJlbihjcm9zc0F4aXNPZmZz
ZXQsIG9yZGVyZWRDaGlsZHJlbiwgY2hpbGRTaXplcywgYXZhaWxhYmxlRnJlZVNwYWNlLCBsaW5l
Q29udGV4dHMpOwogICAgIH0KLS8vCi0gICAgYWxpZ25DaGlsZHJlbihmbGV4SXRlcmF0b3IsIGxp
bmVDb250ZXh0cyk7Ci0KLSAgICBpZiAoc3R5bGUoKS0+ZmxleFdyYXAoKSA9PSBGbGV4V3JhcFJl
dmVyc2UpCi0gICAgICAgIGZsaXBGb3JXcmFwUmV2ZXJzZShmbGV4SXRlcmF0b3IsIGxpbmVDb250
ZXh0cyk7Ci0KLSAgICAvLyBkaXJlY3Rpb246cnRsICsgZmxleC1kaXJlY3Rpb246Y29sdW1uIG1l
YW5zIHRoZSBjcm9zcy1heGlzIGRpcmVjdGlvbiBpcyBmbGlwcGVkLgotICAgIGZsaXBGb3JSaWdo
dFRvTGVmdENvbHVtbihmbGV4SXRlcmF0b3IpOwogfQogCiBmbG9hdCBSZW5kZXJGbGV4aWJsZUJv
eDo6cG9zaXRpdmVGbGV4Rm9yQ2hpbGQoUmVuZGVyQm94KiBjaGlsZCkgY29uc3QKQEAgLTkyNyw5
ICs5MjksOCBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVu
KExheW91dFVuaXQmIGNyb3NzQXhpc09mZnNldCwgY29ucwogICAgICAgICBsYXlvdXRDb2x1bW5S
ZXZlcnNlKGNoaWxkcmVuLCBjaGlsZFNpemVzLCBjcm9zc0F4aXNPZmZzZXQsIGF2YWlsYWJsZUZy
ZWVTcGFjZSk7CiAgICAgfQogCi0gICAgTGF5b3V0VW5pdCBsaW5lQ3Jvc3NBeGlzRXh0ZW50ID0g
aXNNdWx0aWxpbmUoKSA/IG1heENoaWxkQ3Jvc3NBeGlzRXh0ZW50IDogY3Jvc3NBeGlzQ29udGVu
dEV4dGVudCgpOwotICAgIGxpbmVDb250ZXh0cy5hcHBlbmQoTGluZUNvbnRleHQoY3Jvc3NBeGlz
T2Zmc2V0LCBsaW5lQ3Jvc3NBeGlzRXh0ZW50LCBjaGlsZHJlbi5zaXplKCksIG1heEFzY2VudCkp
OwotICAgIGNyb3NzQXhpc09mZnNldCArPSBsaW5lQ3Jvc3NBeGlzRXh0ZW50OworICAgIGxpbmVD
b250ZXh0cy5hcHBlbmQoTGluZUNvbnRleHQoY3Jvc3NBeGlzT2Zmc2V0LCBtYXhDaGlsZENyb3Nz
QXhpc0V4dGVudCwgY2hpbGRyZW4uc2l6ZSgpLCBtYXhBc2NlbnQpKTsKKyAgICBjcm9zc0F4aXNP
ZmZzZXQgKz0gbWF4Q2hpbGRDcm9zc0F4aXNFeHRlbnQ7CiB9CiAKIHZvaWQgUmVuZGVyRmxleGli
bGVCb3g6OmxheW91dENvbHVtblJldmVyc2UoY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYgY2hp
bGRyZW4sIGNvbnN0IFdURjo6VmVjdG9yPExheW91dFVuaXQ+JiBjaGlsZFNpemVzLCBMYXlvdXRV
bml0IGNyb3NzQXhpc09mZnNldCwgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UpCkBAIC0x
MDc2LDkgKzEwNzcsNiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpmbGlwRm9yUmlnaHRUb0xl
ZnRDb2x1bW4oRmxleE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yKQogCiB2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjpmbGlwRm9yV3JhcFJldmVyc2UoRmxleE9yZGVySXRlcmF0b3ImIGl0ZXJhdG9yLCBj
b25zdCBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4mIGxpbmVDb250ZXh0cykKIHsKLSAgICBpZiAo
IWlzQ29sdW1uRmxvdygpKQotICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOwotCiAgICAg
TGF5b3V0VW5pdCBjb250ZW50RXh0ZW50ID0gY3Jvc3NBeGlzQ29udGVudEV4dGVudCgpOwogICAg
IFJlbmRlckJveCogY2hpbGQgPSBpdGVyYXRvci5maXJzdCgpOwogICAgIGZvciAoc2l6ZV90IGxp
bmVOdW1iZXIgPSAwOyBsaW5lTnVtYmVyIDwgbGluZUNvbnRleHRzLnNpemUoKTsgKytsaW5lTnVt
YmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmlu
ZGV4IGM2NWU2ZGM5YjljMjdjNDEwMWNlN2M1N2Y3NWQ1NTJhNjBjNmMwNWYuLmIyODIyNTg3YjMz
NDM3MjdjOTUzMzkwNDRkNWMyYThhMWMxNjZmYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xMDAsNyArMTAwLDcgQEAgcHJpdmF0ZToKICAg
ICBMYXlvdXRVbml0IG1haW5BeGlzU2Nyb2xsYmFyRXh0ZW50Rm9yQ2hpbGQoUmVuZGVyQm94KiBj
aGlsZCkgY29uc3Q7CiAgICAgTGF5b3V0VW5pdCBwcmVmZXJyZWRNYWluQXhpc0NvbnRlbnRFeHRl
bnRGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKIAotICAgIHZvaWQgbGF5b3V0Rmxl
eEl0ZW1zKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7CisgICAgdm9pZCBsYXlvdXRGbGV4SXRlbXMo
Ym9vbCByZWxheW91dENoaWxkcmVuLCBGbGV4T3JkZXJJdGVyYXRvciYsIFdURjo6VmVjdG9yPExp
bmVDb250ZXh0PiYpOwogCiAgICAgZmxvYXQgcG9zaXRpdmVGbGV4Rm9yQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCkgY29uc3Q7CiAgICAgZmxvYXQgbmVnYXRpdmVGbGV4Rm9yQ2hpbGQoUmVuZGVyQm94
KiBjaGlsZCkgY29uc3Q7CkBAIC0xMTksNyArMTE5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQg
c2V0TG9naWNhbE92ZXJyaWRlU2l6ZShSZW5kZXJCb3gqIGNoaWxkLCBMYXlvdXRVbml0IGNoaWxk
UHJlZmVycmVkU2l6ZSk7CiAgICAgdm9pZCBwcmVwYXJlQ2hpbGRGb3JQb3NpdGlvbmVkTGF5b3V0
KFJlbmRlckJveCogY2hpbGQsIExheW91dFVuaXQgbWFpbkF4aXNPZmZzZXQsIExheW91dFVuaXQg
Y3Jvc3NBeGlzT2Zmc2V0KTsKLSAgICB2b2lkIGxheW91dEFuZFBsYWNlQ2hpbGRyZW4oTGF5b3V0
VW5pdCYgY3Jvc3NBeGlzT2Zmc2V0LCBjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0JiwgY29uc3Qg
V1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxl
RnJlZVNwYWNlLCBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4mIGxpbmVDb250ZXh0cyk7CisgICAg
dm9pZCBsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKExheW91dFVuaXQmIGNyb3NzQXhpc09mZnNldCwg
Y29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYsIGNvbnN0IFdURjo6VmVjdG9yPExheW91dFVuaXQ+
JiBjaGlsZFNpemVzLCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSwgV1RGOjpWZWN0b3I8
TGluZUNvbnRleHQ+Jik7CiAgICAgdm9pZCBsYXlvdXRDb2x1bW5SZXZlcnNlKGNvbnN0IE9yZGVy
ZWRGbGV4SXRlbUxpc3QmLCBjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXpl
cywgTGF5b3V0VW5pdCBjcm9zc0F4aXNPZmZzZXQsIExheW91dFVuaXQgYXZhaWxhYmxlRnJlZVNw
YWNlKTsKICAgICB2b2lkIGFsaWduQ2hpbGRyZW4oRmxleE9yZGVySXRlcmF0b3ImLCBjb25zdCBX
VEY6OlZlY3RvcjxMaW5lQ29udGV4dD4mKTsKICAgICB2b2lkIGFwcGx5U3RyZXRjaEFsaWdubWVu
dFRvQ2hpbGQoUmVuZGVyQm94KiwgTGF5b3V0VW5pdCBsaW5lQ3Jvc3NBeGlzRXh0ZW50KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyMzdmNTJjNzY2NTZlNWEzMjMyNTE3N2RiMzBlNWZmMzZhOWYxNGRmLi5lNDYzNzY4YTU0
Yjk2YmMxYjAxNmVjZGI5OWIwM2FjZWUzMDlhNGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MTItMDMtMjYgIFRvbnkgQ2hhbmcgIDx0b255QGNocm9taXVtLm9yZz4KKworICAgICAgICBhcHBs
eSBjcm9zcyBheGlzIGNvbnN0cmFpbnRzIGJlZm9yZSBhbGlnbmluZyBjaGlsZHJlbiBpbiBmbGV4
Ym94CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MjI0
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogY3Nz
My9mbGV4Ym94L2ZsZXgtYWxpZ24tZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGNzczMvZmxleGJv
eC9mbGV4LWFsaWduLmh0bWw6CisKIDIwMTItMDMtMjYgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9z
c3lAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLCBhZGQg
UXQgc3BlY2lmaWMgZXhwZWN0ZWQgcmVzdWx0cyBmb3IgbmV3IHBhc3NzaW5nIHRlc3RzLgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxpZ24tZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxpZ24tZXhwZWN0ZWQudHh0CmluZGV4
IDhlYWQ3YmM4YTFkZWM0ZWI5ZDAwMTBmMTNmNjhkZGVhMGIzMTdjZmMuLmQ5ODI3NTU3MGIxNmJl
NmY4MGU4ZTExOWQzZTQ4NTcxOWQzZGRjNGIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NzczMv
ZmxleGJveC9mbGV4LWFsaWduLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL2Zs
ZXhib3gvZmxleC1hbGlnbi1leHBlY3RlZC50eHQKQEAgLTE5LDYgKzE5LDcgQEAgUEFTUwogUEFT
UwogUEFTUwogUEFTUworUEFTUwogYWhlbQogCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nz
czMvZmxleGJveC9mbGV4LWFsaWduLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxl
eC1hbGlnbi5odG1sCmluZGV4IDFkNTlkMmNlMjUyMzM1N2E5NGFiY2YxNzY5MmYxYjBmMjFjNWQ5
MjAuLmVjM2Q1ZTAzMmUwODMzZDA0YWM5ZDA3ZWFlM2NlYzFkZWU5ZDJkMjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsaWduLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxpZ24uaHRtbApAQCAtMjIyLDYgKzIyMiwxMyBAQCBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICA8ZGl2IGRhdGEtZXhwZWN0ZWQtaGVpZ2h0
PSIxMDAiIGRhdGEtb2Zmc2V0LXk9IjAiIHN0eWxlPSJ3aWR0aDogLXdlYmtpdC1mbGV4KDEgMCAw
KTsgaGVpZ2h0OiAxMDBweDsiPjwvZGl2PgogPC9kaXY+CiAKKzxkaXYgY2xhc3M9ImZsZXhib3gi
IHN0eWxlPSJtYXgtaGVpZ2h0OiAyMHB4Ij4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
NDAiIGRhdGEtb2Zmc2V0LXk9Ii0xMCIgc3R5bGU9IndpZHRoOiAtd2Via2l0LWZsZXgoMSAwIDAp
OyAtd2Via2l0LWZsZXgtaXRlbS1hbGlnbjogY2VudGVyOyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4K
KyAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0iNDAiIGRhdGEtb2Zmc2V0LXk9Ii0yMCIgc3R5
bGU9IndpZHRoOiAtd2Via2l0LWZsZXgoMSAwIDApOyAtd2Via2l0LWZsZXgtaXRlbS1hbGlnbjog
ZW5kOyBoZWlnaHQ6IDQwcHg7Ij48L2Rpdj4KKyAgPGRpdiBkYXRhLWV4cGVjdGVkLWhlaWdodD0i
NDAiIGRhdGEtb2Zmc2V0LXk9IjAiIHN0eWxlPSJ3aWR0aDogLXdlYmtpdC1mbGV4KDEgMCAwKTsg
aGVpZ2h0OiA0MHB4OyI+PC9kaXY+CisgIDxkaXYgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjIwIiBk
YXRhLW9mZnNldC15PSIwIiBzdHlsZT0id2lkdGg6IC13ZWJraXQtZmxleCgxIDAgMCk7Ij48L2Rp
dj4KKzwvZGl2PgorCiA8ZGl2IGNsYXNzPSJmbGV4Ym94IiBzdHlsZT0iZm9udC1mYW1pbHk6IHRl
c3Q7Ij4KICAgPGRpdiBpZD0iYmFzZWxpbmUxIiBzdHlsZT0id2lkdGg6IC13ZWJraXQtZmxleCgx
IDAgMCk7IC13ZWJraXQtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZTsiPmFoZW08L2Rpdj4KICAg
PGRpdiBpZD0iYmFzZWxpbmUyIiBkYXRhLW9mZnNldC15PSIwIiBzdHlsZT0id2lkdGg6IC13ZWJr
aXQtZmxleCgxIDAgMCk7IC13ZWJraXQtZmxleC1pdGVtLWFsaWduOiBiYXNlbGluZTsiPjxpbWcg
c3JjPSIuLi8uLi9mYXN0L3JlcGxhY2VkL3Jlc291cmNlcy8xeDEtYmx1ZS5wbmciIHN0eWxlPSJo
ZWlnaHQ6IDUwcHg7Ij48L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>133896</attachid>
            <date>2012-03-26 14:45:57 -0700</date>
            <delta_ts>2012-03-26 15:26:21 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-82240-20120326144613.patch</filename>
            <type>text/plain</type>
            <size>11440</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEyMTExCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzVjMTY2NTMyYWRhZjEx
Y2YwOGIxMjM1ZjI0Zjg1OWY5N2JjZjYwZS4uOGVhZDhiOTk1OTQzYTAwY2JhNDg2NzQ0ZmQzOWRk
N2FmMWI0MjE3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDEyLTAzLTI2ICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgYXBwbHkgY3Jvc3MgYXhpcyBj
b25zdHJhaW50cyBiZWZvcmUgYWxpZ25pbmcgY2hpbGRyZW4gaW4gZmxleGJveAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODIyNDAKKworICAgICAgICBS
ZXZpZXdlZCBieSBPamFuIFZhZmFpLgorCisgICAgICAgIFdlIHdlcmVuJ3QgYXBwbHlpbmcgbWF4
LWhlaWdodCBjb25zdHJhaW50cyBiZWZvcmUgYWxpZ25pbmcgY2hpbGRyZW4uCisgICAgICAgIFRo
aXMgd291bGQgY2F1c2UgY2VudGVyLCBlbmQsIHN0cmV0Y2ggYWxpZ25tZW50IHRvIGJlIHdyb25n
IGlmIHdlIGhpdAorICAgICAgICBhIG1heC1oZWlnaHQgb24gYSBmbGV4Ym94LgorCisgICAgICAg
IFRoaXMgcGF0Y2ggYWxzbyBtb3ZlcyB0aGUgcmVwb3NpdGlvbmluZyBsb2dpYyB0byBoYXBwZW4g
YWZ0ZXIKKyAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQsIHdoaWNoIHdpbGwgYmUgdXNlZnVs
IGZvciBmbGV4LWxpbmUtcGFjay4KKworICAgICAgICBOZXcgdGVzdCBjYXNlIGluIGNzczMvZmxl
eGJveC9mbGV4LWFsaWduLmh0bWwKKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbGV4aWJs
ZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0Qmxv
Y2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVt
cyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QW5kUGxhY2VD
aGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94Lmg6CisKIDIw
MTItMDMtMjYgIFJvYmluIENhbyAgPHJvYmluLmNhb0B0b3JjaG1vYmlsZS5jb20uY24+CiAKICAg
ICAgICAgW0JsYWNrQmVycnldIFVwc3RyZWFtIExheWVyQ29tcG9zaXRpbmdUaHJlYWQue2gsIGNw
cH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmlu
ZGV4IGNhYWJiYWE2YTdlYzNiMzhlZWVmZjBkY2VlNmZkNDdiYTVjYWMyMTUuLjQ2Yjk1NTAwMDEw
ZTUxMmNmOWFlNWEzMDNkNTE1ZGNiNmQ5ZmQwYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApAQCAtMjUwLDkgKzI1MCw3IEBAIHZvaWQgUmVu
ZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgaW50LCBC
bG9ja0xheW91dFBhc3MpCiAgICAgSW50U2l6ZSBwcmV2aW91c1NpemUgPSBzaXplKCk7CiAKICAg
ICBzZXRMb2dpY2FsSGVpZ2h0KDApOwotICAgIC8vIFdlIG5lZWQgdG8gY2FsbCBib3RoIG9mIHRo
ZXNlIGJlY2F1c2Ugd2UgZ3JhYiBib3RoIGNyb3NzQXhpc0V4dGVudCBhbmQgbWFpbkF4aXNFeHRl
bnQgaW4gbGF5b3V0RmxleEl0ZW1zLgogICAgIGNvbXB1dGVMb2dpY2FsV2lkdGgoKTsKLSAgICBj
b21wdXRlTG9naWNhbEhlaWdodCgpOwogCiAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwogCkBAIC0y
NjQsMTAgKzI2MiwxNSBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIGludCwgQmxvY2tMYXlvdXRQYXNzKQogICAgICAgICAgICAgbGF5
ZXIoKS0+c2V0SGFzVmVydGljYWxTY3JvbGxiYXIodHJ1ZSk7CiAgICAgfQogCi0gICAgbGF5b3V0
RmxleEl0ZW1zKHJlbGF5b3V0Q2hpbGRyZW4pOworICAgIFdURjo6VmVjdG9yPExpbmVDb250ZXh0
PiBsaW5lQ29udGV4dHM7CisgICAgRmxleE9yZGVySGFzaFNldCBmbGV4T3JkZXJWYWx1ZXM7Cisg
ICAgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVkU2l6ZXMocmVsYXlvdXRDaGlsZHJlbiwgZmxleE9y
ZGVyVmFsdWVzKTsKKyAgICBGbGV4T3JkZXJJdGVyYXRvciBmbGV4SXRlcmF0b3IodGhpcywgZmxl
eE9yZGVyVmFsdWVzKTsKKyAgICBsYXlvdXRGbGV4SXRlbXMocmVsYXlvdXRDaGlsZHJlbiwgZmxl
eEl0ZXJhdG9yLCBsaW5lQ29udGV4dHMpOwogCiAgICAgTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRl
ckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90dG9tKCk7CiAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQo
KTsKKyAgICByZXBvc2l0aW9uTG9naWNhbEhlaWdodERlcGVuZGVudEZsZXhJdGVtcyhmbGV4SXRl
cmF0b3IsIGxpbmVDb250ZXh0cywgb2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIAogICAgIGlmIChzaXpl
KCkgIT0gcHJldmlvdXNTaXplKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKQEAg
LTI5MSw2ICsyOTQsMjQgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9v
bCByZWxheW91dENoaWxkcmVuLCBpbnQsIEJsb2NrTGF5b3V0UGFzcykKICAgICBzZXROZWVkc0xh
eW91dChmYWxzZSk7CiB9CiAKK3ZvaWQgUmVuZGVyRmxleGlibGVCb3g6OnJlcG9zaXRpb25Mb2dp
Y2FsSGVpZ2h0RGVwZW5kZW50RmxleEl0ZW1zKEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRvciwg
V1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+JiBsaW5lQ29udGV4dHMsIExheW91dFVuaXQmIG9sZENs
aWVudEFmdGVyRWRnZSkKK3sKKyAgICAvLyBJZiB3ZSBoYXZlIGEgc2luZ2xlIGxpbmUgZmxleGJv
eCwgdGhlIGxpbmUgaGVpZ2h0IGlzIGFsbCB0aGUgYXZhaWxhYmxlIHNwYWNlLgorICAgIC8vIEZv
ciBmbGV4LWRpcmVjdGlvbjogcm93LCB0aGlzIG1lYW5zIHdlIG5lZWQgdG8gdXNlIHRoZSBoZWln
aHQsIHNvIHdlIGRvIHRoaXMgYWZ0ZXIgY2FsbGluZyBjb21wdXRlTG9naWNhbEhlaWdodC4KKyAg
ICBpZiAoIWlzTXVsdGlsaW5lKCkgJiYgbGluZUNvbnRleHRzLnNpemUoKSA9PSAxKQorICAgICAg
ICBsaW5lQ29udGV4dHNbMF0uY3Jvc3NBeGlzRXh0ZW50ID0gY3Jvc3NBeGlzQ29udGVudEV4dGVu
dCgpOworICAgIGFsaWduQ2hpbGRyZW4oaXRlcmF0b3IsIGxpbmVDb250ZXh0cyk7CisKKyAgICBp
ZiAoc3R5bGUoKS0+ZmxleFdyYXAoKSA9PSBGbGV4V3JhcFJldmVyc2UpIHsKKyAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbEZsb3coKSkKKyAgICAgICAgICAgIG9sZENsaWVudEFmdGVyRWRnZSA9IGNs
aWVudExvZ2ljYWxCb3R0b20oKTsKKyAgICAgICAgZmxpcEZvcldyYXBSZXZlcnNlKGl0ZXJhdG9y
LCBsaW5lQ29udGV4dHMpOworICAgIH0KKworICAgIC8vIGRpcmVjdGlvbjpydGwgKyBmbGV4LWRp
cmVjdGlvbjpjb2x1bW4gbWVhbnMgdGhlIGNyb3NzLWF4aXMgZGlyZWN0aW9uIGlzIGZsaXBwZWQu
CisgICAgZmxpcEZvclJpZ2h0VG9MZWZ0Q29sdW1uKGl0ZXJhdG9yKTsKK30KKwogYm9vbCBSZW5k
ZXJGbGV4aWJsZUJveDo6aGFzT3J0aG9nb25hbEZsb3coUmVuZGVyQm94KiBjaGlsZCkgY29uc3QK
IHsKICAgICAvLyBGSVhNRTogSWYgdGhlIGNoaWxkIGlzIGEgZmxleGJveCwgdGhlbiB3ZSBuZWVk
IHRvIGNoZWNrIGlzSG9yaXpvbnRhbEZsb3cuCkBAIC01ODksMjEgKzYxMCwxNiBAQCBMYXlvdXRV
bml0IFJlbmRlckZsZXhpYmxlQm94Ojpjb21wdXRlQXZhaWxhYmxlRnJlZVNwYWNlKExheW91dFVu
aXQgcHJlZmVycmVkTWFpbgogICAgIHJldHVybiBoZWlnaHRSZXN1bHQgLSBwcmVmZXJyZWRNYWlu
QXhpc0V4dGVudDsKIH0KIAotdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1z
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKK3ZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZs
ZXhJdGVtcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIEZsZXhPcmRlckl0ZXJhdG9yJiBpdGVyYXRv
ciwgV1RGOjpWZWN0b3I8TGluZUNvbnRleHQ+JiBsaW5lQ29udGV4dHMpCiB7Ci0gICAgRmxleE9y
ZGVySGFzaFNldCBmbGV4T3JkZXJWYWx1ZXM7Ci0gICAgY29tcHV0ZU1haW5BeGlzUHJlZmVycmVk
U2l6ZXMocmVsYXlvdXRDaGlsZHJlbiwgZmxleE9yZGVyVmFsdWVzKTsKLQogICAgIE9yZGVyZWRG
bGV4SXRlbUxpc3Qgb3JkZXJlZENoaWxkcmVuOwogICAgIExheW91dFVuaXQgcHJlZmVycmVkTWFp
bkF4aXNFeHRlbnQ7CiAgICAgZmxvYXQgdG90YWxQb3NpdGl2ZUZsZXhpYmlsaXR5OwogICAgIGZs
b2F0IHRvdGFsTmVnYXRpdmVGbGV4aWJpbGl0eTsKICAgICBMYXlvdXRVbml0IG1pbk1heEFwcGxp
ZWRNYWluQXhpc0V4dGVudDsKLSAgICBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4gbGluZUNvbnRl
eHRzOwotICAgIEZsZXhPcmRlckl0ZXJhdG9yIGZsZXhJdGVyYXRvcih0aGlzLCBmbGV4T3JkZXJW
YWx1ZXMpOwogCiAgICAgTGF5b3V0VW5pdCBjcm9zc0F4aXNPZmZzZXQgPSBmbG93QXdhcmVCb3Jk
ZXJCZWZvcmUoKSArIGZsb3dBd2FyZVBhZGRpbmdCZWZvcmUoKTsKLSAgICB3aGlsZSAoY29tcHV0
ZU5leHRGbGV4TGluZShmbGV4SXRlcmF0b3IsIG9yZGVyZWRDaGlsZHJlbiwgcHJlZmVycmVkTWFp
bkF4aXNFeHRlbnQsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxOZWdhdGl2ZUZsZXhp
YmlsaXR5LCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpKSB7CisgICAgd2hpbGUgKGNvbXB1
dGVOZXh0RmxleExpbmUoaXRlcmF0b3IsIG9yZGVyZWRDaGlsZHJlbiwgcHJlZmVycmVkTWFpbkF4
aXNFeHRlbnQsIHRvdGFsUG9zaXRpdmVGbGV4aWJpbGl0eSwgdG90YWxOZWdhdGl2ZUZsZXhpYmls
aXR5LCBtaW5NYXhBcHBsaWVkTWFpbkF4aXNFeHRlbnQpKSB7CiAgICAgICAgIExheW91dFVuaXQg
YXZhaWxhYmxlRnJlZVNwYWNlID0gY29tcHV0ZUF2YWlsYWJsZUZyZWVTcGFjZShwcmVmZXJyZWRN
YWluQXhpc0V4dGVudCk7CiAgICAgICAgIEZsZXhTaWduIGZsZXhTaWduID0gKG1pbk1heEFwcGxp
ZWRNYWluQXhpc0V4dGVudCA8IHByZWZlcnJlZE1haW5BeGlzRXh0ZW50ICsgYXZhaWxhYmxlRnJl
ZVNwYWNlKSA/IFBvc2l0aXZlRmxleGliaWxpdHkgOiBOZWdhdGl2ZUZsZXhpYmlsaXR5OwogICAg
ICAgICBJbmZsZXhpYmxlRmxleEl0ZW1TaXplIGluZmxleGlibGVJdGVtczsKQEAgLTYxNSwxNCAr
NjMxLDYgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKGJvb2wgcmVs
YXlvdXRDaGlsZHJlbikKIAogICAgICAgICBsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKGNyb3NzQXhp
c09mZnNldCwgb3JkZXJlZENoaWxkcmVuLCBjaGlsZFNpemVzLCBhdmFpbGFibGVGcmVlU3BhY2Us
IGxpbmVDb250ZXh0cyk7CiAgICAgfQotLy8KLSAgICBhbGlnbkNoaWxkcmVuKGZsZXhJdGVyYXRv
ciwgbGluZUNvbnRleHRzKTsKLQotICAgIGlmIChzdHlsZSgpLT5mbGV4V3JhcCgpID09IEZsZXhX
cmFwUmV2ZXJzZSkKLSAgICAgICAgZmxpcEZvcldyYXBSZXZlcnNlKGZsZXhJdGVyYXRvciwgbGlu
ZUNvbnRleHRzKTsKLQotICAgIC8vIGRpcmVjdGlvbjpydGwgKyBmbGV4LWRpcmVjdGlvbjpjb2x1
bW4gbWVhbnMgdGhlIGNyb3NzLWF4aXMgZGlyZWN0aW9uIGlzIGZsaXBwZWQuCi0gICAgZmxpcEZv
clJpZ2h0VG9MZWZ0Q29sdW1uKGZsZXhJdGVyYXRvcik7CiB9CiAKIGZsb2F0IFJlbmRlckZsZXhp
YmxlQm94Ojpwb3NpdGl2ZUZsZXhGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdApAQCAt
OTI3LDkgKzkzNSw4IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFuZFBsYWNlQ2hp
bGRyZW4oTGF5b3V0VW5pdCYgY3Jvc3NBeGlzT2Zmc2V0LCBjb25zCiAgICAgICAgIGxheW91dENv
bHVtblJldmVyc2UoY2hpbGRyZW4sIGNoaWxkU2l6ZXMsIGNyb3NzQXhpc09mZnNldCwgYXZhaWxh
YmxlRnJlZVNwYWNlKTsKICAgICB9CiAKLSAgICBMYXlvdXRVbml0IGxpbmVDcm9zc0F4aXNFeHRl
bnQgPSBpc011bHRpbGluZSgpID8gbWF4Q2hpbGRDcm9zc0F4aXNFeHRlbnQgOiBjcm9zc0F4aXND
b250ZW50RXh0ZW50KCk7Ci0gICAgbGluZUNvbnRleHRzLmFwcGVuZChMaW5lQ29udGV4dChjcm9z
c0F4aXNPZmZzZXQsIGxpbmVDcm9zc0F4aXNFeHRlbnQsIGNoaWxkcmVuLnNpemUoKSwgbWF4QXNj
ZW50KSk7Ci0gICAgY3Jvc3NBeGlzT2Zmc2V0ICs9IGxpbmVDcm9zc0F4aXNFeHRlbnQ7CisgICAg
bGluZUNvbnRleHRzLmFwcGVuZChMaW5lQ29udGV4dChjcm9zc0F4aXNPZmZzZXQsIG1heENoaWxk
Q3Jvc3NBeGlzRXh0ZW50LCBjaGlsZHJlbi5zaXplKCksIG1heEFzY2VudCkpOworICAgIGNyb3Nz
QXhpc09mZnNldCArPSBtYXhDaGlsZENyb3NzQXhpc0V4dGVudDsKIH0KIAogdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0Q29sdW1uUmV2ZXJzZShjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0
JiBjaGlsZHJlbiwgY29uc3QgV1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExh
eW91dFVuaXQgY3Jvc3NBeGlzT2Zmc2V0LCBMYXlvdXRVbml0IGF2YWlsYWJsZUZyZWVTcGFjZSkK
QEAgLTEwNzYsOSArMTA4Myw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmZsaXBGb3JSaWdo
dFRvTGVmdENvbHVtbihGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0b3IpCiAKIHZvaWQgUmVuZGVy
RmxleGlibGVCb3g6OmZsaXBGb3JXcmFwUmV2ZXJzZShGbGV4T3JkZXJJdGVyYXRvciYgaXRlcmF0
b3IsIGNvbnN0IFdURjo6VmVjdG9yPExpbmVDb250ZXh0PiYgbGluZUNvbnRleHRzKQogewotICAg
IGlmICghaXNDb2x1bW5GbG93KCkpCi0gICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7Ci0K
ICAgICBMYXlvdXRVbml0IGNvbnRlbnRFeHRlbnQgPSBjcm9zc0F4aXNDb250ZW50RXh0ZW50KCk7
CiAgICAgUmVuZGVyQm94KiBjaGlsZCA9IGl0ZXJhdG9yLmZpcnN0KCk7CiAgICAgZm9yIChzaXpl
X3QgbGluZU51bWJlciA9IDA7IGxpbmVOdW1iZXIgPCBsaW5lQ29udGV4dHMuc2l6ZSgpOyArK2xp
bmVOdW1iZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJG
bGV4aWJsZUJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmgKaW5kZXggYzY1ZTZkYzliOWMyN2M0MTAxY2U3YzU3Zjc1ZDU1MmE2MGM2YzA1Zi4uZWM4M2Zi
ZTc1OWUyMWIwOGM0NzI1MjJjMWI3ZjM2NmNkYjNlNmUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmgKQEAgLTEwMCw3ICsxMDAsOCBAQCBwcml2YXRl
OgogICAgIExheW91dFVuaXQgbWFpbkF4aXNTY3JvbGxiYXJFeHRlbnRGb3JDaGlsZChSZW5kZXJC
b3gqIGNoaWxkKSBjb25zdDsKICAgICBMYXlvdXRVbml0IHByZWZlcnJlZE1haW5BeGlzQ29udGVu
dEV4dGVudEZvckNoaWxkKFJlbmRlckJveCogY2hpbGQpIGNvbnN0OwogCi0gICAgdm9pZCBsYXlv
dXRGbGV4SXRlbXMoYm9vbCByZWxheW91dENoaWxkcmVuKTsKKyAgICB2b2lkIGxheW91dEZsZXhJ
dGVtcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIEZsZXhPcmRlckl0ZXJhdG9yJiwgV1RGOjpWZWN0
b3I8TGluZUNvbnRleHQ+Jik7CisgICAgdm9pZCByZXBvc2l0aW9uTG9naWNhbEhlaWdodERlcGVu
ZGVudEZsZXhJdGVtcyhGbGV4T3JkZXJJdGVyYXRvciYsIFdURjo6VmVjdG9yPExpbmVDb250ZXh0
PiYsIExheW91dFVuaXQmIG9sZENsaWVudEFmdGVyRWRnZSk7CiAKICAgICBmbG9hdCBwb3NpdGl2
ZUZsZXhGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKICAgICBmbG9hdCBuZWdhdGl2
ZUZsZXhGb3JDaGlsZChSZW5kZXJCb3gqIGNoaWxkKSBjb25zdDsKQEAgLTExOSw3ICsxMjAsNyBA
QCBwcml2YXRlOgogCiAgICAgdm9pZCBzZXRMb2dpY2FsT3ZlcnJpZGVTaXplKFJlbmRlckJveCog
Y2hpbGQsIExheW91dFVuaXQgY2hpbGRQcmVmZXJyZWRTaXplKTsKICAgICB2b2lkIHByZXBhcmVD
aGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoUmVuZGVyQm94KiBjaGlsZCwgTGF5b3V0VW5pdCBtYWlu
QXhpc09mZnNldCwgTGF5b3V0VW5pdCBjcm9zc0F4aXNPZmZzZXQpOwotICAgIHZvaWQgbGF5b3V0
QW5kUGxhY2VDaGlsZHJlbihMYXlvdXRVbml0JiBjcm9zc0F4aXNPZmZzZXQsIGNvbnN0IE9yZGVy
ZWRGbGV4SXRlbUxpc3QmLCBjb25zdCBXVEY6OlZlY3RvcjxMYXlvdXRVbml0PiYgY2hpbGRTaXpl
cywgTGF5b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UsIFdURjo6VmVjdG9yPExpbmVDb250ZXh0
PiYgbGluZUNvbnRleHRzKTsKKyAgICB2b2lkIGxheW91dEFuZFBsYWNlQ2hpbGRyZW4oTGF5b3V0
VW5pdCYgY3Jvc3NBeGlzT2Zmc2V0LCBjb25zdCBPcmRlcmVkRmxleEl0ZW1MaXN0JiwgY29uc3Qg
V1RGOjpWZWN0b3I8TGF5b3V0VW5pdD4mIGNoaWxkU2l6ZXMsIExheW91dFVuaXQgYXZhaWxhYmxl
RnJlZVNwYWNlLCBXVEY6OlZlY3RvcjxMaW5lQ29udGV4dD4mKTsKICAgICB2b2lkIGxheW91dENv
bHVtblJldmVyc2UoY29uc3QgT3JkZXJlZEZsZXhJdGVtTGlzdCYsIGNvbnN0IFdURjo6VmVjdG9y
PExheW91dFVuaXQ+JiBjaGlsZFNpemVzLCBMYXlvdXRVbml0IGNyb3NzQXhpc09mZnNldCwgTGF5
b3V0VW5pdCBhdmFpbGFibGVGcmVlU3BhY2UpOwogICAgIHZvaWQgYWxpZ25DaGlsZHJlbihGbGV4
T3JkZXJJdGVyYXRvciYsIGNvbnN0IFdURjo6VmVjdG9yPExpbmVDb250ZXh0PiYpOwogICAgIHZv
aWQgYXBwbHlTdHJldGNoQWxpZ25tZW50VG9DaGlsZChSZW5kZXJCb3gqLCBMYXlvdXRVbml0IGxp
bmVDcm9zc0F4aXNFeHRlbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIzN2Y1MmM3NjY1NmU1YTMyMzI1MTc3ZGIzMGU1
ZmYzNmE5ZjE0ZGYuLjkwNjBjNjU3Y2Q4NThjZTFkZmEyNzA0Y2Q1NTFlOGQyMmY2Nzk1MmEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0yNiAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIGFwcGx5IGNyb3NzIGF4aXMgY29uc3RyYWludHMgYmVmb3JlIGFs
aWduaW5nIGNoaWxkcmVuIGluIGZsZXhib3gKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgyMjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2phbiBWYWZh
aS4KKworICAgICAgICAqIGNzczMvZmxleGJveC9mbGV4LWFsaWduLWV4cGVjdGVkLnR4dDoKKyAg
ICAgICAgKiBjc3MzL2ZsZXhib3gvZmxleC1hbGlnbi5odG1sOgorCiAyMDEyLTAzLTI2ICBDc2Fi
YSBPc3p0cm9nb27DoWMgIDxvc3N5QHdlYmtpdC5vcmc+CiAKICAgICAgICAgW1F0XSBVbnJldmll
d2VkIGdhcmRlbmluZywgYWRkIFF0IHNwZWNpZmljIGV4cGVjdGVkIHJlc3VsdHMgZm9yIG5ldyBw
YXNzc2luZyB0ZXN0cy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4
LWFsaWduLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsaWdu
LWV4cGVjdGVkLnR4dAppbmRleCA4ZWFkN2JjOGExZGVjNGViOWQwMDEwZjEzZjY4ZGRlYTBiMzE3
Y2ZjLi5kOTgyNzU1NzBiMTZiZTZmODBlOGUxMTlkM2U0ODU3MTlkM2RkYzRiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGlnbi1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxpZ24tZXhwZWN0ZWQudHh0CkBAIC0xOSw2
ICsxOSw3IEBAIFBBU1MKIFBBU1MKIFBBU1MKIFBBU1MKK1BBU1MKIGFoZW0KIAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGlnbi5odG1sIGIvTGF5b3V0VGVz
dHMvY3NzMy9mbGV4Ym94L2ZsZXgtYWxpZ24uaHRtbAppbmRleCAxZDU5ZDJjZTI1MjMzNTdhOTRh
YmNmMTc2OTJmMWIwZjIxYzVkOTIwLi5lYzNkNWUwMzJlMDgzM2QwNGFjOWQwN2VhZTNjZWMxZGVl
OWQyZDI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jc3MzL2ZsZXhib3gvZmxleC1hbGlnbi5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NzczMvZmxleGJveC9mbGV4LWFsaWduLmh0bWwKQEAgLTIy
Miw2ICsyMjIsMTMgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgPGRpdiBk
YXRhLWV4cGVjdGVkLWhlaWdodD0iMTAwIiBkYXRhLW9mZnNldC15PSIwIiBzdHlsZT0id2lkdGg6
IC13ZWJraXQtZmxleCgxIDAgMCk7IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KIDwvZGl2PgogCis8
ZGl2IGNsYXNzPSJmbGV4Ym94IiBzdHlsZT0ibWF4LWhlaWdodDogMjBweCI+CisgIDxkaXYgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIiBkYXRhLW9mZnNldC15PSItMTAiIHN0eWxlPSJ3aWR0aDog
LXdlYmtpdC1mbGV4KDEgMCAwKTsgLXdlYmtpdC1mbGV4LWl0ZW0tYWxpZ246IGNlbnRlcjsgaGVp
Z2h0OiA0MHB4OyI+PC9kaXY+CisgIDxkaXYgZGF0YS1leHBlY3RlZC1oZWlnaHQ9IjQwIiBkYXRh
LW9mZnNldC15PSItMjAiIHN0eWxlPSJ3aWR0aDogLXdlYmtpdC1mbGV4KDEgMCAwKTsgLXdlYmtp
dC1mbGV4LWl0ZW0tYWxpZ246IGVuZDsgaGVpZ2h0OiA0MHB4OyI+PC9kaXY+CisgIDxkaXYgZGF0
YS1leHBlY3RlZC1oZWlnaHQ9IjQwIiBkYXRhLW9mZnNldC15PSIwIiBzdHlsZT0id2lkdGg6IC13
ZWJraXQtZmxleCgxIDAgMCk7IGhlaWdodDogNDBweDsiPjwvZGl2PgorICA8ZGl2IGRhdGEtZXhw
ZWN0ZWQtaGVpZ2h0PSIyMCIgZGF0YS1vZmZzZXQteT0iMCIgc3R5bGU9IndpZHRoOiAtd2Via2l0
LWZsZXgoMSAwIDApOyI+PC9kaXY+Cis8L2Rpdj4KKwogPGRpdiBjbGFzcz0iZmxleGJveCIgc3R5
bGU9ImZvbnQtZmFtaWx5OiB0ZXN0OyI+CiAgIDxkaXYgaWQ9ImJhc2VsaW5lMSIgc3R5bGU9Indp
ZHRoOiAtd2Via2l0LWZsZXgoMSAwIDApOyAtd2Via2l0LWZsZXgtaXRlbS1hbGlnbjogYmFzZWxp
bmU7Ij5haGVtPC9kaXY+CiAgIDxkaXYgaWQ9ImJhc2VsaW5lMiIgZGF0YS1vZmZzZXQteT0iMCIg
c3R5bGU9IndpZHRoOiAtd2Via2l0LWZsZXgoMSAwIDApOyAtd2Via2l0LWZsZXgtaXRlbS1hbGln
bjogYmFzZWxpbmU7Ij48aW1nIHNyYz0iLi4vLi4vZmFzdC9yZXBsYWNlZC9yZXNvdXJjZXMvMXgx
LWJsdWUucG5nIiBzdHlsZT0iaGVpZ2h0OiA1MHB4OyI+PC9kaXY+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>