<?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>60200</bug_id>
          
          <creation_ts>2011-05-04 12:28:33 -0700</creation_ts>
          <short_desc>Make more member functions in EventHandler private</short_desc>
          <delta_ts>2011-05-04 20:07:20 -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>UI Events</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>56410</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>398176</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 12:28:33 -0700</bug_when>
    <thetext>Minimize the number of public member functions in EventHandler.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398186</commentid>
    <comment_count>1</comment_count>
      <attachid>92302</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 12:41:24 -0700</bug_when>
    <thetext>Created attachment 92302
cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398188</commentid>
    <comment_count>2</comment_count>
      <attachid>92302</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-04 12:42:14 -0700</bug_when>
    <thetext>Comment on attachment 92302
cleanup

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

&gt; Source/WebCore/page/EventHandler.cpp:777
&gt; -                mainFrame-&gt;eventHandler()-&gt;setPanScrollInProgress(true);
&gt; +                mainFrame-&gt;eventHandler()-&gt;m_panScrollInProgress = true;

This seems strictly worse.  Can&apos;t we just make that method private?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398191</commentid>
    <comment_count>3</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-05-04 12:50:40 -0700</bug_when>
    <thetext>Attachment 92302 did not build on qt:
Build output: http://queues.webkit.org/results/8557626</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398213</commentid>
    <comment_count>4</comment_count>
      <attachid>92302</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 13:35:34 -0700</bug_when>
    <thetext>Comment on attachment 92302
cleanup

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

&gt;&gt; Source/WebCore/page/EventHandler.cpp:777
&gt;&gt; +                mainFrame-&gt;eventHandler()-&gt;m_panScrollInProgress = true;
&gt; 
&gt; This seems strictly worse.  Can&apos;t we just make that method private?

I could but I don&apos;t think having a setter/getter for a private variable that&apos;s only accessed within the class is useful since member functions can access the variable directly without using the setter/getter; i.e. it doesn&apos;t enforce or hide anything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398216</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2011-05-04 13:38:30 -0700</bug_when>
    <thetext>Attachment 92302 did not build on win:
Build output: http://queues.webkit.org/results/8554631</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398219</commentid>
    <comment_count>6</comment_count>
      <attachid>92302</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 13:41:15 -0700</bug_when>
    <thetext>Comment on attachment 92302
cleanup

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

&gt;&gt;&gt; Source/WebCore/page/EventHandler.cpp:777
&gt;&gt;&gt; +                mainFrame-&gt;eventHandler()-&gt;m_panScrollInProgress = true;
&gt;&gt; 
&gt;&gt; This seems strictly worse.  Can&apos;t we just make that method private?
&gt; 
&gt; I could but I don&apos;t think having a setter/getter for a private variable that&apos;s only accessed within the class is useful since member functions can access the variable directly without using the setter/getter; i.e. it doesn&apos;t enforce or hide anything.

For example, EventHandler::startPanScrolling directly sets the value of m_panScrollInProgress without going through setPanScrollInProgress and EventHandler::stopAutoscrollTimer checks the value of m_panScrollInProgress directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398222</commentid>
    <comment_count>7</comment_count>
      <attachid>92313</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 13:48:11 -0700</bug_when>
    <thetext>Created attachment 92313
Fixed qt and win builds</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398223</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-04 13:49:13 -0700</bug_when>
    <thetext>Attachment 92302 did not build on chromium:
Build output: http://queues.webkit.org/results/8557644</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398237</commentid>
    <comment_count>9</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-04 14:02:42 -0700</bug_when>
    <thetext>I guess I long ago bought into the accessors-are-strictly-better-than-direct-access logic.  I like being able to set breakpoints in accessors (although that&apos;s not always possible in inline accessors).

I don&apos;t think this really matters here or there.  but when I find myself wanting to write foo-&gt;m_bar and i&apos;m not in a copy constructor, I stop and write an accessor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398241</commentid>
    <comment_count>10</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2011-05-04 14:07:28 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; I guess I long ago bought into the accessors-are-strictly-better-than-direct-access logic.  I like being able to set breakpoints in accessors (although that&apos;s not always possible in inline accessors).
&gt; 
&gt; I don&apos;t think this really matters here or there.  but when I find myself wanting to write foo-&gt;m_bar and i&apos;m not in a copy constructor, I stop and write an accessor.

I think what this code is telling me is that m_panScrollInProgress is a page-level concept and not per-frame concept.  The situation should improve if we make EventHandler a page-level class and separate per-frame states as Sam suggested.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398252</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-05-04 14:19:50 -0700</bug_when>
    <thetext>Attachment 92302 did not build on mac:
Build output: http://queues.webkit.org/results/8571152</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398261</commentid>
    <comment_count>12</comment_count>
      <attachid>92313</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-05-04 14:34:16 -0700</bug_when>
    <thetext>Comment on attachment 92313
Fixed qt and win builds

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398268</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-04 14:45:33 -0700</bug_when>
    <thetext>We generally don&apos;t use accessor functions from within the class - there were even some patches landed solely to replace function calls with direct variable access.

I think it&apos;s nice to immediately see that there is no side effect from the given line of code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398506</commentid>
    <comment_count>14</comment_count>
      <attachid>92313</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-04 20:07:14 -0700</bug_when>
    <thetext>Comment on attachment 92313
Fixed qt and win builds

Clearing flags on attachment: 92313

Committed r85826: &lt;http://trac.webkit.org/changeset/85826&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398507</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-05-04 20:07:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92302</attachid>
            <date>2011-05-04 12:41:24 -0700</date>
            <delta_ts>2011-05-04 13:48:04 -0700</delta_ts>
            <desc>cleanup</desc>
            <filename>bug-60200-20110504124122.patch</filename>
            <type>text/plain</type>
            <size>10361</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDUtMDQgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBtb3JlIG1lbWJlciBmdW5jdGlvbnMgaW4gRXZlbnRIYW5k
bGVyIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwMjAwCisKKyAgICAgICAgUmVkdWNlZCB0aGUgbnVtYmVyIG9mIHB1YmxpYyBtZW1iZXIg
ZnVuY3Rpb25zIGluIEV2ZW50SGFuZGxlci4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlQXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6c3RvcEF1dG9zY3JvbGxUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
a2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudEludmVydHNU
YWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0KToKKwogMjAxMS0wNS0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDg1Njk3KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzMiwxNCArMjMyLDEyIEBAIF9fWk43V2Vi
Q29yZTEyRXZlbnRIYW5kbGVyMTJtb3VzZURyYWdnZWQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5k
bGVyMTRjdXJyZW50TlNFdmVudEV2CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE0c2Nyb2xs
T3ZlcmZsb3dFTlNfMTVTY3JvbGxEaXJlY3Rpb25FTlNfMTdTY3JvbGxHcmFudWxhcml0eUVQTlNf
NE5vZGVFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE1aGFuZGxlQWNjZXNzS2V5RVJLTlNf
MjFQbGF0Zm9ybUtleWJvYXJkRXZlbnRFCi1fX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE1c2Vu
ZFNjcm9sbEV2ZW50RXYKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5kbGVXaGVlbEV2
ZW50RVJOU18xOFBsYXRmb3JtV2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVy
MTdzY3JvbGxSZWN1cnNpdmVseUVOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdyYW51
bGFyaXR5RVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBoaXRUZXN0UmVz
dWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0VGVzdFNjcm9sbGJhcnNFalJLTlNf
N0ludFNpemVFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIxaGFuZGxlTW91c2VQcmVzc0V2
ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxl
cjIzaGFuZGxlTW91c2VSZWxlYXNlRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9f
Wk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjRsb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHlFTlNfMjJT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uRU5TXzE3U2Nyb2xsR3JhbnVsYXJpdHlFUE5TXzROb2RlRQot
X19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyN2NhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZEV2
CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjdtb3VzZVVwRVA3TlNFdmVudAogX19aTjdXZWJD
b3JlMTJFdmVudEhhbmRsZXI4a2V5RXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50
SGFuZGxlcjhrZXlFdmVudEVSS05TXzIxUGxhdGZvcm1LZXlib2FyZEV2ZW50RQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gODU2OTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3NCw3ICs3
NzQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxlQXV0b3Njcm9sbChSZW5kCiAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgICAgICBGcmFtZSog
bWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgICAgICAgICBpZiAobV9mcmFtZSAh
PSBtYWluRnJhbWUpCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+
c2V0UGFuU2Nyb2xsSW5Qcm9ncmVzcyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtYWluRnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5tX3BhblNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCkBAIC03OTksNyArNzk5LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmF1
dG9zY3JvbGxUaW1lckZpcmVkKAogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIHdlIHZlcmlmeSB0
aGF0IHRoZSBtYWluIGZyYW1lIGhhc24ndCByZWNlaXZlZCB0aGUgb3JkZXIgdG8gc3RvcCB0aGUg
cGFuU2Nyb2xsCiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoIXBhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+cGFuU2Ny
b2xsSW5Qcm9ncmVzcygpKSB7CisgICAgICAgICAgICBpZiAoIXBhZ2UtPm1haW5GcmFtZSgpLT5l
dmVudEhhbmRsZXIoKS0+bV9wYW5TY3JvbGxJblByb2dyZXNzKSB7CiAgICAgICAgICAgICAgICAg
c3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KQEAgLTEwMDQsNyArMTAwNCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzdG9wQXV0b3Nj
cm9sbFRpbWVyKGIKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAg
ICAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgICAgIGlmICht
X2ZyYW1lICE9IG1haW5GcmFtZSkKLSAgICAgICAgICAgIG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCktPnNldFBhblNjcm9sbEluUHJvZ3Jlc3MoZmFsc2UpOworICAgICAgICAgICAgbWFpbkZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+bV9wYW5TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQog
CiAgICAgbV9hdXRvc2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwpAQCAtMTM5Myw3ICsxMzkzLDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogI2lmIEVOQUJMRShQ
QU5fU0NST0xMSU5HKQogICAgIC8vIFdlIHN0b3JlIHdoZXRoZXIgcGFuIHNjcm9sbGluZyBpcyBp
biBwcm9ncmVzcyBiZWZvcmUgY2FsbGluZyBzdG9wQXV0b3Njcm9sbFRpbWVyKCkKICAgICAvLyBi
ZWNhdXNlIGl0IHdpbGwgc2V0IG1fcGFuU2Nyb2xsSW5Qcm9ncmVzcyB0byBmYWxzZSBvbiByZXR1
cm4uCi0gICAgYm9vbCBpc1BhblNjcm9sbEluUHJvZ3Jlc3MgPSBtX2ZyYW1lLT5wYWdlKCkgJiYg
bV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnBhblNjcm9sbElu
UHJvZ3Jlc3MoKTsKKyAgICBib29sIGlzUGFuU2Nyb2xsSW5Qcm9ncmVzcyA9IG1fZnJhbWUtPnBh
Z2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+bV9w
YW5TY3JvbGxJblByb2dyZXNzOwogICAgIGlmIChpc1BhblNjcm9sbEluUHJvZ3Jlc3MgfHwgbV9h
dXRvc2Nyb2xsSW5Qcm9ncmVzcykKICAgICAgICAgc3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAg
IGlmIChpc1BhblNjcm9sbEluUHJvZ3Jlc3MpIHsKQEAgLTE2MjYsNyArMTYyNiw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCgKICAgICAgICAgaWYgKHNjcm9sbGJh
ciAmJiAhbV9tb3VzZVByZXNzZWQpCiAgICAgICAgICAgICBzY3JvbGxiYXItPm1vdXNlTW92ZWQo
bW91c2VFdmVudCk7IC8vIEhhbmRsZSBob3ZlciBlZmZlY3RzIG9uIHBsYXRmb3JtcyB0aGF0IHN1
cHBvcnQgdmlzdWFsIGZlZWRiYWNrIG9uIHNjcm9sbGJhciBob3ZlcmluZy4KICAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgICAgIGlmICgoIW1fcmVz
aXplTGF5ZXIgfHwgIW1fcmVzaXplTGF5ZXItPmluUmVzaXplTW9kZSgpKSAmJiAhcGFnZS0+bWFp
bkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsKKyAgICAg
ICAgICAgIGlmICgoIW1fcmVzaXplTGF5ZXIgfHwgIW1fcmVzaXplTGF5ZXItPmluUmVzaXplTW9k
ZSgpKSAmJiAhcGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5tX3BhblNjcm9sbElu
UHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAvLyBQbHVnaW5zIHNldCBjdXJzb3Igb24gdGhl
aXIgb3duLiBUaGUgb25seSBjYXNlIFdlYktpdCBpbnRlcnZlbmVzIGlzIHJlc2V0dGluZyBjdXJz
b3IgdG8gYXJyb3cgb24gbW91c2UgZW50ZXIsCiAgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0
aGUgcGFydGljdWxhciBwbHVnaW4gZG9lc24ndCBtYW5pcHVsYXRlIGN1cnNvciBhdCBhbGwuIFRo
dXMsICBldmVuIGEgQ1NTIGN1cnNvciBzZXQgb24gYm9keSBoYXMgbm8KICAgICAgICAgICAgICAg
ICAvLyBlZmZlY3Qgb24gcGx1Z2lucyAod2hpY2ggbWF0Y2hlcyBGaXJlZm94KS4KQEAgLTI0Mjgs
NyArMjQyOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm8KIAog
I2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PnBhblNjcm9sbEluUHJvZ3Jlc3MoKSB8fCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKSB7CisgICAg
ICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPm1fcGFuU2Nyb2xsSW5Q
cm9ncmVzcyB8fCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKSB7CiAgICAgICAgICAgICAvLyBJZiBh
IGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBhdXRvc2Nyb2xsL3BhblNjcm9sbCBpcyBpbiBwcm9n
cmVzcyB0aGVuIHdlIHdhbnQgdG8gc3RvcAogICAgICAgICAgICAgaWYgKGluaXRpYWxLZXlFdmVu
dC50eXBlKCkgPT0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpLZXlEb3duIHx8IGluaXRpYWxLZXlF
dmVudC50eXBlKCkgPT0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpSYXdLZXlEb3duKSAKICAgICAg
ICAgICAgICAgICBzdG9wQXV0b3Njcm9sbFRpbWVyKCk7CkBAIC0yODQxLDcgKzI4NDEsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLCiAgICAgICAgICYmIGV2ZW50
LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSI7ICAgIAogfQogCi1zdGF0aWMgYm9vbCBldmVu
dEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCogZXZlbnQp
Citib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVz
dWx0KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEhBSUtVKSB8fCBQTEFURk9STShFRkwpCiAgICAgcmV0dXJuIEV2
ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgJKHJldmlzaW9uIDg1Njk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDggKzEwNiw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1vdXNlUHJlc3NOb2RlKFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAg
dm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJPYmplY3QqKTsKLSAgICBib29sIHBhblNjcm9s
bEluUHJvZ3Jlc3MoKSB7IHJldHVybiBtX3BhblNjcm9sbEluUHJvZ3Jlc3M7IH0KLSAgICB2b2lk
IHNldFBhblNjcm9sbEluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNzKSB7IG1fcGFuU2Nyb2xsSW5Q
cm9ncmVzcyA9IGluUHJvZ3Jlc3M7IH0KIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihi
b29sIHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsKICAgICBSZW5kZXJPYmplY3Qq
IGF1dG9zY3JvbGxSZW5kZXJlcigpIGNvbnN0OwpAQCAtMTQwLDE0ICsxMzgsMTAgQEAgcHVibGlj
OgogCiAgICAgSW50UG9pbnQgY3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdDsKIAotICAgIHZv
aWQgc2V0SWdub3JlV2hlZWxFdmVudHMoYm9vbCk7Ci0KICAgICBzdGF0aWMgRnJhbWUqIHN1YmZy
YW1lRm9yVGFyZ2V0Tm9kZShOb2RlKik7CiAgICAgc3RhdGljIEZyYW1lKiBzdWJmcmFtZUZvckhp
dFRlc3RSZXN1bHQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogCiAgICAg
Ym9vbCBzY3JvbGxPdmVyZmxvdyhTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBO
b2RlKiBzdGFydGluZ05vZGUgPSAwKTsKLSAgICBib29sIGxvZ2ljYWxTY3JvbGxPdmVyZmxvdyhT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdO
b2RlID0gMCk7Ci0KICAgICBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVjdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IDApOwogICAgIGJvb2wgbG9n
aWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSAwKTsKIApAQCAtMTU1LDE3ICsxNDksOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzaG91bGREcmFnQXV0b05vZGUoTm9kZSosIGNvbnN0IEludFBvaW50
JikgY29uc3Q7IC8vIC13ZWJraXQtdXNlci1kcmFnID09IGF1dG8KICNlbmRpZgogCi0gICAgYm9v
bCBzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RSZXN1
bHQmKSBjb25zdDsKLQogICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCopIGNvbnN0
OwogICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsK
IAotICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSBjb25zdCB7IHJldHVybiBtX21v
dXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9Ci0KLSAgICBib29sIG1vdXNlTW92ZWQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50Jik7Ci0KLSAgICB2b2lkIGxvc3RNb3VzZUNhcHR1cmUoKTsKLQogICAg
IGJvb2wgaGFuZGxlTW91c2VQcmVzc0V2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwog
ICAgIGJvb2wgaGFuZGxlTW91c2VNb3ZlRXZlbnQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50Jiwg
SGl0VGVzdFJlc3VsdCogaG92ZXJlZE5vZGUgPSAwKTsKICAgICBib29sIGhhbmRsZU1vdXNlUmVs
ZWFzZUV2ZW50KGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYpOwpAQCAtMTc4LDE0ICsxNjQsMTIg
QEAgcHVibGljOgogCiAjaWYgRU5BQkxFKENPTlRFWFRfTUVOVVMpCiAgICAgYm9vbCBzZW5kQ29u
dGV4dE1lbnVFdmVudChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmKTsKLSAgICBib29sIHNlbmRD
b250ZXh0TWVudUV2ZW50Rm9yS2V5KCk7CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0TW91c2VEb3du
TWF5U3RhcnRBdXRvc2Nyb2xsKCkgeyBtX21vdXNlRG93bk1heVN0YXJ0QXV0b3Njcm9sbCA9IHRy
dWU7IH0KIAogICAgIGJvb2wgbmVlZHNLZXlib2FyZEV2ZW50RGlzYW1iaWd1YXRpb25RdWlya3Mo
KSBjb25zdDsKIAotICAgIHN0YXRpYyB1bnNpZ25lZCBhY2Nlc3NLZXlNb2RpZmllcnMoKTsKICAg
ICBib29sIGhhbmRsZUFjY2Vzc0tleShjb25zdCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQmKTsKICAg
ICBib29sIGtleUV2ZW50KGNvbnN0IFBsYXRmb3JtS2V5Ym9hcmRFdmVudCYpOwogICAgIHZvaWQg
ZGVmYXVsdEtleWJvYXJkRXZlbnRIYW5kbGVyKEtleWJvYXJkRXZlbnQqKTsKQEAgLTIwMSwxMSAr
MTg1LDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9jdXNEb2N1bWVudFZpZXcoKTsKIAotICAg
IHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7Ci0gICAgCi0gICAgdm9pZCBzZW5k
UmVzaXplRXZlbnQoKTsKLSAgICB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOworICAgIHZvaWQgY2Fw
c0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7IC8vIE9ubHkgY2FsbGVkIGJ5IFNlbGVjdGlvbkNv
bnRyb2xsZXIKICAgICAKKyAgICB2b2lkIHNlbmRSZXNpemVFdmVudCgpOyAvLyBPbmx5IGNhbGxl
ZCBpbiBGcmFtZVZpZXcKKyAgICB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOyAvLyBEaXR0bworCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogICAgIHZvaWQgbW91c2VEb3du
KE5TRXZlbnQgKik7CiAgICAgdm9pZCBtb3VzZURyYWdnZWQoTlNFdmVudCAqKTsKQEAgLTIyNSw4
ICsyMDksNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFBsYXRm
b3JtVG91Y2hFdmVudCYpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgYm9vbCBpc0tleWJvYXJkT3B0
aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLQogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJBR19TVVBQ
T1JUKQogICAgIGVudW0gRHJhZ0FuZERyb3BIYW5kbGVUeXBlIHsKQEAgLTI5Miw2ICsyNzQsMjAg
QEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbFRpbWVyKCk7CiAgICAgdm9pZCBz
ZXRBdXRvc2Nyb2xsUmVuZGVyZXIoUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBhdXRvc2Nyb2xs
VGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7CisgICAgYm9vbCBsb2dpY2FsU2Nyb2xs
T3ZlcmZsb3coU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUq
IHN0YXJ0aW5nTm9kZSA9IDApOworICAgIAorICAgIGJvb2wgc2hvdWxkVHVyblZlcnRpY2FsVGlj
a3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JikgY29uc3Q7CisgICAgYm9vbCBt
b3VzZURvd25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VEb3duTWF5U3Rh
cnRTZWxlY3Q7IH0KKyAgICBib29sIG1vdXNlTW92ZWQoY29uc3QgUGxhdGZvcm1Nb3VzZUV2ZW50
Jik7CisgICAgdm9pZCBsb3N0TW91c2VDYXB0dXJlKCk7CisKKyNpZiBFTkFCTEUoQ09OVEVYVF9N
RU5VUykKKyAgICBib29sIHNlbmRDb250ZXh0TWVudUV2ZW50Rm9yS2V5KCk7CisjZW5kaWYKKwor
ICAgIHN0YXRpYyB1bnNpZ25lZCBhY2Nlc3NLZXlNb2RpZmllcnMoKTsKKyAgICBzdGF0aWMgYm9v
bCBpc0tleWJvYXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKKyAgICBzdGF0aWMgYm9vbCBl
dmVudEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCopOwog
CiAgICAgdm9pZCBmYWtlTW91c2VNb3ZlRXZlbnRUaW1lckZpcmVkKFRpbWVyPEV2ZW50SGFuZGxl
cj4qKTsKICAgICB2b2lkIGNhbmNlbEZha2VNb3VzZU1vdmVFdmVudCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92313</attachid>
            <date>2011-05-04 13:48:11 -0700</date>
            <delta_ts>2011-05-04 20:07:13 -0700</delta_ts>
            <desc>Fixed qt and win builds</desc>
            <filename>bug-60200-20110504134810.patch</filename>
            <type>text/plain</type>
            <size>9427</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDg1Nzc4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDUtMDQgIFJ5b3N1a2Ug
Tml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgTWFrZSBtb3JlIG1lbWJlciBmdW5jdGlvbnMgaW4gRXZlbnRIYW5k
bGVyIHByaXZhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTYwMjAwCisKKyAgICAgICAgUmVkdWNlZCB0aGUgbnVtYmVyIG9mIHB1YmxpYyBtZW1iZXIg
ZnVuY3Rpb25zIGluIEV2ZW50SGFuZGxlci4KKworICAgICAgICAqIFdlYkNvcmUuZXhwLmluOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGFuZGxlQXV0b3Njcm9sbCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRs
ZXI6OmF1dG9zY3JvbGxUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxl
cjo6c3RvcEF1dG9zY3JvbGxUaW1lcik6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlUHJlc3NFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6
OmhhbmRsZU1vdXNlTW92ZUV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50SGFuZGxlcjo6
a2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpldmVudEludmVydHNU
YWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQpOgorICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVy
Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlRG93bk1heVN0YXJ0U2Vs
ZWN0KToKKwogMjAxMS0wNS0wNCAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgR3VzdGF2byBOb3JvbmhhIFNpbHZhLgpJbmRleDog
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDg1Njk3KQorKysgU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAgLTIzMiwxNCArMjMyLDEyIEBAIF9fWk43V2Vi
Q29yZTEyRXZlbnRIYW5kbGVyMTJtb3VzZURyYWdnZWQKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5k
bGVyMTRjdXJyZW50TlNFdmVudEV2CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE0c2Nyb2xs
T3ZlcmZsb3dFTlNfMTVTY3JvbGxEaXJlY3Rpb25FTlNfMTdTY3JvbGxHcmFudWxhcml0eUVQTlNf
NE5vZGVFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE1aGFuZGxlQWNjZXNzS2V5RVJLTlNf
MjFQbGF0Zm9ybUtleWJvYXJkRXZlbnRFCi1fX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjE1c2Vu
ZFNjcm9sbEV2ZW50RXYKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMTZoYW5kbGVXaGVlbEV2
ZW50RVJOU18xOFBsYXRmb3JtV2hlZWxFdmVudEUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVy
MTdzY3JvbGxSZWN1cnNpdmVseUVOU18xNVNjcm9sbERpcmVjdGlvbkVOU18xN1Njcm9sbEdyYW51
bGFyaXR5RVBOU180Tm9kZUUKIF9fWk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjBoaXRUZXN0UmVz
dWx0QXRQb2ludEVSS05TXzhJbnRQb2ludEViYk5TXzE3SGl0VGVzdFNjcm9sbGJhcnNFalJLTlNf
N0ludFNpemVFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjIxaGFuZGxlTW91c2VQcmVzc0V2
ZW50RVJLTlNfMThQbGF0Zm9ybU1vdXNlRXZlbnRFCiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxl
cjIzaGFuZGxlTW91c2VSZWxlYXNlRXZlbnRFUktOU18xOFBsYXRmb3JtTW91c2VFdmVudEUKIF9f
Wk43V2ViQ29yZTEyRXZlbnRIYW5kbGVyMjRsb2dpY2FsU2Nyb2xsUmVjdXJzaXZlbHlFTlNfMjJT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uRU5TXzE3U2Nyb2xsR3JhbnVsYXJpdHlFUE5TXzROb2RlRQot
X19aTjdXZWJDb3JlMTJFdmVudEhhbmRsZXIyN2NhcHNMb2NrU3RhdGVNYXlIYXZlQ2hhbmdlZEV2
CiBfX1pON1dlYkNvcmUxMkV2ZW50SGFuZGxlcjdtb3VzZVVwRVA3TlNFdmVudAogX19aTjdXZWJD
b3JlMTJFdmVudEhhbmRsZXI4a2V5RXZlbnRFUDdOU0V2ZW50CiBfX1pON1dlYkNvcmUxMkV2ZW50
SGFuZGxlcjhrZXlFdmVudEVSS05TXzIxUGxhdGZvcm1LZXlib2FyZEV2ZW50RQpJbmRleDogU291
cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gODU2OTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3NCw3ICs3
NzQsNyBAQCB2b2lkIEV2ZW50SGFuZGxlcjo6aGFuZGxlQXV0b3Njcm9sbChSZW5kCiAgICAgICAg
IGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7CiAgICAgICAgICAgICBGcmFtZSog
bWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgICAgICAgICBpZiAobV9mcmFtZSAh
PSBtYWluRnJhbWUpCi0gICAgICAgICAgICAgICAgbWFpbkZyYW1lLT5ldmVudEhhbmRsZXIoKS0+
c2V0UGFuU2Nyb2xsSW5Qcm9ncmVzcyh0cnVlKTsKKyAgICAgICAgICAgICAgICBtYWluRnJhbWUt
PmV2ZW50SGFuZGxlcigpLT5tX3BhblNjcm9sbEluUHJvZ3Jlc3MgPSB0cnVlOwogICAgICAgICB9
CiAgICAgfQogI2VuZGlmCkBAIC03OTksNyArNzk5LDcgQEAgdm9pZCBFdmVudEhhbmRsZXI6OmF1
dG9zY3JvbGxUaW1lckZpcmVkKAogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIHdlIHZlcmlmeSB0
aGF0IHRoZSBtYWluIGZyYW1lIGhhc24ndCByZWNlaXZlZCB0aGUgb3JkZXIgdG8gc3RvcCB0aGUg
cGFuU2Nyb2xsCiAgICAgICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+cGFnZSgpKSB7Ci0g
ICAgICAgICAgICBpZiAoIXBhZ2UtPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+cGFuU2Ny
b2xsSW5Qcm9ncmVzcygpKSB7CisgICAgICAgICAgICBpZiAoIXBhZ2UtPm1haW5GcmFtZSgpLT5l
dmVudEhhbmRsZXIoKS0+bV9wYW5TY3JvbGxJblByb2dyZXNzKSB7CiAgICAgICAgICAgICAgICAg
c3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
ICAgIH0KQEAgLTEwMDQsNyArMTAwNCw3IEBAIHZvaWQgRXZlbnRIYW5kbGVyOjpzdG9wQXV0b3Nj
cm9sbFRpbWVyKGIKICAgICBpZiAoUGFnZSogcGFnZSA9IG1fZnJhbWUtPnBhZ2UoKSkgewogICAg
ICAgICBGcmFtZSogbWFpbkZyYW1lID0gcGFnZS0+bWFpbkZyYW1lKCk7CiAgICAgICAgIGlmICht
X2ZyYW1lICE9IG1haW5GcmFtZSkKLSAgICAgICAgICAgIG1haW5GcmFtZS0+ZXZlbnRIYW5kbGVy
KCktPnNldFBhblNjcm9sbEluUHJvZ3Jlc3MoZmFsc2UpOworICAgICAgICAgICAgbWFpbkZyYW1l
LT5ldmVudEhhbmRsZXIoKS0+bV9wYW5TY3JvbGxJblByb2dyZXNzID0gZmFsc2U7CiAgICAgfQog
CiAgICAgbV9hdXRvc2Nyb2xsSW5Qcm9ncmVzcyA9IGZhbHNlOwpAQCAtMTM5Myw3ICsxMzkzLDcg
QEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZU1vdXNlUHJlc3NFdmVudAogI2lmIEVOQUJMRShQ
QU5fU0NST0xMSU5HKQogICAgIC8vIFdlIHN0b3JlIHdoZXRoZXIgcGFuIHNjcm9sbGluZyBpcyBp
biBwcm9ncmVzcyBiZWZvcmUgY2FsbGluZyBzdG9wQXV0b3Njcm9sbFRpbWVyKCkKICAgICAvLyBi
ZWNhdXNlIGl0IHdpbGwgc2V0IG1fcGFuU2Nyb2xsSW5Qcm9ncmVzcyB0byBmYWxzZSBvbiByZXR1
cm4uCi0gICAgYm9vbCBpc1BhblNjcm9sbEluUHJvZ3Jlc3MgPSBtX2ZyYW1lLT5wYWdlKCkgJiYg
bV9mcmFtZS0+cGFnZSgpLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnBhblNjcm9sbElu
UHJvZ3Jlc3MoKTsKKyAgICBib29sIGlzUGFuU2Nyb2xsSW5Qcm9ncmVzcyA9IG1fZnJhbWUtPnBh
Z2UoKSAmJiBtX2ZyYW1lLT5wYWdlKCktPm1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+bV9w
YW5TY3JvbGxJblByb2dyZXNzOwogICAgIGlmIChpc1BhblNjcm9sbEluUHJvZ3Jlc3MgfHwgbV9h
dXRvc2Nyb2xsSW5Qcm9ncmVzcykKICAgICAgICAgc3RvcEF1dG9zY3JvbGxUaW1lcigpOwogICAg
IGlmIChpc1BhblNjcm9sbEluUHJvZ3Jlc3MpIHsKQEAgLTE2MjYsNyArMTYyNiw3IEBAIGJvb2wg
RXZlbnRIYW5kbGVyOjpoYW5kbGVNb3VzZU1vdmVFdmVudCgKICAgICAgICAgaWYgKHNjcm9sbGJh
ciAmJiAhbV9tb3VzZVByZXNzZWQpCiAgICAgICAgICAgICBzY3JvbGxiYXItPm1vdXNlTW92ZWQo
bW91c2VFdmVudCk7IC8vIEhhbmRsZSBob3ZlciBlZmZlY3RzIG9uIHBsYXRmb3JtcyB0aGF0IHN1
cHBvcnQgdmlzdWFsIGZlZWRiYWNrIG9uIHNjcm9sbGJhciBob3ZlcmluZy4KICAgICAgICAgaWYg
KFBhZ2UqIHBhZ2UgPSBtX2ZyYW1lLT5wYWdlKCkpIHsKLSAgICAgICAgICAgIGlmICgoIW1fcmVz
aXplTGF5ZXIgfHwgIW1fcmVzaXplTGF5ZXItPmluUmVzaXplTW9kZSgpKSAmJiAhcGFnZS0+bWFp
bkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5wYW5TY3JvbGxJblByb2dyZXNzKCkpIHsKKyAgICAg
ICAgICAgIGlmICgoIW1fcmVzaXplTGF5ZXIgfHwgIW1fcmVzaXplTGF5ZXItPmluUmVzaXplTW9k
ZSgpKSAmJiAhcGFnZS0+bWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5tX3BhblNjcm9sbElu
UHJvZ3Jlc3MpIHsKICAgICAgICAgICAgICAgICAvLyBQbHVnaW5zIHNldCBjdXJzb3Igb24gdGhl
aXIgb3duLiBUaGUgb25seSBjYXNlIFdlYktpdCBpbnRlcnZlbmVzIGlzIHJlc2V0dGluZyBjdXJz
b3IgdG8gYXJyb3cgb24gbW91c2UgZW50ZXIsCiAgICAgICAgICAgICAgICAgLy8gaW4gY2FzZSB0
aGUgcGFydGljdWxhciBwbHVnaW4gZG9lc24ndCBtYW5pcHVsYXRlIGN1cnNvciBhdCBhbGwuIFRo
dXMsICBldmVuIGEgQ1NTIGN1cnNvciBzZXQgb24gYm9keSBoYXMgbm8KICAgICAgICAgICAgICAg
ICAvLyBlZmZlY3Qgb24gcGx1Z2lucyAod2hpY2ggbWF0Y2hlcyBGaXJlZm94KS4KQEAgLTI0Mjgs
NyArMjQyOCw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjprZXlFdmVudChjb25zdCBQbGF0Zm8KIAog
I2lmIEVOQUJMRShQQU5fU0NST0xMSU5HKQogICAgIGlmIChQYWdlKiBwYWdlID0gbV9mcmFtZS0+
cGFnZSgpKSB7Ci0gICAgICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCkt
PnBhblNjcm9sbEluUHJvZ3Jlc3MoKSB8fCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKSB7CisgICAg
ICAgIGlmIChwYWdlLT5tYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPm1fcGFuU2Nyb2xsSW5Q
cm9ncmVzcyB8fCBtX2F1dG9zY3JvbGxJblByb2dyZXNzKSB7CiAgICAgICAgICAgICAvLyBJZiBh
IGtleSBpcyBwcmVzc2VkIHdoaWxlIHRoZSBhdXRvc2Nyb2xsL3BhblNjcm9sbCBpcyBpbiBwcm9n
cmVzcyB0aGVuIHdlIHdhbnQgdG8gc3RvcAogICAgICAgICAgICAgaWYgKGluaXRpYWxLZXlFdmVu
dC50eXBlKCkgPT0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpLZXlEb3duIHx8IGluaXRpYWxLZXlF
dmVudC50eXBlKCkgPT0gUGxhdGZvcm1LZXlib2FyZEV2ZW50OjpSYXdLZXlEb3duKSAKICAgICAg
ICAgICAgICAgICBzdG9wQXV0b3Njcm9sbFRpbWVyKCk7CkBAIC0yODQxLDcgKzI4NDEsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihLCiAgICAgICAgICYmIGV2ZW50
LT5rZXlJZGVudGlmaWVyKCkgPT0gIlUrMDAwOSI7ICAgIAogfQogCi1zdGF0aWMgYm9vbCBldmVu
dEludmVydHNUYWJzVG9MaW5rc0NsaWVudENhbGxSZXN1bHQoS2V5Ym9hcmRFdmVudCogZXZlbnQp
Citib29sIEV2ZW50SGFuZGxlcjo6ZXZlbnRJbnZlcnRzVGFic1RvTGlua3NDbGllbnRDYWxsUmVz
dWx0KEtleWJvYXJkRXZlbnQqIGV2ZW50KQogewogI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZP
Uk0oUVQpIHx8IFBMQVRGT1JNKEhBSUtVKSB8fCBQTEFURk9STShFRkwpCiAgICAgcmV0dXJuIEV2
ZW50SGFuZGxlcjo6aXNLZXlib2FyZE9wdGlvblRhYihldmVudCk7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50SGFuZGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRXZlbnRIYW5kbGVyLmgJKHJldmlzaW9uIDg1Njk3KQorKysgU291cmNlL1dlYkNvcmUvcGFn
ZS9FdmVudEhhbmRsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMTA2LDggKzEwNiw2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIHNldE1vdXNlUHJlc3NOb2RlKFBhc3NSZWZQdHI8Tm9kZT4pOwogCiAgICAg
dm9pZCBzdGFydFBhblNjcm9sbGluZyhSZW5kZXJPYmplY3QqKTsKLSAgICBib29sIHBhblNjcm9s
bEluUHJvZ3Jlc3MoKSB7IHJldHVybiBtX3BhblNjcm9sbEluUHJvZ3Jlc3M7IH0KLSAgICB2b2lk
IHNldFBhblNjcm9sbEluUHJvZ3Jlc3MoYm9vbCBpblByb2dyZXNzKSB7IG1fcGFuU2Nyb2xsSW5Q
cm9ncmVzcyA9IGluUHJvZ3Jlc3M7IH0KIAogICAgIHZvaWQgc3RvcEF1dG9zY3JvbGxUaW1lcihi
b29sIHJlbmRlcmVySXNCZWluZ0Rlc3Ryb3llZCA9IGZhbHNlKTsKICAgICBSZW5kZXJPYmplY3Qq
IGF1dG9zY3JvbGxSZW5kZXJlcigpIGNvbnN0OwpAQCAtMTQwLDE0ICsxMzgsMTAgQEAgcHVibGlj
OgogCiAgICAgSW50UG9pbnQgY3VycmVudE1vdXNlUG9zaXRpb24oKSBjb25zdDsKIAotICAgIHZv
aWQgc2V0SWdub3JlV2hlZWxFdmVudHMoYm9vbCk7Ci0KICAgICBzdGF0aWMgRnJhbWUqIHN1YmZy
YW1lRm9yVGFyZ2V0Tm9kZShOb2RlKik7CiAgICAgc3RhdGljIEZyYW1lKiBzdWJmcmFtZUZvckhp
dFRlc3RSZXN1bHQoY29uc3QgTW91c2VFdmVudFdpdGhIaXRUZXN0UmVzdWx0cyYpOwogCiAgICAg
Ym9vbCBzY3JvbGxPdmVyZmxvdyhTY3JvbGxEaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5LCBO
b2RlKiBzdGFydGluZ05vZGUgPSAwKTsKLSAgICBib29sIGxvZ2ljYWxTY3JvbGxPdmVyZmxvdyhT
Y3JvbGxMb2dpY2FsRGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSwgTm9kZSogc3RhcnRpbmdO
b2RlID0gMCk7Ci0KICAgICBib29sIHNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbERpcmVjdGlvbiwg
U2Nyb2xsR3JhbnVsYXJpdHksIE5vZGUqIHN0YXJ0aW5nTm9kZSA9IDApOwogICAgIGJvb2wgbG9n
aWNhbFNjcm9sbFJlY3Vyc2l2ZWx5KFNjcm9sbExvZ2ljYWxEaXJlY3Rpb24sIFNjcm9sbEdyYW51
bGFyaXR5LCBOb2RlKiBzdGFydGluZ05vZGUgPSAwKTsKIApAQCAtMTU1LDEzICsxNDksOSBAQCBw
dWJsaWM6CiAgICAgYm9vbCBzaG91bGREcmFnQXV0b05vZGUoTm9kZSosIGNvbnN0IEludFBvaW50
JikgY29uc3Q7IC8vIC13ZWJraXQtdXNlci1kcmFnID09IGF1dG8KICNlbmRpZgogCi0gICAgYm9v
bCBzaG91bGRUdXJuVmVydGljYWxUaWNrc0ludG9Ib3Jpem9udGFsKGNvbnN0IEhpdFRlc3RSZXN1
bHQmKSBjb25zdDsKLQogICAgIGJvb2wgdGFic1RvTGlua3MoS2V5Ym9hcmRFdmVudCopIGNvbnN0
OwogICAgIGJvb2wgdGFic1RvQWxsRm9ybUNvbnRyb2xzKEtleWJvYXJkRXZlbnQqKSBjb25zdDsK
IAotICAgIGJvb2wgbW91c2VEb3duTWF5U3RhcnRTZWxlY3QoKSBjb25zdCB7IHJldHVybiBtX21v
dXNlRG93bk1heVN0YXJ0U2VsZWN0OyB9Ci0KICAgICBib29sIG1vdXNlTW92ZWQoY29uc3QgUGxh
dGZvcm1Nb3VzZUV2ZW50Jik7CiAKICAgICB2b2lkIGxvc3RNb3VzZUNhcHR1cmUoKTsKQEAgLTIw
MSwxMSArMTkxLDExIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZm9jdXNEb2N1bWVudFZpZXcoKTsK
IAotICAgIHZvaWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7Ci0gICAgCi0gICAgdm9p
ZCBzZW5kUmVzaXplRXZlbnQoKTsKLSAgICB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOworICAgIHZv
aWQgY2Fwc0xvY2tTdGF0ZU1heUhhdmVDaGFuZ2VkKCk7IC8vIE9ubHkgY2FsbGVkIGJ5IFNlbGVj
dGlvbkNvbnRyb2xsZXIKICAgICAKKyAgICB2b2lkIHNlbmRSZXNpemVFdmVudCgpOyAvLyBPbmx5
IGNhbGxlZCBpbiBGcmFtZVZpZXcKKyAgICB2b2lkIHNlbmRTY3JvbGxFdmVudCgpOyAvLyBEaXR0
bworCiAjaWYgUExBVEZPUk0oTUFDKSAmJiBkZWZpbmVkKF9fT0JKQ19fKQogICAgIHZvaWQgbW91
c2VEb3duKE5TRXZlbnQgKik7CiAgICAgdm9pZCBtb3VzZURyYWdnZWQoTlNFdmVudCAqKTsKQEAg
LTIyNSw4ICsyMTUsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0
IFBsYXRmb3JtVG91Y2hFdmVudCYpOwogI2VuZGlmCiAKLSAgICBzdGF0aWMgYm9vbCBpc0tleWJv
YXJkT3B0aW9uVGFiKEtleWJvYXJkRXZlbnQqKTsKLQogcHJpdmF0ZToKICNpZiBFTkFCTEUoRFJB
R19TVVBQT1JUKQogICAgIGVudW0gRHJhZ0FuZERyb3BIYW5kbGVUeXBlIHsKQEAgLTI5Miw2ICsy
ODAsMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0YXJ0QXV0b3Njcm9sbFRpbWVyKCk7CiAgICAg
dm9pZCBzZXRBdXRvc2Nyb2xsUmVuZGVyZXIoUmVuZGVyT2JqZWN0Kik7CiAgICAgdm9pZCBhdXRv
c2Nyb2xsVGltZXJGaXJlZChUaW1lcjxFdmVudEhhbmRsZXI+Kik7CisgICAgYm9vbCBsb2dpY2Fs
U2Nyb2xsT3ZlcmZsb3coU2Nyb2xsTG9naWNhbERpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJpdHks
IE5vZGUqIHN0YXJ0aW5nTm9kZSA9IDApOworICAgIAorICAgIGJvb2wgc2hvdWxkVHVyblZlcnRp
Y2FsVGlja3NJbnRvSG9yaXpvbnRhbChjb25zdCBIaXRUZXN0UmVzdWx0JikgY29uc3Q7CisgICAg
Ym9vbCBtb3VzZURvd25NYXlTdGFydFNlbGVjdCgpIGNvbnN0IHsgcmV0dXJuIG1fbW91c2VEb3du
TWF5U3RhcnRTZWxlY3Q7IH0KKworICAgIHN0YXRpYyBib29sIGlzS2V5Ym9hcmRPcHRpb25UYWIo
S2V5Ym9hcmRFdmVudCopOworICAgIHN0YXRpYyBib29sIGV2ZW50SW52ZXJ0c1RhYnNUb0xpbmtz
Q2xpZW50Q2FsbFJlc3VsdChLZXlib2FyZEV2ZW50Kik7CiAKICAgICB2b2lkIGZha2VNb3VzZU1v
dmVFdmVudFRpbWVyRmlyZWQoVGltZXI8RXZlbnRIYW5kbGVyPiopOwogICAgIHZvaWQgY2FuY2Vs
RmFrZU1vdXNlTW92ZUV2ZW50KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>