<?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>76067</bug_id>
          
          <creation_ts>2012-01-11 09:18:45 -0800</creation_ts>
          <short_desc>[chromium] TiledLayerChromium drops invalidates that occur during LayerTextureUpdater::prepareToUpdate</short_desc>
          <delta_ts>2012-01-11 18:26:21 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Scott Violet">sky</reporter>
          <assigned_to name="Scott Violet">sky</assigned_to>
          <cc>cc-bugs</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>reveman</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>533946</commentid>
    <comment_count>0</comment_count>
    <who name="Scott Violet">sky</who>
    <bug_when>2012-01-11 09:18:45 -0800</bug_when>
    <thetext>TiledLayerChromium::prepareToUpdateTiles clears out the invalid rects after invoking LayerTextureUpdater::prepareToUpdate. This means if the LayerTextureUpdater invokes invalidate during prepareToUpdate it gets dropped.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533963</commentid>
    <comment_count>1</comment_count>
      <attachid>122040</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2012-01-11 09:38:01 -0800</bug_when>
    <thetext>Created attachment 122040
Patch 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533965</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 09:40:28 -0800</bug_when>
    <thetext>Attachment 122040 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:1:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 4 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>534012</commentid>
    <comment_count>3</comment_count>
      <attachid>122040</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-01-11 10:30:52 -0800</bug_when>
    <thetext>Comment on attachment 122040
Patch 1

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

Thanks for this.  The compositor code has never been very robust to paint mutating the layer tree.

&gt; Source/WebCore/platform/graphics/chromium/TiledLayerChromium.cpp:392
&gt; +            originalDirtyRects[(j - top) * (right - left + 1) + (i - left)] = tile-&gt;m_dirtyRect;

This is just a minor quibble, but what do you think about just storing the dirty rect in tile-&gt;m_updateRect? We do that anyway in the second loop where we paint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534059</commentid>
    <comment_count>4</comment_count>
      <attachid>122040</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-11 11:28:35 -0800</bug_when>
    <thetext>Comment on attachment 122040
Patch 1

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

&gt; Source/WebCore/ChangeLog:4
&gt; +        [chromium] makes it so that
&gt; +        TiledLayerChromium::prepareToUpdateTiles doesn&apos;t drop invalidate

as the bot says, there should be a link to the bug here. the normal format for ChangeLogs looks like:

[chromium] TiledLayerChromium drops invalidates that occur during LayerTextureUpdater::prepareToUpdate
https://bugs.webkit.org/show_bug.cgi?id=76067

Reviewed by NOBODY (OOPS!).

// longer description here, if needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534323</commentid>
    <comment_count>5</comment_count>
      <attachid>122108</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2012-01-11 15:19:24 -0800</bug_when>
    <thetext>Created attachment 122108
Changes to persist dirty in m_updateRect and updates changelogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534326</commentid>
    <comment_count>6</comment_count>
      <attachid>122109</attachid>
    <who name="Scott Violet">sky</who>
    <bug_when>2012-01-11 15:21:04 -0800</bug_when>
    <thetext>Created attachment 122109
Spelling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534463</commentid>
    <comment_count>7</comment_count>
      <attachid>122109</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-01-11 17:55:52 -0800</bug_when>
    <thetext>Comment on attachment 122109
Spelling

Awesome possum. R=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534480</commentid>
    <comment_count>8</comment_count>
      <attachid>122109</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 18:26:16 -0800</bug_when>
    <thetext>Comment on attachment 122109
Spelling

Clearing flags on attachment: 122109

Committed r104780: &lt;http://trac.webkit.org/changeset/104780&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>534481</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-11 18:26:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122040</attachid>
            <date>2012-01-11 09:38:01 -0800</date>
            <delta_ts>2012-01-11 15:19:24 -0800</delta_ts>
            <desc>Patch 1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9152</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDcxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTAxLTExICBTY290dCBW
aW9sZXQgIDxza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIG1ha2VzIGl0IHNv
IHRoYXQKKyAgICAgICAgVGlsZWRMYXllckNocm9taXVtOjpwcmVwYXJlVG9VcGRhdGVUaWxlcyBk
b2Vzbid0IGRyb3AgaW52YWxpZGF0ZQorICAgICAgICByZXF1ZXN0cyB0aGF0IG9jY3VyIHdoZW4g
cHJlcGFyZVRvVXBkYXRlIGlzIGludm9rZWQgb24gdGhlCisgICAgICAgIExheWVyVGV4dHVyZVVw
ZGF0ZXIuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGVzdCBjb3ZlcmFnZSBpbiBUaWxlZExheWVyQ2hyb21pdW1UZXN0LgorCisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlVGlsZXMpOgorCiAy
MDEyLTAxLTExICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AZ29vZ2xlLmNvbT4KIAogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiAidW5kZWZpbmVkIiBpbnN0ZWFkIG9mIGVycm9yIG1lc3NhZ2UgaW4g
dGhlIFNvdXJjZUZyYW1lLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCShy
ZXZpc2lvbiAxMDQ2NTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNjYsNyArMzY2
LDkgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZQogICAgIH0KIAog
ICAgIC8vIENyZWF0ZSB0aWxlcyBhcyBuZWVkZWQsIGV4cGFuZGluZyBhIGRpcnR5IHJlY3QgdG8g
Y29udGFpbiBhbGwKLSAgICAvLyB0aGUgZGlydHkgcmVnaW9ucyBjdXJyZW50bHkgYmVpbmcgZHJh
d24uCisgICAgLy8gdGhlIGRpcnR5IHJlZ2lvbnMgY3VycmVudGx5IGJlaW5nIGRyYXduLiBUaGlz
IGFsc28gY2xlYXJzIG91dCB0aGUgZGlydHkgcmVnaW9ucyBvZiBlYWNoIHRpbGUuCisgICAgLy8g
VGhhdCB3YXkgaWYgaW52YWxpZGF0ZVJlY3QgaXMgaW52b2tlZCBkdXJpbmcgcHJlcGFyZVRvVXBk
YXRlIHdlIGRvbid0IGRyb3AgaXQuCisgICAgVmVjdG9yPEludFJlY3Q+IG9yaWdpbmFsRGlydHlS
ZWN0cygoYm90dG9tIC0gdG9wICsgMSkgKiAocmlnaHQgLSBsZWZ0ICsgMSkpOwogICAgIEludFJl
Y3QgZGlydHlMYXllclJlY3Q7CiAgICAgZm9yIChpbnQgaiA9IHRvcDsgaiA8PSBib3R0b207ICsr
aikgewogICAgICAgICBmb3IgKGludCBpID0gbGVmdDsgaSA8PSByaWdodDsgKytpKSB7CkBAIC0z
ODcsNiArMzg5LDggQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZQog
ICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBkaXJ0eUxheWVyUmVjdC51bml0ZSh0aWxlLT5t
X2RpcnR5UmVjdCk7CisgICAgICAgICAgICBvcmlnaW5hbERpcnR5UmVjdHNbKGogLSB0b3ApICog
KHJpZ2h0IC0gbGVmdCArIDEpICsgKGkgLSBsZWZ0KV0gPSB0aWxlLT5tX2RpcnR5UmVjdDsKKyAg
ICAgICAgICAgIHRpbGUtPmNsZWFyRGlydHkoKTsKICAgICAgICAgfQogICAgIH0KIApAQCAtNDE0
LDE5ICs0MTgsMTYgQEAgdm9pZCBUaWxlZExheWVyQ2hyb21pdW06OnByZXBhcmVUb1VwZGF0ZQog
ICAgICAgICAgICAgaWYgKCF0aWxlKQogICAgICAgICAgICAgICAgIENSQVNIKCk7CiAKLSAgICAg
ICAgICAgIGlmICghdGlsZS0+aXNEaXJ0eSgpKQorICAgICAgICAgICAgY29uc3QgSW50UmVjdCYg
ZGlydHlSZWN0ID0gb3JpZ2luYWxEaXJ0eVJlY3RzWyhqIC0gdG9wKSAqIChyaWdodCAtIGxlZnQg
KyAxKSArIChpIC0gbGVmdCldOworICAgICAgICAgICAgaWYgKGRpcnR5UmVjdC5pc0VtcHR5KCkp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgICAgIEludFJlY3Qgc291cmNl
UmVjdCA9IG1fdGlsZXItPnRpbGVSZWN0KHRpbGUpOwotICAgICAgICAgICAgc291cmNlUmVjdC5p
bnRlcnNlY3QodGlsZS0+bV9kaXJ0eVJlY3QpOworICAgICAgICAgICAgc291cmNlUmVjdC5pbnRl
cnNlY3QoZGlydHlSZWN0KTsKICAgICAgICAgICAgIC8vIFBhaW50IHJlY3Qgbm90IGd1YXJhbnRl
ZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMsIHNvCiAgICAgICAgICAgICAvLyBtYWtl
IHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0ZW5kIG91dHNpZGUgb2YgaXQuCiAgICAg
ICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChtX3BhaW50UmVjdCk7CiAKLSAgICAgICAgICAg
IC8vIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoKSB1c2VzIG1fdXBkYXRlUmVjdCB0byBkZXRl
cm1pbmUKLSAgICAgICAgICAgIC8vIHRoZSB0aWxlcyB0byB1cGRhdGUgc28gd2UgY2FuIGNsZWFy
IHRoZSBkaXJ0eSByZWN0YW5nbGUgaGVyZS4KLSAgICAgICAgICAgIHRpbGUtPmNsZWFyRGlydHko
KTsKLQogICAgICAgICAgICAgdGlsZS0+bV91cGRhdGVSZWN0ID0gc291cmNlUmVjdDsKICAgICAg
ICAgICAgIGlmIChzb3VyY2VSZWN0LmlzRW1wdHkoKSkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiAxMDQ3MTUpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIwIEBACisyMDEyLTAxLTExICBTY290dCBWaW9sZXQgIDxza3lAZ29vZ2xlLmNvbT4KKworICAg
ICAgICBbY2hyb21pdW1dIEFkZCB1bml0IHRlc3QgZm9yIGNvdmVyYWdlIG9mCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjA2NworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdHMvVGlsZWRMYXllckNo
cm9taXVtVGVzdC5jcHA6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpG
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcik6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVV
cGRhdGVyOjpwcmVwYXJlQ291bnQpOgorICAgICAgICAoV1RGOjpGYWtlTGF5ZXJUZXh0dXJlVXBk
YXRlcjo6Y2xlYXJQcmVwYXJlQ291bnQpOgorICAgICAgICAoV1RGOjpGYWtlTGF5ZXJUZXh0dXJl
VXBkYXRlcjo6bGFzdFVwZGF0ZVJlY3QpOgorICAgICAgICAoV1RGOjpGYWtlVGlsZWRMYXllckNo
cm9taXVtOjpmYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcik6CisgICAgICAgIChXVEY6OkZha2VMYXll
clRleHR1cmVVcGRhdGVyOjpzZXRSZWN0VG9JbnZhbGlkYXRlKToKKyAgICAgICAgKFdURjo6RmFr
ZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZSk6CisgICAgICAgIChXVEY6OlRF
U1QpOgorCiAyMDEyLTAxLTExICBKb2NoZW4gRWlzaW5nZXIgIDxqb2NoZW5AY2hyb21pdW0ub3Jn
PgogCiAgICAgICAgIE1vdmUgdGhlIGNoZWNrIGZvciBjYW5FeGVjdXRlU2NyaXB0cyBvdXQgb2Yg
VjhQcm94eTo6cmV0cmlldmUKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvVGls
ZWRMYXllckNocm9taXVtVGVzdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcAkocmV2aXNpb24gMTA0NjUxKQor
KysgU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZVRleHR1cmUodW5zaWduZWQsIGNvbnN0IEludFNpemUmLCBHQzNEZW51bSkgeyB9
CiB9OwogCitjbGFzcyBGYWtlVGlsZWRMYXllckNocm9taXVtOworCiBjbGFzcyBGYWtlTGF5ZXJU
ZXh0dXJlVXBkYXRlciA6IHB1YmxpYyBMYXllclRleHR1cmVVcGRhdGVyIHsKIHB1YmxpYzoKICAg
ICBjbGFzcyBUZXh0dXJlIDogcHVibGljIExheWVyVGV4dHVyZVVwZGF0ZXI6OlRleHR1cmUgewpA
QCAtNTQsMTIgKzU2LDI5IEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZVJl
Y3QoR3JhcGhpY3NDb250ZXh0M0QqLCBUZXh0dXJlQWxsb2NhdG9yKiwgY29uc3QgSW50UmVjdCYs
IGNvbnN0IEludFJlY3QmKSB7IH0KICAgICB9OwogCi0gICAgRmFrZUxheWVyVGV4dHVyZVVwZGF0
ZXIoKSB7IH0KKyAgICBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIDogbV9wcmVwYXJlQ291bnQo
MCkgeyB9CiAgICAgdmlydHVhbCB+RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKSB7IH0KIAorICAg
IC8vIFNldHMgdGhlIHJlY3QgdG8gaW52YWxpZGF0ZSBkdXJpbmcgdGhlIG5leHQgY2FsbCB0byBw
cmVwYXJlVG9VcGRhdGUoKS4gQWZ0ZXIgdGhlIG5leHQKKyAgICAvLyBjYWxsIHRvIHByZXBhcmVU
b1VwZGF0ZSgpIHRoZSByZWN0IGlzIHJlc2V0LgorICAgIHZvaWQgc2V0UmVjdFRvSW52YWxpZGF0
ZShjb25zdCBJbnRSZWN0JiwgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSopOworCisgICAgLy8gTnVt
YmVyIG9mIHRpbWVzIHByZXBhcmVUb1VwZGF0ZSBoYXMgYmVlbiBpbnZva2VkLgorICAgIGludCBw
cmVwYXJlQ291bnQoKSBjb25zdCB7IHJldHVybiBtX3ByZXBhcmVDb3VudDsgfQorICAgIHZvaWQg
Y2xlYXJQcmVwYXJlQ291bnQoKSB7IG1fcHJlcGFyZUNvdW50ID0gMDsgfQorCisgICAgLy8gTGFz
dCByZWN0IHBhc3NlZCB0byBwcmVwYXJlVG9VcGRhdGUoKS4KKyAgICBjb25zdCBJbnRSZWN0JiBs
YXN0VXBkYXRlUmVjdCgpICBjb25zdCB7IHJldHVybiBtX2xhc3RVcGRhdGVSZWN0OyB9CisKICAg
ICB2aXJ0dWFsIFBhc3NPd25QdHI8TGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZT4gY3JlYXRl
VGV4dHVyZShUZXh0dXJlTWFuYWdlciogbWFuYWdlcikgeyByZXR1cm4gYWRvcHRQdHIobmV3IFRl
eHR1cmUoTWFuYWdlZFRleHR1cmU6OmNyZWF0ZShtYW5hZ2VyKSkpOyB9CiAgICAgdmlydHVhbCBT
YW1wbGVkVGV4ZWxGb3JtYXQgc2FtcGxlZFRleGVsRm9ybWF0KEdDM0RlbnVtKSB7IHJldHVybiBT
YW1wbGVkVGV4ZWxGb3JtYXRSR0JBOyB9Ci0gICAgdmlydHVhbCB2b2lkIHByZXBhcmVUb1VwZGF0
ZShjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50U2l6ZSYsIGludCwgZmxvYXQpIHsgfQorICAgIHZp
cnR1YWwgdm9pZCBwcmVwYXJlVG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNv
bnN0IEludFNpemUmLCBpbnQsIGZsb2F0KTsKKworcHJpdmF0ZToKKyAgICBpbnQgbV9wcmVwYXJl
Q291bnQ7CisgICAgSW50UmVjdCBtX3JlY3RUb0ludmFsaWRhdGU7CisgICAgSW50UmVjdCBtX2xh
c3RVcGRhdGVSZWN0OworICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBtX2xheWVy
OwogfTsKIAogY2xhc3MgRmFrZUNDVGlsZWRMYXllckltcGwgOiBwdWJsaWMgQ0NUaWxlZExheWVy
SW1wbCB7CkBAIC0xMDgsNiArMTI3LDggQEAgcHVibGljOgogICAgICAgICByZXR1cm4gVGlsZWRM
YXllckNocm9taXVtOjpuZWVkc0lkbGVQYWludChyZWN0KTsKICAgICB9CiAKKyAgICBGYWtlTGF5
ZXJUZXh0dXJlVXBkYXRlciogZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKSB7IHJldHVybiBtX2Zh
a2VUZXh0dXJlVXBkYXRlci5nZXQoKTsgfQorCiAgICAgdmlydHVhbCBUZXh0dXJlTWFuYWdlciog
dGV4dHVyZU1hbmFnZXIoKSBjb25zdCB7IHJldHVybiBtX3RleHR1cmVNYW5hZ2VyOyB9CiAKIHBy
aXZhdGU6CkBAIC0xMjIsNiArMTQzLDIzIEBAIHByaXZhdGU6CiAgICAgVGV4dHVyZU1hbmFnZXIq
IG1fdGV4dHVyZU1hbmFnZXI7CiB9OwogCit2b2lkIEZha2VMYXllclRleHR1cmVVcGRhdGVyOjpz
ZXRSZWN0VG9JbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmIHJlY3QsIEZha2VUaWxlZExheWVyQ2hy
b21pdW0qIGxheWVyKQoreworICAgIG1fcmVjdFRvSW52YWxpZGF0ZSA9IHJlY3Q7CisgICAgbV9s
YXllciA9IGxheWVyOworfQorCit2b2lkIEZha2VMYXllclRleHR1cmVVcGRhdGVyOjpwcmVwYXJl
VG9VcGRhdGUoY29uc3QgSW50UmVjdCYgY29udGVudFJlY3QsIGNvbnN0IEludFNpemUmLCBpbnQs
IGZsb2F0KQoreworICAgIG1fcHJlcGFyZUNvdW50Kys7CisgICAgbV9sYXN0VXBkYXRlUmVjdCA9
IGNvbnRlbnRSZWN0OworICAgIGlmICghbV9yZWN0VG9JbnZhbGlkYXRlLmlzRW1wdHkoKSkgewor
ICAgICAgICBtX2xheWVyLT5pbnZhbGlkYXRlUmVjdChtX3JlY3RUb0ludmFsaWRhdGUpOworICAg
ICAgICBtX3JlY3RUb0ludmFsaWRhdGUgPSBJbnRSZWN0KCk7CisgICAgICAgIG1fbGF5ZXIgPSAw
OworICAgIH0KK30KKwogVEVTVChUaWxlZExheWVyQ2hyb21pdW1UZXN0LCBwdXNoRGlydHlUaWxl
cykKIHsKICAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVy
ZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMioxMDI0KjEwMjQsIDEwMjQpOwpAQCAtMjU5
LDQgKzI5Nyw0NSBAQCBURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIGlkbGVQYWludE91CiAg
ICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBsLmdldCgpKTsKIH0KIAorVEVTVChU
aWxlZExheWVyQ2hyb21pdW1UZXN0LCBpbnZhbGlkYXRlRnJvbVByZXBhcmUpCit7CisgICAgT3du
UHRyPFRleHR1cmVNYW5hZ2VyPiB0ZXh0dXJlTWFuYWdlciA9IFRleHR1cmVNYW5hZ2VyOjpjcmVh
dGUoNCoxMDI0KjEwMjQsIDIqMTAyNCoxMDI0LCAxMDI0KTsKKyAgICBSZWZQdHI8RmFrZVRpbGVk
TGF5ZXJDaHJvbWl1bT4gbGF5ZXIgPSBhZG9wdFJlZihuZXcgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1
bSh0ZXh0dXJlTWFuYWdlci5nZXQoKSkpOworICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCBp
bXBsVGhyZWFkOworICAgIFJlZlB0cjxGYWtlQ0NUaWxlZExheWVySW1wbD4gbGF5ZXJJbXBsID0g
YWRvcHRSZWYobmV3IEZha2VDQ1RpbGVkTGF5ZXJJbXBsKDApKTsKKworICAgIEZha2VUZXh0dXJl
QWxsb2NhdG9yIHRleHR1cmVBbGxvY2F0b3I7CisgICAgQ0NUZXh0dXJlVXBkYXRlciB1cGRhdGVy
KCZ0ZXh0dXJlQWxsb2NhdG9yKTsKKworICAgIC8vIFRoZSB0aWxlIHNpemUgaXMgMTAweDEwMCwg
c28gdGhpcyBpbnZhbGlkYXRlcyBhbmQgdGhlbiBwYWludHMgdHdvIHRpbGVzLgorICAgIGxheWVy
LT5zZXRCb3VuZHMoSW50U2l6ZSgxMDAsIDIwMCkpOworICAgIGxheWVyLT5pbnZhbGlkYXRlUmVj
dChJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJ
bnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CisgICAgbGF5ZXItPnVwZGF0ZUNvbXBvc2l0b3JSZXNv
dXJjZXMoMCwgdXBkYXRlcik7CisgICAgbGF5ZXItPnB1c2hQcm9wZXJ0aWVzVG8obGF5ZXJJbXBs
LmdldCgpKTsKKworICAgIC8vIFdlIHNob3VsZCBoYXZlIGJvdGggdGlsZXMgb24gdGhlIGltcGwg
c2lkZS4KKyAgICBFWFBFQ1RfVFJVRShsYXllckltcGwtPmhhc1RpbGVBdCgwLCAwKSk7CisgICAg
RVhQRUNUX1RSVUUobGF5ZXJJbXBsLT5oYXNUaWxlQXQoMCwgMSkpOworCisgICAgdGV4dHVyZU1h
bmFnZXItPnVucHJvdGVjdEFsbFRleHR1cmVzKCk7CisKKyAgICBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+Y2xlYXJQcmVwYXJlQ291bnQoKTsKKyAgICAvLyBJbnZva2UgcHJlcGFy
ZVRvVXBkYXRlIGFnYWluLiBBcyB0aGUgbGF5ZXIgaXMgdmFsaWQgcHJlcGFyZVRvVXBkYXRlIHNo
b3VsZG4ndCBiZSBpbnZva2VkIG9uCisgICAgLy8gdGhlIExheWVyVGV4dHVyZVVwZGF0ZXIuCisg
ICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CisgICAg
RVhQRUNUX0VRKDAsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291
bnQoKSk7CisKKyAgICBsYXllci0+aW52YWxpZGF0ZVJlY3QoSW50UmVjdCgwLCAwLCA1MCwgNTAp
KTsKKyAgICAvLyBzZXRSZWN0VG9JbnZhbGlkYXRlIHRyaWdnZXJzIGludmFsaWRhdGVSZWN0KCkg
YmVpbmcgaW52b2tlZCBmcm9tIHByZXBhcmVUb1VwZGF0ZS4KKyAgICBsYXllci0+ZmFrZUxheWVy
VGV4dHVyZVVwZGF0ZXIoKS0+c2V0UmVjdFRvSW52YWxpZGF0ZShJbnRSZWN0KDI1LCAyNSwgNTAs
IDUwKSwgbGF5ZXIuZ2V0KCkpOworICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigp
LT5jbGVhclByZXBhcmVDb3VudCgpOworICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVj
dCgwLCAwLCAxMDAsIDIwMCkpOworICAgIEVYUEVDVF9FUSgxLCBsYXllci0+ZmFrZUxheWVyVGV4
dHVyZVVwZGF0ZXIoKS0+cHJlcGFyZUNvdW50KCkpOworICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0
dXJlVXBkYXRlcigpLT5jbGVhclByZXBhcmVDb3VudCgpOworICAgIC8vIFRoZSBsYXllciBzaG91
bGQgc3RpbGwgYmUgaW52YWxpZCBhcyBwcmVwYXJlVG9VcGRhdGUgaW52b2tlZCBpbnZhbGlkYXRl
LgorICAgIGxheWVyLT5wcmVwYXJlVG9VcGRhdGUoSW50UmVjdCgwLCAwLCAxMDAsIDIwMCkpOwor
ICAgIEVYUEVDVF9FUSgxLCBsYXllci0+ZmFrZUxheWVyVGV4dHVyZVVwZGF0ZXIoKS0+cHJlcGFy
ZUNvdW50KCkpOworfQorCiB9IC8vIG5hbWVzcGFjZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122108</attachid>
            <date>2012-01-11 15:19:24 -0800</date>
            <delta_ts>2012-01-11 15:21:04 -0800</delta_ts>
            <desc>Changes to persist dirty in m_updateRect and updates changelogs</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9532</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDcxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTExICBTY290dCBW
aW9sZXQgIDxza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFRpbGVkTGF5ZXJD
aHJvbWl1bSBkcm9wcyBpbnZhbGlkYXRlcyB0aGF0IG9jY3VyIGR1cmluZworICAgICAgICBMYXll
clRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjb3ZlcmFnZSBpbiBUaWxlZExheWVyQ2hyb21p
dW1UZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJl
cGFyZVRvVXBkYXRlVGlsZXMpOgorCiAyMDEyLTAxLTExICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiAidW5kZWZpbmVkIiBpbnN0
ZWFkIG9mIGVycm9yIG1lc3NhZ2UgaW4gdGhlIFNvdXJjZUZyYW1lLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMDQ2NTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgTWFuYWdlZFRleHR1cmUq
IG1hbmFnZWRUZXh0dXJlKCkgeyByZXR1cm4gbV90ZXh0dXJlLT50ZXh0dXJlKCk7IH0KIAogICAg
IGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCk7IH0K
LSAgICB2b2lkIGNsZWFyRGlydHkoKSB7IG1fZGlydHlSZWN0ID0gSW50UmVjdCgpOyB9CisgICAg
dm9pZCBjb3B5QW5kQ2xlYXJEaXJ0eSgpCisgICAgeworICAgICAgICBtX3VwZGF0ZVJlY3QgPSBt
X2RpcnR5UmVjdDsKKyAgICAgICAgbV9kaXJ0eVJlY3QgPSBJbnRSZWN0KCk7CisgICAgfQogCiAg
ICAgSW50UmVjdCBtX2RpcnR5UmVjdDsKICAgICBJbnRSZWN0IG1fdXBkYXRlUmVjdDsKQEAgLTM2
Niw3ICszNzAsOSBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAg
ICAgfQogCiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEgZGlydHkg
cmVjdCB0byBjb250YWluIGFsbAotICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJlbnRseSBi
ZWluZyBkcmF3bi4KKyAgICAvLyB0aGUgZGlydHkgcmVnaW9ucyBjdXJyZW50bHkgYmVpbmcgZHJh
d24uIEFsbCBkaXJ0eSB0aWxlcyB0aGF0IGFyZSB0byBiZSBwYWludGVkCisgICAgLy8gZ2V0IHRo
ZWlyIG1fdXBkYXRlUmVjdCBzZXQgdG8gbV9kaXJ0eVJlY3QgYW5kIG1fZGlydHlSZWN0IGNsZWFy
ZXIuIFRoaXMgd2F5IGlmCisgICAgLy8gaW52YWxpZGF0ZVJlY3QgaXMgaW52b2tlZCBkdXJpbmcg
cHJlcGFyZVRvVXBkYXRlIHdlIGRvbid0IGxvc2UgdGhlIHJlcXVlc3QuCiAgICAgSW50UmVjdCBk
aXJ0eUxheWVyUmVjdDsKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7
CiAgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kpIHsKQEAgLTM4Nyw2
ICszOTMsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGRpcnR5TGF5ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGly
dHlSZWN0KTsKKyAgICAgICAgICAgIHRpbGUtPmNvcHlBbmRDbGVhckRpcnR5KCk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTQxNCwxOSArNDIxLDE3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVt
OjpwcmVwYXJlVG9VcGRhdGUKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogCi0gICAgICAgICAgICBpZiAoIXRpbGUtPmlzRGlydHkoKSkKKyAgICAgICAg
ICAgIC8vIFVzZSBtX3VwZGF0ZVJlY3QgYXMgY29weUFuZENsZWFyRGlydHkgYWJvdmUgbW92ZWQg
dGhlIGV4aXN0aW5nIGRpcnR5IHJlY3QgdG8gbV91cGRhdGVSZWN0LgorICAgICAgICAgICAgY29u
c3QgSW50UmVjdCYgZGlydHlSZWN0ID0gdGlsZS0+bV91cGRhdGVSZWN0OworICAgICAgICAgICAg
aWYgKGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IG1fdGlsZXItPnRpbGVSZWN0KHRpbGUpOwot
ICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QodGlsZS0+bV9kaXJ0eVJlY3QpOworICAg
ICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKICAgICAgICAgICAgIC8v
IFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMs
IHNvCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0
ZW5kIG91dHNpZGUgb2YgaXQuCiAgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChtX3Bh
aW50UmVjdCk7CiAKLSAgICAgICAgICAgIC8vIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoKSB1
c2VzIG1fdXBkYXRlUmVjdCB0byBkZXRlcm1pbmUKLSAgICAgICAgICAgIC8vIHRoZSB0aWxlcyB0
byB1cGRhdGUgc28gd2UgY2FuIGNsZWFyIHRoZSBkaXJ0eSByZWN0YW5nbGUgaGVyZS4KLSAgICAg
ICAgICAgIHRpbGUtPmNsZWFyRGlydHkoKTsKLQogICAgICAgICAgICAgdGlsZS0+bV91cGRhdGVS
ZWN0ID0gc291cmNlUmVjdDsKICAgICAgICAgICAgIGlmIChzb3VyY2VSZWN0LmlzRW1wdHkoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMDQ3MTUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTExICBTY290dCBWaW9sZXQg
IDxza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFRpbGVkTGF5ZXJDaHJvbWl1
bSBkcm9wcyBpbnZhbGlkYXRlcyB0aGF0IG9jY3VyIGR1cmluZworICAgICAgICBMYXllclRleHR1
cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAg
ICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OkZha2VMYXllclRleHR1cmVVcGRh
dGVyKToKKyAgICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVDb3Vu
dCk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpjbGVhclByZXBhcmVD
b3VudCk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpsYXN0VXBkYXRl
UmVjdCk6CisgICAgICAgIChXVEY6OkZha2VUaWxlZExheWVyQ2hyb21pdW06OmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKToKKyAgICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnNl
dFJlY3RUb0ludmFsaWRhdGUpOgorICAgICAgICAoV1RGOjpGYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKFdURjo6VEVTVCk6CisKIDIwMTItMDEtMTEg
IEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSB0
aGUgY2hlY2sgZm9yIGNhbkV4ZWN1dGVTY3JpcHRzIG91dCBvZiBWOFByb3h5OjpyZXRyaWV2ZQpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCShyZXZpc2lvbiAxMDQ2NTEpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZSh1
bnNpZ25lZCwgY29uc3QgSW50U2l6ZSYsIEdDM0RlbnVtKSB7IH0KIH07CiAKK2NsYXNzIEZha2VU
aWxlZExheWVyQ2hyb21pdW07CisKIGNsYXNzIEZha2VMYXllclRleHR1cmVVcGRhdGVyIDogcHVi
bGljIExheWVyVGV4dHVyZVVwZGF0ZXIgewogcHVibGljOgogICAgIGNsYXNzIFRleHR1cmUgOiBw
dWJsaWMgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSB7CkBAIC01NCwxMiArNTYsMjkgQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChHcmFwaGljc0NvbnRleHQz
RCosIFRleHR1cmVBbGxvY2F0b3IqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIHsg
fQogICAgIH07CiAKLSAgICBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgfQorICAgIEZha2VM
YXllclRleHR1cmVVcGRhdGVyKCkgOiBtX3ByZXBhcmVDb3VudCgwKSB7IH0KICAgICB2aXJ0dWFs
IH5GYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgfQogCisgICAgLy8gU2V0cyB0aGUgcmVjdCB0
byBpbnZhbGlkYXRlIGR1cmluZyB0aGUgbmV4dCBjYWxsIHRvIHByZXBhcmVUb1VwZGF0ZSgpLiBB
ZnRlciB0aGUgbmV4dAorICAgIC8vIGNhbGwgdG8gcHJlcGFyZVRvVXBkYXRlKCkgdGhlIHJlY3Qg
aXMgcmVzZXQuCisgICAgdm9pZCBzZXRSZWN0VG9JbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmLCBG
YWtlVGlsZWRMYXllckNocm9taXVtKik7CisKKyAgICAvLyBOdW1iZXIgb2YgdGltZXMgcHJlcGFy
ZVRvVXBkYXRlIGhhcyBiZWVuIGludm9rZWQuCisgICAgaW50IHByZXBhcmVDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJlcGFyZUNvdW50OyB9CisgICAgdm9pZCBjbGVhclByZXBhcmVDb3VudCgp
IHsgbV9wcmVwYXJlQ291bnQgPSAwOyB9CisKKyAgICAvLyBMYXN0IHJlY3QgcGFzc2VkIHRvIHBy
ZXBhcmVUb1VwZGF0ZSgpLgorICAgIGNvbnN0IEludFJlY3QmIGxhc3RVcGRhdGVSZWN0KCkgIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdFVwZGF0ZVJlY3Q7IH0KKwogICAgIHZpcnR1YWwgUGFzc093blB0
cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5h
Z2VyKiBtYW5hZ2VyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dHVyZShNYW5hZ2VkVGV4dHVy
ZTo6Y3JlYXRlKG1hbmFnZXIpKSk7IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBz
YW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0pIHsgcmV0dXJuIFNhbXBsZWRUZXhlbEZvcm1hdFJH
QkE7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRTaXplJiwgaW50LCBmbG9hdCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYsIGludCwg
ZmxvYXQpOworCitwcml2YXRlOgorICAgIGludCBtX3ByZXBhcmVDb3VudDsKKyAgICBJbnRSZWN0
IG1fcmVjdFRvSW52YWxpZGF0ZTsKKyAgICBJbnRSZWN0IG1fbGFzdFVwZGF0ZVJlY3Q7CisgICAg
UmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IG1fbGF5ZXI7CiB9OwogCiBjbGFzcyBGYWtl
Q0NUaWxlZExheWVySW1wbCA6IHB1YmxpYyBDQ1RpbGVkTGF5ZXJJbXBsIHsKQEAgLTEwOCw2ICsx
MjcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBUaWxlZExheWVyQ2hyb21pdW06Om5lZWRz
SWRsZVBhaW50KHJlY3QpOwogICAgIH0KIAorICAgIEZha2VMYXllclRleHR1cmVVcGRhdGVyKiBm
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgcmV0dXJuIG1fZmFrZVRleHR1cmVVcGRhdGVyLmdl
dCgpOyB9CisKICAgICB2aXJ0dWFsIFRleHR1cmVNYW5hZ2VyKiB0ZXh0dXJlTWFuYWdlcigpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dHVyZU1hbmFnZXI7IH0KIAogcHJpdmF0ZToKQEAgLTEyMiw2ICsx
NDMsMjMgQEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFuYWdlciogbV90ZXh0dXJlTWFuYWdlcjsK
IH07CiAKK3ZvaWQgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnNldFJlY3RUb0ludmFsaWRhdGUo
Y29uc3QgSW50UmVjdCYgcmVjdCwgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCit7Cisg
ICAgbV9yZWN0VG9JbnZhbGlkYXRlID0gcmVjdDsKKyAgICBtX2xheWVyID0gbGF5ZXI7Cit9CisK
K3ZvaWQgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRS
ZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYsIGludCwgZmxvYXQpCit7CisgICAgbV9w
cmVwYXJlQ291bnQrKzsKKyAgICBtX2xhc3RVcGRhdGVSZWN0ID0gY29udGVudFJlY3Q7CisgICAg
aWYgKCFtX3JlY3RUb0ludmFsaWRhdGUuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fbGF5ZXItPmlu
dmFsaWRhdGVSZWN0KG1fcmVjdFRvSW52YWxpZGF0ZSk7CisgICAgICAgIG1fcmVjdFRvSW52YWxp
ZGF0ZSA9IEludFJlY3QoKTsKKyAgICAgICAgbV9sYXllciA9IDA7CisgICAgfQorfQorCiBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogewogICAgIE93blB0cjxU
ZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQq
MTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7CkBAIC0yNTksNCArMjk3LDQ1IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50T3UKICAgICBsYXllci0+cHVzaFByb3Bl
cnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogfQogCitURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKK3sKKyAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+
IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMiox
MDI0KjEwMjQsIDEwMjQpOworICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXll
ciA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdl
dCgpKSk7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgUmVm
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwgPSBhZG9wdFJlZihuZXcgRmFrZUND
VGlsZWRMYXllckltcGwoMCkpOworCisgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFs
bG9jYXRvcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3Ip
OworCisgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVz
IGFuZCB0aGVuIHBhaW50cyB0d28gdGlsZXMuCisgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXpl
KDEwMCwgMjAwKSk7CisgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAw
LCAyMDApKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAy
MDApKTsKKyAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsK
KyAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOworCisgICAgLy8g
V2Ugc2hvdWxkIGhhdmUgYm90aCB0aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgorICAgIEVYUEVDVF9U
UlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcklt
cGwtPmhhc1RpbGVBdCgwLCAxKSk7CisKKyAgICB0ZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxs
VGV4dHVyZXMoKTsKKworICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVh
clByZXBhcmVDb3VudCgpOworICAgIC8vIEludm9rZSBwcmVwYXJlVG9VcGRhdGUgYWdhaW4uIEFz
IHRoZSBsYXllciBpcyB2YWxpZCBwcmVwYXJlVG9VcGRhdGUgc2hvdWxkbid0IGJlIGludm9rZWQg
b24KKyAgICAvLyB0aGUgTGF5ZXJUZXh0dXJlVXBkYXRlci4KKyAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgbGF5ZXIt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVDb3VudCgpKTsKKworICAgIGxheWVy
LT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOworICAgIC8vIHNldFJlY3RU
b0ludmFsaWRhdGUgdHJpZ2dlcnMgaW52YWxpZGF0ZVJlY3QoKSBiZWluZyBpbnZva2VkIGZyb20g
cHJlcGFyZVRvVXBkYXRlLgorICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5z
ZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMjUsIDI1LCA1MCwgNTApLCBsYXllci5nZXQoKSk7
CisgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50
KCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7
CisgICAgRVhQRUNUX0VRKDEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVw
YXJlQ291bnQoKSk7CisgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFy
UHJlcGFyZUNvdW50KCk7CisgICAgLy8gVGhlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBpbnZhbGlk
IGFzIHByZXBhcmVUb1VwZGF0ZSBpbnZva2VkIGludmFsaWRhdGUuCisgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CisgICAgRVhQRUNUX0VRKDEsIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122109</attachid>
            <date>2012-01-11 15:21:04 -0800</date>
            <delta_ts>2012-01-11 18:26:16 -0800</delta_ts>
            <desc>Spelling</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>9532</size>
            <attacher name="Scott Violet">sky</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDcxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEyLTAxLTExICBTY290dCBW
aW9sZXQgIDxza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFRpbGVkTGF5ZXJD
aHJvbWl1bSBkcm9wcyBpbnZhbGlkYXRlcyB0aGF0IG9jY3VyIGR1cmluZworICAgICAgICBMYXll
clRleHR1cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc2MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBjb3ZlcmFnZSBpbiBUaWxlZExheWVyQ2hyb21p
dW1UZXN0LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXll
ckNocm9taXVtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJl
cGFyZVRvVXBkYXRlVGlsZXMpOgorCiAyMDEyLTAxLTExICBQYXZlbCBGZWxkbWFuICA8cGZlbGRt
YW5AZ29vZ2xlLmNvbT4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiAidW5kZWZpbmVkIiBpbnN0
ZWFkIG9mIGVycm9yIG1lc3NhZ2UgaW4gdGhlIFNvdXJjZUZyYW1lLgpJbmRleDogU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vVGlsZWRMYXllckNocm9taXVtLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9U
aWxlZExheWVyQ2hyb21pdW0uY3BwCShyZXZpc2lvbiAxMDQ2NTEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9UaWxlZExheWVyQ2hyb21pdW0uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OSw3ICs1OSwxMSBAQCBwdWJsaWM6CiAgICAgTWFuYWdlZFRleHR1cmUq
IG1hbmFnZWRUZXh0dXJlKCkgeyByZXR1cm4gbV90ZXh0dXJlLT50ZXh0dXJlKCk7IH0KIAogICAg
IGJvb2wgaXNEaXJ0eSgpIGNvbnN0IHsgcmV0dXJuICFtX2RpcnR5UmVjdC5pc0VtcHR5KCk7IH0K
LSAgICB2b2lkIGNsZWFyRGlydHkoKSB7IG1fZGlydHlSZWN0ID0gSW50UmVjdCgpOyB9CisgICAg
dm9pZCBjb3B5QW5kQ2xlYXJEaXJ0eSgpCisgICAgeworICAgICAgICBtX3VwZGF0ZVJlY3QgPSBt
X2RpcnR5UmVjdDsKKyAgICAgICAgbV9kaXJ0eVJlY3QgPSBJbnRSZWN0KCk7CisgICAgfQogCiAg
ICAgSW50UmVjdCBtX2RpcnR5UmVjdDsKICAgICBJbnRSZWN0IG1fdXBkYXRlUmVjdDsKQEAgLTM2
Niw3ICszNzAsOSBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAg
ICAgfQogCiAgICAgLy8gQ3JlYXRlIHRpbGVzIGFzIG5lZWRlZCwgZXhwYW5kaW5nIGEgZGlydHkg
cmVjdCB0byBjb250YWluIGFsbAotICAgIC8vIHRoZSBkaXJ0eSByZWdpb25zIGN1cnJlbnRseSBi
ZWluZyBkcmF3bi4KKyAgICAvLyB0aGUgZGlydHkgcmVnaW9ucyBjdXJyZW50bHkgYmVpbmcgZHJh
d24uIEFsbCBkaXJ0eSB0aWxlcyB0aGF0IGFyZSB0byBiZSBwYWludGVkCisgICAgLy8gZ2V0IHRo
ZWlyIG1fdXBkYXRlUmVjdCBzZXQgdG8gbV9kaXJ0eVJlY3QgYW5kIG1fZGlydHlSZWN0IGNsZWFy
ZWQuIFRoaXMgd2F5IGlmCisgICAgLy8gaW52YWxpZGF0ZVJlY3QgaXMgaW52b2tlZCBkdXJpbmcg
cHJlcGFyZVRvVXBkYXRlIHdlIGRvbid0IGxvc2UgdGhlIHJlcXVlc3QuCiAgICAgSW50UmVjdCBk
aXJ0eUxheWVyUmVjdDsKICAgICBmb3IgKGludCBqID0gdG9wOyBqIDw9IGJvdHRvbTsgKytqKSB7
CiAgICAgICAgIGZvciAoaW50IGkgPSBsZWZ0OyBpIDw9IHJpZ2h0OyArK2kpIHsKQEAgLTM4Nyw2
ICszOTMsNyBAQCB2b2lkIFRpbGVkTGF5ZXJDaHJvbWl1bTo6cHJlcGFyZVRvVXBkYXRlCiAgICAg
ICAgICAgICB9CiAKICAgICAgICAgICAgIGRpcnR5TGF5ZXJSZWN0LnVuaXRlKHRpbGUtPm1fZGly
dHlSZWN0KTsKKyAgICAgICAgICAgIHRpbGUtPmNvcHlBbmRDbGVhckRpcnR5KCk7CiAgICAgICAg
IH0KICAgICB9CiAKQEAgLTQxNCwxOSArNDIxLDE3IEBAIHZvaWQgVGlsZWRMYXllckNocm9taXVt
OjpwcmVwYXJlVG9VcGRhdGUKICAgICAgICAgICAgIGlmICghdGlsZSkKICAgICAgICAgICAgICAg
ICBDUkFTSCgpOwogCi0gICAgICAgICAgICBpZiAoIXRpbGUtPmlzRGlydHkoKSkKKyAgICAgICAg
ICAgIC8vIFVzZSBtX3VwZGF0ZVJlY3QgYXMgY29weUFuZENsZWFyRGlydHkgYWJvdmUgbW92ZWQg
dGhlIGV4aXN0aW5nIGRpcnR5IHJlY3QgdG8gbV91cGRhdGVSZWN0LgorICAgICAgICAgICAgY29u
c3QgSW50UmVjdCYgZGlydHlSZWN0ID0gdGlsZS0+bV91cGRhdGVSZWN0OworICAgICAgICAgICAg
aWYgKGRpcnR5UmVjdC5pc0VtcHR5KCkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAKICAg
ICAgICAgICAgIEludFJlY3Qgc291cmNlUmVjdCA9IG1fdGlsZXItPnRpbGVSZWN0KHRpbGUpOwot
ICAgICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QodGlsZS0+bV9kaXJ0eVJlY3QpOworICAg
ICAgICAgICAgc291cmNlUmVjdC5pbnRlcnNlY3QoZGlydHlSZWN0KTsKICAgICAgICAgICAgIC8v
IFBhaW50IHJlY3Qgbm90IGd1YXJhbnRlZWQgdG8gbGluZSB1cCBvbiB0aWxlIGJvdW5kYXJpZXMs
IHNvCiAgICAgICAgICAgICAvLyBtYWtlIHN1cmUgdGhhdCBzb3VyY2VSZWN0IGRvZXNuJ3QgZXh0
ZW5kIG91dHNpZGUgb2YgaXQuCiAgICAgICAgICAgICBzb3VyY2VSZWN0LmludGVyc2VjdChtX3Bh
aW50UmVjdCk7CiAKLSAgICAgICAgICAgIC8vIHVwZGF0ZUNvbXBvc2l0b3JSZXNvdXJjZXMoKSB1
c2VzIG1fdXBkYXRlUmVjdCB0byBkZXRlcm1pbmUKLSAgICAgICAgICAgIC8vIHRoZSB0aWxlcyB0
byB1cGRhdGUgc28gd2UgY2FuIGNsZWFyIHRoZSBkaXJ0eSByZWN0YW5nbGUgaGVyZS4KLSAgICAg
ICAgICAgIHRpbGUtPmNsZWFyRGlydHkoKTsKLQogICAgICAgICAgICAgdGlsZS0+bV91cGRhdGVS
ZWN0ID0gc291cmNlUmVjdDsKICAgICAgICAgICAgIGlmIChzb3VyY2VSZWN0LmlzRW1wdHkoKSkK
ICAgICAgICAgICAgICAgICBjb250aW51ZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9n
CShyZXZpc2lvbiAxMDQ3MTUpCisrKyBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDEyLTAxLTExICBTY290dCBWaW9sZXQg
IDxza3lAZ29vZ2xlLmNvbT4KKworICAgICAgICBbY2hyb21pdW1dIFRpbGVkTGF5ZXJDaHJvbWl1
bSBkcm9wcyBpbnZhbGlkYXRlcyB0aGF0IG9jY3VyIGR1cmluZworICAgICAgICBMYXllclRleHR1
cmVVcGRhdGVyOjpwcmVwYXJlVG9VcGRhdGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2MDY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0LmNwcDoKKyAg
ICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OkZha2VMYXllclRleHR1cmVVcGRh
dGVyKToKKyAgICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVDb3Vu
dCk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpjbGVhclByZXBhcmVD
b3VudCk6CisgICAgICAgIChXVEY6OkZha2VMYXllclRleHR1cmVVcGRhdGVyOjpsYXN0VXBkYXRl
UmVjdCk6CisgICAgICAgIChXVEY6OkZha2VUaWxlZExheWVyQ2hyb21pdW06OmZha2VMYXllclRl
eHR1cmVVcGRhdGVyKToKKyAgICAgICAgKFdURjo6RmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnNl
dFJlY3RUb0ludmFsaWRhdGUpOgorICAgICAgICAoV1RGOjpGYWtlTGF5ZXJUZXh0dXJlVXBkYXRl
cjo6cHJlcGFyZVRvVXBkYXRlKToKKyAgICAgICAgKFdURjo6VEVTVCk6CisKIDIwMTItMDEtMTEg
IEpvY2hlbiBFaXNpbmdlciAgPGpvY2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgTW92ZSB0
aGUgY2hlY2sgZm9yIGNhbkV4ZWN1dGVTY3JpcHRzIG91dCBvZiBWOFByb3h5OjpyZXRyaWV2ZQpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9UaWxlZExheWVyQ2hyb21pdW1UZXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1RpbGVkTGF5
ZXJDaHJvbWl1bVRlc3QuY3BwCShyZXZpc2lvbiAxMDQ2NTEpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1RpbGVkTGF5ZXJDaHJvbWl1bVRlc3QuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC00NCw2ICs0NCw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgZGVsZXRlVGV4dHVyZSh1
bnNpZ25lZCwgY29uc3QgSW50U2l6ZSYsIEdDM0RlbnVtKSB7IH0KIH07CiAKK2NsYXNzIEZha2VU
aWxlZExheWVyQ2hyb21pdW07CisKIGNsYXNzIEZha2VMYXllclRleHR1cmVVcGRhdGVyIDogcHVi
bGljIExheWVyVGV4dHVyZVVwZGF0ZXIgewogcHVibGljOgogICAgIGNsYXNzIFRleHR1cmUgOiBw
dWJsaWMgTGF5ZXJUZXh0dXJlVXBkYXRlcjo6VGV4dHVyZSB7CkBAIC01NCwxMiArNTYsMjkgQEAg
cHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUmVjdChHcmFwaGljc0NvbnRleHQz
RCosIFRleHR1cmVBbGxvY2F0b3IqLCBjb25zdCBJbnRSZWN0JiwgY29uc3QgSW50UmVjdCYpIHsg
fQogICAgIH07CiAKLSAgICBGYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgfQorICAgIEZha2VM
YXllclRleHR1cmVVcGRhdGVyKCkgOiBtX3ByZXBhcmVDb3VudCgwKSB7IH0KICAgICB2aXJ0dWFs
IH5GYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgfQogCisgICAgLy8gU2V0cyB0aGUgcmVjdCB0
byBpbnZhbGlkYXRlIGR1cmluZyB0aGUgbmV4dCBjYWxsIHRvIHByZXBhcmVUb1VwZGF0ZSgpLiBB
ZnRlciB0aGUgbmV4dAorICAgIC8vIGNhbGwgdG8gcHJlcGFyZVRvVXBkYXRlKCkgdGhlIHJlY3Qg
aXMgcmVzZXQuCisgICAgdm9pZCBzZXRSZWN0VG9JbnZhbGlkYXRlKGNvbnN0IEludFJlY3QmLCBG
YWtlVGlsZWRMYXllckNocm9taXVtKik7CisKKyAgICAvLyBOdW1iZXIgb2YgdGltZXMgcHJlcGFy
ZVRvVXBkYXRlIGhhcyBiZWVuIGludm9rZWQuCisgICAgaW50IHByZXBhcmVDb3VudCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJlcGFyZUNvdW50OyB9CisgICAgdm9pZCBjbGVhclByZXBhcmVDb3VudCgp
IHsgbV9wcmVwYXJlQ291bnQgPSAwOyB9CisKKyAgICAvLyBMYXN0IHJlY3QgcGFzc2VkIHRvIHBy
ZXBhcmVUb1VwZGF0ZSgpLgorICAgIGNvbnN0IEludFJlY3QmIGxhc3RVcGRhdGVSZWN0KCkgIGNv
bnN0IHsgcmV0dXJuIG1fbGFzdFVwZGF0ZVJlY3Q7IH0KKwogICAgIHZpcnR1YWwgUGFzc093blB0
cjxMYXllclRleHR1cmVVcGRhdGVyOjpUZXh0dXJlPiBjcmVhdGVUZXh0dXJlKFRleHR1cmVNYW5h
Z2VyKiBtYW5hZ2VyKSB7IHJldHVybiBhZG9wdFB0cihuZXcgVGV4dHVyZShNYW5hZ2VkVGV4dHVy
ZTo6Y3JlYXRlKG1hbmFnZXIpKSk7IH0KICAgICB2aXJ0dWFsIFNhbXBsZWRUZXhlbEZvcm1hdCBz
YW1wbGVkVGV4ZWxGb3JtYXQoR0MzRGVudW0pIHsgcmV0dXJuIFNhbXBsZWRUZXhlbEZvcm1hdFJH
QkE7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHJlcGFyZVRvVXBkYXRlKGNvbnN0IEludFJlY3QmLCBj
b25zdCBJbnRTaXplJiwgaW50LCBmbG9hdCkgeyB9CisgICAgdmlydHVhbCB2b2lkIHByZXBhcmVU
b1VwZGF0ZShjb25zdCBJbnRSZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYsIGludCwg
ZmxvYXQpOworCitwcml2YXRlOgorICAgIGludCBtX3ByZXBhcmVDb3VudDsKKyAgICBJbnRSZWN0
IG1fcmVjdFRvSW52YWxpZGF0ZTsKKyAgICBJbnRSZWN0IG1fbGFzdFVwZGF0ZVJlY3Q7CisgICAg
UmVmUHRyPEZha2VUaWxlZExheWVyQ2hyb21pdW0+IG1fbGF5ZXI7CiB9OwogCiBjbGFzcyBGYWtl
Q0NUaWxlZExheWVySW1wbCA6IHB1YmxpYyBDQ1RpbGVkTGF5ZXJJbXBsIHsKQEAgLTEwOCw2ICsx
MjcsOCBAQCBwdWJsaWM6CiAgICAgICAgIHJldHVybiBUaWxlZExheWVyQ2hyb21pdW06Om5lZWRz
SWRsZVBhaW50KHJlY3QpOwogICAgIH0KIAorICAgIEZha2VMYXllclRleHR1cmVVcGRhdGVyKiBm
YWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpIHsgcmV0dXJuIG1fZmFrZVRleHR1cmVVcGRhdGVyLmdl
dCgpOyB9CisKICAgICB2aXJ0dWFsIFRleHR1cmVNYW5hZ2VyKiB0ZXh0dXJlTWFuYWdlcigpIGNv
bnN0IHsgcmV0dXJuIG1fdGV4dHVyZU1hbmFnZXI7IH0KIAogcHJpdmF0ZToKQEAgLTEyMiw2ICsx
NDMsMjMgQEAgcHJpdmF0ZToKICAgICBUZXh0dXJlTWFuYWdlciogbV90ZXh0dXJlTWFuYWdlcjsK
IH07CiAKK3ZvaWQgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnNldFJlY3RUb0ludmFsaWRhdGUo
Y29uc3QgSW50UmVjdCYgcmVjdCwgRmFrZVRpbGVkTGF5ZXJDaHJvbWl1bSogbGF5ZXIpCit7Cisg
ICAgbV9yZWN0VG9JbnZhbGlkYXRlID0gcmVjdDsKKyAgICBtX2xheWVyID0gbGF5ZXI7Cit9CisK
K3ZvaWQgRmFrZUxheWVyVGV4dHVyZVVwZGF0ZXI6OnByZXBhcmVUb1VwZGF0ZShjb25zdCBJbnRS
ZWN0JiBjb250ZW50UmVjdCwgY29uc3QgSW50U2l6ZSYsIGludCwgZmxvYXQpCit7CisgICAgbV9w
cmVwYXJlQ291bnQrKzsKKyAgICBtX2xhc3RVcGRhdGVSZWN0ID0gY29udGVudFJlY3Q7CisgICAg
aWYgKCFtX3JlY3RUb0ludmFsaWRhdGUuaXNFbXB0eSgpKSB7CisgICAgICAgIG1fbGF5ZXItPmlu
dmFsaWRhdGVSZWN0KG1fcmVjdFRvSW52YWxpZGF0ZSk7CisgICAgICAgIG1fcmVjdFRvSW52YWxp
ZGF0ZSA9IEludFJlY3QoKTsKKyAgICAgICAgbV9sYXllciA9IDA7CisgICAgfQorfQorCiBURVNU
KFRpbGVkTGF5ZXJDaHJvbWl1bVRlc3QsIHB1c2hEaXJ0eVRpbGVzKQogewogICAgIE93blB0cjxU
ZXh0dXJlTWFuYWdlcj4gdGV4dHVyZU1hbmFnZXIgPSBUZXh0dXJlTWFuYWdlcjo6Y3JlYXRlKDQq
MTAyNCoxMDI0LCAyKjEwMjQqMTAyNCwgMTAyNCk7CkBAIC0yNTksNCArMjk3LDQ1IEBAIFRFU1Qo
VGlsZWRMYXllckNocm9taXVtVGVzdCwgaWRsZVBhaW50T3UKICAgICBsYXllci0+cHVzaFByb3Bl
cnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOwogfQogCitURVNUKFRpbGVkTGF5ZXJDaHJvbWl1bVRl
c3QsIGludmFsaWRhdGVGcm9tUHJlcGFyZSkKK3sKKyAgICBPd25QdHI8VGV4dHVyZU1hbmFnZXI+
IHRleHR1cmVNYW5hZ2VyID0gVGV4dHVyZU1hbmFnZXI6OmNyZWF0ZSg0KjEwMjQqMTAyNCwgMiox
MDI0KjEwMjQsIDEwMjQpOworICAgIFJlZlB0cjxGYWtlVGlsZWRMYXllckNocm9taXVtPiBsYXll
ciA9IGFkb3B0UmVmKG5ldyBGYWtlVGlsZWRMYXllckNocm9taXVtKHRleHR1cmVNYW5hZ2VyLmdl
dCgpKSk7CisgICAgRGVidWdTY29wZWRTZXRJbXBsVGhyZWFkIGltcGxUaHJlYWQ7CisgICAgUmVm
UHRyPEZha2VDQ1RpbGVkTGF5ZXJJbXBsPiBsYXllckltcGwgPSBhZG9wdFJlZihuZXcgRmFrZUND
VGlsZWRMYXllckltcGwoMCkpOworCisgICAgRmFrZVRleHR1cmVBbGxvY2F0b3IgdGV4dHVyZUFs
bG9jYXRvcjsKKyAgICBDQ1RleHR1cmVVcGRhdGVyIHVwZGF0ZXIoJnRleHR1cmVBbGxvY2F0b3Ip
OworCisgICAgLy8gVGhlIHRpbGUgc2l6ZSBpcyAxMDB4MTAwLCBzbyB0aGlzIGludmFsaWRhdGVz
IGFuZCB0aGVuIHBhaW50cyB0d28gdGlsZXMuCisgICAgbGF5ZXItPnNldEJvdW5kcyhJbnRTaXpl
KDEwMCwgMjAwKSk7CisgICAgbGF5ZXItPmludmFsaWRhdGVSZWN0KEludFJlY3QoMCwgMCwgMTAw
LCAyMDApKTsKKyAgICBsYXllci0+cHJlcGFyZVRvVXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAy
MDApKTsKKyAgICBsYXllci0+dXBkYXRlQ29tcG9zaXRvclJlc291cmNlcygwLCB1cGRhdGVyKTsK
KyAgICBsYXllci0+cHVzaFByb3BlcnRpZXNUbyhsYXllckltcGwuZ2V0KCkpOworCisgICAgLy8g
V2Ugc2hvdWxkIGhhdmUgYm90aCB0aWxlcyBvbiB0aGUgaW1wbCBzaWRlLgorICAgIEVYUEVDVF9U
UlVFKGxheWVySW1wbC0+aGFzVGlsZUF0KDAsIDApKTsKKyAgICBFWFBFQ1RfVFJVRShsYXllcklt
cGwtPmhhc1RpbGVBdCgwLCAxKSk7CisKKyAgICB0ZXh0dXJlTWFuYWdlci0+dW5wcm90ZWN0QWxs
VGV4dHVyZXMoKTsKKworICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5jbGVh
clByZXBhcmVDb3VudCgpOworICAgIC8vIEludm9rZSBwcmVwYXJlVG9VcGRhdGUgYWdhaW4uIEFz
IHRoZSBsYXllciBpcyB2YWxpZCBwcmVwYXJlVG9VcGRhdGUgc2hvdWxkbid0IGJlIGludm9rZWQg
b24KKyAgICAvLyB0aGUgTGF5ZXJUZXh0dXJlVXBkYXRlci4KKyAgICBsYXllci0+cHJlcGFyZVRv
VXBkYXRlKEludFJlY3QoMCwgMCwgMTAwLCAyMDApKTsKKyAgICBFWFBFQ1RfRVEoMCwgbGF5ZXIt
PmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPnByZXBhcmVDb3VudCgpKTsKKworICAgIGxheWVy
LT5pbnZhbGlkYXRlUmVjdChJbnRSZWN0KDAsIDAsIDUwLCA1MCkpOworICAgIC8vIHNldFJlY3RU
b0ludmFsaWRhdGUgdHJpZ2dlcnMgaW52YWxpZGF0ZVJlY3QoKSBiZWluZyBpbnZva2VkIGZyb20g
cHJlcGFyZVRvVXBkYXRlLgorICAgIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5z
ZXRSZWN0VG9JbnZhbGlkYXRlKEludFJlY3QoMjUsIDI1LCA1MCwgNTApLCBsYXllci5nZXQoKSk7
CisgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFyUHJlcGFyZUNvdW50
KCk7CisgICAgbGF5ZXItPnByZXBhcmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7
CisgICAgRVhQRUNUX0VRKDEsIGxheWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVw
YXJlQ291bnQoKSk7CisgICAgbGF5ZXItPmZha2VMYXllclRleHR1cmVVcGRhdGVyKCktPmNsZWFy
UHJlcGFyZUNvdW50KCk7CisgICAgLy8gVGhlIGxheWVyIHNob3VsZCBzdGlsbCBiZSBpbnZhbGlk
IGFzIHByZXBhcmVUb1VwZGF0ZSBpbnZva2VkIGludmFsaWRhdGUuCisgICAgbGF5ZXItPnByZXBh
cmVUb1VwZGF0ZShJbnRSZWN0KDAsIDAsIDEwMCwgMjAwKSk7CisgICAgRVhQRUNUX0VRKDEsIGxh
eWVyLT5mYWtlTGF5ZXJUZXh0dXJlVXBkYXRlcigpLT5wcmVwYXJlQ291bnQoKSk7Cit9CisKIH0g
Ly8gbmFtZXNwYWNlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>