<?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>40377</bug_id>
          
          <creation_ts>2010-06-09 11:42:31 -0700</creation_ts>
          <short_desc>[Qt] When Qt graphicslayer gets a setNeedsDisplay (ie all) it shouldn&apos;t record the rect then</short_desc>
          <delta_ts>2010-10-06 20:36:59 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WONTFIX</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>38744</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Magnuson">smagnuso</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>noam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>235907</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-09 11:42:31 -0700</bug_when>
    <thetext>We should just use the flag that is there to mark the whole area dirty, and then calculate the full rectangle at the point of recache instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235936</commentid>
    <comment_count>1</comment_count>
      <attachid>58274</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-09 12:35:22 -0700</bug_when>
    <thetext>Created attachment 58274
Using the updateAll flag that was there all along.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>236996</commentid>
    <comment_count>2</comment_count>
      <attachid>58274</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-11 13:18:07 -0700</bug_when>
    <thetext>Comment on attachment 58274
Using the updateAll flag that was there all along. 

&gt; @@ -458,10 +458,14 @@ void GraphicsLayerQtImpl::paint(QPainter* painter, const QStyleOptionGraphicsIte
&gt;      switch (m_currentContent.contentType) {
&gt;      case HTMLContentType:
&gt;          if (m_state.drawsContent) {
&gt; -            QPixmap backingStore;
&gt; -            // We might need to recache, in case we try to paint and the cache was purged (e.g. if it was full).
&gt; -            if (!QPixmapCache::find(m_backingStoreKey, &amp;backingStore) || backingStore.size() != m_size.toSize())
&gt; -                backingStore = recache(QRegion(m_state.contentsRect));
&gt; +			QRegion region;
&gt; +			if( m_pendingContent.updateAll )
&gt; +				region |= boundingRect().toRect();
&gt; +			else
&gt; +				region |= m_pendingContent.regionToUpdate;
&gt; +			m_pendingContent.updateAll = false;
&gt; +			m_pendingContent.regionToUpdate = QRegion();
&gt; +            const QPixmap backingStore = recache(region);
&gt;              painter-&gt;drawPixmap(0, 0, backingStore);

This part doesn&apos;t seem correct - if we got to this point where we paint and there&apos;s nothing in the cache, we might need to paint more than the dirty region. This might occur, for example, when the cache was purged because it was full and some other item obscuring this one has moved away. 




TtThi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237001</commentid>
    <comment_count>3</comment_count>
      <attachid>58502</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-11 13:26:55 -0700</bug_when>
    <thetext>Created attachment 58502
Version of the same idea, fixed a few issues. Sam, does this solve the same problem?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237011</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-11 13:50:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 58274 [details])
&gt; &gt; @@ -458,10 +458,14 @@ void GraphicsLayerQtImpl::paint(QPainter* painter, const QStyleOptionGraphicsIte
&gt; &gt;      switch (m_currentContent.contentType) {
&gt; &gt;      case HTMLContentType:
&gt; &gt;          if (m_state.drawsContent) {
&gt; &gt; -            QPixmap backingStore;
&gt; &gt; -            // We might need to recache, in case we try to paint and the cache was purged (e.g. if it was full).
&gt; &gt; -            if (!QPixmapCache::find(m_backingStoreKey, &amp;backingStore) || backingStore.size() != m_size.toSize())
&gt; &gt; -                backingStore = recache(QRegion(m_state.contentsRect));
&gt; &gt; +			QRegion region;
&gt; &gt; +			if( m_pendingContent.updateAll )
&gt; &gt; +				region |= boundingRect().toRect();
&gt; &gt; +			else
&gt; &gt; +				region |= m_pendingContent.regionToUpdate;
&gt; &gt; +			m_pendingContent.updateAll = false;
&gt; &gt; +			m_pendingContent.regionToUpdate = QRegion();
&gt; &gt; +            const QPixmap backingStore = recache(region);
&gt; &gt;              painter-&gt;drawPixmap(0, 0, backingStore);
&gt; 
&gt; This part doesn&apos;t seem correct - if we got to this point where we paint and there&apos;s nothing in the cache, we might need to paint more than the dirty region. This might occur, for example, when the cache was purged because it was full and some other item obscuring this one has moved away. 
&gt; 

I&apos;m not sure I understand. When something is dirty in webkit we&apos;ll get the setNeedsDisplay(). Thus the pendingContent updateAll/regionToUpdate knows what is dirty. If graphicsview needs to paint we&apos;ll get a paint for ourselves and our children - inside of recache() it will determine if the cache&apos;d pixmap is already gone and if so it will still paint QRegion(0,0,m_size.width(),m_size.height()). Looking it up in ::paint and in ::recache seems unnecessary to me.

&gt; 
&gt; 
&gt; 
&gt; TtThi</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237014</commentid>
    <comment_count>5</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-11 13:57:19 -0700</bug_when>
    <thetext>Oh, I see what you&apos;re saying. My bad. Your patch is right though it should follow the webkit coding style before it can be accepted :)
No&apos;am</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237308</commentid>
    <comment_count>6</comment_count>
      <attachid>58556</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-12 10:21:15 -0700</bug_when>
    <thetext>Created attachment 58556
Proposed patch with proper coding style</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237471</commentid>
    <comment_count>7</comment_count>
      <attachid>58577</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-12 21:27:51 -0700</bug_when>
    <thetext>Created attachment 58577
Same patch - some cleanup

There was some code duplication and style issues that I&apos;m cleaning up with this patch. Sam, if it works for you you can resubmit or I can mark mine for review, whatever works for you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237474</commentid>
    <comment_count>8</comment_count>
      <attachid>58578</attachid>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-06-12 21:31:45 -0700</bug_when>
    <thetext>Created attachment 58578
Patch

(See above)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>237887</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-14 10:15:12 -0700</bug_when>
    <thetext>This patch will do for me, I like that recache() doesn&apos;t require the same (semi-redundant) region. However, it seems dubious (to me) that you clear out the regionToUpdate and updateAll members in recache, and thus have to call update first. Maybe just as well to pass a flag to recache that tells it to do the update at the end? 

In any event this looks to achieve the same as my proposed patch, thanks.

//Sam</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>238508</commentid>
    <comment_count>10</comment_count>
      <attachid>58808</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-15 12:53:29 -0700</bug_when>
    <thetext>Created attachment 58808
Putting up my patch and No&apos;am&apos;s changes for review now that I finally tested it</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241510</commentid>
    <comment_count>11</comment_count>
      <attachid>59432</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-22 16:09:21 -0700</bug_when>
    <thetext>Created attachment 59432
Rediff against trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>241515</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-06-22 16:12:06 -0700</bug_when>
    <thetext>Attachment 59432 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:686:  Extra space after ( in function call  [whitespace/parens] [4]
WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:686:  Extra space before )  [whitespace/parens] [2]
Total errors found: 2 in 2 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>241526</commentid>
    <comment_count>13</comment_count>
      <attachid>59440</attachid>
    <who name="Sam Magnuson">smagnuso</who>
    <bug_when>2010-06-22 16:26:39 -0700</bug_when>
    <thetext>Created attachment 59440
...and fix style issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264670</commentid>
    <comment_count>14</comment_count>
      <attachid>59440</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-08-14 07:38:17 -0700</bug_when>
    <thetext>Comment on attachment 59440
...and fix style issue.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:170
 +      QPixmap recache(bool);
In the WebKit project we are trying to move away from using bools as arguments where it is not obvious what they mean. recache(false) does that mean to not recache? probably not. Use an enum instead.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:348
 +      // Nothing to render
Add dot at end of comment.

WebCore/platform/graphics/qt/GraphicsLayerQt.cpp:343
 +      m_pendingContent.updateAll = false;
All what? all regions? everything?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>264682</commentid>
    <comment_count>15</comment_count>
    <who name="Noam Rosenthal">noam</who>
    <bug_when>2010-08-14 08:12:33 -0700</bug_when>
    <thetext>We&apos;re rewriting AC in a cross-platform manner. New features won&apos;t be added to GraphicsLayerQt.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58274</attachid>
            <date>2010-06-09 12:35:22 -0700</date>
            <delta_ts>2010-06-12 10:21:15 -0700</delta_ts>
            <desc>Using the updateAll flag that was there all along. </desc>
            <filename>0003-put-in-the-updateAll-flag.patch</filename>
            <type>text/plain</type>
            <size>5066</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBkMDNmMWNmMjRkYzgzZTIwMDk4ODAwM2Y4MmZiMTA2ZmQyMzE2Y2ZkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBzbWFnbnVzb24gPHNtYWdudXNvQGdtYWlsLmNvbT4KRGF0ZTog
VHVlLCA4IEp1biAyMDEwIDExOjQ1OjU1IC0wNzAwClN1YmplY3Q6IFtQQVRDSCAzLzhdIHB1dCBp
biB0aGUgdXBkYXRlQWxsIGZsYWcKCmNoYW5nZWxvZyBmb3IgMjY5Y2U5ZWNjZTFjMDdjZDU1MTQy
MTVkYzZiNTc3MmUwMTg5NGM5MQotLS0KIFdlYkNvcmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysrKysrCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgIDM3ICsrKysrKysrKysrKysrLS0tLS0tLS0K
IDIgZmlsZXMgY2hhbmdlZCwgMzkgaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA2Y2Jj
MzI1Li4xOGMyMDI0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA2LTA5ICBTYW0gTWFnbnVzb24gIDxz
bWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKwlbUXRdIFdoZW4gUXQgZ3JhcGhpY3NsYXllciBnZXRzIGEgc2V0TmVlZHNEaXNwbGF5
IChpZSBhbGwpIGl0IHNob3VsZG4ndCByZWNvcmQgdGhlIHJlY3QgdGhlbgorCWh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3NworCisJVXNpbmcgdGhlIHVwZGF0ZUFs
bCBmbGFnIHRoYXQgd2FzIHRoZXJlIGFsbCBhbG9uZy4gCisJCisgICAgICAgIE5vIG5ldyB0ZXN0
cy4gKE9PUFMhKQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXll
clF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzTGF5ZXJRdEltcGw6OnVwZGF0ZVRy
YW5zZm9ybSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENo
YW5nZXMpOgorCiAyMDEwLTA2LTA5ICBzbWFnbnVzb24gIDxzbWFnbnVzb0BnbWFpbC5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXggZmM3ODY5Mi4uODU0MWZi
ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVy
UXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0
LmNwcApAQCAtMjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICAgICAgU3RhdGljQ29udGVudFR5
cGUgY29udGVudFR5cGU7CiAgICAgICAgIGZsb2F0IG9wYWNpdHk7CiAgICAgICAgIENvbnRlbnRE
YXRhKCkKLSAgICAgICAgICAgICAgICA6IHVwZGF0ZUFsbChmYWxzZSkKKyAgICAgICAgICAgICAg
ICA6IHVwZGF0ZUFsbCh0cnVlKQogICAgICAgICAgICAgICAgICwgY29udGVudFR5cGUoSFRNTENv
bnRlbnRUeXBlKQogICAgICAgICAgICAgICAgICwgb3BhY2l0eSgxLmYpCiAgICAgICAgIHsKQEAg
LTQ1OCwxMCArNDU4LDE0IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6cGFpbnQoUVBhaW50
ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNzSXRlCiAgICAgc3dpdGNoICht
X2N1cnJlbnRDb250ZW50LmNvbnRlbnRUeXBlKSB7CiAgICAgY2FzZSBIVE1MQ29udGVudFR5cGU6
CiAgICAgICAgIGlmIChtX3N0YXRlLmRyYXdzQ29udGVudCkgewotICAgICAgICAgICAgUVBpeG1h
cCBiYWNraW5nU3RvcmU7Ci0gICAgICAgICAgICAvLyBXZSBtaWdodCBuZWVkIHRvIHJlY2FjaGUs
IGluIGNhc2Ugd2UgdHJ5IHRvIHBhaW50IGFuZCB0aGUgY2FjaGUgd2FzIHB1cmdlZCAoZS5nLiBp
ZiBpdCB3YXMgZnVsbCkuCi0gICAgICAgICAgICBpZiAoIVFQaXhtYXBDYWNoZTo6ZmluZChtX2Jh
Y2tpbmdTdG9yZUtleSwgJmJhY2tpbmdTdG9yZSkgfHwgYmFja2luZ1N0b3JlLnNpemUoKSAhPSBt
X3NpemUudG9TaXplKCkpCi0gICAgICAgICAgICAgICAgYmFja2luZ1N0b3JlID0gcmVjYWNoZShR
UmVnaW9uKG1fc3RhdGUuY29udGVudHNSZWN0KSk7CisJCQlRUmVnaW9uIHJlZ2lvbjsKKwkJCWlm
KCBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCApCisJCQkJcmVnaW9uIHw9IGJvdW5kaW5nUmVj
dCgpLnRvUmVjdCgpOworCQkJZWxzZQorCQkJCXJlZ2lvbiB8PSBtX3BlbmRpbmdDb250ZW50LnJl
Z2lvblRvVXBkYXRlOworCQkJbV9wZW5kaW5nQ29udGVudC51cGRhdGVBbGwgPSBmYWxzZTsKKwkJ
CW1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CisgICAgICAgICAg
ICBjb25zdCBRUGl4bWFwIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUocmVnaW9uKTsKICAgICAgICAg
ICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoMCwgMCwgYmFja2luZ1N0b3JlKTsKICAgICAgICAgfQog
ICAgICAgICBicmVhazsKQEAgLTYzNCwxMSArNjM4LDE4IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZlLCBib29sIGZvcmNlVXBkYXRlVHJhbnNm
b3JtCiAgICAgICAgIC8vIFJlY2FjaGUgbm93OiBhbGwgdGhlIGNvbnRlbnQgaXMgcmVhZHkgYW5k
IHdlIGRvbid0IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUgcGFpbnQgZXZlbnQuCiAgICAgICAgIC8v
IFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBIVE1MIGNvbnRlbnQsIHRoZXJlJ3Mgbm8gcG9p
bnQgaW4gY2FjaGluZyBkaXJlY3RseSBjb21wb3NpdGVkCiAgICAgICAgIC8vIGNvbnRlbnQgbGlr
ZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KLSAgICAgICAgaWYgKG1fcGVuZGluZ0NvbnRl
bnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKQotICAgICAgICAgICAgcmVjYWNoZSht
X3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlKTsKLSAgICAgICAgdXBkYXRlKG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdSZWN0KCkpOwotICAgICAgICBtX3BlbmRp
bmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwotICAgIH0KKyAgICAgICAgaWYg
KG1fcGVuZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKSB7CisJCQlR
UmVnaW9uIHJlZ2lvbjsKKwkJCWlmKCBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCApCisJCQkJ
cmVnaW9uIHw9IGJvdW5kaW5nUmVjdCgpLnRvUmVjdCgpOworCQkJZWxzZQorCQkJCXJlZ2lvbiB8
PSBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlOworCQkJbV9wZW5kaW5nQ29udGVudC51
cGRhdGVBbGwgPSBmYWxzZTsKKwkJCW1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBR
UmVnaW9uKCk7CisgICAgICAgICAgICByZWNhY2hlKHJlZ2lvbik7CisJCQl1cGRhdGUocmVnaW9u
LmJvdW5kaW5nUmVjdCgpKTsKKwkJfQorCX0KIAogICAgIGlmICgobV9jaGFuZ2VNYXNrICYgQmFj
a2dyb3VuZENvbG9yQ2hhbmdlKSAmJiAobV9wZW5kaW5nQ29udGVudC5iYWNrZ3JvdW5kQ29sb3Ig
IT0gbV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IpKQogICAgICAgICB1cGRhdGUoKTsK
QEAgLTY2Myw3ICs2NzQsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmZsdXNoQ2hhbmdl
cyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9ybQogICAgIG1fY3VycmVu
dENvbnRlbnQubWVkaWFMYXllciA9IG1fcGVuZGluZ0NvbnRlbnQubWVkaWFMYXllcjsKICAgICBt
X2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvciA9IG1fcGVuZGluZ0NvbnRlbnQuYmFja2dy
b3VuZENvbG9yOwogICAgIG1fY3VycmVudENvbnRlbnQuY29udGVudHNCYWNrZ3JvdW5kQ29sb3Ig
PSBtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRzQmFja2dyb3VuZENvbG9yOwotICAgIG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAgbV9jaGFuZ2VNYXNrID0g
Tm9DaGFuZ2VzOwogCiAKQEAgLTcxNywxNCArNzI3LDE1IEBAIEdyYXBoaWNzTGF5ZXI6OkNvbXBv
c2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBHcmFwaGljc0xheWVyOjpjb21wb3NpdGluZ0Nv
b3JkCiAvLyByZWltcCBmcm9tIEdyYXBoaWNzTGF5ZXIuaDogd2UnbGwgbmVlZCB0byB1cGRhdGUg
dGhlIHdob2xlIGRpc3BsYXksIGFuZCB3ZSBjYW4ndCBjb3VudCBvbiB0aGUgY3VycmVudCBzaXpl
IGJlY2F1c2UgaXQgbWlnaHQgY2hhbmdlCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0TmVlZHNE
aXNwbGF5KCkKIHsKLSAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUg
PSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgUVNpemUoc2l6ZSgpLndpZHRoKCksIHNpemUo
KS5oZWlnaHQoKSkpKTsKKwltX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxsID0gdHJ1
ZTsKICAgICBtX2ltcGwtPm5vdGlmeUNoYW5nZShHcmFwaGljc0xheWVyUXRJbXBsOjpEaXNwbGF5
Q2hhbmdlKTsKIH0KIAogLy8gcmVpbXAgZnJvbSBHcmFwaGljc0xheWVyLmgKIHZvaWQgR3JhcGhp
Y3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewotICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZXw9IFFSZWN0Rihy
ZWN0KS50b0FsaWduZWRSZWN0KCk7CisJaWYoICFtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQudXBk
YXRlQWxsICkKKwkJbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlIHw9IFFS
ZWN0RihyZWN0KS50b0FsaWduZWRSZWN0KCk7CiAgICAgbV9pbXBsLT5ub3RpZnlDaGFuZ2UoR3Jh
cGhpY3NMYXllclF0SW1wbDo6RGlzcGxheUNoYW5nZSk7CiB9CiAKLS0gCjEuNy4xCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58502</attachid>
            <date>2010-06-11 13:26:55 -0700</date>
            <delta_ts>2010-06-12 21:27:51 -0700</delta_ts>
            <desc>Version of the same idea, fixed a few issues. Sam, does this solve the same problem?</desc>
            <filename>patch-40377-2.diff</filename>
            <type>text/plain</type>
            <size>3346</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0
LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcApp
bmRleCA2YmE2MWQ4Li43YmM4NTJiIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCkBAIC0yMTEsNyArMjExLDcgQEAgcHVibGljOgogICAg
ICAgICBmbG9hdCBvcGFjaXR5OwogCiAgICAgICAgIENvbnRlbnREYXRhKCkKLSAgICAgICAgICAg
IDogdXBkYXRlQWxsKGZhbHNlKQorICAgICAgICAgICAgOiB1cGRhdGVBbGwodHJ1ZSkKICAgICAg
ICAgICAgICwgY29udGVudFR5cGUoSFRNTENvbnRlbnRUeXBlKQogICAgICAgICAgICAgLCBvcGFj
aXR5KDEuZikKICAgICAgICAgewpAQCAtNDg4LDYgKzQ4OCw4IEBAIHZvaWQgR3JhcGhpY3NMYXll
clF0SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBo
aWNzSXRlCiAgICAgICAgICAgICAvLyBXZSBtaWdodCBuZWVkIHRvIHJlY2FjaGUsIGluIGNhc2Ug
d2UgdHJ5IHRvIHBhaW50IGFuZCB0aGUgY2FjaGUgd2FzIHB1cmdlZCAoZS5nLiBpZiBpdCB3YXMg
ZnVsbCkuCiAgICAgICAgICAgICBpZiAoIVFQaXhtYXBDYWNoZTo6ZmluZChtX2JhY2tpbmdTdG9y
ZUtleSwgJmJhY2tpbmdTdG9yZSkgfHwgYmFja2luZ1N0b3JlLnNpemUoKSAhPSBtX3NpemUudG9T
aXplKCkpCiAgICAgICAgICAgICAgICAgYmFja2luZ1N0b3JlID0gcmVjYWNoZShRUmVnaW9uKG1f
c3RhdGUuY29udGVudHNSZWN0KSk7CisgICAgICAgICAgICBtX3BlbmRpbmdDb250ZW50LnVwZGF0
ZUFsbCA9IGZhbHNlOworICAgICAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0
ZSA9IFFSZWdpb24oKTsKICAgICAgICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAoMCwgMCwgYmFj
a2luZ1N0b3JlKTsKICAgICAgICAgfQogICAgICAgICBicmVhazsKQEAgLTY3NiwxMCArNjc4LDE0
IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJzaXZl
LCBib29sIGZvcmNlVXBkYXRlVHJhbnNmb3JtCiAgICAgICAgIC8vIFJlY2FjaGUgbm93OiBhbGwg
dGhlIGNvbnRlbnQgaXMgcmVhZHkgYW5kIHdlIGRvbid0IHdhbnQgdG8gd2FpdCB1bnRpbCB0aGUg
cGFpbnQgZXZlbnQuCiAgICAgICAgIC8vIFdlIG9ubHkgbmVlZCB0byBkbyB0aGlzIGZvciBIVE1M
IGNvbnRlbnQsIHRoZXJlJ3Mgbm8gcG9pbnQgaW4gY2FjaGluZyBkaXJlY3RseSBjb21wb3NpdGVk
CiAgICAgICAgIC8vIGNvbnRlbnQgbGlrZSBpbWFnZXMgb3Igc29saWQgcmVjdGFuZ2xlcy4KLSAg
ICAgICAgaWYgKG1fcGVuZGluZ0NvbnRlbnQuY29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBl
KQotICAgICAgICAgICAgcmVjYWNoZShtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlKTsK
LSAgICAgICAgdXBkYXRlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdS
ZWN0KCkpOwotICAgICAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lv
bigpOworICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9PSBIVE1MQ29u
dGVudFR5cGUpIHsKKyAgICAgICAgICAgIGNvbnN0IFFSZWdpb24gcmVnaW9uID0gbV9wZW5kaW5n
Q29udGVudC51cGRhdGVBbGwgPyAgYm91bmRpbmdSZWN0KCkudG9SZWN0KCkgOiBtX3BlbmRpbmdD
b250ZW50LnJlZ2lvblRvVXBkYXRlOworICAgICAgICAgICAgbV9wZW5kaW5nQ29udGVudC51cGRh
dGVBbGwgPSBmYWxzZTsKKyAgICAgICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRh
dGUgPSBRUmVnaW9uKCk7CisgICAgICAgICAgICByZWNhY2hlKHJlZ2lvbik7CisgICAgICAgICAg
ICB1cGRhdGUocmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAg
ICAgICB1cGRhdGUoKTsKICAgICB9CiAKICAgICBpZiAoKG1fY2hhbmdlTWFzayAmIEJhY2tncm91
bmRDb2xvckNoYW5nZSkKQEAgLTcwNiw3ICs3MTIsNiBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OmZsdXNoQ2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9y
bQogICAgIG1fY3VycmVudENvbnRlbnQubWVkaWFMYXllciA9IG1fcGVuZGluZ0NvbnRlbnQubWVk
aWFMYXllcjsKICAgICBtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvciA9IG1fcGVuZGlu
Z0NvbnRlbnQuYmFja2dyb3VuZENvbG9yOwogICAgIG1fY3VycmVudENvbnRlbnQuY29udGVudHNC
YWNrZ3JvdW5kQ29sb3IgPSBtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRzQmFja2dyb3VuZENvbG9y
OwotICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CiAgICAg
bV9jaGFuZ2VNYXNrID0gTm9DaGFuZ2VzOwogCiBhZnRlckxheWVyQ2hhbmdlczoKQEAgLTc2Miw3
ICs3NjcsNyBAQCBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRp
b24gR3JhcGhpY3NMYXllcjo6Y29tcG9zaXRpbmdDb29yZAogKi8KIHZvaWQgR3JhcGhpY3NMYXll
clF0OjpzZXROZWVkc0Rpc3BsYXkoKQogewotICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5y
ZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oUVJlY3QoUVBvaW50KDAsIDApLCBRU2l6ZShzaXplKCku
d2lkdGgoKSwgc2l6ZSgpLmhlaWdodCgpKSkpOworICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVu
dC51cGRhdGVBbGwgPSB0cnVlOwogICAgIG1faW1wbC0+bm90aWZ5Q2hhbmdlKEdyYXBoaWNzTGF5
ZXJRdEltcGw6OkRpc3BsYXlDaGFuZ2UpOwogfQogCkBAIC03NzAsNyArNzc1LDggQEAgdm9pZCBH
cmFwaGljc0xheWVyUXQ6OnNldE5lZWRzRGlzcGxheSgpCiAqLwogdm9pZCBHcmFwaGljc0xheWVy
UXQ6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAg
bV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlIHw9IFFSZWN0RihyZWN0KS50
b0FsaWduZWRSZWN0KCk7CisgICAgaWYoIW1faW1wbC0+bV9wZW5kaW5nQ29udGVudC51cGRhdGVB
bGwpCisgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSB8PSBR
UmVjdEYocmVjdCkudG9BbGlnbmVkUmVjdCgpOwogICAgIG1faW1wbC0+bm90aWZ5Q2hhbmdlKEdy
YXBoaWNzTGF5ZXJRdEltcGw6OkRpc3BsYXlDaGFuZ2UpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58556</attachid>
            <date>2010-06-12 10:21:15 -0700</date>
            <delta_ts>2010-06-15 12:53:29 -0700</delta_ts>
            <desc>Proposed patch with proper coding style</desc>
            <filename>bug-40377.patch</filename>
            <type>text/plain</type>
            <size>6195</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBjN2RmYWFjZTI3ODgxODJhMzg1NjI0ODI3Njk0MWJlM2FmM2U5YTk1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNTowMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMgYSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkg
aXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0aGVuCiBidWcgLSA0MDM3NwoKLS0tCiBXZWJD
b3JlL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysr
KysrCiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAg
IDQxICsrKysrKysrKysrKysrLS0tLS0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNDEgaW5zZXJ0aW9u
cygrKSwgMTUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCAxZDlkNzM5Li4wZWU0MTljIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisy
MDEwLTA2LTA5ICBTYW0gTWFnbnVzb24gIDxzbWFnbnVzb25AbmV0ZmxpeC5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBXaGVuIFF0IGdy
YXBoaWNzbGF5ZXIgZ2V0cyBhIHNldE5lZWRzRGlzcGxheSAoaWUgYWxsKSBpdCBzaG91bGRuJ3Qg
cmVjb3JkIHRoZSByZWN0IHRoZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQwMzc3CisKKyAgICAgICAgVXNpbmcgdGhlIHVwZGF0ZUFsbCBmbGFnIHRo
YXQgd2FzIHRoZXJlIGFsbCBhbG9uZy4gCisgICAgICAgIAorICAgICAgICBObyBuZXcgdGVzdHMu
IChPT1BTISkKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJR
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjp1cGRhdGVUcmFu
c2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1c2hDaGFu
Z2VzKToKKwogMjAxMC0wNi0wNyAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVA
bm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3BwCmluZGV4IGJl
NDRmY2EuLjhhNTg3ZjQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTIwMCw3ICsyMDAsNyBAQCBwdWJsaWM6CiAgICAgICAgIFN0
YXRpY0NvbnRlbnRUeXBlIGNvbnRlbnRUeXBlOwogICAgICAgICBmbG9hdCBvcGFjaXR5OwogICAg
ICAgICBDb250ZW50RGF0YSgpCi0gICAgICAgICAgICAgICAgOiB1cGRhdGVBbGwoZmFsc2UpCisg
ICAgICAgICAgICAgICAgOiB1cGRhdGVBbGwodHJ1ZSkKICAgICAgICAgICAgICAgICAsIGNvbnRl
bnRUeXBlKEhUTUxDb250ZW50VHlwZSkKICAgICAgICAgICAgICAgICAsIG9wYWNpdHkoMS5mKQog
ICAgICAgICB7CkBAIC0zMzEsNyArMzMxLDcgQEAgUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBs
OjpyZWNhY2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQogICAgIHBhaW50ZXIuc2V0
Q29tcG9zaXRpb25Nb2RlKFFQYWludGVyOjpDb21wb3NpdGlvbk1vZGVfU291cmNlT3Zlcik7CiAg
ICAgbV9sYXllci0+cGFpbnRHcmFwaGljc0xheWVyQ29udGVudHMoZ2MsIHJlZ2lvbi5ib3VuZGlu
Z1JlY3QoKSk7CiAKLSAgICBtX2JhY2tpbmdTdG9yZUtleSA9IFFQaXhtYXBDYWNoZTo6aW5zZXJ0
KHBpeG1hcCk7ICAgIAorICAgIG1fYmFja2luZ1N0b3JlS2V5ID0gUVBpeG1hcENhY2hlOjppbnNl
cnQocGl4bWFwKTsKICAgICByZXR1cm4gcGl4bWFwOwogfQogCkBAIC00NDQsMTAgKzQ0NCwxNCBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25z
dCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgIHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5j
b250ZW50VHlwZSkgewogICAgIGNhc2UgSFRNTENvbnRlbnRUeXBlOgogICAgICAgICBpZiAobV9z
dGF0ZS5kcmF3c0NvbnRlbnQpIHsKLSAgICAgICAgICAgIFFQaXhtYXAgYmFja2luZ1N0b3JlOwot
ICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byByZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0
byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJnZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgot
ICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZi
YWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5zaXplKCkgIT0gbV9zaXplLnRvU2l6ZSgpKQot
ICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNv
bnRlbnRzUmVjdCkpOworICAgICAgICAgICAgUVJlZ2lvbiByZWdpb247CisgICAgICAgICAgICBp
ZiAoIG1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxsICkKKyAgICAgICAgICAgICAgICByZWdpb24g
fD0gYm91bmRpbmdSZWN0KCkudG9SZWN0KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgcmVnaW9uIHw9IG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGU7CisgICAgICAg
ICAgICBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCA9IGZhbHNlOworICAgICAgICAgICAgbV9w
ZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKKyAgICAgICAgICAgIGNv
bnN0IFFQaXhtYXAgYmFja2luZ1N0b3JlID0gcmVjYWNoZShyZWdpb24pOwogICAgICAgICAgICAg
cGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOwogICAgICAgICB9CiAgICAg
ICAgIGJyZWFrOwpAQCAtNjE2LDEwICs2MjAsMTcgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBs
OjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0K
ICAgICAgICAgLy8gUmVjYWNoZSBub3c6IGFsbCB0aGUgY29udGVudCBpcyByZWFkeSBhbmQgd2Ug
ZG9uJ3Qgd2FudCB0byB3YWl0IHVudGlsIHRoZSBwYWludCBldmVudC4KICAgICAgICAgLy8gV2Ug
b25seSBuZWVkIHRvIGRvIHRoaXMgZm9yIEhUTUwgY29udGVudCwgdGhlcmUncyBubyBwb2ludCBp
biBjYWNoaW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQKICAgICAgICAgLy8gY29udGVudCBsaWtlIGlt
YWdlcyBvciBzb2xpZCByZWN0YW5nbGVzLgotICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5j
b250ZW50VHlwZSA9PSBIVE1MQ29udGVudFR5cGUpCi0gICAgICAgICAgICByZWNhY2hlKG1fcGVu
ZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29u
dGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7Ci0gICAgICAgIG1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CisgICAgICAgIGlmIChtX3BlbmRpbmdD
b250ZW50LmNvbnRlbnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkgeworICAgICAgICAgICAgUVJl
Z2lvbiByZWdpb247CisgICAgICAgICAgICBpZiAoIG1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxs
ICkKKyAgICAgICAgICAgICAgICByZWdpb24gfD0gYm91bmRpbmdSZWN0KCkudG9SZWN0KCk7Cisg
ICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgcmVnaW9uIHw9IG1fcGVuZGluZ0NvbnRl
bnQucmVnaW9uVG9VcGRhdGU7CisgICAgICAgICAgICBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFs
bCA9IGZhbHNlOworICAgICAgICAgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9
IFFSZWdpb24oKTsKKyAgICAgICAgICAgIHJlY2FjaGUocmVnaW9uKTsKKyAgICAgICAgICAgIHVw
ZGF0ZShyZWdpb24uYm91bmRpbmdSZWN0KCkpOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYg
KChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5kQ29sb3JDaGFuZ2UpICYmIChtX3BlbmRpbmdDb250
ZW50LmJhY2tncm91bmRDb2xvciAhPSBtX2N1cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikp
CkBAIC02NDUsNyArNjU2LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5n
ZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICBtX2N1cnJl
bnRDb250ZW50Lm1lZGlhTGF5ZXIgPSBtX3BlbmRpbmdDb250ZW50Lm1lZGlhTGF5ZXI7CiAgICAg
bV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IgPSBtX3BlbmRpbmdDb250ZW50LmJhY2tn
cm91bmRDb2xvcjsKICAgICBtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRzQmFja2dyb3VuZENvbG9y
ID0gbV9wZW5kaW5nQ29udGVudC5jb250ZW50c0JhY2tncm91bmRDb2xvcjsKLSAgICBtX3BlbmRp
bmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAgIG1fY2hhbmdlTWFzayA9
IE5vQ2hhbmdlczsKIAogCkBAIC02NTQsNyArNjY0LDcgQEAgYWZ0ZXJMYXllckNoYW5nZXM6CiAg
ICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwogCiAgICAgaWYgKCFyZWN1cnNpdmUpCi0gICAgICAg
IHJldHVybjsgICAgCisgICAgICAgIHJldHVybjsKIAogICAgIFFMaXN0PFFHcmFwaGljc0l0ZW0q
PiBjaGlsZHJlbiA9IGNoaWxkSXRlbXMoKTsKICAgICBpZiAobV9zdGF0ZS5tYXNrTGF5ZXIpCkBA
IC02OTksMTQgKzcwOSwxNSBAQCBHcmFwaGljc0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVz
T3JpZW50YXRpb24gR3JhcGhpY3NMYXllcjo6Y29tcG9zaXRpbmdDb29yZAogLy8gcmVpbXAgZnJv
bSBHcmFwaGljc0xheWVyLmg6IHdlJ2xsIG5lZWQgdG8gdXBkYXRlIHRoZSB3aG9sZSBkaXNwbGF5
LCBhbmQgd2UgY2FuJ3QgY291bnQgb24gdGhlIGN1cnJlbnQgc2l6ZSBiZWNhdXNlIGl0IG1pZ2h0
IGNoYW5nZQogdm9pZCBHcmFwaGljc0xheWVyUXQ6OnNldE5lZWRzRGlzcGxheSgpCiB7Ci0gICAg
bV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbihRUmVjdChR
UG9pbnQoMCwgMCksIFFTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKSk7Cisg
ICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC51cGRhdGVBbGwgPSB0cnVlOwogICAgIG1f
aW1wbC0+bm90aWZ5Q2hhbmdlKEdyYXBoaWNzTGF5ZXJRdEltcGw6OkRpc3BsYXlDaGFuZ2UpOwog
fQogCiAvLyByZWltcCBmcm9tIEdyYXBoaWNzTGF5ZXIuaAogdm9pZCBHcmFwaGljc0xheWVyUXQ6
OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbV9p
bXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlfD0gUVJlY3RGKHJlY3QpLnRvQWxp
Z25lZFJlY3QoKTsKKyAgICBpZiAoICFtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxs
ICkKKyAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlIHw9IFFS
ZWN0RihyZWN0KS50b0FsaWduZWRSZWN0KCk7CiAgICAgbV9pbXBsLT5ub3RpZnlDaGFuZ2UoR3Jh
cGhpY3NMYXllclF0SW1wbDo6RGlzcGxheUNoYW5nZSk7CiB9CiAKQEAgLTkyOCw3ICs5MzksNyBA
QCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkK
ICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5waXhtYXAgPSAqcHhtOwogICAg
ICAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBlID0gR3JhcGhpY3NM
YXllclF0SW1wbDo6UGl4bWFwQ29udGVudFR5cGU7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIH0gICAgICAgIAorICAgICAgICB9CiAgICAgfQogICAgIG1faW1wbC0+bV9wZW5kaW5nQ29u
dGVudC5waXhtYXAgPSBRUGl4bWFwKCk7CiB9Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58577</attachid>
            <date>2010-06-12 21:27:51 -0700</date>
            <delta_ts>2010-06-12 21:31:45 -0700</delta_ts>
            <desc>Same patch - some cleanup</desc>
            <filename>patch-40377-2.diff</filename>
            <type>text/plain</type>
            <size>6015</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWU1NDg1Mi4uMGEzZDRhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNyBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFtRdF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMg
YSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkgaXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0
aGVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3
NworCisgICAgICAgIFRoZSBmaXggdGFrZXMgYWRhdm50YWdlIG9mIHRoZSB1cGRhdGVBbGwgZmxh
ZyB0aGF0IHRvZ2dsZXMgd2hlbiBzZXROZWVkc0Rpc3BsYXkgaXMgY2FsbGVkLgorICAgICAgICBC
YXNlZCBvbiBTYW0gTWFnbnVzb24ncyBmaXgsIHdpdGggc29tZSBzdHlsZSBuaXQtcGlja3MuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpDb250ZW50RGF0YTo6Q29udGVudERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6fkdyYXBoaWNzTGF5ZXJRdElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorCisyMDEwLTA2LTEy
ICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBHcmFwaGljc0NvbnRleHQzRC5o
IGluIHRoZSBRdCBwb3J0IGluY2x1ZGVzIHRvbyBtYW55IHVubmVjZXNzYXJ5IGZpbGVzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDUzNgogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXgg
OGVkMGQ4OS4uMzEzM2Y3OSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NMYXllclF0LmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBR
R3JhcGhpY3NJdGVtIGNhY2hlIG1vZGVzIC0gU29tZXRpbWVzIHdlIG5lZWQgdG8gY2FjaGUgdGhl
IGNvbnRlbnRzIGV2ZW4gdGhvdWdoIHRoZSBpdGVtCiAgICAgLy8gbmVlZHMgdG8gYmUgdXBkYXRl
ZCwgZS5nLiB3aGVuIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIGlzIGNoYW5nZWQuCiAgICAgLy8gVE9E
TzogaW52ZXN0aWdhdGUgaWYgUUdyYXBoaWNzSXRlbSBjYWNoaW5nIGNhbiBiZSBpbXByb3ZlZCB0
byBzdXBwb3J0IHRoYXQgb3V0IG9mIHRoZSBib3guCi0gICAgUVBpeG1hcCByZWNhY2hlKGNvbnN0
IFFSZWdpb24mKTsKKyAgICBRUGl4bWFwIHJlY2FjaGUoKTsKIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSBjb21wb3NpdG9yIGlzIHJlYWR5IGZvciB1cyB0byBzaG93IHRoZSBjaGFuZ2VzIG9uIHNj
cmVlbi4KICAgICAvLyBUaGlzIGlzIGNhbGxlZCBpbmRpcmVjdGx5IGZyb20gQ2hyb21lQ2xpZW50
UXQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24KQEAgLTIxMSw3ICsyMTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGZsb2F0IG9wYWNpdHk7CiAKICAgICAgICAgQ29udGVudERh
dGEoKQotICAgICAgICAgICAgOiB1cGRhdGVBbGwoZmFsc2UpCisgICAgICAgICAgICA6IHVwZGF0
ZUFsbCh0cnVlKQogICAgICAgICAgICAgLCBjb250ZW50VHlwZShIVE1MQ29udGVudFR5cGUpCiAg
ICAgICAgICAgICAsIG9wYWNpdHkoMS5mKQogICAgICAgICB7CkBAIC0zMTksNyArMzE5LDcgQEAg
R3JhcGhpY3NMYXllclF0SW1wbDo6fkdyYXBoaWNzTGF5ZXJRdEltcGwoKQogICAgICAgICAgICAg
ICAgIHNjZW5lKCktPnJlbW92ZUl0ZW0oaXRlbSk7CiAgICAgICAgICAgICBpdGVtLT5zZXRQYXJl
bnRJdGVtKDApOwogICAgICAgICB9Ci0gICAgfQorICAgICAgICB9CiAKICNpZm5kZWYgUVRfTk9f
QU5JTUFUSU9OCiAgICAgLy8gV2UgZG8sIGhvd2V2ZXIsIG93biB0aGUgYW5pbWF0aW9ucy4KQEAg
LTMzNywxMiArMzM3LDE3IEBAIGNvbnN0IEdyYXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5
ZXJRdEltcGw6OnJvb3RMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLVFQaXht
YXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1Vw
ZGF0ZSkKK1FQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSgpCiB7CisgICAgUVJl
Z2lvbiByZWdpb24gPSBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbAorICAgICAgICAgICAgICAg
ICAgICAgICAgID8gYm91bmRpbmdSZWN0KCkudG9SZWN0KCkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICA6IG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGU7CisgICAgbV9wZW5kaW5nQ29u
dGVudC51cGRhdGVBbGwgPSBmYWxzZTsKKyAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBk
YXRlID0gUVJlZ2lvbigpOworCiAgICAgaWYgKCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBt
X3NpemUuaXNFbXB0eSgpIHx8IW1fc2l6ZS5pc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBRUGl4
bWFwKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRlOwogICAgIFFQaXht
YXAgcGl4bWFwOwogCiAgICAgLy8gV2UgbWlnaHQgYmUgZHJhd2luZyBpbnRvIGFuIGV4aXN0aW5n
IGNhY2hlLgpAQCAtNDg1LDEwICs0OTAsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBh
aW50KFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAg
IHN3aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkgewogICAgIGNhc2UgSFRNTENv
bnRlbnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3c0NvbnRlbnQpIHsKLSAgICAgICAg
ICAgIFFQaXhtYXAgYmFja2luZ1N0b3JlOwotICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0
byByZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJn
ZWQgKGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgotICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6
OmZpbmQobV9iYWNraW5nU3RvcmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5z
aXplKCkgIT0gbV9zaXplLnRvU2l6ZSgpKQotICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9
IHJlY2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNvbnRlbnRzUmVjdCkpOworICAgICAgICAgICAgY29u
c3QgUVBpeG1hcCBiYWNraW5nU3RvcmUgPSByZWNhY2hlKCk7CiAgICAgICAgICAgICBwYWludGVy
LT5kcmF3UGl4bWFwKDAsIDAsIGJhY2tpbmdTdG9yZSk7CiAgICAgICAgIH0KICAgICAgICAgYnJl
YWs7CkBAIC02NzcsMTAgKzY3OSwxMyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmZsdXNo
Q2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9ybQogICAgICAg
ICAvLyBSZWNhY2hlIG5vdzogYWxsIHRoZSBjb250ZW50IGlzIHJlYWR5IGFuZCB3ZSBkb24ndCB3
YW50IHRvIHdhaXQgdW50aWwgdGhlIHBhaW50IGV2ZW50LgogICAgICAgICAvLyBXZSBvbmx5IG5l
ZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdzIG5vIHBvaW50IGluIGNhY2hp
bmcgZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAgICAvLyBjb250ZW50IGxpa2UgaW1hZ2VzIG9y
IHNvbGlkIHJlY3RhbmdsZXMuCi0gICAgICAgIGlmIChtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRU
eXBlID09IEhUTUxDb250ZW50VHlwZSkKLSAgICAgICAgICAgIHJlY2FjaGUobV9wZW5kaW5nQ29u
dGVudC5yZWdpb25Ub1VwZGF0ZSk7Ci0gICAgICAgIHVwZGF0ZShtX3BlbmRpbmdDb250ZW50LnJl
Z2lvblRvVXBkYXRlLmJvdW5kaW5nUmVjdCgpKTsKLSAgICAgICAgbV9wZW5kaW5nQ29udGVudC5y
ZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKKyAgICAgICAgaWYgKG1fcGVuZGluZ0NvbnRlbnQu
Y29udGVudFR5cGUgPT0gSFRNTENvbnRlbnRUeXBlKSB7CisgICAgICAgICAgICBpZiAobV9wZW5k
aW5nQ29udGVudC51cGRhdGVBbGwpCisgICAgICAgICAgICAgICAgdXBkYXRlKCk7CisgICAgICAg
ICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXBkYXRlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9u
VG9VcGRhdGUuYm91bmRpbmdSZWN0KCkpOworICAgICAgICAgICAgcmVjYWNoZSgpOworICAgICAg
ICB9CiAgICAgfQogCiAgICAgaWYgKChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5kQ29sb3JDaGFu
Z2UpCkBAIC03MDcsNyArNzEyLDYgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENo
YW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICBtX2N1
cnJlbnRDb250ZW50Lm1lZGlhTGF5ZXIgPSBtX3BlbmRpbmdDb250ZW50Lm1lZGlhTGF5ZXI7CiAg
ICAgbV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IgPSBtX3BlbmRpbmdDb250ZW50LmJh
Y2tncm91bmRDb2xvcjsKICAgICBtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRzQmFja2dyb3VuZENv
bG9yID0gbV9wZW5kaW5nQ29udGVudC5jb250ZW50c0JhY2tncm91bmRDb2xvcjsKLSAgICBtX3Bl
bmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAgIG1fY2hhbmdlTWFz
ayA9IE5vQ2hhbmdlczsKIAogYWZ0ZXJMYXllckNoYW5nZXM6CkBAIC03NjMsNyArNzY3LDcgQEAg
R3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0aW9uIEdyYXBoaWNz
TGF5ZXI6OmNvbXBvc2l0aW5nQ29vcmQKICovCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0TmVl
ZHNEaXNwbGF5KCkKIHsKLSAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRh
dGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgUVNpemUoc2l6ZSgpLndpZHRoKCksIHNp
emUoKS5oZWlnaHQoKSkpKTsKKyAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxs
ID0gdHJ1ZTsKICAgICBtX2ltcGwtPm5vdGlmeUNoYW5nZShHcmFwaGljc0xheWVyUXRJbXBsOjpE
aXNwbGF5Q2hhbmdlKTsKIH0KIApAQCAtNzcxLDcgKzc3NSw4IEBAIHZvaWQgR3JhcGhpY3NMYXll
clF0OjpzZXROZWVkc0Rpc3BsYXkoKQogKi8KIHZvaWQgR3JhcGhpY3NMYXllclF0OjpzZXROZWVk
c0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAgIG1faW1wbC0+bV9w
ZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSB8PSBRUmVjdEYocmVjdCkudG9BbGlnbmVkUmVj
dCgpOworICAgIGlmICghbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCkKKyAgICAg
ICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlIHw9IFFSZWN0RihyZWN0
KS50b0FsaWduZWRSZWN0KCk7CiAgICAgbV9pbXBsLT5ub3RpZnlDaGFuZ2UoR3JhcGhpY3NMYXll
clF0SW1wbDo6RGlzcGxheUNoYW5nZSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58578</attachid>
            <date>2010-06-12 21:31:45 -0700</date>
            <delta_ts>2010-06-12 21:31:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch-40377-2.diff</filename>
            <type>text/plain</type>
            <size>5702</size>
            <attacher name="Noam Rosenthal">noam</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWU1NDg1Mi4uMGEzZDRhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTIsNiArMiwyNyBAQAogCiAgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgogCisgICAgICAgIFtRdF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMg
YSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkgaXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0
aGVuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDM3
NworCisgICAgICAgIFRoZSBmaXggdGFrZXMgYWRhdm50YWdlIG9mIHRoZSB1cGRhdGVBbGwgZmxh
ZyB0aGF0IHRvZ2dsZXMgd2hlbiBzZXROZWVkc0Rpc3BsYXkgaXMgY2FsbGVkLgorICAgICAgICBC
YXNlZCBvbiBTYW0gTWFnbnVzb24ncyBmaXgsIHdpdGggc29tZSBzdHlsZSBuaXQtcGlja3MuCisK
KyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlzIGlzIGFuIG9wdGltaXphdGlvbi4KKworICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpDb250ZW50RGF0YTo6Q29udGVudERhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6fkdyYXBoaWNzTGF5ZXJRdElt
cGwpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludCk6CisgICAgICAgIChX
ZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6R3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXkpOgorICAgICAgICAoV2ViQ29y
ZTo6R3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QpOgorCisyMDEwLTA2LTEy
ICBOb2FtIFJvc2VudGhhbCAgPG5vYW0ucm9zZW50aGFsQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAgICBHcmFwaGljc0NvbnRleHQzRC5o
IGluIHRoZSBRdCBwb3J0IGluY2x1ZGVzIHRvbyBtYW55IHVubmVjZXNzYXJ5IGZpbGVzCiAgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDUzNgogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKaW5kZXgg
OGVkMGQ4OS4uMGRlNWJhNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9x
dC9HcmFwaGljc0xheWVyUXQuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
R3JhcGhpY3NMYXllclF0LmNwcApAQCAtMTY3LDcgKzE2Nyw3IEBAIHB1YmxpYzoKICAgICAvLyBR
R3JhcGhpY3NJdGVtIGNhY2hlIG1vZGVzIC0gU29tZXRpbWVzIHdlIG5lZWQgdG8gY2FjaGUgdGhl
IGNvbnRlbnRzIGV2ZW4gdGhvdWdoIHRoZSBpdGVtCiAgICAgLy8gbmVlZHMgdG8gYmUgdXBkYXRl
ZCwgZS5nLiB3aGVuIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIGlzIGNoYW5nZWQuCiAgICAgLy8gVE9E
TzogaW52ZXN0aWdhdGUgaWYgUUdyYXBoaWNzSXRlbSBjYWNoaW5nIGNhbiBiZSBpbXByb3ZlZCB0
byBzdXBwb3J0IHRoYXQgb3V0IG9mIHRoZSBib3guCi0gICAgUVBpeG1hcCByZWNhY2hlKGNvbnN0
IFFSZWdpb24mKTsKKyAgICBRUGl4bWFwIHJlY2FjaGUoKTsKIAogICAgIC8vIENhbGxlZCB3aGVu
IHRoZSBjb21wb3NpdG9yIGlzIHJlYWR5IGZvciB1cyB0byBzaG93IHRoZSBjaGFuZ2VzIG9uIHNj
cmVlbi4KICAgICAvLyBUaGlzIGlzIGNhbGxlZCBpbmRpcmVjdGx5IGZyb20gQ2hyb21lQ2xpZW50
UXQ6OnNldE5lZWRzT25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24KQEAgLTIxMSw3ICsyMTEs
NyBAQCBwdWJsaWM6CiAgICAgICAgIGZsb2F0IG9wYWNpdHk7CiAKICAgICAgICAgQ29udGVudERh
dGEoKQotICAgICAgICAgICAgOiB1cGRhdGVBbGwoZmFsc2UpCisgICAgICAgICAgICA6IHVwZGF0
ZUFsbCh0cnVlKQogICAgICAgICAgICAgLCBjb250ZW50VHlwZShIVE1MQ29udGVudFR5cGUpCiAg
ICAgICAgICAgICAsIG9wYWNpdHkoMS5mKQogICAgICAgICB7CkBAIC0zMzcsMTIgKzMzNywxNyBA
QCBjb25zdCBHcmFwaGljc0xheWVyUXRJbXBsKiBHcmFwaGljc0xheWVyUXRJbXBsOjpyb290TGF5
ZXIoKSBjb25zdAogICAgIHJldHVybiB0aGlzOwogfQogCi1RUGl4bWFwIEdyYXBoaWNzTGF5ZXJR
dEltcGw6OnJlY2FjaGUoY29uc3QgUVJlZ2lvbiYgcmVnaW9uVG9VcGRhdGUpCitRUGl4bWFwIEdy
YXBoaWNzTGF5ZXJRdEltcGw6OnJlY2FjaGUoKQogeworICAgIFFSZWdpb24gcmVnaW9uID0gbV9w
ZW5kaW5nQ29udGVudC51cGRhdGVBbGwKKyAgICAgICAgICAgICAgICAgICAgICAgICA/IGJvdW5k
aW5nUmVjdCgpLnRvUmVjdCgpCisgICAgICAgICAgICAgICAgICAgICAgICAgOiBtX3BlbmRpbmdD
b250ZW50LnJlZ2lvblRvVXBkYXRlOworICAgIG1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxsID0g
ZmFsc2U7CisgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsK
KwogICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8
fCFtX3NpemUuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gUVBpeG1hcCgpOwogCi0gICAgUVJl
Z2lvbiByZWdpb24gPSByZWdpb25Ub1VwZGF0ZTsKICAgICBRUGl4bWFwIHBpeG1hcDsKIAogICAg
IC8vIFdlIG1pZ2h0IGJlIGRyYXdpbmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KQEAgLTQ4NSwx
MCArNDkwLDcgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpwYWludChRUGFpbnRlciogcGFp
bnRlciwgY29uc3QgUVN0eWxlT3B0aW9uR3JhcGhpY3NJdGUKICAgICBzd2l0Y2ggKG1fY3VycmVu
dENvbnRlbnQuY29udGVudFR5cGUpIHsKICAgICBjYXNlIEhUTUxDb250ZW50VHlwZToKICAgICAg
ICAgaWYgKG1fc3RhdGUuZHJhd3NDb250ZW50KSB7Ci0gICAgICAgICAgICBRUGl4bWFwIGJhY2tp
bmdTdG9yZTsKLSAgICAgICAgICAgIC8vIFdlIG1pZ2h0IG5lZWQgdG8gcmVjYWNoZSwgaW4gY2Fz
ZSB3ZSB0cnkgdG8gcGFpbnQgYW5kIHRoZSBjYWNoZSB3YXMgcHVyZ2VkIChlLmcuIGlmIGl0IHdh
cyBmdWxsKS4KLSAgICAgICAgICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFja2luZ1N0
b3JlS2V5LCAmYmFja2luZ1N0b3JlKSB8fCBiYWNraW5nU3RvcmUuc2l6ZSgpICE9IG1fc2l6ZS50
b1NpemUoKSkKLSAgICAgICAgICAgICAgICBiYWNraW5nU3RvcmUgPSByZWNhY2hlKFFSZWdpb24o
bV9zdGF0ZS5jb250ZW50c1JlY3QpKTsKKyAgICAgICAgICAgIGNvbnN0IFFQaXhtYXAgYmFja2lu
Z1N0b3JlID0gcmVjYWNoZSgpOwogICAgICAgICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAw
LCBiYWNraW5nU3RvcmUpOwogICAgICAgICB9CiAgICAgICAgIGJyZWFrOwpAQCAtNjc3LDEwICs2
NzksMTMgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1
cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zvcm0KICAgICAgICAgLy8gUmVjYWNoZSBub3c6
IGFsbCB0aGUgY29udGVudCBpcyByZWFkeSBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3YWl0IHVudGls
IHRoZSBwYWludCBldmVudC4KICAgICAgICAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgZm9y
IEhUTUwgY29udGVudCwgdGhlcmUncyBubyBwb2ludCBpbiBjYWNoaW5nIGRpcmVjdGx5IGNvbXBv
c2l0ZWQKICAgICAgICAgLy8gY29udGVudCBsaWtlIGltYWdlcyBvciBzb2xpZCByZWN0YW5nbGVz
LgotICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVudC5jb250ZW50VHlwZSA9PSBIVE1MQ29udGVu
dFR5cGUpCi0gICAgICAgICAgICByZWNhY2hlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRh
dGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3Vu
ZGluZ1JlY3QoKSk7Ci0gICAgICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBR
UmVnaW9uKCk7CisgICAgICAgIGlmIChtX3BlbmRpbmdDb250ZW50LmNvbnRlbnRUeXBlID09IEhU
TUxDb250ZW50VHlwZSkgeworICAgICAgICAgICAgaWYgKG1fcGVuZGluZ0NvbnRlbnQudXBkYXRl
QWxsKQorICAgICAgICAgICAgICAgIHVwZGF0ZSgpOworICAgICAgICAgICAgZWxzZQorICAgICAg
ICAgICAgICAgIHVwZGF0ZShtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlLmJvdW5kaW5n
UmVjdCgpKTsKKyAgICAgICAgICAgIHJlY2FjaGUoKTsKKyAgICAgICAgfQogICAgIH0KIAogICAg
IGlmICgobV9jaGFuZ2VNYXNrICYgQmFja2dyb3VuZENvbG9yQ2hhbmdlKQpAQCAtNzA3LDcgKzcx
Miw2IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0SW1wbDo6Zmx1c2hDaGFuZ2VzKGJvb2wgcmVjdXJz
aXZlLCBib29sIGZvcmNlVXBkYXRlVHJhbnNmb3JtCiAgICAgbV9jdXJyZW50Q29udGVudC5tZWRp
YUxheWVyID0gbV9wZW5kaW5nQ29udGVudC5tZWRpYUxheWVyOwogICAgIG1fY3VycmVudENvbnRl
bnQuYmFja2dyb3VuZENvbG9yID0gbV9wZW5kaW5nQ29udGVudC5iYWNrZ3JvdW5kQ29sb3I7CiAg
ICAgbV9jdXJyZW50Q29udGVudC5jb250ZW50c0JhY2tncm91bmRDb2xvciA9IG1fcGVuZGluZ0Nv
bnRlbnQuY29udGVudHNCYWNrZ3JvdW5kQ29sb3I7Ci0gICAgbV9wZW5kaW5nQ29udGVudC5yZWdp
b25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKICAgICBtX2NoYW5nZU1hc2sgPSBOb0NoYW5nZXM7CiAK
IGFmdGVyTGF5ZXJDaGFuZ2VzOgpAQCAtNzYzLDcgKzc2Nyw3IEBAIEdyYXBoaWNzTGF5ZXI6OkNv
bXBvc2l0aW5nQ29vcmRpbmF0ZXNPcmllbnRhdGlvbiBHcmFwaGljc0xheWVyOjpjb21wb3NpdGlu
Z0Nvb3JkCiAqLwogdm9pZCBHcmFwaGljc0xheWVyUXQ6OnNldE5lZWRzRGlzcGxheSgpCiB7Ci0g
ICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbihRUmVj
dChRUG9pbnQoMCwgMCksIFFTaXplKHNpemUoKS53aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKSk7
CisgICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCA9IHRydWU7CiAgICAgbV9p
bXBsLT5ub3RpZnlDaGFuZ2UoR3JhcGhpY3NMYXllclF0SW1wbDo6RGlzcGxheUNoYW5nZSk7CiB9
CiAKQEAgLTc3MSw2ICs3NzUsOCBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0TmVlZHNEaXNw
bGF5KCkKICovCiB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0TmVlZHNEaXNwbGF5SW5SZWN0KGNv
bnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKKyAgICBpZiAobV9pbXBsLT5tX3BlbmRpbmdDb250ZW50
LnVwZGF0ZUFsbCkKKyAgICAgICAgcmV0dXJuOwogICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVu
dC5yZWdpb25Ub1VwZGF0ZSB8PSBRUmVjdEYocmVjdCkudG9BbGlnbmVkUmVjdCgpOwogICAgIG1f
aW1wbC0+bm90aWZ5Q2hhbmdlKEdyYXBoaWNzTGF5ZXJRdEltcGw6OkRpc3BsYXlDaGFuZ2UpOwog
fQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>58808</attachid>
            <date>2010-06-15 12:53:29 -0700</date>
            <delta_ts>2010-06-22 16:09:21 -0700</delta_ts>
            <desc>Putting up my patch and No&apos;am&apos;s changes for review now that I finally tested it</desc>
            <filename>bug-40377.patch</filename>
            <type>text/plain</type>
            <size>6966</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBkZGM0YTZkNWQ4MWIzNTVmM2RjMmM3MjEwODgxOGMyNDY2ZGFhODlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogRnJpLCAxMSBKdW4gMjAxMCAyMzozNTowMyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMgYSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkg
aXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0aGVuCgpidWcgLSA0MDM3NwotLS0KIFdlYkNv
cmUvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTUgKysrKysr
KysKIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcCB8ICAg
NDIgKysrKysrKysrKystLS0tLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCAzNiBpbnNlcnRpb25z
KCspLCAyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkOWQ3MzkuLjc0NzJhZjcgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIw
MTAtMDYtMDkgIFNhbSBNYWdudXNvbiAgPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFdoZW4gUXQgZ3Jh
cGhpY3NsYXllciBnZXRzIGEgc2V0TmVlZHNEaXNwbGF5IChpZSBhbGwpIGl0IHNob3VsZG4ndCBy
ZWNvcmQgdGhlIHJlY3QgdGhlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NDAzNzcKKworICAgICAgICBVc2luZyB0aGUgdXBkYXRlQWxsIGZsYWcgdGhh
dCB3YXMgdGhlcmUgYWxsIGFsb25nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBh
IG1pbm9yIG9wdGltaXphdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dy
YXBoaWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBs
Ojp1cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1w
bDo6Zmx1c2hDaGFuZ2VzKToKKwogMjAxMC0wNi0wNyAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2Vs
eW4udHVyY290dGVAbm9raWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNt
YW5uLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xh
eWVyUXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQu
Y3BwCmluZGV4IGJlNDRmY2EuLmUxZmIyMDMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6
CiAgICAgLy8gV2UgcHJlZmVyIHRvIHVzZSBvdXIgb3duIGNhY2hpbmcgYmVjYXVzZSBpdCBnaXZl
cyB1cyBhIGhpZ2hlciBsZXZlbCBvZiBncmFudWxhcml0eSB0aGFuIFFHcmFwaGljc0l0ZW0gY2Fj
aGUgbW9kZXMgLQogICAgIC8vIHNvbWV0aW1lcyB3ZSBuZWVkIHRvIGNhY2hlIHRoZSBjb250ZW50
cyBldmVuIGB0aG91Z2ggdGhlIGl0ZW0gbmVlZHMgdG8gYmUgdXBkYXRlZCwgZS5nLiB3aGVuIHRo
ZSBiYWNrZ3JvdW5kLWNvbG9yIGlzIGNoYW5nZWQuCiAgICAgLy8gVE9ETzogaW52ZXN0aWdhdGUg
aWYgUUdyYXBoaWNzSXRlbSBjYWNoaW5nIGNhbiBiZSBpbXByb3ZlZCB0byBzdXBwb3J0IHRoYXQg
b3V0IG9mIHRoZSBib3guCi0gICAgUVBpeG1hcCByZWNhY2hlKGNvbnN0IFFSZWdpb24mKTsKKyAg
ICBRUGl4bWFwIHJlY2FjaGUoYm9vbCk7CiAKICAgICAvLyBjYWxsZWQgd2hlbiB0aGUgY29tcG9z
aXRvciBpcyByZWFkeSBmb3IgdXMgdG8gc2hvdyB0aGUgY2hhbmdlcyBvbiBzY3JlZW4KICAgICAv
LyB0aGlzIGlzIGNhbGxlZCBpbmRpcmVjdGx5IGZyb20gQ2hyb21lQ2xpZW50UXQ6OnNldE5lZWRz
T25lU2hvdERyYXdpbmdTeW5jaHJvbml6YXRpb24KQEAgLTIwMCw3ICsyMDAsNyBAQCBwdWJsaWM6
CiAgICAgICAgIFN0YXRpY0NvbnRlbnRUeXBlIGNvbnRlbnRUeXBlOwogICAgICAgICBmbG9hdCBv
cGFjaXR5OwogICAgICAgICBDb250ZW50RGF0YSgpCi0gICAgICAgICAgICAgICAgOiB1cGRhdGVB
bGwoZmFsc2UpCisgICAgICAgICAgICAgICAgOiB1cGRhdGVBbGwodHJ1ZSkKICAgICAgICAgICAg
ICAgICAsIGNvbnRlbnRUeXBlKEhUTUxDb250ZW50VHlwZSkKICAgICAgICAgICAgICAgICAsIG9w
YWNpdHkoMS5mKQogICAgICAgICB7CkBAIC0yOTksMTYgKzI5OSwxOCBAQCBjb25zdCBHcmFwaGlj
c0xheWVyUXRJbXBsKiBHcmFwaGljc0xheWVyUXRJbXBsOjpyb290TGF5ZXIoKSBjb25zdAogICAg
IHJldHVybiB0aGlzOwogfQogCi0KLQotUVBpeG1hcCBHcmFwaGljc0xheWVyUXRJbXBsOjpyZWNh
Y2hlKGNvbnN0IFFSZWdpb24mIHJlZ2lvblRvVXBkYXRlKQorUVBpeG1hcCBHcmFwaGljc0xheWVy
UXRJbXBsOjpyZWNhY2hlKGJvb2wgc2VuZFVwZGF0ZSkKIHsKLSAgICBpZiAoIW1fbGF5ZXItPmRy
YXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXplLmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIFFQaXhtYXAoKTsKKyAgICBRUmVnaW9uIHJlZ2lvbiA9IG1fcGVuZGluZ0Nv
bnRlbnQudXBkYXRlQWxsID8gYm91bmRpbmdSZWN0KCkudG9SZWN0KCkgOiBtX3BlbmRpbmdDb250
ZW50LnJlZ2lvblRvVXBkYXRlOworICAgIG1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxsID0gZmFs
c2U7CisgICAgbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKIAot
ICAgIFFSZWdpb24gcmVnaW9uID0gcmVnaW9uVG9VcGRhdGU7CiAgICAgUVBpeG1hcCBwaXhtYXA7
CiAKKyAgICAvLyBOb3RoaW5nIHRvIHJlbmRlcgorICAgIGlmICghbV9sYXllci0+ZHJhd3NDb250
ZW50KCkgfHwgbV9zaXplLmlzRW1wdHkoKSB8fCFtX3NpemUuaXNWYWxpZCgpKQorICAgICAgICBy
ZXR1cm4gcGl4bWFwOworCiAgICAgLy8gV2UgbWlnaHQgYmUgZHJhd2luZyBpbnRvIGFuIGV4aXN0
aW5nIGNhY2hlLgogICAgIGlmICghUVBpeG1hcENhY2hlOjpmaW5kKG1fYmFja2luZ1N0b3JlS2V5
LCAmcGl4bWFwKSkKICAgICAgICAgcmVnaW9uID0gUVJlZ2lvbihRUmVjdCgwLCAwLCBtX3NpemUu
d2lkdGgoKSwgbV9zaXplLmhlaWdodCgpKSk7CkBAIC0zMzEsNyArMzMzLDEwIEBAIFFQaXhtYXAg
R3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0
ZSkKICAgICBwYWludGVyLnNldENvbXBvc2l0aW9uTW9kZShRUGFpbnRlcjo6Q29tcG9zaXRpb25N
b2RlX1NvdXJjZU92ZXIpOwogICAgIG1fbGF5ZXItPnBhaW50R3JhcGhpY3NMYXllckNvbnRlbnRz
KGdjLCByZWdpb24uYm91bmRpbmdSZWN0KCkpOwogCi0gICAgbV9iYWNraW5nU3RvcmVLZXkgPSBR
UGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOyAgICAKKyAgICBtX2JhY2tpbmdTdG9yZUtleSA9
IFFQaXhtYXBDYWNoZTo6aW5zZXJ0KHBpeG1hcCk7CisKKyAgICBpZiAoc2VuZFVwZGF0ZSkKKyAg
ICAgICAgdXBkYXRlKHJlZ2lvbi5ib3VuZGluZ1JlY3QoKSk7CiAgICAgcmV0dXJuIHBpeG1hcDsK
IH0KIApAQCAtNDQ0LDEwICs0NDksNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OnBhaW50
KFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25HcmFwaGljc0l0ZQogICAgIHN3
aXRjaCAobV9jdXJyZW50Q29udGVudC5jb250ZW50VHlwZSkgewogICAgIGNhc2UgSFRNTENvbnRl
bnRUeXBlOgogICAgICAgICBpZiAobV9zdGF0ZS5kcmF3c0NvbnRlbnQpIHsKLSAgICAgICAgICAg
IFFQaXhtYXAgYmFja2luZ1N0b3JlOwotICAgICAgICAgICAgLy8gV2UgbWlnaHQgbmVlZCB0byBy
ZWNhY2hlLCBpbiBjYXNlIHdlIHRyeSB0byBwYWludCBhbmQgdGhlIGNhY2hlIHdhcyBwdXJnZWQg
KGUuZy4gaWYgaXQgd2FzIGZ1bGwpLgotICAgICAgICAgICAgaWYgKCFRUGl4bWFwQ2FjaGU6OmZp
bmQobV9iYWNraW5nU3RvcmVLZXksICZiYWNraW5nU3RvcmUpIHx8IGJhY2tpbmdTdG9yZS5zaXpl
KCkgIT0gbV9zaXplLnRvU2l6ZSgpKQotICAgICAgICAgICAgICAgIGJhY2tpbmdTdG9yZSA9IHJl
Y2FjaGUoUVJlZ2lvbihtX3N0YXRlLmNvbnRlbnRzUmVjdCkpOworICAgICAgICAgICAgY29uc3Qg
UVBpeG1hcCBiYWNraW5nU3RvcmUgPSByZWNhY2hlKGZhbHNlKTsKICAgICAgICAgICAgIHBhaW50
ZXItPmRyYXdQaXhtYXAoMCwgMCwgYmFja2luZ1N0b3JlKTsKICAgICAgICAgfQogICAgICAgICBi
cmVhazsKQEAgLTYxNyw5ICs2MTksNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdEltcGw6OmZsdXNo
Q2hhbmdlcyhib29sIHJlY3Vyc2l2ZSwgYm9vbCBmb3JjZVVwZGF0ZVRyYW5zZm9ybQogICAgICAg
ICAvLyBXZSBvbmx5IG5lZWQgdG8gZG8gdGhpcyBmb3IgSFRNTCBjb250ZW50LCB0aGVyZSdzIG5v
IHBvaW50IGluIGNhY2hpbmcgZGlyZWN0bHkgY29tcG9zaXRlZAogICAgICAgICAvLyBjb250ZW50
IGxpa2UgaW1hZ2VzIG9yIHNvbGlkIHJlY3RhbmdsZXMuCiAgICAgICAgIGlmIChtX3BlbmRpbmdD
b250ZW50LmNvbnRlbnRUeXBlID09IEhUTUxDb250ZW50VHlwZSkKLSAgICAgICAgICAgIHJlY2Fj
aGUobV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSk7Ci0gICAgICAgIHVwZGF0ZShtX3Bl
bmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlLmJvdW5kaW5nUmVjdCgpKTsKLSAgICAgICAgbV9w
ZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSA9IFFSZWdpb24oKTsKKyAgICAgICAgICAgIHJl
Y2FjaGUodHJ1ZSk7CiAgICAgfQogCiAgICAgaWYgKChtX2NoYW5nZU1hc2sgJiBCYWNrZ3JvdW5k
Q29sb3JDaGFuZ2UpICYmIChtX3BlbmRpbmdDb250ZW50LmJhY2tncm91bmRDb2xvciAhPSBtX2N1
cnJlbnRDb250ZW50LmJhY2tncm91bmRDb2xvcikpCkBAIC02NDUsNyArNjQ1LDYgQEAgdm9pZCBH
cmFwaGljc0xheWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9y
Y2VVcGRhdGVUcmFuc2Zvcm0KICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhTGF5ZXIgPSBtX3Bl
bmRpbmdDb250ZW50Lm1lZGlhTGF5ZXI7CiAgICAgbV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5k
Q29sb3IgPSBtX3BlbmRpbmdDb250ZW50LmJhY2tncm91bmRDb2xvcjsKICAgICBtX2N1cnJlbnRD
b250ZW50LmNvbnRlbnRzQmFja2dyb3VuZENvbG9yID0gbV9wZW5kaW5nQ29udGVudC5jb250ZW50
c0JhY2tncm91bmRDb2xvcjsKLSAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0g
UVJlZ2lvbigpOwogICAgIG1fY2hhbmdlTWFzayA9IE5vQ2hhbmdlczsKIAogCkBAIC02NTQsNyAr
NjUzLDcgQEAgYWZ0ZXJMYXllckNoYW5nZXM6CiAgICAgICAgIHVwZGF0ZVRyYW5zZm9ybSgpOwog
CiAgICAgaWYgKCFyZWN1cnNpdmUpCi0gICAgICAgIHJldHVybjsgICAgCisgICAgICAgIHJldHVy
bjsKIAogICAgIFFMaXN0PFFHcmFwaGljc0l0ZW0qPiBjaGlsZHJlbiA9IGNoaWxkSXRlbXMoKTsK
ICAgICBpZiAobV9zdGF0ZS5tYXNrTGF5ZXIpCkBAIC02OTksMTQgKzY5OCwxNSBAQCBHcmFwaGlj
c0xheWVyOjpDb21wb3NpdGluZ0Nvb3JkaW5hdGVzT3JpZW50YXRpb24gR3JhcGhpY3NMYXllcjo6
Y29tcG9zaXRpbmdDb29yZAogLy8gcmVpbXAgZnJvbSBHcmFwaGljc0xheWVyLmg6IHdlJ2xsIG5l
ZWQgdG8gdXBkYXRlIHRoZSB3aG9sZSBkaXNwbGF5LCBhbmQgd2UgY2FuJ3QgY291bnQgb24gdGhl
IGN1cnJlbnQgc2l6ZSBiZWNhdXNlIGl0IG1pZ2h0IGNoYW5nZQogdm9pZCBHcmFwaGljc0xheWVy
UXQ6OnNldE5lZWRzRGlzcGxheSgpCiB7Ci0gICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJl
Z2lvblRvVXBkYXRlID0gUVJlZ2lvbihRUmVjdChRUG9pbnQoMCwgMCksIFFTaXplKHNpemUoKS53
aWR0aCgpLCBzaXplKCkuaGVpZ2h0KCkpKSk7CisgICAgICAgIG1faW1wbC0+bV9wZW5kaW5nQ29u
dGVudC51cGRhdGVBbGwgPSB0cnVlOwogICAgIG1faW1wbC0+bm90aWZ5Q2hhbmdlKEdyYXBoaWNz
TGF5ZXJRdEltcGw6OkRpc3BsYXlDaGFuZ2UpOwogfQogCiAvLyByZWltcCBmcm9tIEdyYXBoaWNz
TGF5ZXIuaAogdm9pZCBHcmFwaGljc0xheWVyUXQ6OnNldE5lZWRzRGlzcGxheUluUmVjdChjb25z
dCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgbV9pbXBsLT5tX3BlbmRpbmdDb250ZW50LnJlZ2lv
blRvVXBkYXRlfD0gUVJlY3RGKHJlY3QpLnRvQWxpZ25lZFJlY3QoKTsKKyAgICBpZiAoICFtX2lt
cGwtPm1fcGVuZGluZ0NvbnRlbnQudXBkYXRlQWxsICkKKyAgICAgICAgbV9pbXBsLT5tX3BlbmRp
bmdDb250ZW50LnJlZ2lvblRvVXBkYXRlIHw9IFFSZWN0RihyZWN0KS50b0FsaWduZWRSZWN0KCk7
CiAgICAgbV9pbXBsLT5ub3RpZnlDaGFuZ2UoR3JhcGhpY3NMYXllclF0SW1wbDo6RGlzcGxheUNo
YW5nZSk7CiB9CiAKQEAgLTkyOCw3ICs5MjgsNyBAQCB2b2lkIEdyYXBoaWNzTGF5ZXJRdDo6c2V0
Q29udGVudHNUb0ltYWdlKEltYWdlKiBpbWFnZSkKICAgICAgICAgICAgIG1faW1wbC0+bV9wZW5k
aW5nQ29udGVudC5waXhtYXAgPSAqcHhtOwogICAgICAgICAgICAgbV9pbXBsLT5tX3BlbmRpbmdD
b250ZW50LmNvbnRlbnRUeXBlID0gR3JhcGhpY3NMYXllclF0SW1wbDo6UGl4bWFwQ29udGVudFR5
cGU7CiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gICAgICAgIAorICAgICAgICB9CiAg
ICAgfQogICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5waXhtYXAgPSBRUGl4bWFwKCk7CiB9
Ci0tIAoxLjcuMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59432</attachid>
            <date>2010-06-22 16:09:21 -0700</date>
            <delta_ts>2010-06-22 16:26:39 -0700</delta_ts>
            <desc>Rediff against trunk</desc>
            <filename>bug-40377.patch</filename>
            <type>text/plain</type>
            <size>6388</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBiZTQyMTdmOGU1ODMxYjEzZmViMjJhMGM5YmI4MjY5MDE1ZDgwNTE3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogTW9uLCAyMSBKdW4gMjAxMCAyMDo1ODoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMgYSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkg
aXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0aGVuCgpidWctNDAzNzcKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgIDQy
ICsrKysrKysrKysrKystLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCsp
LCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDY5YjE2NzkuLmMwZjEzZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAt
MDYtMDkgIFNhbSBNYWdudXNvbiAgPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFdoZW4gUXQgZ3JhcGhp
Y3NsYXllciBnZXRzIGEgc2V0TmVlZHNEaXNwbGF5IChpZSBhbGwpIGl0IHNob3VsZG4ndCByZWNv
cmQgdGhlIHJlY3QgdGhlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAzNzcKKworICAgICAgICBVc2luZyB0aGUgdXBkYXRlQWxsIGZsYWcgdGhhdCB3
YXMgdGhlcmUgYWxsIGFsb25nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBhIG1p
bm9yIG9wdGltaXphdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjp1
cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6
Zmx1c2hDaGFuZ2VzKToKKwogMjAxMC0wNi0yMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYxNTg1
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVy
UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3Bw
CmluZGV4IDhlZDBkODkuLmI2NGIxYTkgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gUUdyYXBoaWNzSXRlbSBjYWNoZSBtb2RlcyAtIFNvbWV0aW1lcyB3ZSBuZWVkIHRvIGNh
Y2hlIHRoZSBjb250ZW50cyBldmVuIHRob3VnaCB0aGUgaXRlbQogICAgIC8vIG5lZWRzIHRvIGJl
IHVwZGF0ZWQsIGUuZy4gd2hlbiB0aGUgYmFja2dyb3VuZC1jb2xvciBpcyBjaGFuZ2VkLgogICAg
IC8vIFRPRE86IGludmVzdGlnYXRlIGlmIFFHcmFwaGljc0l0ZW0gY2FjaGluZyBjYW4gYmUgaW1w
cm92ZWQgdG8gc3VwcG9ydCB0aGF0IG91dCBvZiB0aGUgYm94LgotICAgIFFQaXhtYXAgcmVjYWNo
ZShjb25zdCBRUmVnaW9uJik7CisgICAgUVBpeG1hcCByZWNhY2hlKGJvb2wpOwogCiAgICAgLy8g
Q2FsbGVkIHdoZW4gdGhlIGNvbXBvc2l0b3IgaXMgcmVhZHkgZm9yIHVzIHRvIHNob3cgdGhlIGNo
YW5nZXMgb24gc2NyZWVuLgogICAgIC8vIFRoaXMgaXMgY2FsbGVkIGluZGlyZWN0bHkgZnJvbSBD
aHJvbWVDbGllbnRRdDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbgpAQCAt
MjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKIAogICAgICAg
ICBDb250ZW50RGF0YSgpCi0gICAgICAgICAgICA6IHVwZGF0ZUFsbChmYWxzZSkKKyAgICAgICAg
ICAgIDogdXBkYXRlQWxsKHRydWUpCiAgICAgICAgICAgICAsIGNvbnRlbnRUeXBlKEhUTUxDb250
ZW50VHlwZSkKICAgICAgICAgICAgICwgb3BhY2l0eSgxLmYpCiAgICAgICAgIHsKQEAgLTMzNywx
NCArMzM3LDE4IEBAIGNvbnN0IEdyYXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnJvb3RMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLVFQaXhtYXAgR3Jh
cGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkK
K1FQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShib29sIHNlbmRVcGRhdGUpCiB7
Ci0gICAgaWYgKCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBtX3NpemUuaXNFbXB0eSgpIHx8
IW1fc2l6ZS5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBRUGl4bWFwKCk7CisgICAgUVJlZ2lv
biByZWdpb24gPSBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCA/IGJvdW5kaW5nUmVjdCgpLnRv
UmVjdCgpIDogbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZTsKKyAgICBtX3BlbmRpbmdD
b250ZW50LnVwZGF0ZUFsbCA9IGZhbHNlOworICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9V
cGRhdGUgPSBRUmVnaW9uKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRl
OwogICAgIFFQaXhtYXAgcGl4bWFwOwogCisgICAgLy8gTm90aGluZyB0byByZW5kZXIKKyAgICBp
ZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXpl
LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHBpeG1hcDsKKwogICAgIC8vIFdlIG1pZ2h0IGJl
IGRyYXdpbmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KICAgICBpZiAoIVFQaXhtYXBDYWNoZTo6
ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCiAgICAgICAgIHJlZ2lvbiA9IFFSZWdp
b24oUVJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOwpAQCAtMzY5
LDYgKzM3Myw4IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBR
UmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBwYWludGVyLmVuZCgpOwogCiAgICAgbV9iYWNr
aW5nU3RvcmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOworICAgIGlmIChzZW5k
VXBkYXRlKQorICAgICAgICB1cGRhdGUocmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKICAgICByZXR1
cm4gcGl4bWFwOwogfQogCkBAIC00ODUsMTAgKzQ5MSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNz
SXRlCiAgICAgc3dpdGNoIChtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRUeXBlKSB7CiAgICAgY2Fz
ZSBIVE1MQ29udGVudFR5cGU6CiAgICAgICAgIGlmIChtX3N0YXRlLmRyYXdzQ29udGVudCkgewot
ICAgICAgICAgICAgUVBpeG1hcCBiYWNraW5nU3RvcmU7Ci0gICAgICAgICAgICAvLyBXZSBtaWdo
dCBuZWVkIHRvIHJlY2FjaGUsIGluIGNhc2Ugd2UgdHJ5IHRvIHBhaW50IGFuZCB0aGUgY2FjaGUg
d2FzIHB1cmdlZCAoZS5nLiBpZiBpdCB3YXMgZnVsbCkuCi0gICAgICAgICAgICBpZiAoIVFQaXht
YXBDYWNoZTo6ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJmJhY2tpbmdTdG9yZSkgfHwgYmFja2lu
Z1N0b3JlLnNpemUoKSAhPSBtX3NpemUudG9TaXplKCkpCi0gICAgICAgICAgICAgICAgYmFja2lu
Z1N0b3JlID0gcmVjYWNoZShRUmVnaW9uKG1fc3RhdGUuY29udGVudHNSZWN0KSk7CisgICAgICAg
ICAgICBjb25zdCBRUGl4bWFwIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUoZmFsc2UpOwogICAgICAg
ICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwpAQCAtNjc0LDEzICs2NzcsMjAgQEAgdm9pZCBHcmFwaGljc0xheWVy
UXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFu
c2Zvcm0KICAgICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlzcGxheUNo
YW5nZSkgeworI2lmIGRlZmluZWQoIFFUX0dSQVBISUNTX0xBWUVSX05PX1JFQ0FDSEVfT05fRElT
UExBWV9DSEFOR0UgKQorICAgICAgICBRUmVjdCByZWN0OworICAgICAgICBpZiAoIG1fcGVuZGlu
Z0NvbnRlbnQudXBkYXRlQWxsICkKKyAgICAgICAgICAgIHJlY3QgPSBib3VuZGluZ1JlY3QoKS50
b1JlY3QoKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgcmVjdCA9IG1fcGVuZGluZ0NvbnRl
bnQucmVnaW9uVG9VcGRhdGUuYm91bmRpbmdSZWN0KCk7CisgICAgICAgIHVwZGF0ZSggcmVjdCAp
OworI2Vsc2UKICAgICAgICAgLy8gUmVjYWNoZSBub3c6IGFsbCB0aGUgY29udGVudCBpcyByZWFk
eSBhbmQgd2UgZG9uJ3Qgd2FudCB0byB3YWl0IHVudGlsIHRoZSBwYWludCBldmVudC4KICAgICAg
ICAgLy8gV2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgZm9yIEhUTUwgY29udGVudCwgdGhlcmUncyBu
byBwb2ludCBpbiBjYWNoaW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQKICAgICAgICAgLy8gY29udGVu
dCBsaWtlIGltYWdlcyBvciBzb2xpZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5n
Q29udGVudC5jb250ZW50VHlwZSA9PSBIVE1MQ29udGVudFR5cGUpCi0gICAgICAgICAgICByZWNh
Y2hlKG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9w
ZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7Ci0gICAgICAgIG1f
cGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CisgICAgICAgICAgICBy
ZWNhY2hlKHRydWUpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKChtX2NoYW5nZU1hc2sgJiBC
YWNrZ3JvdW5kQ29sb3JDaGFuZ2UpCkBAIC03MDcsNyArNzE3LDYgQEAgdm9pZCBHcmFwaGljc0xh
eWVyUXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVU
cmFuc2Zvcm0KICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhTGF5ZXIgPSBtX3BlbmRpbmdDb250
ZW50Lm1lZGlhTGF5ZXI7CiAgICAgbV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IgPSBt
X3BlbmRpbmdDb250ZW50LmJhY2tncm91bmRDb2xvcjsKICAgICBtX2N1cnJlbnRDb250ZW50LmNv
bnRlbnRzQmFja2dyb3VuZENvbG9yID0gbV9wZW5kaW5nQ29udGVudC5jb250ZW50c0JhY2tncm91
bmRDb2xvcjsKLSAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigp
OwogICAgIG1fY2hhbmdlTWFzayA9IE5vQ2hhbmdlczsKIAogYWZ0ZXJMYXllckNoYW5nZXM6CkBA
IC03NjMsNyArNzcyLDcgQEAgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09y
aWVudGF0aW9uIEdyYXBoaWNzTGF5ZXI6OmNvbXBvc2l0aW5nQ29vcmQKICovCiB2b2lkIEdyYXBo
aWNzTGF5ZXJRdDo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKLSAgICBtX2ltcGwtPm1fcGVuZGluZ0Nv
bnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgUVNpemUo
c2l6ZSgpLndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkpKTsKKyAgICBtX2ltcGwtPm1fcGVuZGlu
Z0NvbnRlbnQudXBkYXRlQWxsID0gdHJ1ZTsKICAgICBtX2ltcGwtPm5vdGlmeUNoYW5nZShHcmFw
aGljc0xheWVyUXRJbXBsOjpEaXNwbGF5Q2hhbmdlKTsKIH0KIApAQCAtNzcxLDcgKzc4MCw4IEBA
IHZvaWQgR3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXkoKQogKi8KIHZvaWQgR3JhcGhp
Y3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQog
ewotICAgIG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSB8PSBRUmVjdEYo
cmVjdCkudG9BbGlnbmVkUmVjdCgpOworICAgIGlmICggIW1faW1wbC0+bV9wZW5kaW5nQ29udGVu
dC51cGRhdGVBbGwgKQorICAgICAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9V
cGRhdGUgfD0gUVJlY3RGKHJlY3QpLnRvQWxpZ25lZFJlY3QoKTsKICAgICBtX2ltcGwtPm5vdGlm
eUNoYW5nZShHcmFwaGljc0xheWVyUXRJbXBsOjpEaXNwbGF5Q2hhbmdlKTsKIH0KIAotLSAKMS43
LjEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>59440</attachid>
            <date>2010-06-22 16:26:39 -0700</date>
            <delta_ts>2010-10-06 20:36:59 -0700</delta_ts>
            <desc>...and fix style issue.</desc>
            <filename>bug-40377.patch</filename>
            <type>text/plain</type>
            <size>6382</size>
            <attacher name="Sam Magnuson">smagnuso</attacher>
            
              <data encoding="base64">RnJvbSBkYjlhOGUzYjZjYzRlM2IxYzdmNDA3MTA2YmJlNmEzYmZlNzI5ZThmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBTYW0gTWFnbnVzb24gPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4K
RGF0ZTogTW9uLCAyMSBKdW4gMjAxMCAyMDo1ODoxNyAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIFtR
dF0gV2hlbiBRdCBncmFwaGljc2xheWVyIGdldHMgYSBzZXROZWVkc0Rpc3BsYXkgKGllIGFsbCkg
aXQgc2hvdWxkbid0IHJlY29yZCB0aGUgcmVjdCB0aGVuCgpidWctNDAzNzcKLS0tCiBXZWJDb3Jl
L0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysr
CiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAgfCAgIDQy
ICsrKysrKysrKysrKystLS0tLS0tLQogMiBmaWxlcyBjaGFuZ2VkLCA0MSBpbnNlcnRpb25zKCsp
LCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IDY5YjE2NzkuLmMwZjEzZDIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
Q2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAt
MDYtMDkgIFNhbSBNYWdudXNvbiAgPHNtYWdudXNvbkBuZXRmbGl4LmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIFdoZW4gUXQgZ3JhcGhp
Y3NsYXllciBnZXRzIGEgc2V0TmVlZHNEaXNwbGF5IChpZSBhbGwpIGl0IHNob3VsZG4ndCByZWNv
cmQgdGhlIHJlY3QgdGhlbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDAzNzcKKworICAgICAgICBVc2luZyB0aGUgdXBkYXRlQWxsIGZsYWcgdGhhdCB3
YXMgdGhlcmUgYWxsIGFsb25nLgorCisgICAgICAgIE5vIG5ldyB0ZXN0czogdGhpcyBpcyBhIG1p
bm9yIG9wdGltaXphdGlvbi4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0dyYXBo
aWNzTGF5ZXJRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0xheWVyUXRJbXBsOjp1
cGRhdGVUcmFuc2Zvcm0pOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NMYXllclF0SW1wbDo6
Zmx1c2hDaGFuZ2VzKToKKwogMjAxMC0wNi0yMSAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3
LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjYxNTg1
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVy
UXQuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9HcmFwaGljc0xheWVyUXQuY3Bw
CmluZGV4IDhlZDBkODkuLmU4ZTM2NzggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvcXQvR3JhcGhpY3NMYXllclF0LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3F0L0dyYXBoaWNzTGF5ZXJRdC5jcHAKQEAgLTE2Nyw3ICsxNjcsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gUUdyYXBoaWNzSXRlbSBjYWNoZSBtb2RlcyAtIFNvbWV0aW1lcyB3ZSBuZWVkIHRvIGNh
Y2hlIHRoZSBjb250ZW50cyBldmVuIHRob3VnaCB0aGUgaXRlbQogICAgIC8vIG5lZWRzIHRvIGJl
IHVwZGF0ZWQsIGUuZy4gd2hlbiB0aGUgYmFja2dyb3VuZC1jb2xvciBpcyBjaGFuZ2VkLgogICAg
IC8vIFRPRE86IGludmVzdGlnYXRlIGlmIFFHcmFwaGljc0l0ZW0gY2FjaGluZyBjYW4gYmUgaW1w
cm92ZWQgdG8gc3VwcG9ydCB0aGF0IG91dCBvZiB0aGUgYm94LgotICAgIFFQaXhtYXAgcmVjYWNo
ZShjb25zdCBRUmVnaW9uJik7CisgICAgUVBpeG1hcCByZWNhY2hlKGJvb2wpOwogCiAgICAgLy8g
Q2FsbGVkIHdoZW4gdGhlIGNvbXBvc2l0b3IgaXMgcmVhZHkgZm9yIHVzIHRvIHNob3cgdGhlIGNo
YW5nZXMgb24gc2NyZWVuLgogICAgIC8vIFRoaXMgaXMgY2FsbGVkIGluZGlyZWN0bHkgZnJvbSBD
aHJvbWVDbGllbnRRdDo6c2V0TmVlZHNPbmVTaG90RHJhd2luZ1N5bmNocm9uaXphdGlvbgpAQCAt
MjExLDcgKzIxMSw3IEBAIHB1YmxpYzoKICAgICAgICAgZmxvYXQgb3BhY2l0eTsKIAogICAgICAg
ICBDb250ZW50RGF0YSgpCi0gICAgICAgICAgICA6IHVwZGF0ZUFsbChmYWxzZSkKKyAgICAgICAg
ICAgIDogdXBkYXRlQWxsKHRydWUpCiAgICAgICAgICAgICAsIGNvbnRlbnRUeXBlKEhUTUxDb250
ZW50VHlwZSkKICAgICAgICAgICAgICwgb3BhY2l0eSgxLmYpCiAgICAgICAgIHsKQEAgLTMzNywx
NCArMzM3LDE4IEBAIGNvbnN0IEdyYXBoaWNzTGF5ZXJRdEltcGwqIEdyYXBoaWNzTGF5ZXJRdElt
cGw6OnJvb3RMYXllcigpIGNvbnN0CiAgICAgcmV0dXJuIHRoaXM7CiB9CiAKLVFQaXhtYXAgR3Jh
cGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBRUmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkK
K1FQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShib29sIHNlbmRVcGRhdGUpCiB7
Ci0gICAgaWYgKCFtX2xheWVyLT5kcmF3c0NvbnRlbnQoKSB8fCBtX3NpemUuaXNFbXB0eSgpIHx8
IW1fc2l6ZS5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBRUGl4bWFwKCk7CisgICAgUVJlZ2lv
biByZWdpb24gPSBtX3BlbmRpbmdDb250ZW50LnVwZGF0ZUFsbCA/IGJvdW5kaW5nUmVjdCgpLnRv
UmVjdCgpIDogbV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZTsKKyAgICBtX3BlbmRpbmdD
b250ZW50LnVwZGF0ZUFsbCA9IGZhbHNlOworICAgIG1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9V
cGRhdGUgPSBRUmVnaW9uKCk7CiAKLSAgICBRUmVnaW9uIHJlZ2lvbiA9IHJlZ2lvblRvVXBkYXRl
OwogICAgIFFQaXhtYXAgcGl4bWFwOwogCisgICAgLy8gTm90aGluZyB0byByZW5kZXIKKyAgICBp
ZiAoIW1fbGF5ZXItPmRyYXdzQ29udGVudCgpIHx8IG1fc2l6ZS5pc0VtcHR5KCkgfHwhbV9zaXpl
LmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIHBpeG1hcDsKKwogICAgIC8vIFdlIG1pZ2h0IGJl
IGRyYXdpbmcgaW50byBhbiBleGlzdGluZyBjYWNoZS4KICAgICBpZiAoIVFQaXhtYXBDYWNoZTo6
ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJnBpeG1hcCkpCiAgICAgICAgIHJlZ2lvbiA9IFFSZWdp
b24oUVJlY3QoMCwgMCwgbV9zaXplLndpZHRoKCksIG1fc2l6ZS5oZWlnaHQoKSkpOwpAQCAtMzY5
LDYgKzM3Myw4IEBAIFFQaXhtYXAgR3JhcGhpY3NMYXllclF0SW1wbDo6cmVjYWNoZShjb25zdCBR
UmVnaW9uJiByZWdpb25Ub1VwZGF0ZSkKICAgICBwYWludGVyLmVuZCgpOwogCiAgICAgbV9iYWNr
aW5nU3RvcmVLZXkgPSBRUGl4bWFwQ2FjaGU6Omluc2VydChwaXhtYXApOworICAgIGlmIChzZW5k
VXBkYXRlKQorICAgICAgICB1cGRhdGUocmVnaW9uLmJvdW5kaW5nUmVjdCgpKTsKICAgICByZXR1
cm4gcGl4bWFwOwogfQogCkBAIC00ODUsMTAgKzQ5MSw3IEBAIHZvaWQgR3JhcGhpY3NMYXllclF0
SW1wbDo6cGFpbnQoUVBhaW50ZXIqIHBhaW50ZXIsIGNvbnN0IFFTdHlsZU9wdGlvbkdyYXBoaWNz
SXRlCiAgICAgc3dpdGNoIChtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRUeXBlKSB7CiAgICAgY2Fz
ZSBIVE1MQ29udGVudFR5cGU6CiAgICAgICAgIGlmIChtX3N0YXRlLmRyYXdzQ29udGVudCkgewot
ICAgICAgICAgICAgUVBpeG1hcCBiYWNraW5nU3RvcmU7Ci0gICAgICAgICAgICAvLyBXZSBtaWdo
dCBuZWVkIHRvIHJlY2FjaGUsIGluIGNhc2Ugd2UgdHJ5IHRvIHBhaW50IGFuZCB0aGUgY2FjaGUg
d2FzIHB1cmdlZCAoZS5nLiBpZiBpdCB3YXMgZnVsbCkuCi0gICAgICAgICAgICBpZiAoIVFQaXht
YXBDYWNoZTo6ZmluZChtX2JhY2tpbmdTdG9yZUtleSwgJmJhY2tpbmdTdG9yZSkgfHwgYmFja2lu
Z1N0b3JlLnNpemUoKSAhPSBtX3NpemUudG9TaXplKCkpCi0gICAgICAgICAgICAgICAgYmFja2lu
Z1N0b3JlID0gcmVjYWNoZShRUmVnaW9uKG1fc3RhdGUuY29udGVudHNSZWN0KSk7CisgICAgICAg
ICAgICBjb25zdCBRUGl4bWFwIGJhY2tpbmdTdG9yZSA9IHJlY2FjaGUoZmFsc2UpOwogICAgICAg
ICAgICAgcGFpbnRlci0+ZHJhd1BpeG1hcCgwLCAwLCBiYWNraW5nU3RvcmUpOwogICAgICAgICB9
CiAgICAgICAgIGJyZWFrOwpAQCAtNjc0LDEzICs2NzcsMjAgQEAgdm9pZCBHcmFwaGljc0xheWVy
UXRJbXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFu
c2Zvcm0KICAgICBlbHNlCiAjZW5kaWYKICAgICBpZiAobV9jaGFuZ2VNYXNrICYgRGlzcGxheUNo
YW5nZSkgeworI2lmIGRlZmluZWQoUVRfR1JBUEhJQ1NfTEFZRVJfTk9fUkVDQUNIRV9PTl9ESVNQ
TEFZX0NIQU5HRSkKKyAgICAgICAgUVJlY3QgcmVjdDsKKyAgICAgICAgaWYgKG1fcGVuZGluZ0Nv
bnRlbnQudXBkYXRlQWxsKQorICAgICAgICAgICAgcmVjdCA9IGJvdW5kaW5nUmVjdCgpLnRvUmVj
dCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICByZWN0ID0gbV9wZW5kaW5nQ29udGVudC5y
ZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKTsKKyAgICAgICAgdXBkYXRlKHJlY3QpOworI2Vs
c2UKICAgICAgICAgLy8gUmVjYWNoZSBub3c6IGFsbCB0aGUgY29udGVudCBpcyByZWFkeSBhbmQg
d2UgZG9uJ3Qgd2FudCB0byB3YWl0IHVudGlsIHRoZSBwYWludCBldmVudC4KICAgICAgICAgLy8g
V2Ugb25seSBuZWVkIHRvIGRvIHRoaXMgZm9yIEhUTUwgY29udGVudCwgdGhlcmUncyBubyBwb2lu
dCBpbiBjYWNoaW5nIGRpcmVjdGx5IGNvbXBvc2l0ZWQKICAgICAgICAgLy8gY29udGVudCBsaWtl
IGltYWdlcyBvciBzb2xpZCByZWN0YW5nbGVzLgogICAgICAgICBpZiAobV9wZW5kaW5nQ29udGVu
dC5jb250ZW50VHlwZSA9PSBIVE1MQ29udGVudFR5cGUpCi0gICAgICAgICAgICByZWNhY2hlKG1f
cGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUpOwotICAgICAgICB1cGRhdGUobV9wZW5kaW5n
Q29udGVudC5yZWdpb25Ub1VwZGF0ZS5ib3VuZGluZ1JlY3QoKSk7Ci0gICAgICAgIG1fcGVuZGlu
Z0NvbnRlbnQucmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKCk7CisgICAgICAgICAgICByZWNhY2hl
KHRydWUpOworI2VuZGlmCiAgICAgfQogCiAgICAgaWYgKChtX2NoYW5nZU1hc2sgJiBCYWNrZ3Jv
dW5kQ29sb3JDaGFuZ2UpCkBAIC03MDcsNyArNzE3LDYgQEAgdm9pZCBHcmFwaGljc0xheWVyUXRJ
bXBsOjpmbHVzaENoYW5nZXMoYm9vbCByZWN1cnNpdmUsIGJvb2wgZm9yY2VVcGRhdGVUcmFuc2Zv
cm0KICAgICBtX2N1cnJlbnRDb250ZW50Lm1lZGlhTGF5ZXIgPSBtX3BlbmRpbmdDb250ZW50Lm1l
ZGlhTGF5ZXI7CiAgICAgbV9jdXJyZW50Q29udGVudC5iYWNrZ3JvdW5kQ29sb3IgPSBtX3BlbmRp
bmdDb250ZW50LmJhY2tncm91bmRDb2xvcjsKICAgICBtX2N1cnJlbnRDb250ZW50LmNvbnRlbnRz
QmFja2dyb3VuZENvbG9yID0gbV9wZW5kaW5nQ29udGVudC5jb250ZW50c0JhY2tncm91bmRDb2xv
cjsKLSAgICBtX3BlbmRpbmdDb250ZW50LnJlZ2lvblRvVXBkYXRlID0gUVJlZ2lvbigpOwogICAg
IG1fY2hhbmdlTWFzayA9IE5vQ2hhbmdlczsKIAogYWZ0ZXJMYXllckNoYW5nZXM6CkBAIC03NjMs
NyArNzcyLDcgQEAgR3JhcGhpY3NMYXllcjo6Q29tcG9zaXRpbmdDb29yZGluYXRlc09yaWVudGF0
aW9uIEdyYXBoaWNzTGF5ZXI6OmNvbXBvc2l0aW5nQ29vcmQKICovCiB2b2lkIEdyYXBoaWNzTGF5
ZXJRdDo6c2V0TmVlZHNEaXNwbGF5KCkKIHsKLSAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQu
cmVnaW9uVG9VcGRhdGUgPSBRUmVnaW9uKFFSZWN0KFFQb2ludCgwLCAwKSwgUVNpemUoc2l6ZSgp
LndpZHRoKCksIHNpemUoKS5oZWlnaHQoKSkpKTsKKyAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRl
bnQudXBkYXRlQWxsID0gdHJ1ZTsKICAgICBtX2ltcGwtPm5vdGlmeUNoYW5nZShHcmFwaGljc0xh
eWVyUXRJbXBsOjpEaXNwbGF5Q2hhbmdlKTsKIH0KIApAQCAtNzcxLDcgKzc4MCw4IEBAIHZvaWQg
R3JhcGhpY3NMYXllclF0OjpzZXROZWVkc0Rpc3BsYXkoKQogKi8KIHZvaWQgR3JhcGhpY3NMYXll
clF0OjpzZXROZWVkc0Rpc3BsYXlJblJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogewotICAg
IG1faW1wbC0+bV9wZW5kaW5nQ29udGVudC5yZWdpb25Ub1VwZGF0ZSB8PSBRUmVjdEYocmVjdCku
dG9BbGlnbmVkUmVjdCgpOworICAgIGlmICggIW1faW1wbC0+bV9wZW5kaW5nQ29udGVudC51cGRh
dGVBbGwgKQorICAgICAgICBtX2ltcGwtPm1fcGVuZGluZ0NvbnRlbnQucmVnaW9uVG9VcGRhdGUg
fD0gUVJlY3RGKHJlY3QpLnRvQWxpZ25lZFJlY3QoKTsKICAgICBtX2ltcGwtPm5vdGlmeUNoYW5n
ZShHcmFwaGljc0xheWVyUXRJbXBsOjpEaXNwbGF5Q2hhbmdlKTsKIH0KIAotLSAKMS43LjEKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>