<?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>53117</bug_id>
          
          <creation_ts>2011-01-25 12:37:54 -0800</creation_ts>
          <short_desc>Invalidate rect doesn&apos;t work for windowless plugins on Chromium</short_desc>
          <delta_ts>2011-02-09 10:55:23 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>54051</blocked>
    
    <blocked>54122</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sailesh Agrawal">sail</reporter>
          <assigned_to name="Sailesh Agrawal">sail</assigned_to>
          <cc>bweinstein</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dpranke</cc>
    
    <cc>jam</cc>
    
    <cc>jamesr</cc>
    
    <cc>kbr</cc>
    
    <cc>mihaip</cc>
    
    <cc>thakis</cc>
    
    <cc>tony</cc>
    
    <cc>vangelis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>339851</commentid>
    <comment_count>0</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-01-25 12:37:54 -0800</bug_when>
    <thetext>Steps:
1. Enable &quot;GPU Accelerated Compositing&quot; in about:flags
2. Go to http://apple.com/appletv
3. Abut half way down the page, click on the &quot;See what&apos;s new with Apple TV&quot; link.

Expected:
The &quot;What&apos;s new with Apple TV&quot; movie should play smoothly.

Actual:
The video doesn&apos;t update unless you resize the window.

This can be reproduced on Mac OS 10.6 and Windows 7.

Also see the Chromium bug:
http://crbug.com/64370</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339856</commentid>
    <comment_count>1</comment_count>
      <attachid>80105</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-01-25 12:47:55 -0800</bug_when>
    <thetext>Created attachment 80105
Proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339935</commentid>
    <comment_count>2</comment_count>
      <attachid>80105</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-01-25 14:38:49 -0800</bug_when>
    <thetext>Comment on attachment 80105
Proposed patch.

This needs a regression test, although it does look correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>339943</commentid>
    <comment_count>3</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-01-25 14:49:35 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 80105 [details])
&gt; This needs a regression test, although it does look correct.

Hi James. I&apos;m new to this code base. What would be a good regression test? Does that mean adding a unit test for this bug? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345624</commentid>
    <comment_count>4</comment_count>
      <attachid>81248</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-04 11:10:48 -0800</bug_when>
    <thetext>Created attachment 81248
Patch with regression test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345625</commentid>
    <comment_count>5</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-04 11:11:13 -0800</bug_when>
    <thetext>Added a new patch with a regression test.

The regression test doesn&apos;t work yet. There are two things I need help with:

#1 Where should I place the test HTML file? Is there a way to get it automatically executed with --platform chromium-gpu?

#2 I can&apos;t seem to get any paint event to the pugin in the DumpRenderTree app. I think this is due to a difference between Chromium and DumpRenderTree. To work around this I changed webkit/plugins/npapi/webplugin_delegate_impl_mac.mm WebPluginDelegateImpl::WindowlessPaint() to not to check for buffer_context_. I&apos;m not sure what the correct fix is.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345628</commentid>
    <comment_count>6</comment_count>
      <attachid>81249</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-04 11:16:54 -0800</bug_when>
    <thetext>Created attachment 81249
removed debugging code form HTML file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345684</commentid>
    <comment_count>7</comment_count>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-04 12:23:24 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Added a new patch with a regression test.
&gt; 
&gt; The regression test doesn&apos;t work yet. There are two things I need help with:
&gt; 
&gt; #1 Where should I place the test HTML file? Is there a way to get it automatically executed with --platform chromium-gpu?

It should go under LayoutTests/plugins/, I think, and run on all platforms. Right now platform/chromium-gpu/test_expectations.txt skips all of the plugin tests, but you could explicitly enable this one. Note though that this test_expectations.txt is in the process of being merged with the main one, and new &quot;CPU&quot;/&quot;GPU&quot; flags are being added. I am not 100% sure where this work stands. CC&apos;ing dpranke and mihaip.

&gt; #2 I can&apos;t seem to get any paint event to the pugin in the DumpRenderTree app. I think this is due to a difference between Chromium and DumpRenderTree. To work around this I changed webkit/plugins/npapi/webplugin_delegate_impl_mac.mm WebPluginDelegateImpl::WindowlessPaint() to not to check for buffer_context_. I&apos;m not sure what the correct fix is.

You&apos;ll need to do more debugging. Nobody on the CC: list is an expert in plugins in DRT to the best of my knowledge. You might try contacting Tony Chang.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345686</commentid>
    <comment_count>8</comment_count>
      <attachid>81249</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-04 12:24:43 -0800</bug_when>
    <thetext>Comment on attachment 81249
removed debugging code form HTML file

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

&gt; Source/WebKit/chromium/src/WebPluginContainerImpl.cpp:136
&gt; +  renderer-&gt;repaintRectangle(dirtyRect);

Indentation doesn&apos;t follow WebKit style in this file.

&gt; LayoutTests/platform/chromium-gpu/plugin/invalidate_rect-expected.txt:8
&gt;    + LF

You should disable &quot;enable-auto-props = yes&quot; in ~/.subversion/config when adding these new files to the WebKit repository.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345803</commentid>
    <comment_count>9</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2011-02-04 14:38:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; It should go under LayoutTests/plugins/, I think, and run on all platforms. Right now platform/chromium-gpu/test_expectations.txt skips all of the plugin tests, but you could explicitly enable this one. Note though that this test_expectations.txt is in the process of being merged with the main one, and new &quot;CPU&quot;/&quot;GPU&quot; flags are being added. I am not 100% sure where this work stands. CC&apos;ing dpranke and mihaip.

The merging of files just landed (http://trac.webkit.org/changeset/77666). If you want to include a new directory in the GPU suite, you&apos;ll need to modify the list in chromium_gpy.py (http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_gpu.py?rev=77678#L74)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345865</commentid>
    <comment_count>10</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-02-04 15:37:58 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; It should go under LayoutTests/plugins/, I think, and run on all platforms. Right now platform/chromium-gpu/test_expectations.txt skips all of the plugin tests, but you could explicitly enable this one. Note though that this test_expectations.txt is in the process of being merged with the main one, and new &quot;CPU&quot;/&quot;GPU&quot; flags are being added. I am not 100% sure where this work stands. CC&apos;ing dpranke and mihaip.
&gt; 
&gt; The merging of files just landed (http://trac.webkit.org/changeset/77666). If you want to include a new directory in the GPU suite, you&apos;ll need to modify the list in chromium_gpy.py (http://trac.webkit.org/browser/trunk/Tools/Scripts/webkitpy/layout_tests/port/chromium_gpu.py?rev=77678#L74)

You can also just list the one file, but it seems like directory at a time is probably a better strategy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347671</commentid>
    <comment_count>11</comment_count>
      <attachid>81691</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-08 14:13:53 -0800</bug_when>
    <thetext>Created attachment 81691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347676</commentid>
    <comment_count>12</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-08 14:18:16 -0800</bug_when>
    <thetext>&gt; &gt; #2 I can&apos;t seem to get any paint event to the pugin in the DumpRenderTree app. I think this is due to a difference between Chromium and DumpRenderTree. To work around this I changed webkit/plugins/npapi/webplugin_delegate_impl_mac.mm WebPluginDelegateImpl::WindowlessPaint() to not to check for buffer_context_. I&apos;m not sure what the correct fix is.
&gt; 
&gt; You&apos;ll need to do more debugging. Nobody on the CC: list is an expert in plugins in DRT to the best of my knowledge. You might try contacting Tony Chang.

I haven&apos;t been able to get in touch with Tony yet.

With the current patch the test should work on all platforms except chromium-gpu. Would it be ok if I filed a bug to fix this on chromium-gpu and skipped the test on that platform for now?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347685</commentid>
    <comment_count>13</comment_count>
      <attachid>81691</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-08 14:29:26 -0800</bug_when>
    <thetext>Comment on attachment 81691
Patch

Yes, it&apos;s fine to skip the test on chromium-gpu for the moment. Note that test_expectations.txt has been merged, so you&apos;ll need to use the new GPU tag in LayoutTests/platform/chromium/test_expectations.txt. I assume you&apos;ll need to generate a new patch so I&apos;m only marking this r+ for now, not cq+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347692</commentid>
    <comment_count>14</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-02-08 14:36:37 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 81691 [details])
&gt; Yes, it&apos;s fine to skip the test on chromium-gpu for the moment. Note that test_expectations.txt has been merged, so you&apos;ll need to use the new GPU tag in LayoutTests/platform/chromium/test_expectations.txt. I assume you&apos;ll need to generate a new patch so I&apos;m only marking this r+ for now, not cq+.

Sailesh and I talked on IRC and he said it&apos;s failing on chromium gpu and non-gpu.  I&apos;m not really familiar with WebPluginContainerImpl.cpp, but jam is.  Maybe he has some insight as to why this isn&apos;t working?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347865</commentid>
    <comment_count>15</comment_count>
      <attachid>81726</attachid>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-08 17:51:05 -0800</bug_when>
    <thetext>Created attachment 81726
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347868</commentid>
    <comment_count>16</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-08 17:53:11 -0800</bug_when>
    <thetext>&gt; With the current patch the test should work on all platforms except chromium-gpu. Would it be ok if I filed a bug to fix this on chromium-gpu and skipped the test on that platform for now?

I was wrong about this. This patch doesn&apos;t work on chromium-mac with and without GPU. I&apos;ve added an exception in test_expectations.txt for this. I&apos;ve also filed bug 54051 to fix this.

Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347876</commentid>
    <comment_count>17</comment_count>
      <attachid>81726</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-02-08 18:09:55 -0800</bug_when>
    <thetext>Comment on attachment 81726
Patch

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

Looks good overall. Thanks for persevering with this fix.

&gt; LayoutTests/ChangeLog:11
&gt; +        * plugins/invalidate_rect-expected.txt: Added.
&gt; +        * plugins/invalidate_rect.html: Added.

The ChangeLog ideally should have been regenerated to contain the update to platform/chromium/test_expectations.txt. However since we&apos;ve gone back and forth so many times on this patch I&apos;m just going to cq+ it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347896</commentid>
    <comment_count>18</comment_count>
      <attachid>81726</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-08 19:30:47 -0800</bug_when>
    <thetext>Comment on attachment 81726
Patch

Clearing flags on attachment: 81726

Committed r78010: &lt;http://trac.webkit.org/changeset/78010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347897</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-08 19:30:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347980</commentid>
    <comment_count>20</comment_count>
    <who name="Nico Weber">thakis</who>
    <bug_when>2011-02-08 22:06:57 -0800</bug_when>
    <thetext>Sail &amp; reviewers,

how risky is this patch? To me, it looks reasonably simple – should we try to merge it to m10, given that we want to enable the compositor in m10, which will trigger this problem more often?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348382</commentid>
    <comment_count>21</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-02-09 10:51:08 -0800</bug_when>
    <thetext>This test has been failing on Windows since it landed, added Windows-specific failing results in r78082.

If you could investigate and figure out the issue that is causing this test to fail on Windows, that would be great.

https://bugs.webkit.org/show_bug.cgi?id=54122 tracks the failure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348385</commentid>
    <comment_count>22</comment_count>
    <who name="Sailesh Agrawal">sail</who>
    <bug_when>2011-02-09 10:53:37 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; This test has been failing on Windows since it landed, added Windows-specific failing results in r78082.
&gt; 
&gt; If you could investigate and figure out the issue that is causing this test to fail on Windows, that would be great.
&gt; 
&gt; https://bugs.webkit.org/show_bug.cgi?id=54122 tracks the failure.

Working on it right now. Thanks.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80105</attachid>
            <date>2011-01-25 12:47:55 -0800</date>
            <delta_ts>2011-02-04 11:10:48 -0800</delta_ts>
            <desc>Proposed patch.</desc>
            <filename>invalidate_rect.diff</filename>
            <type>text/plain</type>
            <size>2253</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzY2MjUpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDEtMjUgIFNhaWxl
c2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCBpbnZhbGlkYXRlIHJlY3QgZm9yIHdpbmRvd2xl
c3MgcGx1Z2lucworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NTMxMTcKKworICAgICAgICBJbnZhbGlkYXRlIHJlY3QgZm9yIHdpbmRvd2xlc3MgcGx1Z2lu
cyB3YXNuJ3Qgd29ya2luZyBpZiB0aGUgd2ViIHBhZ2Ugd2FzIGNvbXBvc2l0ZWQuCisKKyAgICAg
ICAgVGhlIHByb2JsZW0gd2FzIHRoYXQgdGhlIGludmFsaWRhdGUgY2FsbCB3YXMgY2F1c2luZyBz
aW1wbHkgZGlydHlpbmcgdGhlIExheWVyQ2hyb21pdW0gbGF5ZXJzLiBTaW5jZSB0aGUgcGx1Z2lu
IHdhcyB3aW5kb3dsZXNzIHRoaXMgZGlkbid0IGNhdXNlIHRoZSBwbHVnaW4gdG8gYmUgcmVwYWlu
dGVkLgorCisgICAgICAgIEZpeCB3YXMgdG8gY29weSB0aGUgaW52YWxpZGF0ZSBjb2RlIGZyb20g
V2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwL1BsdWdpblZpZXc6OmludmFsaWRhdGVXaW5k
b3dsZXNzUGx1Z2luUmVjdCgpIHdoaWNoIGRvZXMgdGhlIGNvcnJlY3QgdGhpbmcuCisKKyAgICAg
ICAgVGVzdGVkIG15IGZpeCBvbiBXaW5kb3dzIGFuZCBNYWMgYW5kIHZlcmlmaWVkIHRoYXQgdGhl
IG1vdmllIG9uIGh0dHA6Ly9hcHBsZS5jb20vYXBwbHR2IGNvcnJlY3RseSBwbGF5cy4gVmVyaWZp
ZWQgdGhhdCB3aW5kb3dlZCBwbHVnaW5zIHN0aWxsIGNvcnJlY3RseSBkcmF3IGFzIHdlbGwuCisK
KyAgICAgICAgKiBzcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBsdWdpbkNvbnRhaW5lckltcGw6OmludmFsaWRhdGVSZWN0KToKKwogMjAxMS0wMS0y
NSAgSGFucyBXZW5uYm9yZyAgPGhhbnNAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEplcmVteSBPcmxvdy4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVn
aW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gNzY0MDgpCisrKyBXZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjcsMTQg
KzEyNywxMiBAQCB2b2lkIFdlYlBsdWdpbkNvbnRhaW5lckltcGw6OmludmFsaWRhdGVSCiAgICAg
aWYgKCFwYXJlbnQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW50UmVjdCBkYW1hZ2VSZWN0
ID0gY29udmVydFRvQ29udGFpbmluZ1dpbmRvdyhyZWN0KTsKLQotICAgIC8vIEdldCBvdXIgY2xp
cCByZWN0IGFuZCBpbnRlcnNlY3Qgd2l0aCBpdCB0byBlbnN1cmUgd2UgZG9uJ3QgaW52YWxpZGF0
ZQotICAgIC8vIHRvbyBtdWNoLgotICAgIEludFJlY3QgY2xpcFJlY3QgPSBwYXJlbnQoKS0+d2lu
ZG93Q2xpcFJlY3QoKTsKLSAgICBkYW1hZ2VSZWN0LmludGVyc2VjdChjbGlwUmVjdCk7Ci0KLSAg
ICBwYXJlbnQoKS0+aG9zdFdpbmRvdygpLT5pbnZhbGlkYXRlQ29udGVudHNBbmRXaW5kb3coZGFt
YWdlUmVjdCwgZmFsc2UgLyppbW1lZGlhdGUqLyk7CisgICAgUmVuZGVyQm94KiByZW5kZXJlciA9
IHRvUmVuZGVyQm94KG1fZWxlbWVudC0+cmVuZGVyZXIoKSk7CisgICAgCisgICAgSW50UmVjdCBk
aXJ0eVJlY3QgPSByZWN0OworICAgIGRpcnR5UmVjdC5tb3ZlKHJlbmRlcmVyLT5ib3JkZXJMZWZ0
KCkgKyByZW5kZXJlci0+cGFkZGluZ0xlZnQoKSwKKyAgICAgICAgICAgICAgICAgICByZW5kZXJl
ci0+Ym9yZGVyVG9wKCkgKyByZW5kZXJlci0+cGFkZGluZ1RvcCgpKTsKKyAgICByZW5kZXJlci0+
cmVwYWludFJlY3RhbmdsZShkaXJ0eVJlY3QpOwogfQogCiB2b2lkIFdlYlBsdWdpbkNvbnRhaW5l
ckltcGw6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkK
</data>
<flag name="review"
          id="71567"
          type_id="1"
          status="-"
          setter="jamesr"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81248</attachid>
            <date>2011-02-04 11:10:48 -0800</date>
            <delta_ts>2011-02-04 11:17:32 -0800</delta_ts>
            <desc>Patch with regression test</desc>
            <filename>invalidate_rect.diff</filename>
            <type>text/plain</type>
            <size>11341</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzY0NSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDItMDQgIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUg
cmVjdCBkb2Vzbid0IHdvcmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworSW52
YWxpZGF0ZSByZWN0IGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgd2Fzbid0IHdvcmtpbmcgaWYgdGhl
IHdlYiBwYWdlIHdhcyBjb21wb3NpdGVkLgorCitUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgaW52
YWxpZGF0ZSBjYWxsIHdhcyBjYXVzaW5nIHNpbXBseSBkaXJ0eWluZyB0aGUgTGF5ZXJDaHJvbWl1
bSBsYXllcnMuIFNpbmNlIHRoZSBwbHVnaW4gd2FzIHdpbmRvd2xlc3MgdGhpcyBkaWRuJ3QgY2F1
c2UgdGhlIHBsdWdpbiB0byBiZSByZXBhaW50ZWQuCisKK0ZpeCB3YXMgdG8gY29weSB0aGUgaW52
YWxpZGF0ZSBjb2RlIGZyb20gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwL1BsdWdpblZp
ZXc6OmludmFsaWRhdGVXaW5kb3dsZXNzUGx1Z2luUmVjdCgpIHdoaWNoIGRvZXMgdGhlIGNvcnJl
Y3QgdGhpbmcuCisKK1Rlc3RlZCBteSBmaXggb24gV2luZG93cyBhbmQgTWFjIGFuZCB2ZXJpZmll
ZCB0aGF0IHRoZSBtb3ZpZSBvbiBodHRwOi8vYXBwbGUuY29tL2FwcGx0diBjb3JyZWN0bHkgcGxh
eXMuIFZlcmlmaWVkIHRoYXQgd2luZG93ZWQgcGx1Z2lucyBzdGlsbCBjb3JyZWN0bHkgZHJhdyBh
cyB3ZWxsLgorCisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjppbnZhbGlkYXRlUmVjdCk6CisK
IDIwMTEtMDItMDQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gNzc2NDMpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI4LDE0ICsxMjgsMTIgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjppbnZhbGlkYXRlUgogICAgIGlmICghcGFyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEludFJlY3QgZGFtYWdlUmVjdCA9IGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3cocmVjdCk7
CisgIFJlbmRlckJveCogcmVuZGVyZXIgPSB0b1JlbmRlckJveChtX2VsZW1lbnQtPnJlbmRlcmVy
KCkpOwogCi0gICAgLy8gR2V0IG91ciBjbGlwIHJlY3QgYW5kIGludGVyc2VjdCB3aXRoIGl0IHRv
IGVuc3VyZSB3ZSBkb24ndCBpbnZhbGlkYXRlCi0gICAgLy8gdG9vIG11Y2guCi0gICAgSW50UmVj
dCBjbGlwUmVjdCA9IHBhcmVudCgpLT53aW5kb3dDbGlwUmVjdCgpOwotICAgIGRhbWFnZVJlY3Qu
aW50ZXJzZWN0KGNsaXBSZWN0KTsKLQotICAgIHBhcmVudCgpLT5ob3N0V2luZG93KCktPmludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhkYW1hZ2VSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsK
KyAgSW50UmVjdCBkaXJ0eVJlY3QgPSByZWN0OworICBkaXJ0eVJlY3QubW92ZShyZW5kZXJlci0+
Ym9yZGVyTGVmdCgpICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksCisgICAgICAgICAgICAgICAg
IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworICByZW5k
ZXJlci0+cmVwYWludFJlY3RhbmdsZShkaXJ0eVJlY3QpOwogfQogCiB2b2lkIFdlYlBsdWdpbkNv
bnRhaW5lckltcGw6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NjQ1KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMDQg
IFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUgcmVjdCBkb2Vzbid0IHdv
cmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworICAgICAgICBBZGRlZCB0d28g
bmV3IHV0aWxpdHkgbWV0aG9kcy4KKyAgICAgICAgLSBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNw
bGF5SW52YWxpZGF0ZWRSZWdpb24oKSBkb2VzIGEgcGFpbnQgb2YgYW55IGFyZWEgdGhhdCBoYXMg
YmVlbiBpbnZhbGlkYXRlZC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBsYXlvdXRUZXN0Q29udHJv
bGxlci5kaXNwbGF5KCkgd2hpY2ggZXhwbGljaXRseSBpbnZhbGlkYXRlcyB0aGUgZW50aXJlIHBh
Z2UgdGhlbiBwYWludHMuCisgICAgICAgIC0gcGx1Z2luLmludmFsaWRhdGVSZWN0KGxlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbSkgLSBpbnZhbGlkYXRlcyB0aGUgZ2l2ZW4gcmVjdAorICAgICAgICBU
aGlzIGlzIHVzZWQgdG8gdGVzdCB0aGF0IGludmFsaWRhdGluZyBhIHJlY3QgY29ycmVjdGx5IGNh
dXNlcyBhIHJlcGFpbnQgb2YgdGhlIHBsdWdpbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwOgorICAgICAgICAoaW52YWxpZGF0
ZVJlY3QpOgorICAgICAgICAocGx1Z2luSW52b2tlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0wMi0wNCAgTWlr
aGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcAkocmV2aXNpb24gNzc2NDUp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0gewogICAgIElEX1NF
VF9TVEFUVVMsCiAgICAgSURfUkVTSVpFX1RPLAogICAgIElEX05PUk1BTElaRSwKKyAgICBJRF9J
TlZBTElEQVRFX1JFQ1QsCiAgICAgTlVNX01FVEhPRF9JREVOVElGSUVSUwogfTsKIApAQCAtMjM5
LDcgKzI0MCw4IEBAIHN0YXRpYyBjb25zdCBOUFVURjggKnBsdWdpbk1ldGhvZElkZW50aWYKICAg
ICAicmVmQ291bnQiLAogICAgICJzZXRTdGF0dXMiLAogICAgICJyZXNpemVUbyIsCi0gICAgIm5v
cm1hbGl6ZSIKKyAgICAibm9ybWFsaXplIiwKKyAgICAiaW52YWxpZGF0ZVJlY3QiCiB9OwogCiBz
dGF0aWMgTlBVVEY4KiBjcmVhdGVDU3RyaW5nRnJvbU5QVmFyaWFudChjb25zdCBOUFZhcmlhbnQq
IHZhcmlhbnQpCkBAIC05ODYsNiArOTg4LDIwIEBAIHN0YXRpYyBib29sIG5vcm1hbGl6ZU92ZXJy
aWRlKFBsdWdpbk9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaW52YWxp
ZGF0ZVJlY3QoUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMy
X3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmdDb3VudCAhPSA0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUFJlY3QgcmVjdDsKKyAgICByZWN0Lmxl
ZnQgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMF0pOworICAgIHJlY3QudG9wID0gTlBWQVJJ
QU5UX1RPX0RPVUJMRShhcmdzWzFdKTsKKyAgICByZWN0LnJpZ2h0ID0gTlBWQVJJQU5UX1RPX0RP
VUJMRShhcmdzWzJdKTsKKyAgICByZWN0LmJvdHRvbSA9IE5QVkFSSUFOVF9UT19ET1VCTEUoYXJn
c1szXSk7CisgICAgCisgICAgYnJvd3Nlci0+aW52YWxpZGF0ZXJlY3Qob2JqLT5ucHAsICZyZWN0
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlKE5QT2Jq
ZWN0KiBoZWFkZXIsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVp
bnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKQEAgLTExMDEsNiArMTExNyw4
IEBAIHN0YXRpYyBib29sIHBsdWdpbkludm9rZShOUE9iamVjdCogaGVhZGUKICAgICAgICAgcmV0
dXJuIHRlc3RSZXNpemVUbyhwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOwogICAgIGlm
IChuYW1lID09IHBsdWdpbk1ldGhvZElkZW50aWZpZXJzW0lEX05PUk1BTElaRV0pCiAgICAgICAg
IHJldHVybiBub3JtYWxpemVPdmVycmlkZShwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQp
OworICAgIGlmIChuYW1lID09IHBsdWdpbk1ldGhvZElkZW50aWZpZXJzW0lEX0lOVkFMSURBVEVf
UkVDVF0pCisgICAgICAgIHJldHVybiBpbnZhbGlkYXRlUmVjdChwbHVnaW4sIGFyZ3MsIGFyZ0Nv
dW50LCByZXN1bHQpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNzc2NDUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2QoImNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUltYWdlTG9hZGluZyIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTG9hZGluZyk7CiAgICAgYmluZE1l
dGhvZCgiZGlzcGxheSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSk7CisgICAgYmlu
ZE1ldGhvZCgiZGlzcGxheUludmFsaWRhdGVkUmVnaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOwogICAgIGJpbmRNZXRob2QoImR1bXBBc1RleHQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1RleHQpOwogICAgIGJpbmRNZXRob2QoImR1
bXBCYWNrRm9yd2FyZExpc3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBCYWNrRm9yd2Fy
ZExpc3QpOwogICAgIGJpbmRNZXRob2QoImR1bXBDaGlsZEZyYW1lc0FzVGV4dCIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZHVtcENoaWxkRnJhbWVzQXNUZXh0KTsKQEAgLTEwODIsNiArMTA4Mywx
NCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KGNvbnN0CiAgICAgcmVzdWx0
LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXlJbnZh
bGlkYXRlZFJlZ2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIFdlYlZpZXdIb3N0KiBob3N0ID0gbV9zaGVsbC0+d2ViVmlld0hv
c3QoKTsKKyAgICBob3N0LT5wYWludEludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgaG9zdC0+ZGlz
cGxheVJlcGFpbnRNYXNrKCk7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnRlc3RSZXBhaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3Rlc3RSZXBhaW50ID0gdHJ1ZTsKSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAkocmV2aXNpb24gNzc2NDUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiArMjUwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZHVtcFRpdGxlQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc3BsYXkoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2
b2lkIHRlc3RSZXBhaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIHJlcGFpbnRTd2VlcEhvcml6b250YWxseShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzY0NSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEx
LTAyLTA0ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIHJlY3QgZG9l
c24ndCB3b3JrIGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgb24gQ2hyb21pdW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisKKyAgICAgICAgQWRk
ZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCgpIHdvcmtzIGNv
cnJlY3RseSBmb3Igd2luZG93bGVzcyBwbHVnaW5zLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tZ3B1L3BsdWdpbjogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tZ3B1
L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1ncHUvcGx1Z2luL2ludmFsaWRhdGVfcmVjdC5odG1sOiBBZGRlZC4K
KwogMjAxMS0wMi0wMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52
YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQgTlBOX0ludmFsaWRh
dGVSZWN0IHdvcmtzIGNvcnJlY3RseS4KK1NVQ0NFU1MKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3Qt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9y
ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1
L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9yZWN0Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNjUgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFk
PgorCisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgI3RyYW5zZm9ybSB7CisgICAgICAt
d2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigwZGVnKSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRl
Zyk7CisgICAgfQorICA8L3N0eWxlPgorCisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgdmFyIHBhaW50Q291bnQgPSAwOworCisgICAgZnVuY3Rpb24gbG9nKG0pCisg
ICAgeworICAgICAgaWYgKHR5cGVvZiBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdFBsdWdp
bicpLnBsdWdpbkxvZyA9PSAnZnVuY3Rpb24nKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd0ZXN0UGx1Z2luJykucGx1Z2luTG9nKG0pOworICAgICAgfQorICAgIH0KKworICAg
IGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgeworICAgICAgbG9nKCJvbkxvYWQiKTsKKworICAgICAg
bG9nKCIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjYWxsaW5nIGRpc3Bs
YXkgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMiKTsKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmRpc3BsYXkoKTsKKyAgICAgIGxvZygiIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMgZG9uZSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyIpOworICAgICAgbG9nKCIjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBj
YWxsaW5nIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyIpOworICAgICAgcGFpbnRDb3VudCA9IDA7CisgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgndGVzdFBsdWdpbicpLmludmFsaWRhdGVSZWN0KDAsIDAsIDIwMCwgMjAwKTsK
KyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpOwor
ICAgICAgaWYgKHBhaW50Q291bnQgPiAwKQorICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdyZXN1bHQnKS5pbm5lckhUTUwgPSAiU1VDQ0VTUyI7CisgICAgICBsb2coIiMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGRvbmUgIyMjIyMjIyMjIyMjIyMjIyMjIyMj
IyMjIyMjIyMjIyMjIyMiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaWRQYWludCgpCisgICAg
eworICAgICAgbG9nKCJkaWRQYWludCIpOworICAgICAgcGFpbnRDb3VudCsrOworICAgICAgcmV0
dXJuICJkaWRQYWludCByZXN1bHQgdmFsdWUiOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgIFRoaXMgdGVzdHMgdGhhdCBOUE5fSW52YWxp
ZGF0ZVJlY3Qgd29ya3MgY29ycmVjdGx5LgorCisgIDxkaXYgaWQ9InJlc3VsdCI+RkFJTFVSRTwv
ZGl2PgorCisgIDwhLS0gZm9yY2UgdGhpcyBwYWdlIHRvIGJlIGNvbXBvc2l0ZWQgLS0+CisgIDxk
aXYgaWQ9InRyYW5zZm9ybSI+CisgIDwvZGl2PgorCisgIDwhLS0gTW92ZSB0aGUgcGx1Z2luIHRv
IHRoZSBtaWRkbGUgb2YgdGhlIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IGludmFsaWRhdGUoKSB3
aWxsIGludmFsaWRhdGUgdGhlIGNvcnJlY3QgcmVnaW9uLiAtLT4KKyAgPGRpdiBzdHlsZT0icG9z
aXRpb246IGFic29sdXRlOyBsZWZ0OiAzMDBweDsgdG9wOiAzMDBweDsgaGVpZ2h0OiA0MDBweDsg
d2lkdGg6IDQwMHB4OyBwYWRkaW5nOiAxZW07Ij4KKworICAgIDxlbWJlZCBpZD0idGVzdFBsdWdp
biIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgd2lkdGg9IjIwMCIg
aGVpZ2h0PSIyMDAiIG9ucGFpbnRldmVudD0iZGlkUGFpbnQoKSIgd2luZG93ZWRQbHVnaW49ImZh
bHNlIj48L2VtYmVkPgorCisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hh
bmdlcyBvbjogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlk
YXRlX3JlY3QuaHRtbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81249</attachid>
            <date>2011-02-04 11:16:54 -0800</date>
            <delta_ts>2011-02-08 14:13:50 -0800</delta_ts>
            <desc>removed debugging code form HTML file</desc>
            <filename>invalidate_rect_2.diff</filename>
            <type>text/plain</type>
            <size>10645</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzY0NSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDItMDQgIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUg
cmVjdCBkb2Vzbid0IHdvcmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworSW52
YWxpZGF0ZSByZWN0IGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgd2Fzbid0IHdvcmtpbmcgaWYgdGhl
IHdlYiBwYWdlIHdhcyBjb21wb3NpdGVkLgorCitUaGUgcHJvYmxlbSB3YXMgdGhhdCB0aGUgaW52
YWxpZGF0ZSBjYWxsIHdhcyBjYXVzaW5nIHNpbXBseSBkaXJ0eWluZyB0aGUgTGF5ZXJDaHJvbWl1
bSBsYXllcnMuIFNpbmNlIHRoZSBwbHVnaW4gd2FzIHdpbmRvd2xlc3MgdGhpcyBkaWRuJ3QgY2F1
c2UgdGhlIHBsdWdpbiB0byBiZSByZXBhaW50ZWQuCisKK0ZpeCB3YXMgdG8gY29weSB0aGUgaW52
YWxpZGF0ZSBjb2RlIGZyb20gV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZpZXcuY3BwL1BsdWdpblZp
ZXc6OmludmFsaWRhdGVXaW5kb3dsZXNzUGx1Z2luUmVjdCgpIHdoaWNoIGRvZXMgdGhlIGNvcnJl
Y3QgdGhpbmcuCisKK1Rlc3RlZCBteSBmaXggb24gV2luZG93cyBhbmQgTWFjIGFuZCB2ZXJpZmll
ZCB0aGF0IHRoZSBtb3ZpZSBvbiBodHRwOi8vYXBwbGUuY29tL2FwcGx0diBjb3JyZWN0bHkgcGxh
eXMuIFZlcmlmaWVkIHRoYXQgd2luZG93ZWQgcGx1Z2lucyBzdGlsbCBjb3JyZWN0bHkgZHJhdyBh
cyB3ZWxsLgorCisgICAgICAgICogc3JjL1dlYlBsdWdpbkNvbnRhaW5lckltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQbHVnaW5Db250YWluZXJJbXBsOjppbnZhbGlkYXRlUmVjdCk6CisK
IDIwMTEtMDItMDQgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQuCkluZGV4OiBTb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQ
bHVnaW5Db250YWluZXJJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkocmV2aXNpb24gNzc2NDMpCisrKyBT
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJQbHVnaW5Db250YWluZXJJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTI4LDE0ICsxMjgsMTIgQEAgdm9pZCBXZWJQbHVnaW5Db250YWluZXJJ
bXBsOjppbnZhbGlkYXRlUgogICAgIGlmICghcGFyZW50KCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEludFJlY3QgZGFtYWdlUmVjdCA9IGNvbnZlcnRUb0NvbnRhaW5pbmdXaW5kb3cocmVjdCk7
CisgIFJlbmRlckJveCogcmVuZGVyZXIgPSB0b1JlbmRlckJveChtX2VsZW1lbnQtPnJlbmRlcmVy
KCkpOwogCi0gICAgLy8gR2V0IG91ciBjbGlwIHJlY3QgYW5kIGludGVyc2VjdCB3aXRoIGl0IHRv
IGVuc3VyZSB3ZSBkb24ndCBpbnZhbGlkYXRlCi0gICAgLy8gdG9vIG11Y2guCi0gICAgSW50UmVj
dCBjbGlwUmVjdCA9IHBhcmVudCgpLT53aW5kb3dDbGlwUmVjdCgpOwotICAgIGRhbWFnZVJlY3Qu
aW50ZXJzZWN0KGNsaXBSZWN0KTsKLQotICAgIHBhcmVudCgpLT5ob3N0V2luZG93KCktPmludmFs
aWRhdGVDb250ZW50c0FuZFdpbmRvdyhkYW1hZ2VSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsK
KyAgSW50UmVjdCBkaXJ0eVJlY3QgPSByZWN0OworICBkaXJ0eVJlY3QubW92ZShyZW5kZXJlci0+
Ym9yZGVyTGVmdCgpICsgcmVuZGVyZXItPnBhZGRpbmdMZWZ0KCksCisgICAgICAgICAgICAgICAg
IHJlbmRlcmVyLT5ib3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworICByZW5k
ZXJlci0+cmVwYWludFJlY3RhbmdsZShkaXJ0eVJlY3QpOwogfQogCiB2b2lkIFdlYlBsdWdpbkNv
bnRhaW5lckltcGw6OnNldEZvY3VzKGJvb2wgZm9jdXNlZCkKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NjQ1KQorKysgVG9v
bHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDItMDQg
IFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUgcmVjdCBkb2Vzbid0IHdv
cmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworICAgICAgICBBZGRlZCB0d28g
bmV3IHV0aWxpdHkgbWV0aG9kcy4KKyAgICAgICAgLSBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNw
bGF5SW52YWxpZGF0ZWRSZWdpb24oKSBkb2VzIGEgcGFpbnQgb2YgYW55IGFyZWEgdGhhdCBoYXMg
YmVlbiBpbnZhbGlkYXRlZC4gVGhpcyBpcyBkaWZmZXJlbnQgZnJvbSBsYXlvdXRUZXN0Q29udHJv
bGxlci5kaXNwbGF5KCkgd2hpY2ggZXhwbGljaXRseSBpbnZhbGlkYXRlcyB0aGUgZW50aXJlIHBh
Z2UgdGhlbiBwYWludHMuCisgICAgICAgIC0gcGx1Z2luLmludmFsaWRhdGVSZWN0KGxlZnQsIHRv
cCwgcmlnaHQsIGJvdHRvbSkgLSBpbnZhbGlkYXRlcyB0aGUgZ2l2ZW4gcmVjdAorICAgICAgICBU
aGlzIGlzIHVzZWQgdG8gdGVzdCB0aGF0IGludmFsaWRhdGluZyBhIHJlY3QgY29ycmVjdGx5IGNh
dXNlcyBhIHJlcGFpbnQgb2YgdGhlIHBsdWdpbi4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwOgorICAgICAgICAoaW52YWxpZGF0
ZVJlY3QpOgorICAgICAgICAocGx1Z2luSW52b2tlKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIpOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKwogMjAxMS0wMi0wNCAgTWlr
aGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2Nh
cGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcAkocmV2aXNpb24gNzc2NDUp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTk5LDYgKzE5OSw3IEBAIGVudW0gewogICAgIElEX1NF
VF9TVEFUVVMsCiAgICAgSURfUkVTSVpFX1RPLAogICAgIElEX05PUk1BTElaRSwKKyAgICBJRF9J
TlZBTElEQVRFX1JFQ1QsCiAgICAgTlVNX01FVEhPRF9JREVOVElGSUVSUwogfTsKIApAQCAtMjM5
LDcgKzI0MCw4IEBAIHN0YXRpYyBjb25zdCBOUFVURjggKnBsdWdpbk1ldGhvZElkZW50aWYKICAg
ICAicmVmQ291bnQiLAogICAgICJzZXRTdGF0dXMiLAogICAgICJyZXNpemVUbyIsCi0gICAgIm5v
cm1hbGl6ZSIKKyAgICAibm9ybWFsaXplIiwKKyAgICAiaW52YWxpZGF0ZVJlY3QiCiB9OwogCiBz
dGF0aWMgTlBVVEY4KiBjcmVhdGVDU3RyaW5nRnJvbU5QVmFyaWFudChjb25zdCBOUFZhcmlhbnQq
IHZhcmlhbnQpCkBAIC05ODYsNiArOTg4LDIwIEBAIHN0YXRpYyBib29sIG5vcm1hbGl6ZU92ZXJy
aWRlKFBsdWdpbk9iamUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorc3RhdGljIGJvb2wgaW52YWxp
ZGF0ZVJlY3QoUGx1Z2luT2JqZWN0KiBvYmosIGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMy
X3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVzdWx0KQoreworICAgIGlmIChhcmdDb3VudCAhPSA0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOUFJlY3QgcmVjdDsKKyAgICByZWN0Lmxl
ZnQgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMF0pOworICAgIHJlY3QudG9wID0gTlBWQVJJ
QU5UX1RPX0RPVUJMRShhcmdzWzFdKTsKKyAgICByZWN0LnJpZ2h0ID0gTlBWQVJJQU5UX1RPX0RP
VUJMRShhcmdzWzJdKTsKKyAgICByZWN0LmJvdHRvbSA9IE5QVkFSSUFOVF9UT19ET1VCTEUoYXJn
c1szXSk7CisgICAgCisgICAgYnJvd3Nlci0+aW52YWxpZGF0ZXJlY3Qob2JqLT5ucHAsICZyZWN0
KTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KIAogc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlKE5QT2Jq
ZWN0KiBoZWFkZXIsIE5QSWRlbnRpZmllciBuYW1lLCBjb25zdCBOUFZhcmlhbnQqIGFyZ3MsIHVp
bnQzMl90IGFyZ0NvdW50LCBOUFZhcmlhbnQqIHJlc3VsdCkKIHsKQEAgLTExMDEsNiArMTExNyw4
IEBAIHN0YXRpYyBib29sIHBsdWdpbkludm9rZShOUE9iamVjdCogaGVhZGUKICAgICAgICAgcmV0
dXJuIHRlc3RSZXNpemVUbyhwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQpOwogICAgIGlm
IChuYW1lID09IHBsdWdpbk1ldGhvZElkZW50aWZpZXJzW0lEX05PUk1BTElaRV0pCiAgICAgICAg
IHJldHVybiBub3JtYWxpemVPdmVycmlkZShwbHVnaW4sIGFyZ3MsIGFyZ0NvdW50LCByZXN1bHQp
OworICAgIGlmIChuYW1lID09IHBsdWdpbk1ldGhvZElkZW50aWZpZXJzW0lEX0lOVkFMSURBVEVf
UkVDVF0pCisgICAgICAgIHJldHVybiBpbnZhbGlkYXRlUmVjdChwbHVnaW4sIGFyZ3MsIGFyZ0Nv
dW50LCByZXN1bHQpOwogCiAgICAgcmV0dXJuIGZhbHNlOwogfQpJbmRleDogVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gNzc2NDUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5LDYgKzg5LDcgQEAgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbAogICAgIGJpbmRNZXRob2QoImNvdW50
ZXJWYWx1ZUZvckVsZW1lbnRCeUlkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpjb3VudGVyVmFs
dWVGb3JFbGVtZW50QnlJZCk7CiAgICAgYmluZE1ldGhvZCgiZGlzYWJsZUltYWdlTG9hZGluZyIs
ICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzYWJsZUltYWdlTG9hZGluZyk7CiAgICAgYmluZE1l
dGhvZCgiZGlzcGxheSIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZGlzcGxheSk7CisgICAgYmlu
ZE1ldGhvZCgiZGlzcGxheUludmFsaWRhdGVkUmVnaW9uIiwgJkxheW91dFRlc3RDb250cm9sbGVy
OjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOwogICAgIGJpbmRNZXRob2QoImR1bXBBc1RleHQi
LCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBBc1RleHQpOwogICAgIGJpbmRNZXRob2QoImR1
bXBCYWNrRm9yd2FyZExpc3QiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmR1bXBCYWNrRm9yd2Fy
ZExpc3QpOwogICAgIGJpbmRNZXRob2QoImR1bXBDaGlsZEZyYW1lc0FzVGV4dCIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZHVtcENoaWxkRnJhbWVzQXNUZXh0KTsKQEAgLTEwODIsNiArMTA4Mywx
NCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KGNvbnN0CiAgICAgcmVzdWx0
LT5zZXROdWxsKCk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXlJbnZh
bGlkYXRlZFJlZ2lvbihjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFu
dCogcmVzdWx0KQoreworICAgIFdlYlZpZXdIb3N0KiBob3N0ID0gbV9zaGVsbC0+d2ViVmlld0hv
c3QoKTsKKyAgICBob3N0LT5wYWludEludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgaG9zdC0+ZGlz
cGxheVJlcGFpbnRNYXNrKCk7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7Cit9CisKIHZvaWQgTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnRlc3RSZXBhaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqIHJlc3VsdCkKIHsKICAgICBtX3Rlc3RSZXBhaW50ID0gdHJ1ZTsKSW5kZXg6IFRv
b2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAkocmV2aXNpb24gNzc2NDUpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCSh3b3JraW5nIGNvcHkpCkBAIC0yNTAsNiArMjUwLDcgQEAg
cHVibGljOgogICAgIHZvaWQgZHVtcFRpdGxlQ2hhbmdlcyhjb25zdCBDcHBBcmd1bWVudExpc3Qm
LCBDcHBWYXJpYW50Kik7CiAgICAgdm9pZCBzZXRNYWluRnJhbWVJc0ZpcnN0UmVzcG9uZGVyKGNv
bnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGRpc3BsYXkoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAgIHZvaWQgZGlzcGxheUludmFs
aWRhdGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2
b2lkIHRlc3RSZXBhaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAg
ICB2b2lkIHJlcGFpbnRTd2VlcEhvcml6b250YWxseShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CiAgICAgdm9pZCBjbGVhckJhY2tGb3J3YXJkTGlzdChjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzY0NSkKKysrIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEx
LTAyLTA0ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRlIHJlY3QgZG9l
c24ndCB3b3JrIGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgb24gQ2hyb21pdW0KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisKKyAgICAgICAgQWRk
ZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCgpIHdvcmtzIGNv
cnJlY3RseSBmb3Igd2luZG93bGVzcyBwbHVnaW5zLgorCisgICAgICAgICogcGxhdGZvcm0vY2hy
b21pdW0tZ3B1L3BsdWdpbjogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0tZ3B1
L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9jaHJvbWl1bS1ncHUvcGx1Z2luL2ludmFsaWRhdGVfcmVjdC5odG1sOiBBZGRlZC4K
KwogMjAxMS0wMi0wMyAgRGltaXRyaSBHbGF6a292ICA8ZGdsYXprb3ZAY2hyb21pdW0ub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEtlbnQgVGFtdXJhLgpJbmRleDogTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52
YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQgTlBOX0ludmFsaWRh
dGVSZWN0IHdvcmtzIGNvcnJlY3RseS4KK1NVQ0NFU1MKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjog
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3Qt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKICAgKyBMRgoKSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9y
ZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1
L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtLWdwdS9wbHVnaW4vaW52YWxpZGF0ZV9yZWN0Lmh0bWwJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPgorCis8aHRtbD4KKzxoZWFk
PgorCisgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgI3RyYW5zZm9ybSB7CisgICAgICAt
d2Via2l0LXRyYW5zZm9ybTogcm90YXRlWigwZGVnKSByb3RhdGVYKDBkZWcpIHJvdGF0ZVkoMGRl
Zyk7CisgICAgfQorICA8L3N0eWxlPgorCisgIDxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworCisgICAgdmFyIHBhaW50Q291bnQgPSAwOworCisgICAgZnVuY3Rpb24gb25Mb2FkKCkK
KyAgICB7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7CisgICAgICBwYWlu
dENvdW50ID0gMDsKKyAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0UGx1Z2luJyku
aW52YWxpZGF0ZVJlY3QoMCwgMCwgMjAwLCAyMDApOworICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKCk7CisgICAgICBpZiAocGFpbnRDb3VudCA+IDAp
CisgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9
ICJTVUNDRVNTIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBkaWRQYWludCgpCisgICAgeworICAg
ICAgcGFpbnRDb3VudCsrOworICAgIH0KKyAgPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxv
YWQ9Im9uTG9hZCgpOyI+CisgIFRoaXMgdGVzdHMgdGhhdCBOUE5fSW52YWxpZGF0ZVJlY3Qgd29y
a3MgY29ycmVjdGx5LgorCisgIDxkaXYgaWQ9InJlc3VsdCI+RkFJTFVSRTwvZGl2PgorCisgIDwh
LS0gZm9yY2UgdGhpcyBwYWdlIHRvIGJlIGNvbXBvc2l0ZWQgLS0+CisgIDxkaXYgaWQ9InRyYW5z
Zm9ybSI+CisgIDwvZGl2PgorCisgIDwhLS0gTW92ZSB0aGUgcGx1Z2luIHRvIHRoZSBtaWRkbGUg
b2YgdGhlIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IGludmFsaWRhdGUoKSB3aWxsIGludmFsaWRh
dGUgdGhlIGNvcnJlY3QgcmVnaW9uLiAtLT4KKyAgPGRpdiBzdHlsZT0icG9zaXRpb246IGFic29s
dXRlOyBsZWZ0OiAzMDBweDsgdG9wOiAzMDBweDsgaGVpZ2h0OiA0MDBweDsgd2lkdGg6IDQwMHB4
OyBwYWRkaW5nOiAxZW07Ij4KKworICAgIDxlbWJlZCBpZD0idGVzdFBsdWdpbiIgdHlwZT0iYXBw
bGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSIgd2lkdGg9IjIwMCIgaGVpZ2h0PSIyMDAi
IG9ucGFpbnRldmVudD0iZGlkUGFpbnQoKSIgd2luZG93ZWRQbHVnaW49ImZhbHNlIj48L2VtYmVk
PgorCisgIDwvZGl2PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tZ3B1L3BsdWdpbi9pbnZhbGlkYXRlX3JlY3QuaHRt
bApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fCkFkZGVkOiBzdm46ZW9sLXN0eWxlCiAgICsgTEYKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81691</attachid>
            <date>2011-02-08 14:13:53 -0800</date>
            <delta_ts>2011-02-08 17:51:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53117-20110208141352.patch</filename>
            <type>text/plain</type>
            <size>13756</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzk2OSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDItMDggIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUg
cmVjdCBkb2Vzbid0IHdvcmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworICAg
ICAgICBJbnZhbGlkYXRlIHJlY3QgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyB3YXNuJ3Qgd29ya2lu
ZyBpZiB0aGUgd2ViIHBhZ2Ugd2FzIGNvbXBvc2l0ZWQuCisKKyAgICAgICAgVGhlIHByb2JsZW0g
d2FzIHRoYXQgdGhlIGludmFsaWRhdGUgY2FsbCB3YXMgY2F1c2luZyBzaW1wbHkgZGlydHlpbmcg
dGhlIExheWVyQ2hyb21pdW0gbGF5ZXJzLiBTaW5jZSB0aGUgcGx1Z2luIHdhcyB3aW5kb3dsZXNz
IHRoaXMgZGlkbid0IGNhdXNlIHRoZSBwbHVnaW4gdG8gYmUgcmVwYWludGVkLgorCisgICAgICAg
IEZpeCB3YXMgdG8gY29weSB0aGUgaW52YWxpZGF0ZSBjb2RlIGZyb20gV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwL1BsdWdpblZpZXc6OmludmFsaWRhdGVXaW5kb3dsZXNzUGx1Z2luUmVj
dCgpIHdoaWNoIGRvZXMgdGhlIGNvcnJlY3QgdGhpbmcuCisKKyAgICAgICAgVGVzdGVkIG15IGZp
eCBvbiBXaW5kb3dzIGFuZCBNYWMgYW5kIHZlcmlmaWVkIHRoYXQgdGhlIG1vdmllIG9uIGh0dHA6
Ly9hcHBsZS5jb20vYXBwbHR2IGNvcnJlY3RseSBwbGF5cy4gVmVyaWZpZWQgdGhhdCB3aW5kb3dl
ZCBwbHVnaW5zIHN0aWxsIGNvcnJlY3RseSBkcmF3IGFzIHdlbGwuCisKKyAgICAgICAgKiBzcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lckltcGw6OmludmFsaWRhdGVSZWN0KToKKwogMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAJKHJldmlzaW9uIDc3OTYyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwx
NCArMTI5LDEyIEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aW52YWxpZGF0ZVIKICAg
ICBpZiAoIXBhcmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IGRhbWFnZVJl
Y3QgPSBjb252ZXJ0VG9Db250YWluaW5nV2luZG93KHJlY3QpOworICAgIFJlbmRlckJveCogcmVu
ZGVyZXIgPSB0b1JlbmRlckJveChtX2VsZW1lbnQtPnJlbmRlcmVyKCkpOwogCi0gICAgLy8gR2V0
IG91ciBjbGlwIHJlY3QgYW5kIGludGVyc2VjdCB3aXRoIGl0IHRvIGVuc3VyZSB3ZSBkb24ndCBp
bnZhbGlkYXRlCi0gICAgLy8gdG9vIG11Y2guCi0gICAgSW50UmVjdCBjbGlwUmVjdCA9IHBhcmVu
dCgpLT53aW5kb3dDbGlwUmVjdCgpOwotICAgIGRhbWFnZVJlY3QuaW50ZXJzZWN0KGNsaXBSZWN0
KTsKLQotICAgIHBhcmVudCgpLT5ob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyhkYW1hZ2VSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAgICBJbnRSZWN0IGRpcnR5
UmVjdCA9IHJlY3Q7CisgICAgZGlydHlSZWN0Lm1vdmUocmVuZGVyZXItPmJvcmRlckxlZnQoKSAr
IHJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLAorICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5i
b3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworICAgIHJlbmRlcmVyLT5yZXBh
aW50UmVjdGFuZ2xlKGRpcnR5UmVjdCk7CiB9CiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNzc5NjkpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wMi0wOCAgU2FpbGVzaCBB
Z3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW52YWxpZGF0ZSByZWN0IGRvZXNuJ3Qgd29yayBmb3Igd2lu
ZG93bGVzcyBwbHVnaW5zIG9uIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MzExNworCisgICAgICAgIEFkZGVkIHR3byBuZXcgdXRpbGl0
eSBtZXRob2RzLgorICAgICAgICAtIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXlJbnZhbGlk
YXRlZFJlZ2lvbigpIGRvZXMgYSBwYWludCBvZiBhbnkgYXJlYSB0aGF0IGhhcyBiZWVuIGludmFs
aWRhdGVkLiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3Bs
YXkoKSB3aGljaCBleHBsaWNpdGx5IGludmFsaWRhdGVzIHRoZSBlbnRpcmUgcGFnZSB0aGVuIHBh
aW50cy4KKyAgICAgICAgLSBwbHVnaW4uaW52YWxpZGF0ZVJlY3QobGVmdCwgdG9wLCByaWdodCwg
Ym90dG9tKSAtIGludmFsaWRhdGVzIHRoZSBnaXZlbiByZWN0CisgICAgICAgIFRoaXMgaXMgdXNl
ZCB0byB0ZXN0IHRoYXQgaW52YWxpZGF0aW5nIGEgcmVjdCBjb3JyZWN0bHkgY2F1c2VzIGEgcmVw
YWludCBvZiB0aGUgcGx1Z2luLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJh
Y2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcDoKKyAg
ICAgICAgKGludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKHBsdWdpbkludm9rZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUu
cHk6CisKIDIwMTEtMDItMDggIEt1bmR1IFN1Y2hpc21pdGEgIDxzdWNoaS5rdW5kdUBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdvbWJvcy4KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDc3OTYy
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NDUsNiArNDQ1LDE3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlD
YWxsYmFjayhKU0NvbnQKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93
cyBpbXBsZW1lbnRhdGlvbgorICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworICAgIC8vIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkgb25seSBy
ZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KKyAgICAvLyB3ZSBjYW4ganVzdCB1c2Ug
dGhhdC4KKyAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGVuY29kZUhvc3RO
YW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBt
YWMgaW1wbGVtZW50YXRpb24KQEAgLTE5ODAsNiArMTk5MSw3IEBAIEpTU3RhdGljRnVuY3Rpb24q
IExheW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiZGlzYWJsZUltYWdlTG9hZGluZyIs
IGRpc2FibGVJbWFnZUxvYWRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNwYXRj
aFBlbmRpbmdMb2FkUmVxdWVzdHMiLCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNwbGF5IiwgZGlzcGxheUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CisgICAgICAgIHsgImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIsIGRpc3BsYXlJbnZhbGlkYXRl
ZFJlZ2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBBcHBsaWNhdGlvbkNhY2hl
RGVsZWdhdGVDYWxsYmFja3MiLCBkdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQmFja0ZvcndhcmRMaXN0IiwgZHVtcEJhY2tG
b3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDc3OTYyKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiAr
NTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlSW1hZ2VMb2FkaW5nKCk7CiAgICAgdm9p
ZCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMoKTsKICAgICB2b2lkIGRpc3BsYXkoKTsKKyAg
ICB2b2lkIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQo
SlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOwogICAgIGJvb2wgZmluZFN0cmlu
ZyhKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpOwog
ICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKTsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5P
YmplY3QuY3BwCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNiAr
MTk5LDcgQEAgZW51bSB7CiAgICAgSURfU0VUX1NUQVRVUywKICAgICBJRF9SRVNJWkVfVE8sCiAg
ICAgSURfTk9STUFMSVpFLAorICAgIElEX0lOVkFMSURBVEVfUkVDVCwKICAgICBOVU1fTUVUSE9E
X0lERU5USUZJRVJTCiB9OwogCkBAIC0yMzksNyArMjQwLDggQEAgc3RhdGljIGNvbnN0IE5QVVRG
OCAqcGx1Z2luTWV0aG9kSWRlbnRpZgogICAgICJyZWZDb3VudCIsCiAgICAgInNldFN0YXR1cyIs
CiAgICAgInJlc2l6ZVRvIiwKLSAgICAibm9ybWFsaXplIgorICAgICJub3JtYWxpemUiLAorICAg
ICJpbnZhbGlkYXRlUmVjdCIKIH07CiAKIHN0YXRpYyBOUFVURjgqIGNyZWF0ZUNTdHJpbmdGcm9t
TlBWYXJpYW50KGNvbnN0IE5QVmFyaWFudCogdmFyaWFudCkKQEAgLTk4Niw2ICs5ODgsMjAgQEAg
c3RhdGljIGJvb2wgbm9ybWFsaXplT3ZlcnJpZGUoUGx1Z2luT2JqZQogICAgIHJldHVybiB0cnVl
OwogfQogCitzdGF0aWMgYm9vbCBpbnZhbGlkYXRlUmVjdChQbHVnaW5PYmplY3QqIG9iaiwgY29u
c3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgaWYgKGFyZ0NvdW50ICE9IDQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IE5QUmVjdCByZWN0OworICAgIHJlY3QubGVmdCA9IE5QVkFSSUFOVF9UT19ET1VCTEUoYXJnc1sw
XSk7CisgICAgcmVjdC50b3AgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMV0pOworICAgIHJl
Y3QucmlnaHQgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMl0pOworICAgIHJlY3QuYm90dG9t
ID0gTlBWQVJJQU5UX1RPX0RPVUJMRShhcmdzWzNdKTsKKyAgICAKKyAgICBicm93c2VyLT5pbnZh
bGlkYXRlcmVjdChvYmotPm5wcCwgJnJlY3QpOworICAgIHJldHVybiB0cnVlOworfQogCiBzdGF0
aWMgYm9vbCBwbHVnaW5JbnZva2UoTlBPYmplY3QqIGhlYWRlciwgTlBJZGVudGlmaWVyIG5hbWUs
IGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVz
dWx0KQogewpAQCAtMTEwMSw2ICsxMTE3LDggQEAgc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlKE5Q
T2JqZWN0KiBoZWFkZQogICAgICAgICByZXR1cm4gdGVzdFJlc2l6ZVRvKHBsdWdpbiwgYXJncywg
YXJnQ291bnQsIHJlc3VsdCk7CiAgICAgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmll
cnNbSURfTk9STUFMSVpFXSkKICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU92ZXJyaWRlKHBsdWdp
biwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CisgICAgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9k
SWRlbnRpZmllcnNbSURfSU5WQUxJREFURV9SRUNUXSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRh
dGVSZWN0KHBsdWdpbiwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CiAKICAgICByZXR1cm4gZmFs
c2U7CiB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODksNiArODksNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRy
b2xsCiAgICAgYmluZE1ldGhvZCgiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKTsKICAgICBiaW5kTWV0
aG9kKCJkaXNhYmxlSW1hZ2VMb2FkaW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxl
SW1hZ2VMb2FkaW5nKTsKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5IiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpkaXNwbGF5KTsKKyAgICBiaW5kTWV0aG9kKCJkaXNwbGF5SW52YWxpZGF0ZWRSZWdp
b24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik7CiAg
ICAgYmluZE1ldGhvZCgiZHVtcEFzVGV4dCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFz
VGV4dCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcEJhY2tGb3J3YXJkTGlzdCIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZHVtcEJhY2tGb3J3YXJkTGlzdCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcENo
aWxkRnJhbWVzQXNUZXh0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQ2hpbGRGcmFtZXNB
c1RleHQpOwpAQCAtMTA4NCw2ICsxMDg1LDE0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmRpc3BsYXkoY29uc3QKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgV2ViVmlld0hvc3Qq
IGhvc3QgPSBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpOworICAgIGhvc3QtPnBhaW50SW52YWxpZGF0
ZWRSZWdpb24oKTsKKyAgICBob3N0LT5kaXNwbGF5UmVwYWludE1hc2soKTsKKyAgICByZXN1bHQt
PnNldE51bGwoKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6dGVzdFJlcGFpbnQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fdGVz
dFJlcGFpbnQgPSB0cnVlOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1MCw2ICsyNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wVGl0bGVDaGFu
Z2VzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldE1h
aW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgZGlzcGxheShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CisgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgdGVzdFJlcGFpbnQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGNsZWFyQmFj
a0ZvcndhcmRMaXN0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fZ3B1LnB5CShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5CSh3b3JraW5nIGNvcHkpCkBAIC03
OCw2ICs3OCw5IEBAIGRlZiBfdGVzdHMocG9ydCwgcGF0aHMpOgogICAgICAgICAgICAgIyBDYW52
YXMgaXMgbm90IHlldCBhY2NlbGVyYXRlZCBvbiB0aGUgTWFjLCBzbyB0aGVyZSdzIG5vIHBvaW50
CiAgICAgICAgICAgICAjIGluIHJ1bm5pbmcgdGhlIHRlc3RzIHRoZXJlLgogICAgICAgICAgICAg
cGF0aHMgKz0gWydmYXN0L2NhbnZhcycsICdjYW52YXMvcGhpbGlwJ10KKyAgICAgICAgIyBpbnZh
bGlkYXRlX3JlY3QuaHRtbCB0ZXN0cyBhIGJ1ZyBpbiB0aGUgY29tcG9zaXRvci4KKyAgICAgICAg
IyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisgICAg
ICAgIHBhdGhzICs9IFsncGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbCddCiAgICAgcmV0dXJu
IHRlc3RfZmlsZXMuZmluZChwb3J0LCBwYXRocykKIAogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzk2
OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1
IEBACisyMDExLTAyLTA4ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRl
IHJlY3QgZG9lc24ndCB3b3JrIGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgb24gQ2hyb21pdW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisKKyAg
ICAgICAgQWRkZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCgp
IHdvcmtzIGNvcnJlY3RseSBmb3Igd2luZG93bGVzcyBwbHVnaW5zLgorCisgICAgICAgICogcGx1
Z2lucy9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVn
aW5zL2ludmFsaWRhdGVfcmVjdC5odG1sOiBBZGRlZC4KKwogMjAxMS0wMi0wOCAgWmhlbnlhbyBN
byAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHR5cG8gZml4LgpJbmRl
eDogTGF5b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvaW52YWxpZGF0ZV9yZWN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitUaGlzIHRlc3RzIHRoYXQg
TlBOX0ludmFsaWRhdGVSZWN0IHdvcmtzIGNvcnJlY3RseS4KK1NVQ0NFU1MKKwpJbmRleDogTGF5
b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhlYWQ+CisKKyAgPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyAgICAjdHJhbnNmb3JtIHsKKyAgICAgIC13ZWJraXQtdHJhbnNm
b3JtOiByb3RhdGVaKDBkZWcpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgwZGVnKTsKKyAgICB9Cisg
IDwvc3R5bGU+CisKKyAgPHNjcmlwdD4KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisKKyAgICB2
YXIgcGFpbnRDb3VudCA9IDA7CisKKyAgICBmdW5jdGlvbiBvbkxvYWQoKQorICAgIHsKKyAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKKyAgICAgIHBhaW50Q291bnQgPSAwOwor
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RQbHVnaW4nKS5pbnZhbGlkYXRlUmVj
dCgwLCAwLCAyMDAsIDIwMCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5SW52
YWxpZGF0ZWRSZWdpb24oKTsKKyAgICAgIGlmIChwYWludENvdW50ID4gMCkKKyAgICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1MID0gIlNVQ0NFU1MiOwor
ICAgIH0KKworICAgIGZ1bmN0aW9uIGRpZFBhaW50KCkKKyAgICB7CisgICAgICBwYWludENvdW50
Kys7CisgICAgfQorICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ib25Mb2FkKCk7
Ij4KKyAgVGhpcyB0ZXN0cyB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCB3b3JrcyBjb3JyZWN0bHku
CisKKyAgPGRpdiBpZD0icmVzdWx0Ij5GQUlMVVJFPC9kaXY+CisKKyAgPCEtLSBmb3JjZSB0aGlz
IHBhZ2UgdG8gYmUgY29tcG9zaXRlZCAtLT4KKyAgPGRpdiBpZD0idHJhbnNmb3JtIj4KKyAgPC9k
aXY+CisKKyAgPCEtLSBNb3ZlIHRoZSBwbHVnaW4gdG8gdGhlIG1pZGRsZSBvZiB0aGUgcGFnZS4g
VGhpcyBlbnN1cmVzIHRoYXQgaW52YWxpZGF0ZSgpIHdpbGwgaW52YWxpZGF0ZSB0aGUgY29ycmVj
dCByZWdpb24uIC0tPgorICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJzb2x1dGU7IGxlZnQ6IDMw
MHB4OyB0b3A6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogNDAwcHg7IHBhZGRpbmc6IDFl
bTsiPgorCisgICAgPGVtYmVkIGlkPSJ0ZXN0UGx1Z2luIiB0eXBlPSJhcHBsaWNhdGlvbi94LXdl
YmtpdC10ZXN0LW5ldHNjYXBlIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIwMCIgb25wYWludGV2ZW50
PSJkaWRQYWludCgpIiB3aW5kb3dlZFBsdWdpbj0iZmFsc2UiPjwvZW1iZWQ+CisKKyAgPC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81726</attachid>
            <date>2011-02-08 17:51:05 -0800</date>
            <delta_ts>2011-02-08 19:30:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53117-20110208175104.patch</filename>
            <type>text/plain</type>
            <size>14284</size>
            <attacher name="Sailesh Agrawal">sail</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzk2OSkKKysrIFNvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTEtMDItMDggIFNhaWxlc2ggQWdyYXdhbCAgPHNhaWxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEludmFsaWRhdGUg
cmVjdCBkb2Vzbid0IHdvcmsgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyBvbiBDaHJvbWl1bQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTMxMTcKKworICAg
ICAgICBJbnZhbGlkYXRlIHJlY3QgZm9yIHdpbmRvd2xlc3MgcGx1Z2lucyB3YXNuJ3Qgd29ya2lu
ZyBpZiB0aGUgd2ViIHBhZ2Ugd2FzIGNvbXBvc2l0ZWQuCisKKyAgICAgICAgVGhlIHByb2JsZW0g
d2FzIHRoYXQgdGhlIGludmFsaWRhdGUgY2FsbCB3YXMgY2F1c2luZyBzaW1wbHkgZGlydHlpbmcg
dGhlIExheWVyQ2hyb21pdW0gbGF5ZXJzLiBTaW5jZSB0aGUgcGx1Z2luIHdhcyB3aW5kb3dsZXNz
IHRoaXMgZGlkbid0IGNhdXNlIHRoZSBwbHVnaW4gdG8gYmUgcmVwYWludGVkLgorCisgICAgICAg
IEZpeCB3YXMgdG8gY29weSB0aGUgaW52YWxpZGF0ZSBjb2RlIGZyb20gV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwL1BsdWdpblZpZXc6OmludmFsaWRhdGVXaW5kb3dsZXNzUGx1Z2luUmVj
dCgpIHdoaWNoIGRvZXMgdGhlIGNvcnJlY3QgdGhpbmcuCisKKyAgICAgICAgVGVzdGVkIG15IGZp
eCBvbiBXaW5kb3dzIGFuZCBNYWMgYW5kIHZlcmlmaWVkIHRoYXQgdGhlIG1vdmllIG9uIGh0dHA6
Ly9hcHBsZS5jb20vYXBwbHR2IGNvcnJlY3RseSBwbGF5cy4gVmVyaWZpZWQgdGhhdCB3aW5kb3dl
ZCBwbHVnaW5zIHN0aWxsIGNvcnJlY3RseSBkcmF3IGFzIHdlbGwuCisKKyAgICAgICAgKiBzcmMv
V2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBsdWdpbkNv
bnRhaW5lckltcGw6OmludmFsaWRhdGVSZWN0KToKKwogMjAxMS0wMi0wOCAgQWRhbSBCYXJ0aCAg
PGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJ
bmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViUGx1Z2luQ29u
dGFpbmVySW1wbC5jcHAJKHJldmlzaW9uIDc3OTYyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViUGx1Z2luQ29udGFpbmVySW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyOSwx
NCArMTI5LDEyIEBAIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1wbDo6aW52YWxpZGF0ZVIKICAg
ICBpZiAoIXBhcmVudCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnRSZWN0IGRhbWFnZVJl
Y3QgPSBjb252ZXJ0VG9Db250YWluaW5nV2luZG93KHJlY3QpOworICAgIFJlbmRlckJveCogcmVu
ZGVyZXIgPSB0b1JlbmRlckJveChtX2VsZW1lbnQtPnJlbmRlcmVyKCkpOwogCi0gICAgLy8gR2V0
IG91ciBjbGlwIHJlY3QgYW5kIGludGVyc2VjdCB3aXRoIGl0IHRvIGVuc3VyZSB3ZSBkb24ndCBp
bnZhbGlkYXRlCi0gICAgLy8gdG9vIG11Y2guCi0gICAgSW50UmVjdCBjbGlwUmVjdCA9IHBhcmVu
dCgpLT53aW5kb3dDbGlwUmVjdCgpOwotICAgIGRhbWFnZVJlY3QuaW50ZXJzZWN0KGNsaXBSZWN0
KTsKLQotICAgIHBhcmVudCgpLT5ob3N0V2luZG93KCktPmludmFsaWRhdGVDb250ZW50c0FuZFdp
bmRvdyhkYW1hZ2VSZWN0LCBmYWxzZSAvKmltbWVkaWF0ZSovKTsKKyAgICBJbnRSZWN0IGRpcnR5
UmVjdCA9IHJlY3Q7CisgICAgZGlydHlSZWN0Lm1vdmUocmVuZGVyZXItPmJvcmRlckxlZnQoKSAr
IHJlbmRlcmVyLT5wYWRkaW5nTGVmdCgpLAorICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyLT5i
b3JkZXJUb3AoKSArIHJlbmRlcmVyLT5wYWRkaW5nVG9wKCkpOworICAgIHJlbmRlcmVyLT5yZXBh
aW50UmVjdGFuZ2xlKGRpcnR5UmVjdCk7CiB9CiAKIHZvaWQgV2ViUGx1Z2luQ29udGFpbmVySW1w
bDo6c2V0Rm9jdXMoYm9vbCBmb2N1c2VkKQpJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNzc5NjkpCisrKyBUb29scy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyOCBAQAorMjAxMS0wMi0wOCAgU2FpbGVzaCBB
Z3Jhd2FsICA8c2FpbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgSW52YWxpZGF0ZSByZWN0IGRvZXNuJ3Qgd29yayBmb3Igd2lu
ZG93bGVzcyBwbHVnaW5zIG9uIENocm9taXVtCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD01MzExNworCisgICAgICAgIEFkZGVkIHR3byBuZXcgdXRpbGl0
eSBtZXRob2RzLgorICAgICAgICAtIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXlJbnZhbGlk
YXRlZFJlZ2lvbigpIGRvZXMgYSBwYWludCBvZiBhbnkgYXJlYSB0aGF0IGhhcyBiZWVuIGludmFs
aWRhdGVkLiBUaGlzIGlzIGRpZmZlcmVudCBmcm9tIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3Bs
YXkoKSB3aGljaCBleHBsaWNpdGx5IGludmFsaWRhdGVzIHRoZSBlbnRpcmUgcGFnZSB0aGVuIHBh
aW50cy4KKyAgICAgICAgLSBwbHVnaW4uaW52YWxpZGF0ZVJlY3QobGVmdCwgdG9wLCByaWdodCwg
Ym90dG9tKSAtIGludmFsaWRhdGVzIHRoZSBnaXZlbiByZWN0CisgICAgICAgIFRoaXMgaXMgdXNl
ZCB0byB0ZXN0IHRoYXQgaW52YWxpZGF0aW5nIGEgcmVjdCBjb3JyZWN0bHkgY2F1c2VzIGEgcmVw
YWludCBvZiB0aGUgcGx1Z2luLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoZGlzcGxheUludmFsaWRhdGVkUmVnaW9uQ2FsbGJh
Y2spOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9UZXN0TmV0c2NhcGVQbHVnSW4vUGx1Z2luT2JqZWN0LmNwcDoKKyAg
ICAgICAgKGludmFsaWRhdGVSZWN0KToKKyAgICAgICAgKHBsdWdpbkludm9rZSk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250cm9sbGVyKToKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24pOgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6Cisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUu
cHk6CisKIDIwMTEtMDItMDggIEt1bmR1IFN1Y2hpc21pdGEgIDxzdWNoaS5rdW5kdUBub2tpYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTGFzemxvIEdvbWJvcy4KSW5kZXg6IFRvb2xzL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAJKHJldmlzaW9uIDc3OTYy
KQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NDUsNiArNDQ1LDE3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlD
YWxsYmFjayhKU0NvbnQKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbkNhbGxiYWNr
KEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYg
dGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1l
bnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBIYXMgbWFjICYgd2luZG93
cyBpbXBsZW1lbnRhdGlvbgorICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworICAgIC8vIExheW91dFRlc3RDb250cm9sbGVyOjpkaXNwbGF5KCkgb25seSBy
ZW5kZXJzIHRoZSBpbnZhbGlkYXRlZCByZWdpb24gc28KKyAgICAvLyB3ZSBjYW4ganVzdCB1c2Ug
dGhhdC4KKyAgICBjb250cm9sbGVyLT5kaXNwbGF5KCk7CisKKyAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIHN0YXRpYyBKU1ZhbHVlUmVmIGVuY29kZUhvc3RO
YW1lQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBK
U09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1
ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIC8vIEhhcyBt
YWMgaW1wbGVtZW50YXRpb24KQEAgLTE5ODAsNiArMTk5MSw3IEBAIEpTU3RhdGljRnVuY3Rpb24q
IExheW91dFRlc3RDb250cm9sbGVyOjoKICAgICAgICAgeyAiZGlzYWJsZUltYWdlTG9hZGluZyIs
IGRpc2FibGVJbWFnZUxvYWRpbmdDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25s
eSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNwYXRj
aFBlbmRpbmdMb2FkUmVxdWVzdHMiLCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHNDYWxsYmFj
aywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9u
dERlbGV0ZSB9LAogICAgICAgICB7ICJkaXNwbGF5IiwgZGlzcGxheUNhbGxiYWNrLCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0s
CisgICAgICAgIHsgImRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbiIsIGRpc3BsYXlJbnZhbGlkYXRl
ZFJlZ2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBBcHBsaWNhdGlvbkNhY2hl
RGVsZWdhdGVDYWxsYmFja3MiLCBkdW1wQXBwbGljYXRpb25DYWNoZURlbGVnYXRlQ2FsbGJhY2tz
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVtcEFzVGV4dCIsIGR1bXBBc1RleHRDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wQmFja0ZvcndhcmRMaXN0IiwgZHVtcEJhY2tG
b3J3YXJkTGlzdENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmgJKHJldmlzaW9uIDc3OTYyKQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAkod29ya2luZyBjb3B5KQpAQCAtNTksNiAr
NTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNhYmxlSW1hZ2VMb2FkaW5nKCk7CiAgICAgdm9p
ZCBkaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMoKTsKICAgICB2b2lkIGRpc3BsYXkoKTsKKyAg
ICB2b2lkIGRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbigpOwogICAgIHZvaWQgZXhlY0NvbW1hbmQo
SlNTdHJpbmdSZWYgbmFtZSwgSlNTdHJpbmdSZWYgdmFsdWUpOwogICAgIGJvb2wgZmluZFN0cmlu
ZyhKU0NvbnRleHRSZWYsIEpTU3RyaW5nUmVmLCBKU09iamVjdFJlZiBvcHRpb25zQXJyYXkpOwog
ICAgIGJvb2wgaXNDb21tYW5kRW5hYmxlZChKU1N0cmluZ1JlZiBuYW1lKTsKSW5kZXg6IFRvb2xz
L0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5P
YmplY3QuY3BwCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RO
ZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTksNiAr
MTk5LDcgQEAgZW51bSB7CiAgICAgSURfU0VUX1NUQVRVUywKICAgICBJRF9SRVNJWkVfVE8sCiAg
ICAgSURfTk9STUFMSVpFLAorICAgIElEX0lOVkFMSURBVEVfUkVDVCwKICAgICBOVU1fTUVUSE9E
X0lERU5USUZJRVJTCiB9OwogCkBAIC0yMzksNyArMjQwLDggQEAgc3RhdGljIGNvbnN0IE5QVVRG
OCAqcGx1Z2luTWV0aG9kSWRlbnRpZgogICAgICJyZWZDb3VudCIsCiAgICAgInNldFN0YXR1cyIs
CiAgICAgInJlc2l6ZVRvIiwKLSAgICAibm9ybWFsaXplIgorICAgICJub3JtYWxpemUiLAorICAg
ICJpbnZhbGlkYXRlUmVjdCIKIH07CiAKIHN0YXRpYyBOUFVURjgqIGNyZWF0ZUNTdHJpbmdGcm9t
TlBWYXJpYW50KGNvbnN0IE5QVmFyaWFudCogdmFyaWFudCkKQEAgLTk4Niw2ICs5ODgsMjAgQEAg
c3RhdGljIGJvb2wgbm9ybWFsaXplT3ZlcnJpZGUoUGx1Z2luT2JqZQogICAgIHJldHVybiB0cnVl
OwogfQogCitzdGF0aWMgYm9vbCBpbnZhbGlkYXRlUmVjdChQbHVnaW5PYmplY3QqIG9iaiwgY29u
c3QgTlBWYXJpYW50KiBhcmdzLCB1aW50MzJfdCBhcmdDb3VudCwgTlBWYXJpYW50KiByZXN1bHQp
Cit7CisgICAgaWYgKGFyZ0NvdW50ICE9IDQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IE5QUmVjdCByZWN0OworICAgIHJlY3QubGVmdCA9IE5QVkFSSUFOVF9UT19ET1VCTEUoYXJnc1sw
XSk7CisgICAgcmVjdC50b3AgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMV0pOworICAgIHJl
Y3QucmlnaHQgPSBOUFZBUklBTlRfVE9fRE9VQkxFKGFyZ3NbMl0pOworICAgIHJlY3QuYm90dG9t
ID0gTlBWQVJJQU5UX1RPX0RPVUJMRShhcmdzWzNdKTsKKyAgICAKKyAgICBicm93c2VyLT5pbnZh
bGlkYXRlcmVjdChvYmotPm5wcCwgJnJlY3QpOworICAgIHJldHVybiB0cnVlOworfQogCiBzdGF0
aWMgYm9vbCBwbHVnaW5JbnZva2UoTlBPYmplY3QqIGhlYWRlciwgTlBJZGVudGlmaWVyIG5hbWUs
IGNvbnN0IE5QVmFyaWFudCogYXJncywgdWludDMyX3QgYXJnQ291bnQsIE5QVmFyaWFudCogcmVz
dWx0KQogewpAQCAtMTEwMSw2ICsxMTE3LDggQEAgc3RhdGljIGJvb2wgcGx1Z2luSW52b2tlKE5Q
T2JqZWN0KiBoZWFkZQogICAgICAgICByZXR1cm4gdGVzdFJlc2l6ZVRvKHBsdWdpbiwgYXJncywg
YXJnQ291bnQsIHJlc3VsdCk7CiAgICAgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9kSWRlbnRpZmll
cnNbSURfTk9STUFMSVpFXSkKICAgICAgICAgcmV0dXJuIG5vcm1hbGl6ZU92ZXJyaWRlKHBsdWdp
biwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CisgICAgaWYgKG5hbWUgPT0gcGx1Z2luTWV0aG9k
SWRlbnRpZmllcnNbSURfSU5WQUxJREFURV9SRUNUXSkKKyAgICAgICAgcmV0dXJuIGludmFsaWRh
dGVSZWN0KHBsdWdpbiwgYXJncywgYXJnQ291bnQsIHJlc3VsdCk7CiAKICAgICByZXR1cm4gZmFs
c2U7CiB9CkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtODksNiArODksNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0VGVzdENvbnRy
b2xsCiAgICAgYmluZE1ldGhvZCgiY291bnRlclZhbHVlRm9yRWxlbWVudEJ5SWQiLCAmTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNvdW50ZXJWYWx1ZUZvckVsZW1lbnRCeUlkKTsKICAgICBiaW5kTWV0
aG9kKCJkaXNhYmxlSW1hZ2VMb2FkaW5nIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkaXNhYmxl
SW1hZ2VMb2FkaW5nKTsKICAgICBiaW5kTWV0aG9kKCJkaXNwbGF5IiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpkaXNwbGF5KTsKKyAgICBiaW5kTWV0aG9kKCJkaXNwbGF5SW52YWxpZGF0ZWRSZWdp
b24iLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmRpc3BsYXlJbnZhbGlkYXRlZFJlZ2lvbik7CiAg
ICAgYmluZE1ldGhvZCgiZHVtcEFzVGV4dCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZHVtcEFz
VGV4dCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcEJhY2tGb3J3YXJkTGlzdCIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6ZHVtcEJhY2tGb3J3YXJkTGlzdCk7CiAgICAgYmluZE1ldGhvZCgiZHVtcENo
aWxkRnJhbWVzQXNUZXh0IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpkdW1wQ2hpbGRGcmFtZXNB
c1RleHQpOwpAQCAtMTA4NCw2ICsxMDg1LDE0IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmRpc3BsYXkoY29uc3QKICAgICByZXN1bHQtPnNldE51bGwoKTsKIH0KIAordm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6ZGlzcGxheUludmFsaWRhdGVkUmVnaW9uKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgV2ViVmlld0hvc3Qq
IGhvc3QgPSBtX3NoZWxsLT53ZWJWaWV3SG9zdCgpOworICAgIGhvc3QtPnBhaW50SW52YWxpZGF0
ZWRSZWdpb24oKTsKKyAgICBob3N0LT5kaXNwbGF5UmVwYWludE1hc2soKTsKKyAgICByZXN1bHQt
PnNldE51bGwoKTsKK30KKwogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6dGVzdFJlcGFpbnQo
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQogewogICAgIG1fdGVz
dFJlcGFpbnQgPSB0cnVlOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTI1MCw2ICsyNTAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkdW1wVGl0bGVDaGFu
Z2VzKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIHNldE1h
aW5GcmFtZUlzRmlyc3RSZXNwb25kZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOwogICAgIHZvaWQgZGlzcGxheShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CisgICAgdm9pZCBkaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgdGVzdFJlcGFpbnQoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCopOwogICAgIHZvaWQgcmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKICAgICB2b2lkIGNsZWFyQmFj
a0ZvcndhcmRMaXN0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fZ3B1LnB5CShyZXZpc2lvbiA3Nzk2MikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5CSh3b3JraW5nIGNvcHkpCkBAIC03
OCw2ICs3OCw5IEBAIGRlZiBfdGVzdHMocG9ydCwgcGF0aHMpOgogICAgICAgICAgICAgIyBDYW52
YXMgaXMgbm90IHlldCBhY2NlbGVyYXRlZCBvbiB0aGUgTWFjLCBzbyB0aGVyZSdzIG5vIHBvaW50
CiAgICAgICAgICAgICAjIGluIHJ1bm5pbmcgdGhlIHRlc3RzIHRoZXJlLgogICAgICAgICAgICAg
cGF0aHMgKz0gWydmYXN0L2NhbnZhcycsICdjYW52YXMvcGhpbGlwJ10KKyAgICAgICAgIyBpbnZh
bGlkYXRlX3JlY3QuaHRtbCB0ZXN0cyBhIGJ1ZyBpbiB0aGUgY29tcG9zaXRvci4KKyAgICAgICAg
IyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisgICAg
ICAgIHBhdGhzICs9IFsncGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbCddCiAgICAgcmV0dXJu
IHRlc3RfZmlsZXMuZmluZChwb3J0LCBwYXRocykKIAogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzk2
OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE1
IEBACisyMDExLTAyLTA4ICBTYWlsZXNoIEFncmF3YWwgIDxzYWlsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnZhbGlkYXRl
IHJlY3QgZG9lc24ndCB3b3JrIGZvciB3aW5kb3dsZXNzIHBsdWdpbnMgb24gQ2hyb21pdW0KKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzMTE3CisKKyAg
ICAgICAgQWRkZWQgYSB0ZXN0IHRvIG1ha2Ugc3VyZSB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCgp
IHdvcmtzIGNvcnJlY3RseSBmb3Igd2luZG93bGVzcyBwbHVnaW5zLgorCisgICAgICAgICogcGx1
Z2lucy9pbnZhbGlkYXRlX3JlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbHVn
aW5zL2ludmFsaWRhdGVfcmVjdC5odG1sOiBBZGRlZC4KKwogMjAxMS0wMi0wOCAgWmhlbnlhbyBN
byAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHR5cG8gZml4LgpJbmRl
eDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAkocmV2aXNpb24gNzc5NjIpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMyNDEsMyArMzI0MSw1
IEBAIEJVR19aTU8gOiBmYXN0L25vdGlmaWNhdGlvbnMvbm90aWZpY2F0aW8KIC8vIHRlbXBvcmFy
eSBmb3IgcmViYXNlbGluZSBhZnRlciByNzc3ODEKIEJVR19MT0lTTE8gOiBmYXN0L2ludmFsaWQv
cmVzaWR1YWwtc3R5bGUuaHRtbCA9IFRFWFQKIEJVR19MT0lETE8gOiBodG1sNWxpYi9ydW5uZXIu
aHRtbCA9IFRFWFQKKworQlVHV0s1NDA1MSBNQUMgOiBwbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5o
dG1sID0gRkFJTApJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsdWdpbnMvaW52YWxpZGF0ZV9y
ZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsdWdpbnMvaW52
YWxpZGF0ZV9yZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitU
aGlzIHRlc3RzIHRoYXQgTlBOX0ludmFsaWRhdGVSZWN0IHdvcmtzIGNvcnJlY3RseS4KK1NVQ0NF
U1MKKwpJbmRleDogTGF5b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbHVnaW5zL2ludmFsaWRhdGVfcmVjdC5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGx1Z2lucy9pbnZhbGlkYXRlX3JlY3QuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+CisKKzxodG1sPgorPGhl
YWQ+CisKKyAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAjdHJhbnNmb3JtIHsKKyAgICAg
IC13ZWJraXQtdHJhbnNmb3JtOiByb3RhdGVaKDBkZWcpIHJvdGF0ZVgoMGRlZykgcm90YXRlWSgw
ZGVnKTsKKyAgICB9CisgIDwvc3R5bGU+CisKKyAgPHNjcmlwdD4KKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisKKyAgICB2YXIgcGFpbnRDb3VudCA9IDA7CisKKyAgICBmdW5jdGlvbiBvbkxvYWQo
KQorICAgIHsKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsKKyAgICAgIHBh
aW50Q291bnQgPSAwOworICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3RQbHVnaW4n
KS5pbnZhbGlkYXRlUmVjdCgwLCAwLCAyMDAsIDIwMCk7CisgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kaXNwbGF5SW52YWxpZGF0ZWRSZWdpb24oKTsKKyAgICAgIGlmIChwYWludENvdW50ID4g
MCkKKyAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuaW5uZXJIVE1M
ID0gIlNVQ0NFU1MiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGRpZFBhaW50KCkKKyAgICB7Cisg
ICAgICBwYWludENvdW50Kys7CisgICAgfQorICA8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9u
bG9hZD0ib25Mb2FkKCk7Ij4KKyAgVGhpcyB0ZXN0cyB0aGF0IE5QTl9JbnZhbGlkYXRlUmVjdCB3
b3JrcyBjb3JyZWN0bHkuCisKKyAgPGRpdiBpZD0icmVzdWx0Ij5GQUlMVVJFPC9kaXY+CisKKyAg
PCEtLSBmb3JjZSB0aGlzIHBhZ2UgdG8gYmUgY29tcG9zaXRlZCAtLT4KKyAgPGRpdiBpZD0idHJh
bnNmb3JtIj4KKyAgPC9kaXY+CisKKyAgPCEtLSBNb3ZlIHRoZSBwbHVnaW4gdG8gdGhlIG1pZGRs
ZSBvZiB0aGUgcGFnZS4gVGhpcyBlbnN1cmVzIHRoYXQgaW52YWxpZGF0ZSgpIHdpbGwgaW52YWxp
ZGF0ZSB0aGUgY29ycmVjdCByZWdpb24uIC0tPgorICA8ZGl2IHN0eWxlPSJwb3NpdGlvbjogYWJz
b2x1dGU7IGxlZnQ6IDMwMHB4OyB0b3A6IDMwMHB4OyBoZWlnaHQ6IDQwMHB4OyB3aWR0aDogNDAw
cHg7IHBhZGRpbmc6IDFlbTsiPgorCisgICAgPGVtYmVkIGlkPSJ0ZXN0UGx1Z2luIiB0eXBlPSJh
cHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIiB3aWR0aD0iMjAwIiBoZWlnaHQ9IjIw
MCIgb25wYWludGV2ZW50PSJkaWRQYWludCgpIiB3aW5kb3dlZFBsdWdpbj0iZmFsc2UiPjwvZW1i
ZWQ+CisKKyAgPC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>