<?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>83981</bug_id>
          
          <creation_ts>2012-04-14 10:22:06 -0700</creation_ts>
          <short_desc>[Qt][WK2] Fixed elements position is wrong after zooming.</short_desc>
          <delta_ts>2012-06-13 10:36:47 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Yael">yael</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>fmalita</cc>
    
    <cc>hyatt</cc>
    
    <cc>inferno</cc>
    
    <cc>jchaffraix</cc>
    
    <cc>kenneth</cc>
    
    <cc>mitz</cc>
    
    <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>602673</commentid>
    <comment_count>0</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-04-14 10:22:06 -0700</bug_when>
    <thetext>After zooming, our visibleContentRect becomes smaller and the position of fixed elements is no longer valid.
We need to re-layout these elements after the size change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>602839</commentid>
    <comment_count>1</comment_count>
      <attachid>137261</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-04-15 18:32:07 -0700</bug_when>
    <thetext>Created attachment 137261
Patch.

Turn on the flag setFixedElementsLayoutRelativeToFrame, so that fixed elements are calculated based on the visibleWidth and visibleHeight of the view.

When the size changes, mark all fixed elements for layout. RenderView maintains a list of fixed elements, so it is easy to find them.
This was adapted from iOS 5.1 branch at opensource.apple.com.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603027</commentid>
    <comment_count>2</comment_count>
      <attachid>137261</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-04-16 04:00:16 -0700</bug_when>
    <thetext>Comment on attachment 137261
Patch.

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

&gt; ManualTests/remove-add-fixed-position.html:5
&gt; +.d1{position:fixed;top:5;right:5;z-index:2;overflow:hidden;}
&gt; +.o {background:green;height:40px;width:200px;}

Some spacing here would be nice :-) or even some newlines.

&gt; Source/WebCore/ChangeLog:8
&gt; +        When setFixedVisibleContentRect is called, we mark all fixed elements in the frame, for layout.

I don&apos;t get the commas here :-)

&gt; Source/WebCore/ChangeLog:11
&gt; +        They are added and removed at the same time that they are added and removed from their parent RenderBlock.
&gt; +        The idea is taken from the iOS5.1 branch, at opensource.apple.com.

So you didn&apos;t reuse code? Based on opensource code from the iOS port. ?

&gt; Source/WebCore/page/FrameView.cpp:1704
&gt;  {
&gt; +    if (visibleContentRect.size() != this-&gt;fixedVisibleContentRect().size()) {

Maybe this deserves a little comment: 

// When the viewport size changes or the content is scaled, we need to
// reposition the fixed positioned elements.

as it is not so obvious that this is called when we scale the content

&gt; Source/WebCore/rendering/RenderBlock.cpp:3423
&gt; +    if (o-&gt;style()-&gt;position() == FixedPosition) {
&gt; +        if (view())

why not merge those two if&apos;s ? if (view() &amp;&amp; o-&gt;style()-&gt;position() == FixedPosition)

&gt; Source/WebCore/rendering/RenderBlock.cpp:3434
&gt; +    if (view())
&gt; +        view()-&gt;removeFixedPositionedObject(o);

So this will fail in most cases right.

&gt; Source/WebCore/rendering/RenderView.cpp:923
&gt; +void RenderView::setFixedPositionedObjectsNeedLayout()

need*S* no?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603091</commentid>
    <comment_count>3</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-04-16 06:17:33 -0700</bug_when>
    <thetext>(In reply to comment #2)
Thanks for the review :)
&gt; (From update of attachment 137261 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137261&amp;action=review
&gt; 
&gt; &gt; ManualTests/remove-add-fixed-position.html:5
&gt; &gt; +.d1{position:fixed;top:5;right:5;z-index:2;overflow:hidden;}
&gt; &gt; +.o {background:green;height:40px;width:200px;}
&gt; 
&gt; Some spacing here would be nice :-) or even some newlines.
&gt; 
ok
&gt; &gt; Source/WebCore/ChangeLog:8
&gt; &gt; +        When setFixedVisibleContentRect is called, we mark all fixed elements in the frame, for layout.
&gt; 
&gt; I don&apos;t get the commas here :-)
&gt; 
removed :)
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        They are added and removed at the same time that they are added and removed from their parent RenderBlock.
&gt; &gt; +        The idea is taken from the iOS5.1 branch, at opensource.apple.com.
&gt; 
&gt; So you didn&apos;t reuse code? Based on opensource code from the iOS port. ?
&gt; 
Not everything is there.I needed to fill the blanks.
&gt; &gt; Source/WebCore/page/FrameView.cpp:1704
&gt; &gt;  {
&gt; &gt; +    if (visibleContentRect.size() != this-&gt;fixedVisibleContentRect().size()) {
&gt; 
&gt; Maybe this deserves a little comment: 
&gt; 
&gt; // When the viewport size changes or the content is scaled, we need to
&gt; // reposition the fixed positioned elements.
&gt; 
&gt; as it is not so obvious that this is called when we scale the content
&gt; 
ok
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3423
&gt; &gt; +    if (o-&gt;style()-&gt;position() == FixedPosition) {
&gt; &gt; +        if (view())
&gt; 
&gt; why not merge those two if&apos;s ? if (view() &amp;&amp; o-&gt;style()-&gt;position() == FixedPosition)
&gt; 
ok
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3434
&gt; &gt; +    if (view())
&gt; &gt; +        view()-&gt;removeFixedPositionedObject(o);
&gt; 
&gt; So this will fail in most cases right.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderView.cpp:923
&gt; &gt; +void RenderView::setFixedPositionedObjectsNeedLayout()
&gt; 
&gt; need*S* no?
objects need, not needs :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603097</commentid>
    <comment_count>4</comment_count>
      <attachid>137332</attachid>
    <who name="Yael">yael</who>
    <bug_when>2012-04-16 06:23:06 -0700</bug_when>
    <thetext>Created attachment 137332
Patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603124</commentid>
    <comment_count>5</comment_count>
      <attachid>137332</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 07:05:58 -0700</bug_when>
    <thetext>Comment on attachment 137332
Patch for landing.

Clearing flags on attachment: 137332

Committed r114249: &lt;http://trac.webkit.org/changeset/114249&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603125</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-16 07:06:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645772</commentid>
    <comment_count>7</comment_count>
      <attachid>137332</attachid>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-06-11 00:03:45 -0700</bug_when>
    <thetext>Comment on attachment 137332
Patch for landing.

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

&gt; Source/WebCore/rendering/RenderBlock.cpp:3422
&gt; +    if (o-&gt;style()-&gt;position() == FixedPosition &amp;&amp; view())

I don&apos;t think this is right and you should definitely ask Dave Hyatt for a review of this patch. Two reasons::
1) 99% of the time, fixed positioned objects are always added to their containing view.
    if (child-&gt;isPositioned()) {
        child-&gt;containingBlock()-&gt;insertPositionedObject(child);
and if you see containingBlock()
if (!isText() &amp;&amp; m_style-&gt;position() == FixedPosition) {
        while (o &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock()))
            o = o-&gt;parent();
we would only return our containing view.
2) There are some exceptions for cases like &lt;foreignObject&gt;. http://trac.webkit.org/changeset/119914

This call is just redundant and forces things to be always added to renderview which is incorrect for cases like &lt;foreignObject&gt;, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>645922</commentid>
    <comment_count>8</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-06-11 05:45:08 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 137332 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137332&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3422
&gt; &gt; +    if (o-&gt;style()-&gt;position() == FixedPosition &amp;&amp; view())
&gt; 
&gt; I don&apos;t think this is right and you should definitely ask Dave Hyatt for a review of this patch. Two reasons::
&gt; 1) 99% of the time, fixed positioned objects are always added to their containing view.
&gt;     if (child-&gt;isPositioned()) {
&gt;         child-&gt;containingBlock()-&gt;insertPositionedObject(child);
&gt; and if you see containingBlock()
&gt; if (!isText() &amp;&amp; m_style-&gt;position() == FixedPosition) {
&gt;         while (o &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock()))
&gt;             o = o-&gt;parent();
&gt; we would only return our containing view.
&gt; 2) There are some exceptions for cases like &lt;foreignObject&gt;. http://trac.webkit.org/changeset/119914
&gt; 
&gt; This call is just redundant and forces things to be always added to renderview which is incorrect for cases like &lt;foreignObject&gt;, etc.
thanks for your comment, I&apos;ll take a look :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647555</commentid>
    <comment_count>9</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-06-12 18:15:45 -0700</bug_when>
    <thetext>
(In reply to comment #7)
&gt; (From update of attachment 137332 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137332&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3422
&gt; &gt; +    if (o-&gt;style()-&gt;position() == FixedPosition &amp;&amp; view())
&gt; 
&gt; I don&apos;t think this is right and you should definitely ask Dave Hyatt for a review of this patch. Two reasons::
&gt; 1) 99% of the time, fixed positioned objects are always added to their containing view.
&gt;     if (child-&gt;isPositioned()) {
&gt;         child-&gt;containingBlock()-&gt;insertPositionedObject(child);
&gt; and if you see containingBlock()
&gt; if (!isText() &amp;&amp; m_style-&gt;position() == FixedPosition) {
&gt;         while (o &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock()))
&gt;             o = o-&gt;parent();
&gt; we would only return our containing view.
&gt; 2) There are some exceptions for cases like &lt;foreignObject&gt;. http://trac.webkit.org/changeset/119914
&gt; 
&gt; This call is just redundant and forces things to be always added to renderview which is incorrect for cases like &lt;foreignObject&gt;, etc.

This list is used for quickly identifying all the fixed position elements, so that we can mark them for layout, is that an incorrect way for doing that?
BTW, The same idea is used in http://opensource.apple.com/source/WebCore/WebCore-1298.39/rendering/RenderView.cpp (search for RenderView::setCustomFixedPositionedObjectsNeedLayout).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647597</commentid>
    <comment_count>10</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-06-12 19:19:51 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; (From update of attachment 137332 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=137332&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/rendering/RenderBlock.cpp:3422
&gt; &gt; &gt; +    if (o-&gt;style()-&gt;position() == FixedPosition &amp;&amp; view())
&gt; &gt; 
&gt; &gt; I don&apos;t think this is right and you should definitely ask Dave Hyatt for a review of this patch. Two reasons::
&gt; &gt; 1) 99% of the time, fixed positioned objects are always added to their containing view.
&gt; &gt;     if (child-&gt;isPositioned()) {
&gt; &gt;         child-&gt;containingBlock()-&gt;insertPositionedObject(child);
&gt; &gt; and if you see containingBlock()
&gt; &gt; if (!isText() &amp;&amp; m_style-&gt;position() == FixedPosition) {
&gt; &gt;         while (o &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock()))
&gt; &gt;             o = o-&gt;parent();
&gt; &gt; we would only return our containing view.
&gt; &gt; 2) There are some exceptions for cases like &lt;foreignObject&gt;. http://trac.webkit.org/changeset/119914
&gt; &gt; 
&gt; &gt; This call is just redundant and forces things to be always added to renderview which is incorrect for cases like &lt;foreignObject&gt;, etc.
&gt; 
&gt; This list is used for quickly identifying all the fixed position elements, so that we can mark them for layout, is that an incorrect way for doing that?
&gt; BTW, The same idea is used in http://opensource.apple.com/source/WebCore/WebCore-1298.39/rendering/RenderView.cpp (search for RenderView::setCustomFixedPositionedObjectsNeedLayout).

Fixed position objects are already added to their RenderView in most cases. Why did you need to define insertFixedPositionedObject, removeFixedPositionedObject and call them in insertPositionedObject and removePositionedObject ? That part is wrong. you should see that all callers to insertPositionedObject are like child-&gt;containingBlock()-&gt;insertPositionedObject and read the containingBlock code

if (!isText() &amp;&amp; m_style-&gt;position() == FixedPosition) {
        while (o &amp;&amp; !o-&gt;isRenderView() &amp;&amp; !(o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock())) {
#if ENABLE(SVG)
            // foreignObject is the containing block for its contents.
            if (o-&gt;isSVGForeignObject())
                break;
#endif
            o = o-&gt;parent();
        }
    }

What you are doing here is causing redundant calls which will slow down insertPositionedObject and will cause it to be added in RenderView where it was not intended. e.g. o-&gt;hasTransform() &amp;&amp; o-&gt;isRenderBlock() AND o-&gt;isSVGForeignObject()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>647600</commentid>
    <comment_count>11</comment_count>
    <who name="Abhishek Arya">inferno</who>
    <bug_when>2012-06-12 19:24:05 -0700</bug_when>
    <thetext>What you are saying about setCustomFixedPositionedObjectsNeedLayout is not relevant here. Basically, you can have setFixedPositionedObjectsNeedLayout function and FrameView::setFixedVisibleContentRect changes, BUT don&apos;t need to modify RenderBlock::insertPositionedObject and RenderBlock::removePositionedObject at all and hence don&apos;t need insertFixedPositionedObject and removeFixedPositionedObject</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>648233</commentid>
    <comment_count>12</comment_count>
    <who name="Yael">yael</who>
    <bug_when>2012-06-13 10:36:47 -0700</bug_when>
    <thetext>Created https://bugs.webkit.org/show_bug.cgi?id=89019 to remove the redundant code.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137261</attachid>
            <date>2012-04-15 18:32:07 -0700</date>
            <delta_ts>2012-04-16 06:23:06 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>83981.patch</filename>
            <type>text/plain</type>
            <size>9235</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExNDIx
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA0
LTE1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gRml4ZWQgZWxlbWVudHMgcG9zaXRpb24gaXMgd3JvbmcgYWZ0ZXIgem9vbWluZy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzOTgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBNYW51YWxUZXN0
cy9yZW1vdmUtYWRkLWZpeGVkLXBvc2l0aW9uLmh0bWw6IEFkZGVkLgorCiAyMDEyLTA0LTEzICBK
YXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgogCiAgICAgICAgIFtCbGFj
a0JlcnJ5XSBTaWduIGluIGNvb2tpZSBmb3IgRVNQTi5jb20gZG9lcyBub3QgcmV0YWluIGxvZ2lu
IGFjY291bnQgKGZvciBmYW50YXN5IHNwb3J0cykuCkluZGV4OiBNYW51YWxUZXN0cy9yZW1vdmUt
YWRkLWZpeGVkLXBvc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTWFudWFsVGVzdHMvcmVtb3Zl
LWFkZC1maXhlZC1wb3NpdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTWFudWFsVGVzdHMvcmVt
b3ZlLWFkZC1maXhlZC1wb3NpdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDkzIEBA
Cis8aHRtbD48aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZp
Y2Utd2lkdGgiPgorPHN0eWxlPgorLmQxe3Bvc2l0aW9uOmZpeGVkO3RvcDo1O3JpZ2h0OjU7ei1p
bmRleDoyO292ZXJmbG93OmhpZGRlbjt9CisubyB7YmFja2dyb3VuZDpncmVlbjtoZWlnaHQ6NDBw
eDt3aWR0aDoyMDBweDt9CisudCB7IHdpZHRoOjIwMDBweDsgaGVpZ2h0OjE5OHB4O2JhY2tncm91
bmQtY29sb3I6IGxpZ2h0Z3JheTsgYm9yZGVyOiAxcHggc29saWQgYmx1ZTt9Citib2R5IHsgbWFy
Z2luOiAwcHg7IH0KKzwvc3R5bGU+Cis8c2NyaXB0PgorCit2YXIgZml4ZWQ7CisKK2Z1bmN0aW9u
IHJlbW92ZV9jaGlsZCgpCit7CisgIGZpeGVkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImQx
Iik7CisgIGZpeGVkLnBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQoZml4ZWQpOworfQorCitmdW5j
dGlvbiBhZGRfY2hpbGQoKQoreworICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGZpeGVkKTsK
K30KKworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxkaXYgY2xhc3M9ImQxIiBpZD0iZDEi
PjxkaXYgY2xhc3M9Im8iPlRoaXMgaXMgYSB0ZXN0PC9kaXY+PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0
Ij4KKzAwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzIwMDxicj4KKzxidXR0b24gb25jbGlj
az0icmVtb3ZlX2NoaWxkKCk7Ij5yZW1vdmUgZml4ZWQ8L2J1dHRvbj4KKzwvZGl2PgorPGRpdiBj
bGFzcz0idCI+Cis0MDA8YnI+Cis8YnV0dG9uIG9uY2xpY2s9ImFkZF9jaGlsZCgpOyI+YWRkIGZp
eGVkPC9idXR0b24+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorNjAwPGJyPgorPC9kaXY+Cis8
ZGl2IGNsYXNzPSJ0Ij4KKzgwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzEwMDAKKzwvZGl2
PgorPGRpdiBjbGFzcz0idCI+CisxMjAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMTQwMAor
PC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzE2MDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+Cisx
ODAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMjAwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0
Ij4KKzIyMDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+CisyNDAwCis8L2Rpdj4KKzxkaXYgY2xh
c3M9InQiPgorMjYwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzI4MDAKKzwvZGl2PgorPGRp
diBjbGFzcz0idCI+CiszMDAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMzIwMAorPC9kaXY+
Cis8ZGl2IGNsYXNzPSJ0Ij4KKzM0MDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+CiszNjAwCis8
L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMzgwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzQw
MDAKKzwvZGl2PgorPC9ib2R5PjwvaHRtbD4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDIx
NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDI5IEBACisyMDEyLTA0LTE1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4K
KworICAgICAgICBbUXRdW1dLMl0gRml4ZWQgZWxlbWVudHMgcG9zaXRpb24gaXMgd3JvbmcgYWZ0
ZXIgem9vbWluZy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTgzOTgxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgV2hlbiBzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdCBpcyBjYWxsZWQsIHdlIG1hcmsgYWxs
IGZpeGVkIGVsZW1lbnRzIGluIHRoZSBmcmFtZSwgZm9yIGxheW91dC4KKyAgICAgICAgSW4gb3Jk
ZXIgdG8gZmluZCB0aGVzZSBlbGVtZW50cywgUmVuZGVyVmlldyBtYWludGFpbnMgYSBsaXN0IG9m
IGZpeGVkIGVsZW1lbnRzLgorICAgICAgICBUaGV5IGFyZSBhZGRlZCBhbmQgcmVtb3ZlZCBhdCB0
aGUgc2FtZSB0aW1lIHRoYXQgdGhleSBhcmUgYWRkZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGVpciBw
YXJlbnQgUmVuZGVyQmxvY2suCisgICAgICAgIFRoZSBpZGVhIGlzIHRha2VuIGZyb20gdGhlIGlP
UzUuMSBicmFuY2gsIGF0IG9wZW5zb3VyY2UuYXBwbGUuY29tLgorICAgICAgICBBZGRlZCBhIG1h
bnVhbCB0ZXN0IHRoYXQgYWxsb3dzIHJlbW92aW5nIGFuZCBhZGRpbmcgZml4ZWQgZWxlbWVudHMg
YXQgd2lsbC4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6c2V0Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJCbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
aW5zZXJ0UG9zaXRpb25lZE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6
cmVtb3ZlUG9zaXRpb25lZE9iamVjdCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6c2V0Rml4ZWRQb3NpdGlvbmVkT2Jq
ZWN0c05lZWRMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJWaWV3OjppbnNlcnRGaXhlZFBvc2l0aW9uZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVmlldzo6cmVtb3ZlRml4ZWRQb3NpdGlvbmVkT2JqZWN0KToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAgICAgICAoUmVuZGVyVmlldyk6CisKIDIwMTItMDQt
MTQgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBwaXhl
bFNuYXBwaW5nIGZvciBDYWxlbmRhclBpY2tlciwgTWVkaWFDb250cm9sIGFuZCBTY3JvbGxiYXJQ
YXJ0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCShyZXZpc2lvbiAxMTQxNjUpCisr
KyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3
MDEsNiArMTcwMSwxMSBAQCB2b2lkIEZyYW1lVmlldzo6ZGVsZWdhdGVzU2Nyb2xsaW5nRGlkQ2hh
CiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRGaXhlZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRS
ZWN0JiB2aXNpYmxlQ29udGVudFJlY3QpCiB7CisgICAgaWYgKHZpc2libGVDb250ZW50UmVjdC5z
aXplKCkgIT0gdGhpcy0+Zml4ZWRWaXNpYmxlQ29udGVudFJlY3QoKS5zaXplKCkpIHsKKyAgICAg
ICAgaWYgKFJlbmRlclZpZXcqIHJvb3QgPSByb290UmVuZGVyZXIodGhpcykpCisgICAgICAgICAg
ICByb290LT5zZXRGaXhlZFBvc2l0aW9uZWRPYmplY3RzTmVlZExheW91dCgpOworICAgIH0KKwog
ICAgIEludFNpemUgb2Zmc2V0ID0gc2Nyb2xsT2Zmc2V0KCk7CiAgICAgU2Nyb2xsVmlldzo6c2V0
Rml4ZWRWaXNpYmxlQ29udGVudFJlY3QodmlzaWJsZUNvbnRlbnRSZWN0KTsKICAgICBpZiAob2Zm
c2V0ICE9IHNjcm9sbE9mZnNldCgpKSB7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2suY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAJKHJldmlzaW9uIDExNDE2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0MTgsMTIgKzM0MTgsMjAg
QEAgdm9pZCBSZW5kZXJCbG9jazo6aW5zZXJ0UG9zaXRpb25lZE9iamVjdAogICAgICAgICBtX3Bv
c2l0aW9uZWRPYmplY3RzID0gYWRvcHRQdHIobmV3IFBvc2l0aW9uZWRPYmplY3RzTGlzdEhhc2hT
ZXQpOwogCiAgICAgbV9wb3NpdGlvbmVkT2JqZWN0cy0+YWRkKG8pOworCisgICAgaWYgKG8tPnN0
eWxlKCktPnBvc2l0aW9uKCkgPT0gRml4ZWRQb3NpdGlvbikgeworICAgICAgICBpZiAodmlldygp
KQorICAgICAgICAgICAgdmlldygpLT5pbnNlcnRGaXhlZFBvc2l0aW9uZWRPYmplY3Qobyk7Cisg
ICAgfQogfQogCiB2b2lkIFJlbmRlckJsb2NrOjpyZW1vdmVQb3NpdGlvbmVkT2JqZWN0KFJlbmRl
ckJveCogbykKIHsKICAgICBpZiAobV9wb3NpdGlvbmVkT2JqZWN0cykKICAgICAgICAgbV9wb3Np
dGlvbmVkT2JqZWN0cy0+cmVtb3ZlKG8pOworCisgICAgaWYgKHZpZXcoKSkKKyAgICAgICAgdmll
dygpLT5yZW1vdmVGaXhlZFBvc2l0aW9uZWRPYmplY3Qobyk7CiB9CiAKIHZvaWQgUmVuZGVyQmxv
Y2s6OnJlbW92ZVBvc2l0aW9uZWRPYmplY3RzKFJlbmRlckJsb2NrKiBvKQpJbmRleDogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAkocmV2aXNpb24gMTE0MTY1KQorKysgU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05
MjAsNCArOTIwLDM1IEBAIFJlbmRlckJsb2NrOjpJbnRlcnZhbEFyZW5hKiBSZW5kZXJWaWV3OjoK
ICAgICByZXR1cm4gbV9pbnRlcnZhbEFyZW5hLmdldCgpOwogfQogCit2b2lkIFJlbmRlclZpZXc6
OnNldEZpeGVkUG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0KCkKK3sKKyAgICBBU1NFUlQobV9m
cmFtZVZpZXcpOworCisgICAgUG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldCogcG9zaXRpb25l
ZE9iamVjdHMgPSB0aGlzLT5wb3NpdGlvbmVkT2JqZWN0cygpOworICAgIGlmICghcG9zaXRpb25l
ZE9iamVjdHMpCisgICAgICAgIHJldHVybjsKKworICAgIFBvc2l0aW9uZWRPYmplY3RzTGlzdEhh
c2hTZXQ6OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IHBvc2l0aW9uZWRPYmplY3RzLT5lbmQoKTsKKyAg
ICBmb3IgKFBvc2l0aW9uZWRPYmplY3RzTGlzdEhhc2hTZXQ6OmNvbnN0X2l0ZXJhdG9yIGl0ID0g
cG9zaXRpb25lZE9iamVjdHMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBS
ZW5kZXJCb3gqIGN1cnJCb3ggPSAqaXQ7CisgICAgICAgIGN1cnJCb3gtPnNldE5lZWRzTGF5b3V0
KHRydWUpOworICAgIH0KK30KKwordm9pZCBSZW5kZXJWaWV3OjppbnNlcnRGaXhlZFBvc2l0aW9u
ZWRPYmplY3QoUmVuZGVyQm94KiBvYmplY3QpCit7CisgICAgaWYgKCFtX3Bvc2l0aW9uZWRPYmpl
Y3RzKQorICAgICAgICBtX3Bvc2l0aW9uZWRPYmplY3RzID0gYWRvcHRQdHIobmV3IFBvc2l0aW9u
ZWRPYmplY3RzTGlzdEhhc2hTZXQpOworCisgICAgbV9wb3NpdGlvbmVkT2JqZWN0cy0+YWRkKG9i
amVjdCk7Cit9CisKK3ZvaWQgUmVuZGVyVmlldzo6cmVtb3ZlRml4ZWRQb3NpdGlvbmVkT2JqZWN0
KFJlbmRlckJveCogb2JqZWN0KQoreworICAgIGlmICghbV9wb3NpdGlvbmVkT2JqZWN0cykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wb3NpdGlvbmVkT2JqZWN0cy0+cmVtb3ZlKG9iamVjdCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuaAkocmV2aXNpb24gMTE0MTY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclZpZXcuaAkod29ya2luZyBjb3B5KQpAQCAtMTc5LDYgKzE3OSwxMSBAQCBwdWJs
aWM6CiAgICAgSW50ZXJ2YWxBcmVuYSogaW50ZXJ2YWxBcmVuYSgpOwogCiAgICAgSW50U2l6ZSB2
aWV3cG9ydFNpemUoKSBjb25zdCB7IHJldHVybiBkb2N1bWVudCgpLT52aWV3cG9ydFNpemUoKTsg
fQorCisgICAgdm9pZCBzZXRGaXhlZFBvc2l0aW9uZWRPYmplY3RzTmVlZExheW91dCgpOworICAg
IHZvaWQgaW5zZXJ0Rml4ZWRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlckJveCopOworICAgIHZvaWQg
cmVtb3ZlRml4ZWRQb3NpdGlvbmVkT2JqZWN0KFJlbmRlckJveCopOworCiBwcm90ZWN0ZWQ6CiAg
ICAgdmlydHVhbCB2b2lkIG1hcExvY2FsVG9Db250YWluZXIoUmVuZGVyQm94TW9kZWxPYmplY3Qq
IHJlcGFpbnRDb250YWluZXIsIGJvb2wgdXNlVHJhbnNmb3JtcywgYm9vbCBmaXhlZCwgVHJhbnNm
b3JtU3RhdGUmLCBib29sKiB3YXNGaXhlZCA9IDApIGNvbnN0OwogICAgIHZpcnR1YWwgdm9pZCBt
YXBBYnNvbHV0ZVRvTG9jYWxQb2ludChib29sIGZpeGVkLCBib29sIHVzZVRyYW5zZm9ybXMsIFRy
YW5zZm9ybVN0YXRlJikgY29uc3Q7CkBAIC0yNTQsNyArMjU5LDEwIEBAIHByb3RlY3RlZDoKIAog
ICAgIHR5cGVkZWYgSGFzaFNldDxSZW5kZXJXaWRnZXQqPiBSZW5kZXJXaWRnZXRTZXQ7CiAgICAg
UmVuZGVyV2lkZ2V0U2V0IG1fd2lkZ2V0czsKLSAgICAKKworICAgIHR5cGVkZWYgSGFzaFNldDxS
ZW5kZXJCb3gqPiBSZW5kZXJCb3hTZXQ7CisgICAgT3duUHRyPFJlbmRlckJveFNldD4gbV9maXhl
ZFBvc2l0aW9uZWRFbGVtZW50czsKKwogcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3BhZ2VMb2dp
Y2FsSGVpZ2h0OwogICAgIGJvb2wgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQ7CkluZGV4OiBT
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxMTQyMTQpCisrKyBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wNC0xNSAgWWFlbCBBaGFyb24gIDx5
YWVsLmFoYXJvbkBub2tpYS5jb20+CisKKyAgICAgICAgW1F0XVtXSzJdIEZpeGVkIGVsZW1lbnRz
IHBvc2l0aW9uIGlzIHdyb25nIGFmdGVyIHpvb21pbmcuCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04Mzk4MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFR1cm4gb24gdGhlIGZsYWcgc2V0Rml4ZWRFbGVtZW50
c0xheW91dFJlbGF0aXZlVG9GcmFtZS4gVGhpcyBjYXVzZXMgZml4ZWQgZWxlbWVudHMgcG9zaXRp
b24gdG8gYmUgY2FsY3VsYXRlZCBiYXNlZCBvbgorICAgICAgICB2aXNpYmxlV2lkdGggYW5kIHZp
c2libGVIZWlnaHQuIFdoZW4gem9vbSBsZXZlbCBncm93cywgdGhlIHZpc2libGVXaWR0aCBhbmQg
dmlzaWJsZUhlaWdodCBiZWNvbWUgc21hbGxlci4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6c2V0UmVzaXplc1Rv
Q29udGVudHNVc2luZ0xheW91dFNpemUpOgorCiAyMDEyLTA0LTEzICBKZXIgTm9ibGUgIDxqZXIu
bm9ibGVAYXBwbGUuY29tPgogCiAgICAgICAgIFZpZGVvIGF0IGFwcGxlLmNvbSBnZXRzIHN0YW5k
YXJkIGNvbnRyb2xzIGluIGFkZGl0aW9uIHRvIGN1c3RvbSBjb250cm9scyBhZnRlciByZXR1cm5p
bmcgZnJvbSBmdWxsIHNjcmVlbgpJbmRleDogU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMTE0MTY1KQorKysgU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MzYsNiAr
ODM2LDcgQEAgdm9pZCBXZWJQYWdlOjpzZXRSZXNpemVzVG9Db250ZW50c1VzaW5nTAogICAgIHZp
ZXctPnNldEZpeGVkTGF5b3V0U2l6ZSh0YXJnZXRMYXlvdXRTaXplKTsKIAogICAgIG1fcGFnZS0+
c2V0dGluZ3MoKS0+c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb25FbmFi
bGVkKHRydWUpOworICAgIG1fcGFnZS0+c2V0dGluZ3MoKS0+c2V0Rml4ZWRFbGVtZW50c0xheW91
dFJlbGF0aXZlVG9GcmFtZSh0cnVlKTsKIAogICAgIC8vIFNjaGVkdWxlIGEgbGF5b3V0IHRvIHVz
ZSB0aGUgbmV3IHRhcmdldCBzaXplLgogICAgIGlmICghdmlldy0+bGF5b3V0UGVuZGluZygpKSB7
Cg==
</data>
<flag name="review"
          id="142269"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137332</attachid>
            <date>2012-04-16 06:23:06 -0700</date>
            <delta_ts>2012-06-11 00:03:45 -0700</delta_ts>
            <desc>Patch for landing.</desc>
            <filename>83981.patch</filename>
            <type>text/plain</type>
            <size>9387</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDExNDIx
NCkKKysrIENoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDEyLTA0
LTE1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRd
W1dLMl0gRml4ZWQgZWxlbWVudHMgcG9zaXRpb24gaXMgd3JvbmcgYWZ0ZXIgem9vbWluZy4KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzOTgxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAg
KiBNYW51YWxUZXN0cy9yZW1vdmUtYWRkLWZpeGVkLXBvc2l0aW9uLmh0bWw6IEFkZGVkLgorCiAy
MDEyLTA0LTEzICBKYXNvbiBMaXUgIDxqYXNvbi5saXVAdG9yY2htb2JpbGUuY29tLmNuPgogCiAg
ICAgICAgIFtCbGFja0JlcnJ5XSBTaWduIGluIGNvb2tpZSBmb3IgRVNQTi5jb20gZG9lcyBub3Qg
cmV0YWluIGxvZ2luIGFjY291bnQgKGZvciBmYW50YXN5IHNwb3J0cykuCkluZGV4OiBNYW51YWxU
ZXN0cy9yZW1vdmUtYWRkLWZpeGVkLXBvc2l0aW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTWFudWFs
VGVzdHMvcmVtb3ZlLWFkZC1maXhlZC1wb3NpdGlvbi5odG1sCShyZXZpc2lvbiAwKQorKysgTWFu
dWFsVGVzdHMvcmVtb3ZlLWFkZC1maXhlZC1wb3NpdGlvbi5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDkzIEBACis8aHRtbD48aGVhZD4KKzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50
PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorPHN0eWxlPgorLmQxIHtwb3NpdGlvbjpmaXhlZDsgdG9w
OjU7IHJpZ2h0OjU7IHotaW5kZXg6Mjsgb3ZlcmZsb3c6aGlkZGVuO30KKy5vIHtiYWNrZ3JvdW5k
OmdyZWVuOyBoZWlnaHQ6NDBweDsgd2lkdGg6MjAwcHg7fQorLnQgeyB3aWR0aDoyMDAwcHg7IGhl
aWdodDoxOThweDsgYmFja2dyb3VuZC1jb2xvcjogbGlnaHRncmF5OyBib3JkZXI6IDFweCBzb2xp
ZCBibHVlO30KK2JvZHkgeyBtYXJnaW46IDBweDsgfQorPC9zdHlsZT4KKzxzY3JpcHQ+CisKK3Zh
ciBmaXhlZDsKKworZnVuY3Rpb24gcmVtb3ZlX2NoaWxkKCkKK3sKKyAgZml4ZWQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZDEiKTsKKyAgZml4ZWQucGFyZW50RWxlbWVudC5yZW1vdmVDaGls
ZChmaXhlZCk7Cit9CisKK2Z1bmN0aW9uIGFkZF9jaGlsZCgpCit7CisgIGRvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQoZml4ZWQpOworfQorCis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGRp
diBjbGFzcz0iZDEiIGlkPSJkMSI+PGRpdiBjbGFzcz0ibyI+VGhpcyBpcyBhIHRlc3Q8L2Rpdj48
L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMDAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMjAw
PGJyPgorPGJ1dHRvbiBvbmNsaWNrPSJyZW1vdmVfY2hpbGQoKTsiPnJlbW92ZSBmaXhlZDwvYnV0
dG9uPgorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzQwMDxicj4KKzxidXR0b24gb25jbGljaz0i
YWRkX2NoaWxkKCk7Ij5hZGQgZml4ZWQ8L2J1dHRvbj4KKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+
Cis2MDA8YnI+Cis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorODAwCis8L2Rpdj4KKzxkaXYgY2xh
c3M9InQiPgorMTAwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzEyMDAKKzwvZGl2PgorPGRp
diBjbGFzcz0idCI+CisxNDAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMTYwMAorPC9kaXY+
Cis8ZGl2IGNsYXNzPSJ0Ij4KKzE4MDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+CisyMDAwCis8
L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMjIwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzI0
MDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+CisyNjAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQi
PgorMjgwMAorPC9kaXY+Cis8ZGl2IGNsYXNzPSJ0Ij4KKzMwMDAKKzwvZGl2PgorPGRpdiBjbGFz
cz0idCI+CiszMjAwCis8L2Rpdj4KKzxkaXYgY2xhc3M9InQiPgorMzQwMAorPC9kaXY+Cis8ZGl2
IGNsYXNzPSJ0Ij4KKzM2MDAKKzwvZGl2PgorPGRpdiBjbGFzcz0idCI+CiszODAwCis8L2Rpdj4K
KzxkaXYgY2xhc3M9InQiPgorNDAwMAorPC9kaXY+Cis8L2JvZHk+PC9odG1sPgpJbmRleDogU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkocmV2aXNpb24gMTE0MjE0KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTItMDQtMTUgIFlhZWwgQWhhcm9uICA8eWFl
bC5haGFyb25Abm9raWEuY29tPgorCisgICAgICAgIFtRdF1bV0syXSBGaXhlZCBlbGVtZW50cyBw
b3NpdGlvbiBpcyB3cm9uZyBhZnRlciB6b29taW5nLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODM5ODEKKworICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KKworICAgICAgICBXaGVuIHNldEZpeGVkVmlzaWJsZUNv
bnRlbnRSZWN0IGlzIGNhbGxlZCB3ZSBtYXJrIGFsbCBmaXhlZCBlbGVtZW50cyBpbiB0aGUgZnJh
bWUgZm9yIGxheW91dC4KKyAgICAgICAgSW4gb3JkZXIgdG8gZmluZCB0aGVzZSBlbGVtZW50cywg
UmVuZGVyVmlldyBtYWludGFpbnMgYSBsaXN0IG9mIGZpeGVkIGVsZW1lbnRzLgorICAgICAgICBU
aGV5IGFyZSBhZGRlZCBhbmQgcmVtb3ZlZCBhdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhleSBhcmUg
YWRkZWQgYW5kIHJlbW92ZWQgZnJvbSB0aGVpciBwYXJlbnQgUmVuZGVyQmxvY2suCisgICAgICAg
IFRoZSBpZGVhIGlzIHRha2VuIGZyb20gdGhlIGlPUzUuMSBicmFuY2gsIGF0IG9wZW5zb3VyY2Uu
YXBwbGUuY29tLgorICAgICAgICBBZGRlZCBhIG1hbnVhbCB0ZXN0IHRoYXQgYWxsb3dzIHJlbW92
aW5nIGFuZCBhZGRpbmcgZml4ZWQgZWxlbWVudHMgYXQgd2lsbC4KKworICAgICAgICAqIHBhZ2Uv
RnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2V0Rml4ZWRWaXNp
YmxlQ29udGVudFJlY3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6aW5zZXJ0UG9zaXRpb25lZE9iamVjdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6cmVtb3ZlUG9zaXRpb25lZE9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6c2V0Rml4ZWRQb3NpdGlvbmVkT2JqZWN0c05lZWRMYXlvdXQpOgorICAgICAgICAo
V2ViQ29yZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjppbnNlcnRGaXhlZFBvc2l0
aW9uZWRPYmplY3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVmlldzo6cmVtb3ZlRml4ZWRQ
b3NpdGlvbmVkT2JqZWN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5oOgorICAg
ICAgICAoUmVuZGVyVmlldyk6CisKIDIwMTItMDQtMTQgIEVtaWwgQSBFa2x1bmQgIDxlYWVAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIEZpeCBwaXhlbFNuYXBwaW5nIGZvciBDYWxlbmRhclBpY2tl
ciwgTWVkaWFDb250cm9sIGFuZCBTY3JvbGxiYXJQYXJ0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9GcmFt
ZVZpZXcuY3BwCShyZXZpc2lvbiAxMTQxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE3MDEsNiArMTcwMSwxMyBAQCB2b2lkIEZyYW1l
Vmlldzo6ZGVsZWdhdGVzU2Nyb2xsaW5nRGlkQ2hhCiAKIHZvaWQgRnJhbWVWaWV3OjpzZXRGaXhl
ZFZpc2libGVDb250ZW50UmVjdChjb25zdCBJbnRSZWN0JiB2aXNpYmxlQ29udGVudFJlY3QpCiB7
CisgICAgaWYgKHZpc2libGVDb250ZW50UmVjdC5zaXplKCkgIT0gdGhpcy0+Zml4ZWRWaXNpYmxl
Q29udGVudFJlY3QoKS5zaXplKCkpIHsKKyAgICAgICAgLy8gV2hlbiB0aGUgdmlld3BvcnQgc2l6
ZSBjaGFuZ2VzIG9yIHRoZSBjb250ZW50IGlzIHNjYWxlZCwgd2UgbmVlZCB0bworICAgICAgICAv
LyByZXBvc2l0aW9uIHRoZSBmaXhlZCBwb3NpdGlvbmVkIGVsZW1lbnRzLgorICAgICAgICBpZiAo
UmVuZGVyVmlldyogcm9vdCA9IHJvb3RSZW5kZXJlcih0aGlzKSkKKyAgICAgICAgICAgIHJvb3Qt
PnNldEZpeGVkUG9zaXRpb25lZE9iamVjdHNOZWVkTGF5b3V0KCk7CisgICAgfQorCiAgICAgSW50
U2l6ZSBvZmZzZXQgPSBzY3JvbGxPZmZzZXQoKTsKICAgICBTY3JvbGxWaWV3OjpzZXRGaXhlZFZp
c2libGVDb250ZW50UmVjdCh2aXNpYmxlQ29udGVudFJlY3QpOwogICAgIGlmIChvZmZzZXQgIT0g
c2Nyb2xsT2Zmc2V0KCkpIHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAkocmV2aXNpb24gMTE0MTY1KQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQxOCwxMiArMzQxOCwxOCBAQCB2b2lk
IFJlbmRlckJsb2NrOjppbnNlcnRQb3NpdGlvbmVkT2JqZWN0CiAgICAgICAgIG1fcG9zaXRpb25l
ZE9iamVjdHMgPSBhZG9wdFB0cihuZXcgUG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldCk7CiAK
ICAgICBtX3Bvc2l0aW9uZWRPYmplY3RzLT5hZGQobyk7CisKKyAgICBpZiAoby0+c3R5bGUoKS0+
cG9zaXRpb24oKSA9PSBGaXhlZFBvc2l0aW9uICYmIHZpZXcoKSkKKyAgICAgICAgdmlldygpLT5p
bnNlcnRGaXhlZFBvc2l0aW9uZWRPYmplY3Qobyk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2s6OnJl
bW92ZVBvc2l0aW9uZWRPYmplY3QoUmVuZGVyQm94KiBvKQogewogICAgIGlmIChtX3Bvc2l0aW9u
ZWRPYmplY3RzKQogICAgICAgICBtX3Bvc2l0aW9uZWRPYmplY3RzLT5yZW1vdmUobyk7CisKKyAg
ICBpZiAodmlldygpKQorICAgICAgICB2aWV3KCktPnJlbW92ZUZpeGVkUG9zaXRpb25lZE9iamVj
dChvKTsKIH0KIAogdm9pZCBSZW5kZXJCbG9jazo6cmVtb3ZlUG9zaXRpb25lZE9iamVjdHMoUmVu
ZGVyQmxvY2sqIG8pCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CShyZXZpc2lvbiAxMTQxNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkyMCw0ICs5MjAsMzUgQEAgUmVuZGVyQmxvY2s6Oklu
dGVydmFsQXJlbmEqIFJlbmRlclZpZXc6OgogICAgIHJldHVybiBtX2ludGVydmFsQXJlbmEuZ2V0
KCk7CiB9CiAKK3ZvaWQgUmVuZGVyVmlldzo6c2V0Rml4ZWRQb3NpdGlvbmVkT2JqZWN0c05lZWRM
YXlvdXQoKQoreworICAgIEFTU0VSVChtX2ZyYW1lVmlldyk7CisKKyAgICBQb3NpdGlvbmVkT2Jq
ZWN0c0xpc3RIYXNoU2V0KiBwb3NpdGlvbmVkT2JqZWN0cyA9IHRoaXMtPnBvc2l0aW9uZWRPYmpl
Y3RzKCk7CisgICAgaWYgKCFwb3NpdGlvbmVkT2JqZWN0cykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgUG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gcG9z
aXRpb25lZE9iamVjdHMtPmVuZCgpOworICAgIGZvciAoUG9zaXRpb25lZE9iamVjdHNMaXN0SGFz
aFNldDo6Y29uc3RfaXRlcmF0b3IgaXQgPSBwb3NpdGlvbmVkT2JqZWN0cy0+YmVnaW4oKTsgaXQg
IT0gZW5kOyArK2l0KSB7CisgICAgICAgIFJlbmRlckJveCogY3VyckJveCA9ICppdDsKKyAgICAg
ICAgY3VyckJveC0+c2V0TmVlZHNMYXlvdXQodHJ1ZSk7CisgICAgfQorfQorCit2b2lkIFJlbmRl
clZpZXc6Omluc2VydEZpeGVkUG9zaXRpb25lZE9iamVjdChSZW5kZXJCb3gqIG9iamVjdCkKK3sK
KyAgICBpZiAoIW1fcG9zaXRpb25lZE9iamVjdHMpCisgICAgICAgIG1fcG9zaXRpb25lZE9iamVj
dHMgPSBhZG9wdFB0cihuZXcgUG9zaXRpb25lZE9iamVjdHNMaXN0SGFzaFNldCk7CisKKyAgICBt
X3Bvc2l0aW9uZWRPYmplY3RzLT5hZGQob2JqZWN0KTsKK30KKwordm9pZCBSZW5kZXJWaWV3Ojpy
ZW1vdmVGaXhlZFBvc2l0aW9uZWRPYmplY3QoUmVuZGVyQm94KiBvYmplY3QpCit7CisgICAgaWYg
KCFtX3Bvc2l0aW9uZWRPYmplY3RzKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3Bvc2l0aW9u
ZWRPYmplY3RzLT5yZW1vdmUob2JqZWN0KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJ
bmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCShyZXZpc2lvbiAxMTQxNjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCSh3b3JraW5nIGNvcHkp
CkBAIC0xNzksNiArMTc5LDExIEBAIHB1YmxpYzoKICAgICBJbnRlcnZhbEFyZW5hKiBpbnRlcnZh
bEFyZW5hKCk7CiAKICAgICBJbnRTaXplIHZpZXdwb3J0U2l6ZSgpIGNvbnN0IHsgcmV0dXJuIGRv
Y3VtZW50KCktPnZpZXdwb3J0U2l6ZSgpOyB9CisKKyAgICB2b2lkIHNldEZpeGVkUG9zaXRpb25l
ZE9iamVjdHNOZWVkTGF5b3V0KCk7CisgICAgdm9pZCBpbnNlcnRGaXhlZFBvc2l0aW9uZWRPYmpl
Y3QoUmVuZGVyQm94Kik7CisgICAgdm9pZCByZW1vdmVGaXhlZFBvc2l0aW9uZWRPYmplY3QoUmVu
ZGVyQm94Kik7CisKIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIHZvaWQgbWFwTG9jYWxUb0NvbnRh
aW5lcihSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVwYWludENvbnRhaW5lciwgYm9vbCB1c2VUcmFu
c2Zvcm1zLCBib29sIGZpeGVkLCBUcmFuc2Zvcm1TdGF0ZSYsIGJvb2wqIHdhc0ZpeGVkID0gMCkg
Y29uc3Q7CiAgICAgdmlydHVhbCB2b2lkIG1hcEFic29sdXRlVG9Mb2NhbFBvaW50KGJvb2wgZml4
ZWQsIGJvb2wgdXNlVHJhbnNmb3JtcywgVHJhbnNmb3JtU3RhdGUmKSBjb25zdDsKQEAgLTI1NCw3
ICsyNTksMTAgQEAgcHJvdGVjdGVkOgogCiAgICAgdHlwZWRlZiBIYXNoU2V0PFJlbmRlcldpZGdl
dCo+IFJlbmRlcldpZGdldFNldDsKICAgICBSZW5kZXJXaWRnZXRTZXQgbV93aWRnZXRzOwotICAg
IAorCisgICAgdHlwZWRlZiBIYXNoU2V0PFJlbmRlckJveCo+IFJlbmRlckJveFNldDsKKyAgICBP
d25QdHI8UmVuZGVyQm94U2V0PiBtX2ZpeGVkUG9zaXRpb25lZEVsZW1lbnRzOworCiBwcml2YXRl
OgogICAgIHVuc2lnbmVkIG1fcGFnZUxvZ2ljYWxIZWlnaHQ7CiAgICAgYm9vbCBtX3BhZ2VMb2dp
Y2FsSGVpZ2h0Q2hhbmdlZDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDExNDIxNCkKKysrIFNv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisy
MDEyLTA0LTE1ICBZYWVsIEFoYXJvbiAgPHlhZWwuYWhhcm9uQG5va2lhLmNvbT4KKworICAgICAg
ICBbUXRdW1dLMl0gRml4ZWQgZWxlbWVudHMgcG9zaXRpb24gaXMgd3JvbmcgYWZ0ZXIgem9vbWlu
Zy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzOTgx
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAg
ICAgICAgVHVybiBvbiB0aGUgZmxhZyBzZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0Zy
YW1lLiBUaGlzIGNhdXNlcyBmaXhlZCBlbGVtZW50cyBwb3NpdGlvbiB0byBiZSBjYWxjdWxhdGVk
IGJhc2VkIG9uCisgICAgICAgIHZpc2libGVXaWR0aCBhbmQgdmlzaWJsZUhlaWdodC4gV2hlbiB6
b29tIGxldmVsIGdyb3dzLCB0aGUgdmlzaWJsZVdpZHRoIGFuZCB2aXNpYmxlSGVpZ2h0IGJlY29t
ZSBzbWFsbGVyLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpzZXRSZXNpemVzVG9Db250ZW50c1VzaW5nTGF5b3V0
U2l6ZSk6CisKIDIwMTItMDQtMTMgIEplciBOb2JsZSAgPGplci5ub2JsZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgVmlkZW8gYXQgYXBwbGUuY29tIGdldHMgc3RhbmRhcmQgY29udHJvbHMgaW4gYWRk
aXRpb24gdG8gY3VzdG9tIGNvbnRyb2xzIGFmdGVyIHJldHVybmluZyBmcm9tIGZ1bGwgc2NyZWVu
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CShyZXZpc2lvbiAxMTQxNjUpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgzNiw2ICs4MzYsNyBAQCB2b2lkIFdlYlBh
Z2U6OnNldFJlc2l6ZXNUb0NvbnRlbnRzVXNpbmdMCiAgICAgdmlldy0+c2V0Rml4ZWRMYXlvdXRT
aXplKHRhcmdldExheW91dFNpemUpOwogCiAgICAgbV9wYWdlLT5zZXR0aW5ncygpLT5zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQodHJ1ZSk7CisgICAgbV9w
YWdlLT5zZXR0aW5ncygpLT5zZXRGaXhlZEVsZW1lbnRzTGF5b3V0UmVsYXRpdmVUb0ZyYW1lKHRy
dWUpOwogCiAgICAgLy8gU2NoZWR1bGUgYSBsYXlvdXQgdG8gdXNlIHRoZSBuZXcgdGFyZ2V0IHNp
emUuCiAgICAgaWYgKCF2aWV3LT5sYXlvdXRQZW5kaW5nKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>