<?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>45173</bug_id>
          
          <creation_ts>2010-09-03 06:45:59 -0700</creation_ts>
          <short_desc>[Qt] Refactor MiniBrowser</short_desc>
          <delta_ts>2010-09-08 04:21:02 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>All</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="Zoltan Horvath">zoltan</reporter>
          <assigned_to name="Zoltan Horvath">zoltan</assigned_to>
          <cc>abecsi</cc>
    
    <cc>kbalazs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>273908</commentid>
    <comment_count>0</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2010-09-03 06:45:59 -0700</bug_when>
    <thetext>Split BrowserWindow into two source files and headers. Remove unnecessary header includes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273911</commentid>
    <comment_count>1</comment_count>
      <attachid>66487</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2010-09-03 06:48:42 -0700</bug_when>
    <thetext>Created attachment 66487
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273914</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-03 06:53:39 -0700</bug_when>
    <thetext>Attachment 66487 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/MiniBrowser/qt/BrowserView.h:29:  #ifndef header guard has wrong style, please use: BrowserView_h  [build/header_guard] [5]
WebKitTools/MiniBrowser/qt/BrowserView.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.cpp:31:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 5 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273921</commentid>
    <comment_count>3</comment_count>
      <attachid>66489</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2010-09-03 07:01:01 -0700</bug_when>
    <thetext>Created attachment 66489
proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273924</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-03 07:07:07 -0700</bug_when>
    <thetext>Attachment 66489 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebKitTools/MiniBrowser/qt/BrowserView.h:33:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.h:34:  Alphabetical sorting problem.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.cpp:29:  Found header this file implements before WebCore config.h. Should be: config.h, primary header, blank line, and then alphabetically sorted.  [build/include_order] [4]
WebKitTools/MiniBrowser/qt/BrowserView.cpp:32:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 4 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273936</commentid>
    <comment_count>5</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-03 07:30:44 -0700</bug_when>
    <thetext>Seems reasonable to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273939</commentid>
    <comment_count>6</comment_count>
    <who name="Andras Becsi">abecsi</who>
    <bug_when>2010-09-03 07:48:51 -0700</bug_when>
    <thetext>The include order in BrowserView.h should probably be:

#include &quot;WKRetainPtr.h&quot;
#include &quot;qgraphicswkview.h&quot;
#include &lt;QGraphicsView&gt;

and in BrowserView.cpp: 

#include &quot;WKContext.h&quot;
#include &lt;QGraphicsScene&gt;

Do not bother with config.h, WebKit2 does not need to include it (btw this should be fixed in check-webkit-style).
Otherwise LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>273943</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2010-09-03 08:04:54 -0700</bug_when>
    <thetext>&gt; Do not bother with config.h, WebKit2 does not need to include it (btw this should be fixed in check-webkit-style).

No, this should be fixed in WebKit2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275676</commentid>
    <comment_count>8</comment_count>
      <attachid>66489</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2010-09-08 01:47:50 -0700</bug_when>
    <thetext>Comment on attachment 66489
proposed patch

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

&gt; WebKitTools/MiniBrowser/qt/BrowserView.cpp:74
&gt; +void BrowserView::load(const QUrl&amp; url)
&gt; +{
&gt; +#if QT_VERSION &gt;= QT_VERSION_CHECK(4, 6, 0)
&gt; +    return m_item-&gt;load(QUrl::fromUserInput(url.toString()));
&gt; +#else
&gt; +    return m_item-&gt;load(url);
&gt; +#endif
&gt; +}
This function should really be taking a QString as argument, not a QUrl. QUrl::toString() and then passing it to QUrl::fromUserInput is asking for trouble :)

That&apos;s not your fault though, just a comment on the side. I also think it&apos;s safe to remove the QT_VERSION_CHECK here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275684</commentid>
    <comment_count>9</comment_count>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2010-09-08 02:04:19 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 66489 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=66489&amp;action=prettypatch
&gt; 
&gt; &gt; WebKitTools/MiniBrowser/qt/BrowserView.cpp:74
&gt; &gt; +void BrowserView::load(const QUrl&amp; url)
&gt; &gt; +{
&gt; &gt; +#if QT_VERSION &gt;= QT_VERSION_CHECK(4, 6, 0)
&gt; &gt; +    return m_item-&gt;load(QUrl::fromUserInput(url.toString()));
&gt; &gt; +#else
&gt; &gt; +    return m_item-&gt;load(url);
&gt; &gt; +#endif
&gt; &gt; +}
&gt; This function should really be taking a QString as argument, not a QUrl. QUrl::toString() and then passing it to QUrl::fromUserInput is asking for trouble :)
&gt; 
&gt; That&apos;s not your fault though, just a comment on the side. I also think it&apos;s safe to remove the QT_VERSION_CHECK here.

I&apos;m going to file a new bug for these after landing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275744</commentid>
    <comment_count>10</comment_count>
      <attachid>66489</attachid>
    <who name="Zoltan Horvath">zoltan</who>
    <bug_when>2010-09-08 04:20:41 -0700</bug_when>
    <thetext>Comment on attachment 66489
proposed patch

http://trac.webkit.org/changeset/66969
Clearing flags.
Committed revision 66969.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66487</attachid>
            <date>2010-09-03 06:48:42 -0700</date>
            <delta_ts>2010-09-03 07:01:01 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>mb_refactor.patch</filename>
            <type>text/plain</type>
            <size>9206</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZDIwYzNjLi5kNDNlYzE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDkt
MDMgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWZhY3RvciBNaW5pQnJvd3Nl
ciAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTcz
CisKKyAgICAgICAgU3BsaXQgQnJvd3NlcldpbmRvdyBpbnRvIHR3byBzb3VyY2UgZmlsZXMgYW5k
IGhlYWRlcnMuIFJlbW92ZSB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5jbHVkZXMuCisKKyAgICAgICAg
KiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoY3JlYXRl
TmV3UGFnZSk6CisgICAgICAgIChCcm93c2VyVmlldzo6QnJvd3NlclZpZXcpOgorICAgICAgICAo
QnJvd3NlclZpZXc6OnJlc2l6ZUV2ZW50KToKKyAgICAgICAgKEJyb3dzZXJWaWV3Ojpsb2FkKToK
KyAgICAgICAgKEJyb3dzZXJWaWV3Ojp2aWV3KToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9C
cm93c2VyVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKEJyb3dzZXJWaWV3Ojp+QnJvd3NlclZpZXcp
OgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwOgorICAgICAgICAq
IE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9x
dC9NaW5pQnJvd3Nlci5wcm86CisKIDIwMTAtMDktMDMgIEdhYm9yIFJhcGNzYW55aSAgPHJnYWJv
ckBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHAgYi9X
ZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uOWU0YTc1NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRv
b2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3LmNwcApAQCAtMCwwICsxLDc4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisg
KgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQnJvd3NlclZpZXcu
aCIKKyNpbmNsdWRlIDxRR3JhcGhpY3NTY2VuZT4KKyNpbmNsdWRlICJXS0NvbnRleHQuaCIKKwor
c3RhdGljIFFXS1BhZ2UqIGNyZWF0ZU5ld1BhZ2UoUVdLUGFnZSogcGFnZSkKK3sKKyAgICByZXR1
cm4gcGFnZTsKK30KKworQnJvd3NlclZpZXc6OkJyb3dzZXJWaWV3KFFXaWRnZXQqIHBhcmVudCkK
KyAgICA6IFFHcmFwaGljc1ZpZXcocGFyZW50KQorICAgICwgbV9pdGVtKDApCit7CisgICAgbV9j
b250ZXh0LmFkb3B0KFdLQ29udGV4dEdldFNoYXJlZFByb2Nlc3NDb250ZXh0KCkpOworCisgICAg
V0tSZXRhaW5QdHI8V0tQYWdlTmFtZXNwYWNlUmVmPiBwYWdlTmFtZXNwYWNlKEFkb3B0V0ssIFdL
UGFnZU5hbWVzcGFjZUNyZWF0ZShtX2NvbnRleHQuZ2V0KCkpKTsKKworICAgIG1faXRlbSA9IG5l
dyBRR3JhcGhpY3NXS1ZpZXcocGFnZU5hbWVzcGFjZS5nZXQoKSwgUUdyYXBoaWNzV0tWaWV3OjpT
aW1wbGUsIDApOworICAgIHNldFNjZW5lKG5ldyBRR3JhcGhpY3NTY2VuZSh0aGlzKSk7CisgICAg
c2NlbmUoKS0+YWRkSXRlbShtX2l0ZW0pOworCisgICAgc2V0RnJhbWVTaGFwZShRRnJhbWU6Ok5v
RnJhbWUpOworICAgIHNldEhvcml6b250YWxTY3JvbGxCYXJQb2xpY3koUXQ6OlNjcm9sbEJhckFs
d2F5c09mZik7CisgICAgc2V0VmVydGljYWxTY3JvbGxCYXJQb2xpY3koUXQ6OlNjcm9sbEJhckFs
d2F5c09mZik7CisKKyAgICBjb25uZWN0KG1faXRlbSwgU0lHTkFMKHRpdGxlQ2hhbmdlZChRU3Ry
aW5nKSksIHRoaXMsIFNMT1Qoc2V0V2luZG93VGl0bGUoUVN0cmluZykpKTsKKyAgICBtX2l0ZW0t
PnBhZ2UoKS0+c2V0Q3JlYXRlTmV3UGFnZUZ1bmN0aW9uKGNyZWF0ZU5ld1BhZ2UpOworfQorCit2
b2lkIEJyb3dzZXJWaWV3OjpyZXNpemVFdmVudChRUmVzaXplRXZlbnQqIGV2ZW50KQoreworICAg
IFFHcmFwaGljc1ZpZXc6OnJlc2l6ZUV2ZW50KGV2ZW50KTsKKyAgICBRUmVjdEYgcmVjdChRUG9p
bnQoMCwgMCksIGV2ZW50LT5zaXplKCkpOworICAgIG1faXRlbS0+c2V0R2VvbWV0cnkocmVjdCk7
CisgICAgc2NlbmUoKS0+c2V0U2NlbmVSZWN0KHJlY3QpOworfQorCit2b2lkIEJyb3dzZXJWaWV3
Ojpsb2FkKGNvbnN0IFFVcmwmIHVybCkKK3sKKyNpZiBRVF9WRVJTSU9OID49IFFUX1ZFUlNJT05f
Q0hFQ0soNCwgNiwgMCkKKyAgICByZXR1cm4gbV9pdGVtLT5sb2FkKFFVcmw6OmZyb21Vc2VySW5w
dXQodXJsLnRvU3RyaW5nKCkpKTsKKyNlbHNlCisgICAgcmV0dXJuIG1faXRlbS0+bG9hZCh1cmwp
OworI2VuZGlmCit9CisKK1FHcmFwaGljc1dLVmlldyogQnJvd3NlclZpZXc6OnZpZXcoKSBjb25z
dAoreworICAgIHJldHVybiBtX2l0ZW07Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5p
QnJvd3Nlci9xdC9Ccm93c2VyVmlldy5oIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJv
d3NlclZpZXcuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNjEwZmZiCi0t
LSAvZGV2L251bGwKKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlclZpZXcu
aApAQCAtMCwwICsxLDU0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBv
cmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEw
IFVuaXZlcnNpdHkgb2YgU3plZ2VkCisgKgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJ
TkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElO
Qy4gT1IKKyAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIGJyb3dzZXJ2aWV3X2gKKyNkZWZpbmUgYnJvd3NlcnZpZXdfaAorCisjaW5jbHVk
ZSA8UUdyYXBoaWNzVmlldz4KKyNpbmNsdWRlICJxZ3JhcGhpY3N3a3ZpZXcuaCIKKyNpbmNsdWRl
ICJXS1JldGFpblB0ci5oIgorCitjbGFzcyBCcm93c2VyVmlldyA6IHB1YmxpYyBRR3JhcGhpY3NW
aWV3IHsKKyAgICBRX09CSkVDVAorCitwdWJsaWM6CisgICAgQnJvd3NlclZpZXcoUVdpZGdldCog
cGFyZW50ID0gMCk7CisgICAgdmlydHVhbCB+QnJvd3NlclZpZXcoKSB7IGRlbGV0ZSBtX2l0ZW07
IH0KKworICAgIHZvaWQgbG9hZChjb25zdCBRVXJsJik7CisgICAgUUdyYXBoaWNzV0tWaWV3KiB2
aWV3KCkgY29uc3Q7CisKK3Byb3RlY3RlZDoKKyAgICB2aXJ0dWFsIHZvaWQgcmVzaXplRXZlbnQo
UVJlc2l6ZUV2ZW50Kik7CisKK3ByaXZhdGU6CisgICAgUUdyYXBoaWNzV0tWaWV3KiBtX2l0ZW07
CisgICAgV0tSZXRhaW5QdHI8V0tDb250ZXh0UmVmPiBtX2NvbnRleHQ7Cit9OworCisjZW5kaWYK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3Bw
IGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5jcHAKaW5kZXggMmUw
ZGNjZC4uNjBmZTY3MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJv
d3NlcldpbmRvdy5jcHAKKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nlcldp
bmRvdy5jcHAKQEAgLTI4LDU0ICsyOCw2IEBACiAKICNpbmNsdWRlICJCcm93c2VyV2luZG93Lmgi
CiAjaW5jbHVkZSAiV0tQYWdlTmFtZXNwYWNlLmgiCi0jaW5jbHVkZSAicXdrcGFnZS5oIgotCi1z
dGF0aWMgUVdLUGFnZSogY3JlYXRlTmV3UGFnZShRV0tQYWdlKiBwYWdlKQotewotICAgIHJldHVy
biBwYWdlOwotfQotCi1Ccm93c2VyVmlldzo6QnJvd3NlclZpZXcoUVdpZGdldCogcGFyZW50KQot
ICAgIDogUUdyYXBoaWNzVmlldyhwYXJlbnQpCi0gICAgLCBtX2l0ZW0oMCkKLXsKLSAgICBtX2Nv
bnRleHQuYWRvcHQoV0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKSk7Ci0KLSAgICBX
S1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VOYW1lc3BhY2UoQWRvcHRXSywgV0tQ
YWdlTmFtZXNwYWNlQ3JlYXRlKG1fY29udGV4dC5nZXQoKSkpOwotCi0gICAgbV9pdGVtID0gbmV3
IFFHcmFwaGljc1dLVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpLCBRR3JhcGhpY3NXS1ZpZXc6OlNp
bXBsZSwgMCk7Ci0gICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5lKHRoaXMpKTsKLSAgICBz
Y2VuZSgpLT5hZGRJdGVtKG1faXRlbSk7Ci0KLSAgICBzZXRGcmFtZVNoYXBlKFFGcmFtZTo6Tm9G
cmFtZSk7Ci0gICAgc2V0SG9yaXpvbnRhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFyQWx3
YXlzT2ZmKTsKLSAgICBzZXRWZXJ0aWNhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFyQWx3
YXlzT2ZmKTsKLQotICAgIGNvbm5lY3QobV9pdGVtLCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFTdHJp
bmcpKSwgdGhpcywgU0xPVChzZXRXaW5kb3dUaXRsZShRU3RyaW5nKSkpOwotICAgIG1faXRlbS0+
cGFnZSgpLT5zZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24oY3JlYXRlTmV3UGFnZSk7Ci19Ci0KLXZv
aWQgQnJvd3NlclZpZXc6OnJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCogZXZlbnQpCi17Ci0gICAg
UUdyYXBoaWNzVmlldzo6cmVzaXplRXZlbnQoZXZlbnQpOwotICAgIFFSZWN0RiByZWN0KFFQb2lu
dCgwLCAwKSwgZXZlbnQtPnNpemUoKSk7Ci0gICAgbV9pdGVtLT5zZXRHZW9tZXRyeShyZWN0KTsK
LSAgICBzY2VuZSgpLT5zZXRTY2VuZVJlY3QocmVjdCk7Ci19Ci0KLXZvaWQgQnJvd3NlclZpZXc6
OmxvYWQoY29uc3QgUVVybCYgdXJsKQotewotI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lPTl9D
SEVDSyg0LCA2LCAwKQotICAgIHJldHVybiBtX2l0ZW0tPmxvYWQoUVVybDo6ZnJvbVVzZXJJbnB1
dCh1cmwudG9TdHJpbmcoKSkpOwotI2Vsc2UKLSAgICByZXR1cm4gbV9pdGVtLT5sb2FkKHVybCk7
Ci0jZW5kaWYKLX0KLQotUUdyYXBoaWNzV0tWaWV3KiBCcm93c2VyVmlldzo6dmlldygpIGNvbnN0
Ci17Ci0gICAgcmV0dXJuIG1faXRlbTsKLX0KIAogQnJvd3NlcldpbmRvdzo6QnJvd3NlcldpbmRv
dygpCiB7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2lu
ZG93LmggYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmgKaW5kZXgg
OTlkM2U4Mi4uMjI3ZTE0YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQv
QnJvd3NlcldpbmRvdy5oCisrKyBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJX
aW5kb3cuaApAQCAtMjgsMzEgKzI4LDggQEAKIAogI2RlZmluZSBQTEFURk9STSh4KSAwCiAKLSNp
bmNsdWRlICJXS0NvbnRleHQuaCIKLSNpbmNsdWRlICJXS1JldGFpblB0ci5oIgotI2luY2x1ZGUg
InFncmFwaGljc3drdmlldy5oIgorI2luY2x1ZGUgIkJyb3dzZXJWaWV3LmgiCiAjaW5jbHVkZSA8
UXRHdWk+Ci0jaW5jbHVkZSA8UUdyYXBoaWNzU2NlbmU+Ci0jaW5jbHVkZSA8UUdyYXBoaWNzVmll
dz4KLSNpbmNsdWRlIDxzdGRpbnQuaD4KLQotY2xhc3MgQnJvd3NlclZpZXcgOiBwdWJsaWMgUUdy
YXBoaWNzVmlldyB7Ci0gICAgUV9PQkpFQ1QKLQotcHVibGljOgotICAgIEJyb3dzZXJWaWV3KFFX
aWRnZXQqIHBhcmVudCA9IDApOwotICAgIHZpcnR1YWwgfkJyb3dzZXJWaWV3KCkgeyBkZWxldGUg
bV9pdGVtOyB9Ci0KLSAgICB2b2lkIGxvYWQoY29uc3QgUVVybCYpOwotICAgIFFHcmFwaGljc1dL
VmlldyogdmlldygpIGNvbnN0OwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB2b2lkIHJlc2l6
ZUV2ZW50KFFSZXNpemVFdmVudCopOwotCi1wcml2YXRlOgotICAgIFFHcmFwaGljc1dLVmlldyog
bV9pdGVtOwotICAgIFdLUmV0YWluUHRyPFdLQ29udGV4dFJlZj4gbV9jb250ZXh0OwotfTsKIAog
Y2xhc3MgQnJvd3NlcldpbmRvdyA6IHB1YmxpYyBRTWFpbldpbmRvdyB7CiAgICAgUV9PQkpFQ1QK
ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnBybyBi
L1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93c2VyLnBybwppbmRleCAyNzRiOWU1
Li5lNDJjNDlhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJv
d3Nlci5wcm8KKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJv
CkBAIC0zLDkgKzMsMTEgQEAgVEFSR0VUID0gTWluaUJyb3dzZXIKIAogU09VUkNFUyArPSBcCiAg
ICAgbWFpbi5jcHAgXAorICAgIEJyb3dzZXJWaWV3LmNwcCBcCiAgICAgQnJvd3NlcldpbmRvdy5j
cHAgXAogCiBIRUFERVJTICs9IFwKKyAgICBCcm93c2VyVmlldy5oIFwKICAgICBCcm93c2VyV2lu
ZG93LmggXAogCiBDT05GSUcgKz0gdWl0b29scwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66489</attachid>
            <date>2010-09-03 07:01:01 -0700</date>
            <delta_ts>2010-09-08 04:20:41 -0700</delta_ts>
            <desc>proposed patch</desc>
            <filename>mb_refactor.patch</filename>
            <type>text/plain</type>
            <size>9433</size>
            <attacher name="Zoltan Horvath">zoltan</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxv
ZwppbmRleCBlZDIwYzNjLi5kNDNlYzE5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDkt
MDMgIFpvbHRhbiBIb3J2YXRoICA8em9sdGFuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBSZWZhY3RvciBNaW5pQnJvd3Nl
ciAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MTcz
CisKKyAgICAgICAgU3BsaXQgQnJvd3NlcldpbmRvdyBpbnRvIHR3byBzb3VyY2UgZmlsZXMgYW5k
IGhlYWRlcnMuIFJlbW92ZSB1bm5lY2Vzc2FyeSBoZWFkZXIgaW5jbHVkZXMuCisKKyAgICAgICAg
KiBNaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHA6IEFkZGVkLgorICAgICAgICAoY3JlYXRl
TmV3UGFnZSk6CisgICAgICAgIChCcm93c2VyVmlldzo6QnJvd3NlclZpZXcpOgorICAgICAgICAo
QnJvd3NlclZpZXc6OnJlc2l6ZUV2ZW50KToKKyAgICAgICAgKEJyb3dzZXJWaWV3Ojpsb2FkKToK
KyAgICAgICAgKEJyb3dzZXJWaWV3Ojp2aWV3KToKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9xdC9C
cm93c2VyVmlldy5oOiBBZGRlZC4KKyAgICAgICAgKEJyb3dzZXJWaWV3Ojp+QnJvd3NlclZpZXcp
OgorICAgICAgICAqIE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuY3BwOgorICAgICAgICAq
IE1pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaDoKKyAgICAgICAgKiBNaW5pQnJvd3Nlci9x
dC9NaW5pQnJvd3Nlci5wcm86CisKIDIwMTAtMDktMDMgIEdhYm9yIFJhcGNzYW55aSAgPHJnYWJv
ckBpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHAgYi9X
ZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmlldy5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uMzE0NjNhZQotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdFRv
b2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3LmNwcApAQCAtMCwwICsxLDc5IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lk
aWFyeSgtaWVzKQorICogQ29weXJpZ2h0IChDKSAyMDEwIFVuaXZlcnNpdHkgb2YgU3plZ2VkCisg
KgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisg
KiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKKyAqIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAor
ICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiQnJvd3NlclZpZXcu
aCIKKworI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lPgorI2luY2x1ZGUgIldLQ29udGV4dC5oIgor
CitzdGF0aWMgUVdLUGFnZSogY3JlYXRlTmV3UGFnZShRV0tQYWdlKiBwYWdlKQoreworICAgIHJl
dHVybiBwYWdlOworfQorCitCcm93c2VyVmlldzo6QnJvd3NlclZpZXcoUVdpZGdldCogcGFyZW50
KQorICAgIDogUUdyYXBoaWNzVmlldyhwYXJlbnQpCisgICAgLCBtX2l0ZW0oMCkKK3sKKyAgICBt
X2NvbnRleHQuYWRvcHQoV0tDb250ZXh0R2V0U2hhcmVkUHJvY2Vzc0NvbnRleHQoKSk7CisKKyAg
ICBXS1JldGFpblB0cjxXS1BhZ2VOYW1lc3BhY2VSZWY+IHBhZ2VOYW1lc3BhY2UoQWRvcHRXSywg
V0tQYWdlTmFtZXNwYWNlQ3JlYXRlKG1fY29udGV4dC5nZXQoKSkpOworCisgICAgbV9pdGVtID0g
bmV3IFFHcmFwaGljc1dLVmlldyhwYWdlTmFtZXNwYWNlLmdldCgpLCBRR3JhcGhpY3NXS1ZpZXc6
OlNpbXBsZSwgMCk7CisgICAgc2V0U2NlbmUobmV3IFFHcmFwaGljc1NjZW5lKHRoaXMpKTsKKyAg
ICBzY2VuZSgpLT5hZGRJdGVtKG1faXRlbSk7CisKKyAgICBzZXRGcmFtZVNoYXBlKFFGcmFtZTo6
Tm9GcmFtZSk7CisgICAgc2V0SG9yaXpvbnRhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFy
QWx3YXlzT2ZmKTsKKyAgICBzZXRWZXJ0aWNhbFNjcm9sbEJhclBvbGljeShRdDo6U2Nyb2xsQmFy
QWx3YXlzT2ZmKTsKKworICAgIGNvbm5lY3QobV9pdGVtLCBTSUdOQUwodGl0bGVDaGFuZ2VkKFFT
dHJpbmcpKSwgdGhpcywgU0xPVChzZXRXaW5kb3dUaXRsZShRU3RyaW5nKSkpOworICAgIG1faXRl
bS0+cGFnZSgpLT5zZXRDcmVhdGVOZXdQYWdlRnVuY3Rpb24oY3JlYXRlTmV3UGFnZSk7Cit9CisK
K3ZvaWQgQnJvd3NlclZpZXc6OnJlc2l6ZUV2ZW50KFFSZXNpemVFdmVudCogZXZlbnQpCit7Cisg
ICAgUUdyYXBoaWNzVmlldzo6cmVzaXplRXZlbnQoZXZlbnQpOworICAgIFFSZWN0RiByZWN0KFFQ
b2ludCgwLCAwKSwgZXZlbnQtPnNpemUoKSk7CisgICAgbV9pdGVtLT5zZXRHZW9tZXRyeShyZWN0
KTsKKyAgICBzY2VuZSgpLT5zZXRTY2VuZVJlY3QocmVjdCk7Cit9CisKK3ZvaWQgQnJvd3NlclZp
ZXc6OmxvYWQoY29uc3QgUVVybCYgdXJsKQoreworI2lmIFFUX1ZFUlNJT04gPj0gUVRfVkVSU0lP
Tl9DSEVDSyg0LCA2LCAwKQorICAgIHJldHVybiBtX2l0ZW0tPmxvYWQoUVVybDo6ZnJvbVVzZXJJ
bnB1dCh1cmwudG9TdHJpbmcoKSkpOworI2Vsc2UKKyAgICByZXR1cm4gbV9pdGVtLT5sb2FkKHVy
bCk7CisjZW5kaWYKK30KKworUUdyYXBoaWNzV0tWaWV3KiBCcm93c2VyVmlldzo6dmlldygpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1faXRlbTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01p
bmlCcm93c2VyL3F0L0Jyb3dzZXJWaWV3LmggYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyVmlldy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmUyNjU5NTkK
LS0tIC9kZXYvbnVsbAorKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyVmll
dy5oCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAgTm9raWEgQ29y
cG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTAgVW5pdmVyc2l0eSBvZiBTemVnZWQKKyAqCisgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAq
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpZm5kZWYgQnJvd3NlclZpZXdfaAorI2RlZmluZSBCcm93c2VyVmlld19oCisKKyNpbmNs
dWRlIDxRR3JhcGhpY3NWaWV3PgorI2luY2x1ZGUgInFncmFwaGljc3drdmlldy5oIgorI2luY2x1
ZGUgIldLUmV0YWluUHRyLmgiCisKK2NsYXNzIEJyb3dzZXJWaWV3IDogcHVibGljIFFHcmFwaGlj
c1ZpZXcgeworICAgIFFfT0JKRUNUCisKK3B1YmxpYzoKKyAgICBCcm93c2VyVmlldyhRV2lkZ2V0
KiBwYXJlbnQgPSAwKTsKKyAgICB2aXJ0dWFsIH5Ccm93c2VyVmlldygpIHsgZGVsZXRlIG1faXRl
bTsgfQorCisgICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwmKTsKKyAgICBRR3JhcGhpY3NXS1ZpZXcq
IHZpZXcoKSBjb25zdDsKKworcHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCByZXNpemVFdmVu
dChRUmVzaXplRXZlbnQqKTsKKworcHJpdmF0ZToKKyAgICBRR3JhcGhpY3NXS1ZpZXcqIG1faXRl
bTsKKyAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+IG1fY29udGV4dDsKK307CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3NlcldpbmRvdy5j
cHAgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2VyV2luZG93LmNwcAppbmRleCAy
ZTBkY2NkLi42MGZlNjcxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9C
cm93c2VyV2luZG93LmNwcAorKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9Ccm93c2Vy
V2luZG93LmNwcApAQCAtMjgsNTQgKzI4LDYgQEAKIAogI2luY2x1ZGUgIkJyb3dzZXJXaW5kb3cu
aCIKICNpbmNsdWRlICJXS1BhZ2VOYW1lc3BhY2UuaCIKLSNpbmNsdWRlICJxd2twYWdlLmgiCi0K
LXN0YXRpYyBRV0tQYWdlKiBjcmVhdGVOZXdQYWdlKFFXS1BhZ2UqIHBhZ2UpCi17Ci0gICAgcmV0
dXJuIHBhZ2U7Ci19Ci0KLUJyb3dzZXJWaWV3OjpCcm93c2VyVmlldyhRV2lkZ2V0KiBwYXJlbnQp
Ci0gICAgOiBRR3JhcGhpY3NWaWV3KHBhcmVudCkKLSAgICAsIG1faXRlbSgwKQotewotICAgIG1f
Y29udGV4dC5hZG9wdChXS0NvbnRleHRHZXRTaGFyZWRQcm9jZXNzQ29udGV4dCgpKTsKLQotICAg
IFdLUmV0YWluUHRyPFdLUGFnZU5hbWVzcGFjZVJlZj4gcGFnZU5hbWVzcGFjZShBZG9wdFdLLCBX
S1BhZ2VOYW1lc3BhY2VDcmVhdGUobV9jb250ZXh0LmdldCgpKSk7Ci0KLSAgICBtX2l0ZW0gPSBu
ZXcgUUdyYXBoaWNzV0tWaWV3KHBhZ2VOYW1lc3BhY2UuZ2V0KCksIFFHcmFwaGljc1dLVmlldzo6
U2ltcGxlLCAwKTsKLSAgICBzZXRTY2VuZShuZXcgUUdyYXBoaWNzU2NlbmUodGhpcykpOwotICAg
IHNjZW5lKCktPmFkZEl0ZW0obV9pdGVtKTsKLQotICAgIHNldEZyYW1lU2hhcGUoUUZyYW1lOjpO
b0ZyYW1lKTsKLSAgICBzZXRIb3Jpem9udGFsU2Nyb2xsQmFyUG9saWN5KFF0OjpTY3JvbGxCYXJB
bHdheXNPZmYpOwotICAgIHNldFZlcnRpY2FsU2Nyb2xsQmFyUG9saWN5KFF0OjpTY3JvbGxCYXJB
bHdheXNPZmYpOwotCi0gICAgY29ubmVjdChtX2l0ZW0sIFNJR05BTCh0aXRsZUNoYW5nZWQoUVN0
cmluZykpLCB0aGlzLCBTTE9UKHNldFdpbmRvd1RpdGxlKFFTdHJpbmcpKSk7Ci0gICAgbV9pdGVt
LT5wYWdlKCktPnNldENyZWF0ZU5ld1BhZ2VGdW5jdGlvbihjcmVhdGVOZXdQYWdlKTsKLX0KLQot
dm9pZCBCcm93c2VyVmlldzo6cmVzaXplRXZlbnQoUVJlc2l6ZUV2ZW50KiBldmVudCkKLXsKLSAg
ICBRR3JhcGhpY3NWaWV3OjpyZXNpemVFdmVudChldmVudCk7Ci0gICAgUVJlY3RGIHJlY3QoUVBv
aW50KDAsIDApLCBldmVudC0+c2l6ZSgpKTsKLSAgICBtX2l0ZW0tPnNldEdlb21ldHJ5KHJlY3Qp
OwotICAgIHNjZW5lKCktPnNldFNjZW5lUmVjdChyZWN0KTsKLX0KLQotdm9pZCBCcm93c2VyVmll
dzo6bG9hZChjb25zdCBRVXJsJiB1cmwpCi17Ci0jaWYgUVRfVkVSU0lPTiA+PSBRVF9WRVJTSU9O
X0NIRUNLKDQsIDYsIDApCi0gICAgcmV0dXJuIG1faXRlbS0+bG9hZChRVXJsOjpmcm9tVXNlcklu
cHV0KHVybC50b1N0cmluZygpKSk7Ci0jZWxzZQotICAgIHJldHVybiBtX2l0ZW0tPmxvYWQodXJs
KTsKLSNlbmRpZgotfQotCi1RR3JhcGhpY3NXS1ZpZXcqIEJyb3dzZXJWaWV3Ojp2aWV3KCkgY29u
c3QKLXsKLSAgICByZXR1cm4gbV9pdGVtOwotfQogCiBCcm93c2VyV2luZG93OjpCcm93c2VyV2lu
ZG93KCkKIHsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJX
aW5kb3cuaCBiL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L0Jyb3dzZXJXaW5kb3cuaAppbmRl
eCA5OWQzZTgyLi40N2U1NWI1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9x
dC9Ccm93c2VyV2luZG93LmgKKysrIGIvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvQnJvd3Nl
cldpbmRvdy5oCkBAIC0yNiwzMyArMjYsMTMgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAorI2lm
bmRlZiBCcm93c2VyV2luZG93X2gKKyNkZWZpbmUgQnJvd3NlcldpbmRvd19oCisKICNkZWZpbmUg
UExBVEZPUk0oeCkgMAogCi0jaW5jbHVkZSAiV0tDb250ZXh0LmgiCi0jaW5jbHVkZSAiV0tSZXRh
aW5QdHIuaCIKLSNpbmNsdWRlICJxZ3JhcGhpY3N3a3ZpZXcuaCIKKyNpbmNsdWRlICJCcm93c2Vy
Vmlldy5oIgogI2luY2x1ZGUgPFF0R3VpPgotI2luY2x1ZGUgPFFHcmFwaGljc1NjZW5lPgotI2lu
Y2x1ZGUgPFFHcmFwaGljc1ZpZXc+Ci0jaW5jbHVkZSA8c3RkaW50Lmg+Ci0KLWNsYXNzIEJyb3dz
ZXJWaWV3IDogcHVibGljIFFHcmFwaGljc1ZpZXcgewotICAgIFFfT0JKRUNUCi0KLXB1YmxpYzoK
LSAgICBCcm93c2VyVmlldyhRV2lkZ2V0KiBwYXJlbnQgPSAwKTsKLSAgICB2aXJ0dWFsIH5Ccm93
c2VyVmlldygpIHsgZGVsZXRlIG1faXRlbTsgfQotCi0gICAgdm9pZCBsb2FkKGNvbnN0IFFVcmwm
KTsKLSAgICBRR3JhcGhpY3NXS1ZpZXcqIHZpZXcoKSBjb25zdDsKLQotcHJvdGVjdGVkOgotICAg
IHZpcnR1YWwgdm9pZCByZXNpemVFdmVudChRUmVzaXplRXZlbnQqKTsKLQotcHJpdmF0ZToKLSAg
ICBRR3JhcGhpY3NXS1ZpZXcqIG1faXRlbTsKLSAgICBXS1JldGFpblB0cjxXS0NvbnRleHRSZWY+
IG1fY29udGV4dDsKLX07CiAKIGNsYXNzIEJyb3dzZXJXaW5kb3cgOiBwdWJsaWMgUU1haW5XaW5k
b3cgewogICAgIFFfT0JKRUNUCkBAIC03NiwzICs1Niw1IEBAIHByaXZhdGU6CiAgICAgUU1lbnVC
YXIqIG1fbWVudTsKICAgICBRTGluZUVkaXQqIG1fYWRkcmVzc0JhcjsKIH07CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvIGIv
V2ViS2l0VG9vbHMvTWluaUJyb3dzZXIvcXQvTWluaUJyb3dzZXIucHJvCmluZGV4IDI3NGI5ZTUu
LmU0MmM0OWEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL01pbmlCcm93c2VyL3F0L01pbmlCcm93
c2VyLnBybworKysgYi9XZWJLaXRUb29scy9NaW5pQnJvd3Nlci9xdC9NaW5pQnJvd3Nlci5wcm8K
QEAgLTMsOSArMywxMSBAQCBUQVJHRVQgPSBNaW5pQnJvd3NlcgogCiBTT1VSQ0VTICs9IFwKICAg
ICBtYWluLmNwcCBcCisgICAgQnJvd3NlclZpZXcuY3BwIFwKICAgICBCcm93c2VyV2luZG93LmNw
cCBcCiAKIEhFQURFUlMgKz0gXAorICAgIEJyb3dzZXJWaWV3LmggXAogICAgIEJyb3dzZXJXaW5k
b3cuaCBcCiAKIENPTkZJRyArPSB1aXRvb2xzCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>