<?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>71135</bug_id>
          
          <creation_ts>2011-10-28 13:18:34 -0700</creation_ts>
          <short_desc>Pack RenderTableCell bits</short_desc>
          <delta_ts>2011-11-01 18:12:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tables</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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>darin</cc>
    
    <cc>dslomov</cc>
    
    <cc>fsamuel</cc>
    
    <cc>levin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>492627</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 13:18:34 -0700</bug_when>
    <thetext>Following bug 69569, RenderTableCell has 2 bit fields that are not packed and thus use the size of an integer.

After bug 70369, m_col and m_rows are using unsigned and thus the signed bit can be used to pack the 2 previous bits.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492637</commentid>
    <comment_count>1</comment_count>
      <attachid>112901</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 13:32:52 -0700</bug_when>
    <thetext>Created attachment 112901
Proposed packing. Added some unit tests to cover the limit cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492649</commentid>
    <comment_count>2</comment_count>
      <attachid>112901</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-28 13:48:56 -0700</bug_when>
    <thetext>Comment on attachment 112901
Proposed packing. Added some unit tests to cover the limit cases.

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

The test part looks fine to me with a few minor changes and one question about test location.

&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:2
&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.

Why is this in the chromium test directory instead of &quot;Tools/TestWebKitAPI/Tests/&quot; and then run for WebKit in general?

&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:92
&gt; +TEST_F(RenderTableCellTest, CanSetRow)

The test case name should end with DeathTest (instead of just Test) for death test (see http://code.google.com/p/googletest/wiki/AdvancedGuide#Death_Tests_And_Threads for more background on this).

Ditto for other places below.

&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:101
&gt; +    ASSERT_DEATH(m_cell-&gt;setCol(maxColumnIndex + 1), &quot;&quot;);

Seems odd to test &quot;maxColumnIndex + 1&quot; and not maxColumnIndex but I think I understand why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492664</commentid>
    <comment_count>3</comment_count>
      <attachid>112901</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 14:05:17 -0700</bug_when>
    <thetext>Comment on attachment 112901
Proposed packing. Added some unit tests to cover the limit cases.

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

&gt;&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:2
&gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; 
&gt; Why is this in the chromium test directory instead of &quot;Tools/TestWebKitAPI/Tests/&quot; and then run for WebKit in general?

I assumed that as the name implies, this is an API testing directory. Thus testing some WebCore internal field would not feel at home there.

After checking, I can see that WTF has a directory there but most of code is very tied to a platform. I don&apos;t mind moving the code in Tools/TestWebKitAPI but it looks like we will need to introduce some more boiler-plate code to get the test running (maybe using some EmptyClients would help). I don&apos;t mind either way.

&gt;&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:92
&gt;&gt; +TEST_F(RenderTableCellTest, CanSetRow)
&gt; 
&gt; The test case name should end with DeathTest (instead of just Test) for death test (see http://code.google.com/p/googletest/wiki/AdvancedGuide#Death_Tests_And_Threads for more background on this).
&gt; 
&gt; Ditto for other places below.

Thanks, it looks like it would help the test.

&gt;&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:101
&gt;&gt; +    ASSERT_DEATH(m_cell-&gt;setCol(maxColumnIndex + 1), &quot;&quot;);
&gt; 
&gt; Seems odd to test &quot;maxColumnIndex + 1&quot; and not maxColumnIndex but I think I understand why.

That&apos;s a good point. maxColumnIndex is our boundary so we could test both (making sure maxColumnIndex works as intended too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492667</commentid>
    <comment_count>4</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-10-28 14:09:09 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 112901 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112901&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/chromium/tests/RenderTableCellTest.cpp:2
&gt; &gt;&gt; + * Copyright (C) 2011 Google Inc. All rights reserved.
&gt; &gt; 
&gt; &gt; Why is this in the chromium test directory instead of &quot;Tools/TestWebKitAPI/Tests/&quot; and then run for WebKit in general?
&gt; 
&gt; I assumed that as the name implies, this is an API testing directory. Thus testing some WebCore internal field would not feel at home there.
&gt; 
&gt; After checking, I can see that WTF has a directory there but most of code is very tied to a platform. I don&apos;t mind moving the code in Tools/TestWebKitAPI.

It started out as a WebKitAPI test, but now it is basically the unit test directory.

Just no one has added a WebCore test yet.

&gt; but it looks like we will need to introduce some more boiler-plate code to get the test running (maybe using some EmptyClients would help). I don&apos;t mind either way.

I don&apos;t want to cause you to have to write a lot of other stuff. If there isn&apos;t a good way to do this right now (due to missing a Client or other stuff usually supplied by the WebKit dir), then leaving it at the chromium level is ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492719</commentid>
    <comment_count>5</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 15:25:10 -0700</bug_when>
    <thetext>&gt; &gt; After checking, I can see that WTF has a directory there but most of code is very tied to a platform. I don&apos;t mind moving the code in Tools/TestWebKitAPI.
&gt; 
&gt; It started out as a WebKitAPI test, but now it is basically the unit test directory.
&gt; 
&gt; Just no one has added a WebCore test yet.

It makes sense.

&gt; &gt; but it looks like we will need to introduce some more boiler-plate code to get the test running (maybe using some EmptyClients would help). I don&apos;t mind either way.
&gt; 
&gt; I don&apos;t want to cause you to have to write a lot of other stuff. If there isn&apos;t a good way to do this right now (due to missing a Client or other stuff usually supplied by the WebKit dir), then leaving it at the chromium level is ok.

So here is the state. I tried to add a cross-platform version of the test that would use the EmptyClients. I am having some crashes on Chromium which means this is not really a designed way to handle that. There is also WebKit2 which would likely not play nicely with the experiment...

It&apos;s unfortunate but I think I will stick with a Chromium-only version of the test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492729</commentid>
    <comment_count>6</comment_count>
      <attachid>112924</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 15:34:13 -0700</bug_when>
    <thetext>Created attachment 112924
Updated test after Dave&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492742</commentid>
    <comment_count>7</comment_count>
      <attachid>112930</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 15:57:00 -0700</bug_when>
    <thetext>Created attachment 112930
Oupsy, DeathTest is for the class name not the individual methods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492855</commentid>
    <comment_count>8</comment_count>
      <attachid>112957</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 18:21:05 -0700</bug_when>
    <thetext>Created attachment 112957
Don&apos;t repeat Test in the class name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492940</commentid>
    <comment_count>9</comment_count>
      <attachid>112957</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-29 08:44:26 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

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

&gt; Source/WebCore/ChangeLog:23
&gt; +        (the limit is currently above 2 billions rows or columns
&gt; +        which is high enough to prevent it being hit by accident)

I don’t understand. Whether on purpose or by accident, how can you hit this? Can we make a test case?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492941</commentid>
    <comment_count>10</comment_count>
      <attachid>112957</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-29 08:45:02 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

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

&gt;&gt; Source/WebCore/ChangeLog:23
&gt;&gt; +        which is high enough to prevent it being hit by accident)
&gt; 
&gt; I don’t understand. Whether on purpose or by accident, how can you hit this? Can we make a test case?

I mean a markup and JavaScript test case. Clearly we do have a unit test test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492998</commentid>
    <comment_count>11</comment_count>
      <attachid>112957</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-29 17:39:02 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

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

&gt;&gt;&gt; Source/WebCore/ChangeLog:23
&gt;&gt;&gt; +        which is high enough to prevent it being hit by accident)
&gt;&gt; 
&gt;&gt; I don’t understand. Whether on purpose or by accident, how can you hit this? Can we make a test case?
&gt; 
&gt; I mean a markup and JavaScript test case. Clearly we do have a unit test test case.

The only way that I know to hit the limit is to generate a table with 2 billions+ rows or columns (either through markup or through JS).

Although it is possible for us to have such a table test, it will likely be too slow to be practical. I will double check on Monday exactly how slow it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494269</commentid>
    <comment_count>12</comment_count>
      <attachid>112957</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-01 16:14:43 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

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

&gt;&gt;&gt;&gt; Source/WebCore/ChangeLog:23
&gt;&gt;&gt;&gt; +        which is high enough to prevent it being hit by accident)
&gt;&gt;&gt; 
&gt;&gt;&gt; I don’t understand. Whether on purpose or by accident, how can you hit this? Can we make a test case?
&gt;&gt; 
&gt;&gt; I mean a markup and JavaScript test case. Clearly we do have a unit test test case.
&gt; 
&gt; The only way that I know to hit the limit is to generate a table with 2 billions+ rows or columns (either through markup or through JS).
&gt; 
&gt; Although it is possible for us to have such a table test, it will likely be too slow to be practical. I will double check on Monday exactly how slow it is.

Following up, V8 seems to be running out of memory on the test case before we even reach the limit. It is also painfully slow (several minutes) so not suitable for a LayoutTests. Let me know if you are satisfied with the investigation / answer, Darin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494320</commentid>
    <comment_count>13</comment_count>
      <attachid>112957</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-01 17:08:13 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

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

&gt;&gt;&gt;&gt;&gt; Source/WebCore/ChangeLog:23
&gt;&gt;&gt;&gt;&gt; +        which is high enough to prevent it being hit by accident)
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; I don’t understand. Whether on purpose or by accident, how can you hit this? Can we make a test case?
&gt;&gt;&gt; 
&gt;&gt;&gt; I mean a markup and JavaScript test case. Clearly we do have a unit test test case.
&gt;&gt; 
&gt;&gt; The only way that I know to hit the limit is to generate a table with 2 billions+ rows or columns (either through markup or through JS).
&gt;&gt; 
&gt;&gt; Although it is possible for us to have such a table test, it will likely be too slow to be practical. I will double check on Monday exactly how slow it is.
&gt; 
&gt; Following up, V8 seems to be running out of memory on the test case before we even reach the limit. It is also painfully slow (several minutes) so not suitable for a LayoutTests. Let me know if you are satisfied with the investigation / answer, Darin.

I take the r+ for a yes. :-)

Thanks Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494325</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-01 17:13:15 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; Following up, V8 seems to be running out of memory on the test case before we even reach the limit. It is also painfully slow (several minutes) so not suitable for a LayoutTests. Let me know if you are satisfied with the investigation / answer, Darin.
&gt; 
&gt; I take the r+ for a yes. :-)

If this truly is unreachable code, it’s OK to have the CRASH() in there, but maybe not necessary. It might be worth thinking a little more on how this kind of thing should be handled in WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494367</commentid>
    <comment_count>15</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-11-01 17:54:19 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; &gt; Following up, V8 seems to be running out of memory on the test case before we even reach the limit. It is also painfully slow (several minutes) so not suitable for a LayoutTests. Let me know if you are satisfied with the investigation / answer, Darin.
&gt; &gt; 
&gt; &gt; I take the r+ for a yes. :-)
&gt; 
&gt; If this truly is unreachable code, it’s OK to have the CRASH() in there, but maybe not necessary.

The current limit makes it extremely unlikely to be reached but not theoretically impossible. IMHO it would be a source of badness if it is reached thus the CRASH makes sense in this corner case.

&gt; It might be worth thinking a little more on how this kind of thing should be handled in WebKit.

It would be terrific for any contributors if we could come up with some strategy or loose rules. It is also a broader issue. I would rather follow up on that in another bug or just on webkit-dev as it requires some investigations on what we are currently doing (or not doing) and more discussion.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494379</commentid>
    <comment_count>16</comment_count>
      <attachid>112957</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 18:12:17 -0700</bug_when>
    <thetext>Comment on attachment 112957
Don&apos;t repeat Test in the class name.

Clearing flags on attachment: 112957

Committed r99020: &lt;http://trac.webkit.org/changeset/99020&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494380</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-01 18:12:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112901</attachid>
            <date>2011-10-28 13:32:52 -0700</date>
            <delta_ts>2011-10-28 15:34:09 -0700</delta_ts>
            <desc>Proposed packing. Added some unit tests to cover the limit cases.</desc>
            <filename>bug-71135-20111028133251.patch</filename>
            <type>text/plain</type>
            <size>9429</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNGM0ODQ0MDExNWZiNTFk
MWNhZDM1YmQwODYyY2ExYTQxMzFlMTZhLi4yZGNmYmRjMzkyNTdiZTAwMjQ2ZGMyNGU2MzRkMTEx
NDg5ZjFlYTJhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFjayBSZW5k
ZXJUYWJsZUNlbGwgYml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzExMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0ZWQgYnkgUmVuZGVyVGFibGVDZWxsVGVzdCB1bml0IHRlc3QuCisgICAgICAg
ICh1bmZvcnR1bmF0ZWx5IENocm9taXVtIHNwZWNpZmljLi4uKQorCisgICAgICAgIFRoaXMgc2F2
ZXMgYW5vdGhlciA4IGJ5dGVzIG9uIFJlbmRlclRhYmxlQ2VsbCBvbiB4ODYtNjQuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGZpZWxkIG9yZGVyIHRvIHVzZSBt
b3JlIHN0cmljdCBwYWNraW5nLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6
OnNldENvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnNldFJvdyk6Cisg
ICAgICAgIEFkZGVkIG92ZXJmbG93IGNoZWNrcyB0byB0aGUgMiBwcmV2aW91cyBtZXRob2RzLiBX
ZQorICAgICAgICBDUkFTSCBldmVuIGluIHJlbGVhc2UgdG8gYXZvaWQgcG90ZW50aWFsIGJhZG5l
c3MKKyAgICAgICAgKHRoZSBsaW1pdCBpcyBjdXJyZW50bHkgYWJvdmUgMiBiaWxsaW9ucyByb3dz
IG9yIGNvbHVtbnMKKyAgICAgICAgd2hpY2ggaXMgaGlnaCBlbm91Z2ggdG8gcHJldmVudCBpdCBi
ZWluZyBoaXQgYnkgYWNjaWRlbnQpCisKIDIwMTEtMTAtMjggIFBhdmVsIEZlbGRtYW4gIDxwZmVs
ZG1hbkBnb29nbGUuY29tPgogCiAgICAgICAgIFJlc2V0IGxpbmUgbnVtYmVycyBmb3Igc2NyaXB0
cyBnZW5lcmF0ZWQgd2l0aCBkb2N1bWVudC53cml0ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
aW5kZXggYjUwNWEwNjA3ODgxZjMyODIxZGQxMTExYjBjMjE2NTgyZTA3YjRjMy4uOTFmODJkZTNi
MjQ1MGExYzJhNTJjMTZjZmM4ZjhmZjkwMGZjYTA1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMS0xMC0yOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFm
ZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBQYWNrIFJlbmRlclRhYmxlQ2VsbCBiaXRzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5
cGk6CisgICAgICAgICogdGVzdHMvUmVuZGVyVGFibGVDZWxsVGVzdC5jcHA6IEFkZGVkLgorICAg
ICAgICBBZGRlZCBzb21lIHRlc3QgZm9yIHRoZSBjb2x1bW4vcm93IGluZGV4IGxpbWl0CisgICAg
ICAgIHRoYXQgd2FzIGltcGxlbWVudGVkIGluIFJlbmRlclRhYmxlQ2VsbC4KKwogMjAxMS0xMC0y
OCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJlbW92ZSBnZXRF
eGNlcHRpb25Db2RlRGVzY3JpcHRpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmNwcAppbmRleCA2MWU0Nzg4NDY2MDk1NWEyODMxZmY3OTMxZDlhNDlmZmJi
YzYyNTIyLi4yN2RhZDc5MGMzODFkNDZhZjExMTA0NTNkZjliYmQxZWI5MTY1MDA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtNDQsMTEgKzQ0
LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRl
clRhYmxlQ2VsbChOb2RlKiBub2RlKQogICAgIDogUmVuZGVyQmxvY2sobm9kZSkKICAgICAsIG1f
cm93KHVuc2V0Um93SW5kZXgpCisgICAgLCBtX2NlbGxXaWR0aENoYW5nZWQoZmFsc2UpCiAgICAg
LCBtX2NvbHVtbih1bnNldENvbHVtbkluZGV4KQorICAgICwgbV9oYXNBc3NvY2lhdGVkVGFibGVD
ZWxsRWxlbWVudChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlLT5oYXNU
YWdOYW1lKHRoVGFnKSkpCiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmUoMCkKICAgICAs
IG1faW50cmluc2ljUGFkZGluZ0FmdGVyKDApCi0gICAgLCBtX2NlbGxXaWR0aENoYW5nZWQoZmFs
c2UpCi0gICAgLCBtX2hhc0Fzc29jaWF0ZWRUYWJsZUNlbGxFbGVtZW50KG5vZGUgJiYgKG5vZGUt
Pmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhUYWcpKSkKIHsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4IGU3MTQyZGYz
NzcyNDcyNmU0NzY1N2JjMDczNDhiYzZmYzE0NjM0ZGIuLjhkMGJlMzE2N2E1YzNlODcwMzAxNjcx
NzA1ZTk2ZjFkODM0NDllYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmgKQEAgLTI5LDEwICsyOSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8v
IEZJWE1FOiBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlc2UgaW5kZXhlcyB0byBiZSByZWFjaGVkIGZv
ciBhIHRhYmxlIGJpZyBlbm91Z2guCi0vLyBXZSB3b3VsZCBuZWVkIHRvIGVuZm9yY2UgYSBtYXhp
bWFsIGluZGV4IG9uIGJvdGggcm93cyBhbmQgY29sdW1ucy4KLXN0YXRpYyBjb25zdCB1bnNpZ25l
ZCB1bnNldENvbHVtbkluZGV4ID0gMHhGRkZGRkZGRjsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1
bnNldFJvd0luZGV4ID0gMHhGRkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENv
bHVtbkluZGV4ID0gMHg3RkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5J
bmRleCA9IDB4N0ZGRkZGRkU7IC8vIDIsMTQ3LDQ4Myw2NDYKKworc3RhdGljIGNvbnN0IHVuc2ln
bmVkIHVuc2V0Um93SW5kZXggPSAweDdGRkZGRkZGOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1h
eFJvd0luZGV4ID0gMHg3RkZGRkZGRTsgLy8gMiwxNDcsNDgzLDY0NgogCiBjbGFzcyBSZW5kZXJU
YWJsZUNlbGwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGljOgpAQCAtNDgsMTQgKzQ5LDI4
IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBIVE1MVGFibGVDZWxsRWxlbWVudC4KICAg
ICB2b2lkIGNvbFNwYW5PclJvd1NwYW5DaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNldENvbCh1bnNp
Z25lZCBjb2x1bW4pIHsgbV9jb2x1bW4gPSBjb2x1bW47IH0KKyAgICB2b2lkIHNldENvbCh1bnNp
Z25lZCBjb2x1bW4pCisgICAgeworICAgICAgICBpZiAoVU5MSUtFTFkoY29sdW1uID4gbWF4Q29s
dW1uSW5kZXgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX2NvbHVtbiA9IGNv
bHVtbjsKKyAgICB9CisKICAgICB1bnNpZ25lZCBjb2woKSBjb25zdAogICAgIHsKICAgICAgICAg
QVNTRVJUKG1fY29sdW1uICE9IHVuc2V0Q29sdW1uSW5kZXgpOwogICAgICAgICByZXR1cm4gbV9j
b2x1bW47CiAgICAgfQogCi0gICAgdm9pZCBzZXRSb3codW5zaWduZWQgcm93KSB7IG1fcm93ID0g
cm93OyB9CisgICAgdm9pZCBzZXRSb3codW5zaWduZWQgcm93KQorICAgIHsKKyAgICAgICAgaWYg
KFVOTElLRUxZKHJvdyA+IG1heFJvd0luZGV4KSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAg
ICAgICAgbV9yb3cgPSByb3c7CisgICAgfQorCiAgICAgdW5zaWduZWQgcm93KCkgY29uc3QKICAg
ICB7CiAgICAgICAgIEFTU0VSVChtX3JvdyAhPSB1bnNldFJvd0luZGV4KTsKQEAgLTE1OSwxNCAr
MTc0LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50Q29sbGFwc2VkQm9yZGVyKEdyYXBo
aWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKIAotICAgIHVuc2lnbmVkIG1fcm93Owot
ICAgIHVuc2lnbmVkIG1fY29sdW1uOwotICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7
Ci0gICAgaW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwotCi0gICAgLy8gRklYTUU6IEl0IHdv
dWxkIGJlIG5pY2UgdG8gcGFjayB0aGVzZSAyIGJpdHMgaW50byBzb21lIG9mIHRoZSBwcmV2aW91
cyBmaWVsZHMuCisgICAgdW5zaWduZWQgbV9yb3cgOiAzMTsKICAgICBib29sIG1fY2VsbFdpZHRo
Q2hhbmdlZCA6IDE7CisgICAgdW5zaWduZWQgbV9jb2x1bW4gOiAzMTsKICAgICBib29sIG1faGFz
QXNzb2NpYXRlZFRhYmxlQ2VsbEVsZW1lbnQgOiAxOworICAgIGludCBtX2ludHJpbnNpY1BhZGRp
bmdCZWZvcmU7CisgICAgaW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwogfTsKIAogaW5saW5l
IFJlbmRlclRhYmxlQ2VsbCogdG9SZW5kZXJUYWJsZUNlbGwoUmVuZGVyT2JqZWN0KiBvYmplY3Qp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBlYzgyZTA3Y2I5MzhlNDQ2MjAxNTNk
NmJmZWY2ODUzODgxZGUxOWI3Li5lMmM5NTNjZDAyMDQ5NDJiNGY1NDNmNTJhMmZlMjNjOGMxMTQ0
MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBi
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTgwLDYgKzgwLDcgQEAKICAg
ICAgICAgICAgICd0ZXN0cy9QT0RBcmVuYVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9Q
T0RJbnRlcnZhbFRyZWVUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvUE9EUmVkQmxhY2tU
cmVlVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3Bw
JywKICAgICAgICAgICAgICd0ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAnLAogICAgICAgICAgICAg
J3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvVHJl
ZVRlc3RIZWxwZXJzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mODk5N2Q3OWQzMDYwMjA4MmMy
ZmVkMzVlZjE2ZTViNTJmZjlmOWZhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApAQCAtMCwwICsxLDEyMSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5o
IgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUg
IkZyYW1lVGVzdEhlbHBlcnMuaCIKKyNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgorI2luY2x1ZGUg
IldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViVmll
dy5oIgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworCitjbGFzcyBSZW5kZXJU
YWJsZUNlbGxUZXN0IDogcHVibGljIHRlc3Rpbmc6OlRlc3QgeworICAgIC8vIEl0J3MgdW5mb3J0
dW5hdGUgdGhhdCB3ZSBoYXZlIHRvIGdldCB0aGUgd2hvbGUgYnJvd3NlciBzdGFjayB0byB0ZXN0
IG9uZSBSZW5kZXJPYmplY3QKKyAgICAvLyBidXQgdGhlIGNvZGUgbmVlZHMgaXQuCisgICAgc3Rh
dGljIEZyYW1lKiBmcmFtZSgpCisgICAgeworICAgICAgICBzdGF0aWMgV2ViVmlldyogd2ViVmll
dzsKKworICAgICAgICBpZiAod2ViVmlldykKKyAgICAgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJGcmFtZUltcGwqPih3ZWJWaWV3LT5tYWluRnJhbWUoKSktPmZyYW1lKCk7CisKKyAgICAg
ICAgd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKCJhYm91
dDpibGFuayIpOworICAgICAgICB3ZWJWaWV3LT5zZXRGb2N1cyh0cnVlKTsKKyAgICAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYkZyYW1lSW1wbCo+KHdlYlZpZXctPm1haW5GcmFtZSgpKS0+ZnJh
bWUoKTsKKyAgICB9CisKKyAgICBzdGF0aWMgRG9jdW1lbnQqIGRvY3VtZW50KCkKKyAgICB7Cisg
ICAgICAgIHJldHVybiBmcmFtZSgpLT5kb2N1bWVudCgpOworICAgIH0KKworICAgIHN0YXRpYyBS
ZW5kZXJBcmVuYSogYXJlbmEoKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50KCktPnJl
bmRlckFyZW5hKCk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKKyAgICB7Cisg
ICAgICAgIG1fY2VsbCA9IG5ldyAoYXJlbmEoKSkgUmVuZGVyVGFibGVDZWxsKGRvY3VtZW50KCkp
OworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBUZWFyRG93bigpCisgICAgeworICAgICAgICBt
X2NlbGwtPmRlc3Ryb3koKTsKKyAgICB9CisKK3Byb3RlY3RlZDoKKyAgICBSZW5kZXJUYWJsZUNl
bGwqIG1fY2VsbDsKK307CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0LCBDYW5TZXRDb2x1
bW4pCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNvbHVtbkluZGV4ID0gMTA7CisgICAg
bV9jZWxsLT5zZXRDb2woY29sdW1uSW5kZXgpOworICAgIEVYUEVDVF9FUShjb2x1bW5JbmRleCwg
bV9jZWxsLT5jb2woKSk7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0LCBDYW5TZXRS
b3cpCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHJvd0luZGV4ID0gMTA7CisgICAgbV9j
ZWxsLT5zZXRSb3cocm93SW5kZXgpOworICAgIEVYUEVDVF9FUShyb3dJbmRleCwgbV9jZWxsLT5y
b3coKSk7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0LCBDcmFzaElmQ29sdW1uT3Zl
cmZsb3dPblNldHRpbmcpCit7CisgICAgQVNTRVJUX0RFQVRIKG1fY2VsbC0+c2V0Q29sKG1heENv
bHVtbkluZGV4ICsgMSksICIiKTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbFRlc3QsIENy
YXNoSWZSb3dPdmVyZmxvd09uU2V0dGluZykKK3sKKyAgICBBU1NFUlRfREVBVEgobV9jZWxsLT5z
ZXRSb3cobWF4Um93SW5kZXggKyAxKSwgIiIpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxs
VGVzdCwgQ3Jhc2hJZlNldHRpbmdVbnNldENvbHVtbkluZGV4KQoreworICAgIEFTU0VSVF9ERUFU
SChtX2NlbGwtPnNldENvbCh1bnNldENvbHVtbkluZGV4KSwgIiIpOworfQorCitURVNUX0YoUmVu
ZGVyVGFibGVDZWxsVGVzdCwgQ3Jhc2hJZlNldHRpbmdVbnNldFJvd0luZGV4KQoreworICAgIEFT
U0VSVF9ERUFUSChtX2NlbGwtPnNldFJvdyh1bnNldFJvd0luZGV4KSwgIiIpOworfQorCit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112924</attachid>
            <date>2011-10-28 15:34:13 -0700</date>
            <delta_ts>2011-10-28 15:56:57 -0700</delta_ts>
            <desc>Updated test after Dave&apos;s comments.</desc>
            <filename>bug-71135-20111028153412.patch</filename>
            <type>text/plain</type>
            <size>9936</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NTkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4YTY2ODcxOTZjZTUwNGFl
MDM2M2JhMDYxMGVkZWZjOTNjNDE2ZmM5Li40Zjg3MzcwM2NiZjA1NGZmNzI0NmE4ODFlYjA2ZjJk
MTQ0MWE2MTVlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFjayBSZW5k
ZXJUYWJsZUNlbGwgYml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzExMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0ZWQgYnkgUmVuZGVyVGFibGVDZWxsVGVzdCB1bml0IHRlc3QuCisgICAgICAg
ICh1bmZvcnR1bmF0ZWx5IENocm9taXVtIHNwZWNpZmljLi4uKQorCisgICAgICAgIFRoaXMgc2F2
ZXMgYW5vdGhlciA4IGJ5dGVzIG9uIFJlbmRlclRhYmxlQ2VsbCBvbiB4ODYtNjQuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGZpZWxkIG9yZGVyIHRvIHVzZSBt
b3JlIHN0cmljdCBwYWNraW5nLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6
OnNldENvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnNldFJvdyk6Cisg
ICAgICAgIEFkZGVkIG92ZXJmbG93IGNoZWNrcyB0byB0aGUgMiBwcmV2aW91cyBtZXRob2RzLiBX
ZQorICAgICAgICBDUkFTSCBldmVuIGluIHJlbGVhc2UgdG8gYXZvaWQgcG90ZW50aWFsIGJhZG5l
c3MKKyAgICAgICAgKHRoZSBsaW1pdCBpcyBjdXJyZW50bHkgYWJvdmUgMiBiaWxsaW9ucyByb3dz
IG9yIGNvbHVtbnMKKyAgICAgICAgd2hpY2ggaXMgaGlnaCBlbm91Z2ggdG8gcHJldmVudCBpdCBi
ZWluZyBoaXQgYnkgYWNjaWRlbnQpCisKIDIwMTEtMTAtMjggIEFkcmllbm5lIFdhbGtlciAgPGVu
bmVAZ29vZ2xlLmNvbT4KIAogICAgICAgICBbY2hyb21pdW1dIEltcGxpY2l0bHkgc2tpcCByZW5k
ZXIgc3VyZmFjZXMgdGhhdCB3b24ndCBiZSBkcmF3bgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA5MDc1NTRmZmFkZDRlNjM1NjY3MWFkMDc4OGJjNmJkYzRkNzQxZjRkLi41OTBhZmMwOGVk
NjU1NWY2YWYzZTk4Yzc0YTU4MjlmYjY5M2NjOTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE1IEBACisyMDExLTEwLTI4ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFBhY2sgUmVuZGVyVGFibGVDZWxsIGJpdHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMTM1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBXZWJLaXQuZ3lw
aToKKyAgICAgICAgKiB0ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcDogQWRkZWQuCisgICAg
ICAgIEFkZGVkIHNvbWUgdGVzdHMgZm9yIHRoZSBjb2x1bW4vcm93IGluZGV4IGxpbWl0CisgICAg
ICAgIHRoYXQgd2FzIGltcGxlbWVudGVkIGluIFJlbmRlclRhYmxlQ2VsbC4KKwogMjAxMS0xMC0y
OCAgSm9jaGVuIEVpc2luZ2VyICA8am9jaGVuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZW5h
bWUgYSBudW1iZXIgb2YgbWV0aG9kcyBtZW50aW9uaW5nIEphdmFTY3JpcHQgdG8ganVzdCBTY3Jp
cHQgaW5zdGVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNw
cAppbmRleCA2MWU0Nzg4NDY2MDk1NWEyODMxZmY3OTMxZDlhNDlmZmJiYzYyNTIyLi4yN2RhZDc5
MGMzODFkNDZhZjExMTA0NTNkZjliYmQxZWI5MTY1MDA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcApAQCAtNDQsMTEgKzQ0LDExIEBAIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiBSZW5kZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChOb2Rl
KiBub2RlKQogICAgIDogUmVuZGVyQmxvY2sobm9kZSkKICAgICAsIG1fcm93KHVuc2V0Um93SW5k
ZXgpCisgICAgLCBtX2NlbGxXaWR0aENoYW5nZWQoZmFsc2UpCiAgICAgLCBtX2NvbHVtbih1bnNl
dENvbHVtbkluZGV4KQorICAgICwgbV9oYXNBc3NvY2lhdGVkVGFibGVDZWxsRWxlbWVudChub2Rl
ICYmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKSkp
CiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmUoMCkKICAgICAsIG1faW50cmluc2ljUGFk
ZGluZ0FmdGVyKDApCi0gICAgLCBtX2NlbGxXaWR0aENoYW5nZWQoZmFsc2UpCi0gICAgLCBtX2hh
c0Fzc29jaWF0ZWRUYWJsZUNlbGxFbGVtZW50KG5vZGUgJiYgKG5vZGUtPmhhc1RhZ05hbWUodGRU
YWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUodGhUYWcpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCmluZGV4IGU3MTQyZGYzNzcyNDcyNmU0NzY1N2Jj
MDczNDhiYzZmYzE0NjM0ZGIuLjhkMGJlMzE2N2E1YzNlODcwMzAxNjcxNzA1ZTk2ZjFkODM0NDll
YTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTI5
LDEwICsyOSwxMSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBJdCBpcyBw
b3NzaWJsZSBmb3IgdGhlc2UgaW5kZXhlcyB0byBiZSByZWFjaGVkIGZvciBhIHRhYmxlIGJpZyBl
bm91Z2guCi0vLyBXZSB3b3VsZCBuZWVkIHRvIGVuZm9yY2UgYSBtYXhpbWFsIGluZGV4IG9uIGJv
dGggcm93cyBhbmQgY29sdW1ucy4KLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENvbHVtbklu
ZGV4ID0gMHhGRkZGRkZGRjsKLXN0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldFJvd0luZGV4ID0g
MHhGRkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENvbHVtbkluZGV4ID0gMHg3
RkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1bnNpZ25lZCBtYXhDb2x1bW5JbmRleCA9IDB4N0ZGRkZG
RkU7IC8vIDIsMTQ3LDQ4Myw2NDYKKworc3RhdGljIGNvbnN0IHVuc2lnbmVkIHVuc2V0Um93SW5k
ZXggPSAweDdGRkZGRkZGOworc3RhdGljIGNvbnN0IHVuc2lnbmVkIG1heFJvd0luZGV4ID0gMHg3
RkZGRkZGRTsgLy8gMiwxNDcsNDgzLDY0NgogCiBjbGFzcyBSZW5kZXJUYWJsZUNlbGwgOiBwdWJs
aWMgUmVuZGVyQmxvY2sgewogcHVibGljOgpAQCAtNDgsMTQgKzQ5LDI4IEBAIHB1YmxpYzoKICAg
ICAvLyBDYWxsZWQgZnJvbSBIVE1MVGFibGVDZWxsRWxlbWVudC4KICAgICB2b2lkIGNvbFNwYW5P
clJvd1NwYW5DaGFuZ2VkKCk7CiAKLSAgICB2b2lkIHNldENvbCh1bnNpZ25lZCBjb2x1bW4pIHsg
bV9jb2x1bW4gPSBjb2x1bW47IH0KKyAgICB2b2lkIHNldENvbCh1bnNpZ25lZCBjb2x1bW4pCisg
ICAgeworICAgICAgICBpZiAoVU5MSUtFTFkoY29sdW1uID4gbWF4Q29sdW1uSW5kZXgpKQorICAg
ICAgICAgICAgQ1JBU0goKTsKKworICAgICAgICBtX2NvbHVtbiA9IGNvbHVtbjsKKyAgICB9CisK
ICAgICB1bnNpZ25lZCBjb2woKSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fY29sdW1u
ICE9IHVuc2V0Q29sdW1uSW5kZXgpOwogICAgICAgICByZXR1cm4gbV9jb2x1bW47CiAgICAgfQog
Ci0gICAgdm9pZCBzZXRSb3codW5zaWduZWQgcm93KSB7IG1fcm93ID0gcm93OyB9CisgICAgdm9p
ZCBzZXRSb3codW5zaWduZWQgcm93KQorICAgIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJvdyA+
IG1heFJvd0luZGV4KSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAgICAgICAgbV9yb3cgPSBy
b3c7CisgICAgfQorCiAgICAgdW5zaWduZWQgcm93KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFT
U0VSVChtX3JvdyAhPSB1bnNldFJvd0luZGV4KTsKQEAgLTE1OSwxNCArMTc0LDEyIEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHBhaW50Q29sbGFwc2VkQm9yZGVyKEdyYXBoaWNzQ29udGV4dCosIGNv
bnN0IExheW91dFJlY3QmKTsKIAotICAgIHVuc2lnbmVkIG1fcm93OwotICAgIHVuc2lnbmVkIG1f
Y29sdW1uOwotICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7Ci0gICAgaW50IG1faW50
cmluc2ljUGFkZGluZ0FmdGVyOwotCi0gICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8g
cGFjayB0aGVzZSAyIGJpdHMgaW50byBzb21lIG9mIHRoZSBwcmV2aW91cyBmaWVsZHMuCisgICAg
dW5zaWduZWQgbV9yb3cgOiAzMTsKICAgICBib29sIG1fY2VsbFdpZHRoQ2hhbmdlZCA6IDE7Cisg
ICAgdW5zaWduZWQgbV9jb2x1bW4gOiAzMTsKICAgICBib29sIG1faGFzQXNzb2NpYXRlZFRhYmxl
Q2VsbEVsZW1lbnQgOiAxOworICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7CisgICAg
aW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwogfTsKIAogaW5saW5lIFJlbmRlclRhYmxlQ2Vs
bCogdG9SZW5kZXJUYWJsZUNlbGwoUmVuZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQppbmRleCBlYzgyZTA3Y2I5MzhlNDQ2MjAxNTNkNmJmZWY2ODUzODgxZGUx
OWI3Li5lMmM5NTNjZDAyMDQ5NDJiNGY1NDNmNTJhMmZlMjNjOGMxMTQ0MTViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTgwLDYgKzgwLDcgQEAKICAgICAgICAgICAgICd0ZXN0
cy9QT0RBcmVuYVRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9QT0RJbnRlcnZhbFRyZWVU
ZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvUE9EUmVkQmxhY2tUcmVlVGVzdC5jcHAnLAor
ICAgICAgICAgICAgJ3Rlc3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3BwJywKICAgICAgICAgICAg
ICd0ZXN0cy9UaWxpbmdEYXRhVGVzdC5jcHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1RyZWVTeW5j
aHJvbml6ZXJUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvVHJlZVRlc3RIZWxwZXJzLmNw
cCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1JlbmRlclRhYmxl
Q2VsbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNl
bGxUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYmRkMzVhZTJjYzFmNDM4YjM3NDEyMTQ3MzA0MDMwN2Yz
M2ZlZWM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9S
ZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApAQCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBD
T05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMg
Q09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICog
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBGSVhNRTog
SWYgd2UgZ2V0IHRoZSBUZXN0V2ViS2l0QVBJIHRvIGJyaW5nIGEgZnVsbCBGcmFtZSArIERPTSBz
dGFjaworLy8gaW4gYSBwb3J0YWJsZSB3YXksIHRoaXMgdGVzdCBzaG91bGQgYmUgc2hhcmVkIHdp
dGggYWxsIHBvcnRzIQorCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJSZW5kZXJU
YWJsZUNlbGwuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5jbHVkZSAiRnJhbWUuaCIK
KyNpbmNsdWRlICJGcmFtZVRlc3RIZWxwZXJzLmgiCisjaW5jbHVkZSAiUmVuZGVyQXJlbmEuaCIK
KyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgorI2luY2x1
ZGUgIldlYlZpZXcuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworbmFtZXNwYWNlIHsKKworY2xh
c3MgUmVuZGVyVGFibGVDZWxsVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKKyAgICAvLyBJ
dCdzIHVuZm9ydHVuYXRlIHRoYXQgd2UgaGF2ZSB0byBnZXQgdGhlIHdob2xlIGJyb3dzZXIgc3Rh
Y2sgdG8gdGVzdCBvbmUgUmVuZGVyT2JqZWN0CisgICAgLy8gYnV0IHRoZSBjb2RlIG5lZWRzIGl0
LgorICAgIHN0YXRpYyBGcmFtZSogZnJhbWUoKQorICAgIHsKKyAgICAgICAgc3RhdGljIFdlYlZp
ZXcqIHdlYlZpZXc7CisKKyAgICAgICAgaWYgKHdlYlZpZXcpCisgICAgICAgICAgICByZXR1cm4g
c3RhdGljX2Nhc3Q8V2ViRnJhbWVJbXBsKj4od2ViVmlldy0+bWFpbkZyYW1lKCkpLT5mcmFtZSgp
OworCisgICAgICAgIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5k
TG9hZCgiYWJvdXQ6YmxhbmsiKTsKKyAgICAgICAgd2ViVmlldy0+c2V0Rm9jdXModHJ1ZSk7Cisg
ICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJGcmFtZUltcGwqPih3ZWJWaWV3LT5tYWluRnJh
bWUoKSktPmZyYW1lKCk7CisgICAgfQorCisgICAgc3RhdGljIERvY3VtZW50KiBkb2N1bWVudCgp
CisgICAgeworICAgICAgICByZXR1cm4gZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICB9CisKKyAg
ICBzdGF0aWMgUmVuZGVyQXJlbmEqIGFyZW5hKCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb2N1
bWVudCgpLT5yZW5kZXJBcmVuYSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgp
CisgICAgeworICAgICAgICBtX2NlbGwgPSBuZXcgKGFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChk
b2N1bWVudCgpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQorICAgIHsK
KyAgICAgICAgbV9jZWxsLT5kZXN0cm95KCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVu
ZGVyVGFibGVDZWxsKiBtX2NlbGw7Cit9OworCitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVzdCwg
Q2FuU2V0Q29sdW1uKQoreworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBjb2x1bW5JbmRleCA9
IDEwOworICAgIG1fY2VsbC0+c2V0Q29sKGNvbHVtbkluZGV4KTsKKyAgICBFWFBFQ1RfRVEoY29s
dW1uSW5kZXgsIG1fY2VsbC0+Y29sKCkpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVz
dCwgQ2FuU2V0Um93KQoreworICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCByb3dJbmRleCA9IDEw
OworICAgIG1fY2VsbC0+c2V0Um93KHJvd0luZGV4KTsKKyAgICBFWFBFQ1RfRVEocm93SW5kZXgs
IG1fY2VsbC0+cm93KCkpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVzdCwgQ2FuU2V0
Q29sdW1uVG9NYXhDb2x1bW5JbmRleCkKK3sKKyAgICBtX2NlbGwtPnNldENvbChtYXhDb2x1bW5J
bmRleCk7CisgICAgRVhQRUNUX0VRKG1heENvbHVtbkluZGV4LCBtX2NlbGwtPmNvbCgpKTsKK30K
KworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbFRlc3QsIENhblNldFJvd1RvTWF4Um93SW5kZXgpCit7
CisgICAgbV9jZWxsLT5zZXRSb3cobWF4Um93SW5kZXgpOworICAgIEVYUEVDVF9FUShtYXhSb3dJ
bmRleCwgbV9jZWxsLT5yb3coKSk7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0LCBD
cmFzaElmQ29sdW1uT3ZlcmZsb3dPblNldHRpbmdEZWF0aFRlc3QpCit7CisgICAgQVNTRVJUX0RF
QVRIKG1fY2VsbC0+c2V0Q29sKG1heENvbHVtbkluZGV4ICsgMSksICIiKTsKK30KKworVEVTVF9G
KFJlbmRlclRhYmxlQ2VsbFRlc3QsIENyYXNoSWZSb3dPdmVyZmxvd09uU2V0dGluZ0RlYXRoVGVz
dCkKK3sKKyAgICBBU1NFUlRfREVBVEgobV9jZWxsLT5zZXRSb3cobWF4Um93SW5kZXggKyAxKSwg
IiIpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVzdCwgQ3Jhc2hJZlNldHRpbmdVbnNl
dENvbHVtbkluZGV4RGVhdGhUZXN0KQoreworICAgIEFTU0VSVF9ERUFUSChtX2NlbGwtPnNldENv
bCh1bnNldENvbHVtbkluZGV4KSwgIiIpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVz
dCwgQ3Jhc2hJZlNldHRpbmdVbnNldFJvd0luZGV4RGVhdGhUZXN0KQoreworICAgIEFTU0VSVF9E
RUFUSChtX2NlbGwtPnNldFJvdyh1bnNldFJvd0luZGV4KSwgIiIpOworfQorCit9CisKK30gLy8g
bmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112930</attachid>
            <date>2011-10-28 15:57:00 -0700</date>
            <delta_ts>2011-10-28 18:21:01 -0700</delta_ts>
            <desc>Oupsy, DeathTest is for the class name not the individual methods.</desc>
            <filename>bug-71135-20111028155659.patch</filename>
            <type>text/plain</type>
            <size>9967</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3NzEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzZDc1ZWQ4YmE0YWU0Y2Vk
MmVhZTdlNGFiMGYzY2U5N2Y1N2JlMzM5Li45ZjlmZTMwN2EzN2IzZGRjYzRhNDEzOWUyOWMwNmJj
ZjdjYjI2NGRhIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFjayBSZW5k
ZXJUYWJsZUNlbGwgYml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzExMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0ZWQgYnkgUmVuZGVyVGFibGVDZWxsVGVzdCB1bml0IHRlc3QuCisgICAgICAg
ICh1bmZvcnR1bmF0ZWx5IENocm9taXVtIHNwZWNpZmljLi4uKQorCisgICAgICAgIFRoaXMgc2F2
ZXMgYW5vdGhlciA4IGJ5dGVzIG9uIFJlbmRlclRhYmxlQ2VsbCBvbiB4ODYtNjQuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGZpZWxkIG9yZGVyIHRvIHVzZSBt
b3JlIHN0cmljdCBwYWNraW5nLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6
OnNldENvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnNldFJvdyk6Cisg
ICAgICAgIEFkZGVkIG92ZXJmbG93IGNoZWNrcyB0byB0aGUgMiBwcmV2aW91cyBtZXRob2RzLiBX
ZQorICAgICAgICBDUkFTSCBldmVuIGluIHJlbGVhc2UgdG8gYXZvaWQgcG90ZW50aWFsIGJhZG5l
c3MKKyAgICAgICAgKHRoZSBsaW1pdCBpcyBjdXJyZW50bHkgYWJvdmUgMiBiaWxsaW9ucyByb3dz
IG9yIGNvbHVtbnMKKyAgICAgICAgd2hpY2ggaXMgaGlnaCBlbm91Z2ggdG8gcHJldmVudCBpdCBi
ZWluZyBoaXQgYnkgYWNjaWRlbnQpCisKIDIwMTEtMTAtMjggIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI5ODc1Ny4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggOTA3NTU0ZmZhZGQ0ZTYzNTY2
NzFhZDA3ODhiYzZiZGM0ZDc0MWY0ZC4uNTkwYWZjMDhlZDY1NTVmNmFmM2U5OGM3NGE1ODI5ZmI2
OTNjYzkwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0xMC0yOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAg
ICAgICBQYWNrIFJlbmRlclRhYmxlQ2VsbCBiaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvUmVu
ZGVyVGFibGVDZWxsVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICBBZGRlZCBzb21lIHRlc3RzIGZv
ciB0aGUgY29sdW1uL3JvdyBpbmRleCBsaW1pdAorICAgICAgICB0aGF0IHdhcyBpbXBsZW1lbnRl
ZCBpbiBSZW5kZXJUYWJsZUNlbGwuCisKIDIwMTEtMTAtMjggIEpvY2hlbiBFaXNpbmdlciAgPGpv
Y2hlbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVuYW1lIGEgbnVtYmVyIG9mIG1ldGhvZHMg
bWVudGlvbmluZyBKYXZhU2NyaXB0IHRvIGp1c3QgU2NyaXB0IGluc3RlYWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAKaW5kZXggMjQ4YzhlYjUwNzVmNmU3
YTZjYmU2M2I4MzY3MDJkNmM1Y2U5NmEzNy4uZDAxOWZjNTg4YTNhMjVjZjQ3YmY4MDJkNzIzOTA2
YmVjOGM0NmU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRh
YmxlQ2VsbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5jcHAKQEAgLTQ0LDExICs0NCwxMSBAQCB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogUmVu
ZGVyVGFibGVDZWxsOjpSZW5kZXJUYWJsZUNlbGwoTm9kZSogbm9kZSkKICAgICA6IFJlbmRlckJs
b2NrKG5vZGUpCiAgICAgLCBtX3Jvdyh1bnNldFJvd0luZGV4KQorICAgICwgbV9jZWxsV2lkdGhD
aGFuZ2VkKGZhbHNlKQogICAgICwgbV9jb2x1bW4odW5zZXRDb2x1bW5JbmRleCkKKyAgICAsIG1f
aGFzQXNzb2NpYXRlZFRhYmxlQ2VsbEVsZW1lbnQobm9kZSAmJiAobm9kZS0+aGFzVGFnTmFtZSh0
ZFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZSh0aFRhZykpKQogICAgICwgbV9pbnRyaW5zaWNQYWRk
aW5nQmVmb3JlKDApCiAgICAgLCBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcigwKQotICAgICwgbV9j
ZWxsV2lkdGhDaGFuZ2VkKGZhbHNlKQotICAgICwgbV9oYXNBc3NvY2lhdGVkVGFibGVDZWxsRWxl
bWVudChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRkVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1l
KHRoVGFnKSkpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZUNlbGwuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNl
bGwuaAppbmRleCA1OGE3NTg2MjhiY2I5NTFkMmI2Zjk3MzJjZWZiYjJhNjc0ZTRiOGMzLi5lNjYz
OWEyNTM0ZDM1OTI4ZThhMTI2YWVmNzVkYmVkZDMxZTU2NmRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5oCkBAIC0yOSwxMCArMjksMTEgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi0vLyBGSVhNRTogSXQgaXMgcG9zc2libGUgZm9yIHRoZXNlIGluZGV4
ZXMgdG8gYmUgcmVhY2hlZCBmb3IgYSB0YWJsZSBiaWcgZW5vdWdoLgotLy8gV2Ugd291bGQgbmVl
ZCB0byBlbmZvcmNlIGEgbWF4aW1hbCBpbmRleCBvbiBib3RoIHJvd3MgYW5kIGNvbHVtbnMuCi1z
dGF0aWMgY29uc3QgdW5zaWduZWQgdW5zZXRDb2x1bW5JbmRleCA9IDB4RkZGRkZGRkY7Ci1zdGF0
aWMgY29uc3QgdW5zaWduZWQgdW5zZXRSb3dJbmRleCA9IDB4RkZGRkZGRkY7CitzdGF0aWMgY29u
c3QgdW5zaWduZWQgdW5zZXRDb2x1bW5JbmRleCA9IDB4N0ZGRkZGRkY7CitzdGF0aWMgY29uc3Qg
dW5zaWduZWQgbWF4Q29sdW1uSW5kZXggPSAweDdGRkZGRkZFOyAvLyAyLDE0Nyw0ODMsNjQ2CisK
K3N0YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldFJvd0luZGV4ID0gMHg3RkZGRkZGRjsKK3N0YXRp
YyBjb25zdCB1bnNpZ25lZCBtYXhSb3dJbmRleCA9IDB4N0ZGRkZGRkU7IC8vIDIsMTQ3LDQ4Myw2
NDYKIAogY2xhc3MgUmVuZGVyVGFibGVDZWxsIDogcHVibGljIFJlbmRlckJsb2NrIHsKIHB1Ymxp
YzoKQEAgLTQ4LDE0ICs0OSwyOCBAQCBwdWJsaWM6CiAgICAgLy8gQ2FsbGVkIGZyb20gSFRNTFRh
YmxlQ2VsbEVsZW1lbnQuCiAgICAgdm9pZCBjb2xTcGFuT3JSb3dTcGFuQ2hhbmdlZCgpOwogCi0g
ICAgdm9pZCBzZXRDb2wodW5zaWduZWQgY29sdW1uKSB7IG1fY29sdW1uID0gY29sdW1uOyB9Cisg
ICAgdm9pZCBzZXRDb2wodW5zaWduZWQgY29sdW1uKQorICAgIHsKKyAgICAgICAgaWYgKFVOTElL
RUxZKGNvbHVtbiA+IG1heENvbHVtbkluZGV4KSkKKyAgICAgICAgICAgIENSQVNIKCk7CisKKyAg
ICAgICAgbV9jb2x1bW4gPSBjb2x1bW47CisgICAgfQorCiAgICAgdW5zaWduZWQgY29sKCkgY29u
c3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX2NvbHVtbiAhPSB1bnNldENvbHVtbkluZGV4KTsK
ICAgICAgICAgcmV0dXJuIG1fY29sdW1uOwogICAgIH0KIAotICAgIHZvaWQgc2V0Um93KHVuc2ln
bmVkIHJvdykgeyBtX3JvdyA9IHJvdzsgfQorICAgIHZvaWQgc2V0Um93KHVuc2lnbmVkIHJvdykK
KyAgICB7CisgICAgICAgIGlmIChVTkxJS0VMWShyb3cgPiBtYXhSb3dJbmRleCkpCisgICAgICAg
ICAgICBDUkFTSCgpOworCisgICAgICAgIG1fcm93ID0gcm93OworICAgIH0KKwogICAgIHVuc2ln
bmVkIHJvdygpIGNvbnN0CiAgICAgewogICAgICAgICBBU1NFUlQobV9yb3cgIT0gdW5zZXRSb3dJ
bmRleCk7CkBAIC0xNTksMTQgKzE3NCwxMiBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwYWludENv
bGxhcHNlZEJvcmRlcihHcmFwaGljc0NvbnRleHQqLCBjb25zdCBMYXlvdXRSZWN0Jik7CiAKLSAg
ICB1bnNpZ25lZCBtX3JvdzsKLSAgICB1bnNpZ25lZCBtX2NvbHVtbjsKLSAgICBpbnQgbV9pbnRy
aW5zaWNQYWRkaW5nQmVmb3JlOwotICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdBZnRlcjsKLQot
ICAgIC8vIEZJWE1FOiBJdCB3b3VsZCBiZSBuaWNlIHRvIHBhY2sgdGhlc2UgMiBiaXRzIGludG8g
c29tZSBvZiB0aGUgcHJldmlvdXMgZmllbGRzLgorICAgIHVuc2lnbmVkIG1fcm93IDogMzE7CiAg
ICAgYm9vbCBtX2NlbGxXaWR0aENoYW5nZWQgOiAxOworICAgIHVuc2lnbmVkIG1fY29sdW1uIDog
MzE7CiAgICAgYm9vbCBtX2hhc0Fzc29jaWF0ZWRUYWJsZUNlbGxFbGVtZW50IDogMTsKKyAgICBp
bnQgbV9pbnRyaW5zaWNQYWRkaW5nQmVmb3JlOworICAgIGludCBtX2ludHJpbnNpY1BhZGRpbmdB
ZnRlcjsKIH07CiAKIGlubGluZSBSZW5kZXJUYWJsZUNlbGwqIHRvUmVuZGVyVGFibGVDZWxsKFJl
bmRlck9iamVjdCogb2JqZWN0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5kZXggZWM4
MmUwN2NiOTM4ZTQ0NjIwMTUzZDZiZmVmNjg1Mzg4MWRlMTliNy4uZTJjOTUzY2QwMjA0OTQyYjRm
NTQzZjUyYTJmZTIzYzhjMTE0NDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCkBA
IC04MCw2ICs4MCw3IEBACiAgICAgICAgICAgICAndGVzdHMvUE9EQXJlbmFUZXN0LmNwcCcsCiAg
ICAgICAgICAgICAndGVzdHMvUE9ESW50ZXJ2YWxUcmVlVGVzdC5jcHAnLAogICAgICAgICAgICAg
J3Rlc3RzL1BPRFJlZEJsYWNrVHJlZVRlc3QuY3BwJywKKyAgICAgICAgICAgICd0ZXN0cy9SZW5k
ZXJUYWJsZUNlbGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvVGlsaW5nRGF0YVRlc3Qu
Y3BwJywKICAgICAgICAgICAgICd0ZXN0cy9UcmVlU3luY2hyb25pemVyVGVzdC5jcHAnLAogICAg
ICAgICAgICAgJ3Rlc3RzL1RyZWVUZXN0SGVscGVycy5jcHAnLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvUmVuZGVyVGFibGVDZWxsVGVzdC5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NzQ2ZTc5NDY0OTI4MzZkNzA4YTBhNzM0NGE2MDA3YzlhNjA4YjE4ZQotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvUmVuZGVyVGFibGVDZWxsVGVzdC5jcHAK
QEAgLTAsMCArMSwxMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTEgR29vZ2xlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworLy8gRklYTUU6IElmIHdlIGdldCB0aGUgVGVzdFdlYktp
dEFQSSBmcmFtZXdvcmsgdG8gYnJpbmcgYSBmdWxsIEZyYW1lICsgRE9NIHN0YWNrCisvLyBpbiBh
IHBvcnRhYmxlIHdheSwgdGhpcyB0ZXN0IHNob3VsZCBiZSBzaGFyZWQgd2l0aCBhbGwgcG9ydHMh
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIlJlbmRlclRhYmxlQ2VsbC5oIgor
CisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZy
YW1lVGVzdEhlbHBlcnMuaCIKKyNpbmNsdWRlICJSZW5kZXJBcmVuYS5oIgorI2luY2x1ZGUgIldl
YkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViVmlldy5o
IgorCisjaW5jbHVkZSA8Z3Rlc3QvZ3Rlc3QuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCituYW1lc3BhY2UgeworCitjbGFzcyBSZW5kZXJUYWJs
ZUNlbGxUZXN0RGVhdGhUZXN0OiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CisgICAgLy8gSXQncyB1
bmZvcnR1bmF0ZSB0aGF0IHdlIGhhdmUgdG8gZ2V0IHRoZSB3aG9sZSBicm93c2VyIHN0YWNrIHRv
IHRlc3Qgb25lIFJlbmRlck9iamVjdAorICAgIC8vIGJ1dCB0aGUgY29kZSBuZWVkcyBpdC4KKyAg
ICBzdGF0aWMgRnJhbWUqIGZyYW1lKCkKKyAgICB7CisgICAgICAgIHN0YXRpYyBXZWJWaWV3KiB3
ZWJWaWV3OworCisgICAgICAgIGlmICh3ZWJWaWV3KQorICAgICAgICAgICAgcmV0dXJuIHN0YXRp
Y19jYXN0PFdlYkZyYW1lSW1wbCo+KHdlYlZpZXctPm1haW5GcmFtZSgpKS0+ZnJhbWUoKTsKKwor
ICAgICAgICB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQo
ImFib3V0OmJsYW5rIik7CisgICAgICAgIHdlYlZpZXctPnNldEZvY3VzKHRydWUpOworICAgICAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViRnJhbWVJbXBsKj4od2ViVmlldy0+bWFpbkZyYW1lKCkp
LT5mcmFtZSgpOworICAgIH0KKworICAgIHN0YXRpYyBEb2N1bWVudCogZG9jdW1lbnQoKQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGZyYW1lKCktPmRvY3VtZW50KCk7CisgICAgfQorCisgICAgc3Rh
dGljIFJlbmRlckFyZW5hKiBhcmVuYSgpCisgICAgeworICAgICAgICByZXR1cm4gZG9jdW1lbnQo
KS0+cmVuZGVyQXJlbmEoKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQorICAg
IHsKKyAgICAgICAgbV9jZWxsID0gbmV3IChhcmVuYSgpKSBSZW5kZXJUYWJsZUNlbGwoZG9jdW1l
bnQoKSk7CisgICAgfQorCisgICAgdmlydHVhbCB2b2lkIFRlYXJEb3duKCkKKyAgICB7CisgICAg
ICAgIG1fY2VsbC0+ZGVzdHJveSgpOworICAgIH0KKworcHJvdGVjdGVkOgorICAgIFJlbmRlclRh
YmxlQ2VsbCogbV9jZWxsOworfTsKKworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbFRlc3REZWF0aFRl
c3QsIENhblNldENvbHVtbikKK3sKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgY29sdW1uSW5k
ZXggPSAxMDsKKyAgICBtX2NlbGwtPnNldENvbChjb2x1bW5JbmRleCk7CisgICAgRVhQRUNUX0VR
KGNvbHVtbkluZGV4LCBtX2NlbGwtPmNvbCgpKTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2Vs
bFRlc3REZWF0aFRlc3QsIENhblNldFJvdykKK3sKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQg
cm93SW5kZXggPSAxMDsKKyAgICBtX2NlbGwtPnNldFJvdyhyb3dJbmRleCk7CisgICAgRVhQRUNU
X0VRKHJvd0luZGV4LCBtX2NlbGwtPnJvdygpKTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2Vs
bFRlc3REZWF0aFRlc3QsIENhblNldENvbHVtblRvTWF4Q29sdW1uSW5kZXgpCit7CisgICAgbV9j
ZWxsLT5zZXRDb2wobWF4Q29sdW1uSW5kZXgpOworICAgIEVYUEVDVF9FUShtYXhDb2x1bW5JbmRl
eCwgbV9jZWxsLT5jb2woKSk7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0RGVhdGhU
ZXN0LCBDYW5TZXRSb3dUb01heFJvd0luZGV4KQoreworICAgIG1fY2VsbC0+c2V0Um93KG1heFJv
d0luZGV4KTsKKyAgICBFWFBFQ1RfRVEobWF4Um93SW5kZXgsIG1fY2VsbC0+cm93KCkpOworfQor
CitURVNUX0YoUmVuZGVyVGFibGVDZWxsVGVzdERlYXRoVGVzdCwgQ3Jhc2hJZkNvbHVtbk92ZXJm
bG93T25TZXR0aW5nKQoreworICAgIEFTU0VSVF9ERUFUSChtX2NlbGwtPnNldENvbChtYXhDb2x1
bW5JbmRleCArIDEpLCAiIik7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxUZXN0RGVhdGhU
ZXN0LCBDcmFzaElmUm93T3ZlcmZsb3dPblNldHRpbmcpCit7CisgICAgQVNTRVJUX0RFQVRIKG1f
Y2VsbC0+c2V0Um93KG1heFJvd0luZGV4ICsgMSksICIiKTsKK30KKworVEVTVF9GKFJlbmRlclRh
YmxlQ2VsbFRlc3REZWF0aFRlc3QsIENyYXNoSWZTZXR0aW5nVW5zZXRDb2x1bW5JbmRleCkKK3sK
KyAgICBBU1NFUlRfREVBVEgobV9jZWxsLT5zZXRDb2wodW5zZXRDb2x1bW5JbmRleCksICIiKTsK
K30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbFRlc3REZWF0aFRlc3QsIENyYXNoSWZTZXR0aW5n
VW5zZXRSb3dJbmRleCkKK3sKKyAgICBBU1NFUlRfREVBVEgobV9jZWxsLT5zZXRSb3codW5zZXRS
b3dJbmRleCksICIiKTsKK30KKworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112957</attachid>
            <date>2011-10-28 18:21:05 -0700</date>
            <delta_ts>2011-11-01 18:12:17 -0700</delta_ts>
            <desc>Don&apos;t repeat Test in the class name.</desc>
            <filename>bug-71135-20111028182104.patch</filename>
            <type>text/plain</type>
            <size>9931</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3ODkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYTJjYWRlMTkyMzAwNDcy
ZGFlYjVlYzczYzZhNjY0NDc3Y2E3M2MxLi41MmUyY2JkMWNjMTRhNDZjYjZmZDM1MmZmMzZjNjhm
MDI2MjdmNjczIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUGFjayBSZW5k
ZXJUYWJsZUNlbGwgYml0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NzExMzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUZXN0ZWQgYnkgUmVuZGVyVGFibGVDZWxsVGVzdCB1bml0IHRlc3QuCisgICAgICAg
ICh1bmZvcnR1bmF0ZWx5IENocm9taXVtIHNwZWNpZmljLi4uKQorCisgICAgICAgIFRoaXMgc2F2
ZXMgYW5vdGhlciA4IGJ5dGVzIG9uIFJlbmRlclRhYmxlQ2VsbCBvbiB4ODYtNjQuCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlQ2VsbDo6UmVuZGVyVGFibGVDZWxsKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGFibGVDZWxsLmg6CisgICAgICAgIENoYW5nZWQgdGhlIGZpZWxkIG9yZGVyIHRvIHVzZSBt
b3JlIHN0cmljdCBwYWNraW5nLgorCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6
OnNldENvbCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZUNlbGw6OnNldFJvdyk6Cisg
ICAgICAgIEFkZGVkIG92ZXJmbG93IGNoZWNrcyB0byB0aGUgMiBwcmV2aW91cyBtZXRob2RzLiBX
ZQorICAgICAgICBDUkFTSCBldmVuIGluIHJlbGVhc2UgdG8gYXZvaWQgcG90ZW50aWFsIGJhZG5l
c3MKKyAgICAgICAgKHRoZSBsaW1pdCBpcyBjdXJyZW50bHkgYWJvdmUgMiBiaWxsaW9ucyByb3dz
IG9yIGNvbHVtbnMKKyAgICAgICAgd2hpY2ggaXMgaGlnaCBlbm91Z2ggdG8gcHJldmVudCBpdCBi
ZWluZyBoaXQgYnkgYWNjaWRlbnQpCisKIDIwMTEtMTAtMjggIFNoZXJpZmYgQm90ICA8d2Via2l0
LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0
IHI5ODc3Ni4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2ZhN2NjOTc1YWMzMmFlNzdh
ZGY4NTllMGIzNjdiOGNiYjhkYjlkOS4uMmY5Mjc1MDJkMGNjNmMyMTRlYmYxMWZkODMyODQ0NzI0
ZDYxY2M3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAx
MS0xMC0yOCAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAg
ICAgICBQYWNrIFJlbmRlclRhYmxlQ2VsbCBiaXRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MTEzNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogV2ViS2l0Lmd5cGk6CisgICAgICAgICogdGVzdHMvUmVu
ZGVyVGFibGVDZWxsVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICBBZGRlZCBzb21lIHRlc3RzIGZv
ciB0aGUgY29sdW1uL3JvdyBpbmRleCBsaW1pdAorICAgICAgICB0aGF0IHdhcyBpbXBsZW1lbnRl
ZCBpbiBSZW5kZXJUYWJsZUNlbGwuCisKIDIwMTEtMTAtMjggIFNhZHJ1bCBIYWJpYiBDaG93ZGh1
cnkgIDxzYWRydWxAY2hyb21pdW0ub3JnPgogIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3Igc2Vu
ZGluZyBzY3JvbGwtdXBkYXRlIGV2ZW50cyBmcm9tIEV2ZW50U2VuZGVyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2VsbC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmNwcAppbmRleCAyNDhjOGViNTA3NWY2ZTdh
NmNiZTYzYjgzNjcwMmQ2YzVjZTk2YTM3Li5kMDE5ZmM1ODhhM2EyNWNmNDdiZjgwMmQ3MjM5MDZi
ZWM4YzQ2ZTlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxs
LmNwcApAQCAtNDQsMTEgKzQ0LDExIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBSZW5k
ZXJUYWJsZUNlbGw6OlJlbmRlclRhYmxlQ2VsbChOb2RlKiBub2RlKQogICAgIDogUmVuZGVyQmxv
Y2sobm9kZSkKICAgICAsIG1fcm93KHVuc2V0Um93SW5kZXgpCisgICAgLCBtX2NlbGxXaWR0aENo
YW5nZWQoZmFsc2UpCiAgICAgLCBtX2NvbHVtbih1bnNldENvbHVtbkluZGV4KQorICAgICwgbV9o
YXNBc3NvY2lhdGVkVGFibGVDZWxsRWxlbWVudChub2RlICYmIChub2RlLT5oYXNUYWdOYW1lKHRk
VGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKHRoVGFnKSkpCiAgICAgLCBtX2ludHJpbnNpY1BhZGRp
bmdCZWZvcmUoMCkKICAgICAsIG1faW50cmluc2ljUGFkZGluZ0FmdGVyKDApCi0gICAgLCBtX2Nl
bGxXaWR0aENoYW5nZWQoZmFsc2UpCi0gICAgLCBtX2hhc0Fzc29jaWF0ZWRUYWJsZUNlbGxFbGVt
ZW50KG5vZGUgJiYgKG5vZGUtPmhhc1RhZ05hbWUodGRUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUo
dGhUYWcpKSkKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlQ2VsbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlQ2Vs
bC5oCmluZGV4IDU4YTc1ODYyOGJjYjk1MWQyYjZmOTczMmNlZmJiMmE2NzRlNGI4YzMuLmU2NjM5
YTI1MzRkMzU5MjhlOGExMjZhZWY3NWRiZWRkMzFlNTY2ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZUNlbGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVDZWxsLmgKQEAgLTI5LDEwICsyOSwxMSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLS8vIEZJWE1FOiBJdCBpcyBwb3NzaWJsZSBmb3IgdGhlc2UgaW5kZXhl
cyB0byBiZSByZWFjaGVkIGZvciBhIHRhYmxlIGJpZyBlbm91Z2guCi0vLyBXZSB3b3VsZCBuZWVk
IHRvIGVuZm9yY2UgYSBtYXhpbWFsIGluZGV4IG9uIGJvdGggcm93cyBhbmQgY29sdW1ucy4KLXN0
YXRpYyBjb25zdCB1bnNpZ25lZCB1bnNldENvbHVtbkluZGV4ID0gMHhGRkZGRkZGRjsKLXN0YXRp
YyBjb25zdCB1bnNpZ25lZCB1bnNldFJvd0luZGV4ID0gMHhGRkZGRkZGRjsKK3N0YXRpYyBjb25z
dCB1bnNpZ25lZCB1bnNldENvbHVtbkluZGV4ID0gMHg3RkZGRkZGRjsKK3N0YXRpYyBjb25zdCB1
bnNpZ25lZCBtYXhDb2x1bW5JbmRleCA9IDB4N0ZGRkZGRkU7IC8vIDIsMTQ3LDQ4Myw2NDYKKwor
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHVuc2V0Um93SW5kZXggPSAweDdGRkZGRkZGOworc3RhdGlj
IGNvbnN0IHVuc2lnbmVkIG1heFJvd0luZGV4ID0gMHg3RkZGRkZGRTsgLy8gMiwxNDcsNDgzLDY0
NgogCiBjbGFzcyBSZW5kZXJUYWJsZUNlbGwgOiBwdWJsaWMgUmVuZGVyQmxvY2sgewogcHVibGlj
OgpAQCAtNDgsMTQgKzQ5LDI4IEBAIHB1YmxpYzoKICAgICAvLyBDYWxsZWQgZnJvbSBIVE1MVGFi
bGVDZWxsRWxlbWVudC4KICAgICB2b2lkIGNvbFNwYW5PclJvd1NwYW5DaGFuZ2VkKCk7CiAKLSAg
ICB2b2lkIHNldENvbCh1bnNpZ25lZCBjb2x1bW4pIHsgbV9jb2x1bW4gPSBjb2x1bW47IH0KKyAg
ICB2b2lkIHNldENvbCh1bnNpZ25lZCBjb2x1bW4pCisgICAgeworICAgICAgICBpZiAoVU5MSUtF
TFkoY29sdW1uID4gbWF4Q29sdW1uSW5kZXgpKQorICAgICAgICAgICAgQ1JBU0goKTsKKworICAg
ICAgICBtX2NvbHVtbiA9IGNvbHVtbjsKKyAgICB9CisKICAgICB1bnNpZ25lZCBjb2woKSBjb25z
dAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fY29sdW1uICE9IHVuc2V0Q29sdW1uSW5kZXgpOwog
ICAgICAgICByZXR1cm4gbV9jb2x1bW47CiAgICAgfQogCi0gICAgdm9pZCBzZXRSb3codW5zaWdu
ZWQgcm93KSB7IG1fcm93ID0gcm93OyB9CisgICAgdm9pZCBzZXRSb3codW5zaWduZWQgcm93KQor
ICAgIHsKKyAgICAgICAgaWYgKFVOTElLRUxZKHJvdyA+IG1heFJvd0luZGV4KSkKKyAgICAgICAg
ICAgIENSQVNIKCk7CisKKyAgICAgICAgbV9yb3cgPSByb3c7CisgICAgfQorCiAgICAgdW5zaWdu
ZWQgcm93KCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX3JvdyAhPSB1bnNldFJvd0lu
ZGV4KTsKQEAgLTE1OSwxNCArMTc0LDEyIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBhaW50Q29s
bGFwc2VkQm9yZGVyKEdyYXBoaWNzQ29udGV4dCosIGNvbnN0IExheW91dFJlY3QmKTsKIAotICAg
IHVuc2lnbmVkIG1fcm93OwotICAgIHVuc2lnbmVkIG1fY29sdW1uOwotICAgIGludCBtX2ludHJp
bnNpY1BhZGRpbmdCZWZvcmU7Ci0gICAgaW50IG1faW50cmluc2ljUGFkZGluZ0FmdGVyOwotCi0g
ICAgLy8gRklYTUU6IEl0IHdvdWxkIGJlIG5pY2UgdG8gcGFjayB0aGVzZSAyIGJpdHMgaW50byBz
b21lIG9mIHRoZSBwcmV2aW91cyBmaWVsZHMuCisgICAgdW5zaWduZWQgbV9yb3cgOiAzMTsKICAg
ICBib29sIG1fY2VsbFdpZHRoQ2hhbmdlZCA6IDE7CisgICAgdW5zaWduZWQgbV9jb2x1bW4gOiAz
MTsKICAgICBib29sIG1faGFzQXNzb2NpYXRlZFRhYmxlQ2VsbEVsZW1lbnQgOiAxOworICAgIGlu
dCBtX2ludHJpbnNpY1BhZGRpbmdCZWZvcmU7CisgICAgaW50IG1faW50cmluc2ljUGFkZGluZ0Fm
dGVyOwogfTsKIAogaW5saW5lIFJlbmRlclRhYmxlQ2VsbCogdG9SZW5kZXJUYWJsZUNlbGwoUmVu
ZGVyT2JqZWN0KiBvYmplY3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dl
YktpdC5neXBpIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCBlYzgy
ZTA3Y2I5MzhlNDQ2MjAxNTNkNmJmZWY2ODUzODgxZGUxOWI3Li5lMmM5NTNjZDAyMDQ5NDJiNGY1
NDNmNTJhMmZlMjNjOGMxMTQ0MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAg
LTgwLDYgKzgwLDcgQEAKICAgICAgICAgICAgICd0ZXN0cy9QT0RBcmVuYVRlc3QuY3BwJywKICAg
ICAgICAgICAgICd0ZXN0cy9QT0RJbnRlcnZhbFRyZWVUZXN0LmNwcCcsCiAgICAgICAgICAgICAn
dGVzdHMvUE9EUmVkQmxhY2tUcmVlVGVzdC5jcHAnLAorICAgICAgICAgICAgJ3Rlc3RzL1JlbmRl
clRhYmxlQ2VsbFRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9UaWxpbmdEYXRhVGVzdC5j
cHAnLAogICAgICAgICAgICAgJ3Rlc3RzL1RyZWVTeW5jaHJvbml6ZXJUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvVHJlZVRlc3RIZWxwZXJzLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1JlbmRlclRhYmxlQ2VsbFRlc3QuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
ZDUzNmM4YjVmOWQ3ZGUzZDViMTk0ZGZkZjA3NWYyYzNlOWY5OTcxCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9SZW5kZXJUYWJsZUNlbGxUZXN0LmNwcApA
QCAtMCwwICsxLDEzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQg
QU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBG
T1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICog
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisvLyBGSVhNRTogSWYgd2UgZ2V0IHRoZSBUZXN0V2ViS2l0
QVBJIGZyYW1ld29yayB0byBicmluZyBhIGZ1bGwgRnJhbWUgKyBET00gc3RhY2sKKy8vIGluIGEg
cG9ydGFibGUgd2F5LCB0aGlzIHRlc3Qgc2hvdWxkIGJlIHNoYXJlZCB3aXRoIGFsbCBwb3J0cyEK
KworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiUmVuZGVyVGFibGVDZWxsLmgiCisK
KyNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgiCisjaW5jbHVkZSAiRnJh
bWVUZXN0SGVscGVycy5oIgorI2luY2x1ZGUgIlJlbmRlckFyZW5hLmgiCisjaW5jbHVkZSAiV2Vi
RnJhbWUuaCIKKyNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJWaWV3Lmgi
CisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFJlbmRlclRhYmxl
Q2VsbERlYXRoVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKKyAgICAvLyBJdCdzIHVuZm9y
dHVuYXRlIHRoYXQgd2UgaGF2ZSB0byBnZXQgdGhlIHdob2xlIGJyb3dzZXIgc3RhY2sgdG8gdGVz
dCBvbmUgUmVuZGVyT2JqZWN0CisgICAgLy8gYnV0IHRoZSBjb2RlIG5lZWRzIGl0LgorICAgIHN0
YXRpYyBGcmFtZSogZnJhbWUoKQorICAgIHsKKyAgICAgICAgc3RhdGljIFdlYlZpZXcqIHdlYlZp
ZXc7CisKKyAgICAgICAgaWYgKHdlYlZpZXcpCisgICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8V2ViRnJhbWVJbXBsKj4od2ViVmlldy0+bWFpbkZyYW1lKCkpLT5mcmFtZSgpOworCisgICAg
ICAgIHdlYlZpZXcgPSBGcmFtZVRlc3RIZWxwZXJzOjpjcmVhdGVXZWJWaWV3QW5kTG9hZCgiYWJv
dXQ6YmxhbmsiKTsKKyAgICAgICAgd2ViVmlldy0+c2V0Rm9jdXModHJ1ZSk7CisgICAgICAgIHJl
dHVybiBzdGF0aWNfY2FzdDxXZWJGcmFtZUltcGwqPih3ZWJWaWV3LT5tYWluRnJhbWUoKSktPmZy
YW1lKCk7CisgICAgfQorCisgICAgc3RhdGljIERvY3VtZW50KiBkb2N1bWVudCgpCisgICAgewor
ICAgICAgICByZXR1cm4gZnJhbWUoKS0+ZG9jdW1lbnQoKTsKKyAgICB9CisKKyAgICBzdGF0aWMg
UmVuZGVyQXJlbmEqIGFyZW5hKCkKKyAgICB7CisgICAgICAgIHJldHVybiBkb2N1bWVudCgpLT5y
ZW5kZXJBcmVuYSgpOworICAgIH0KKworICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCisgICAgewor
ICAgICAgICBtX2NlbGwgPSBuZXcgKGFyZW5hKCkpIFJlbmRlclRhYmxlQ2VsbChkb2N1bWVudCgp
KTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIHZvaWQgVGVhckRvd24oKQorICAgIHsKKyAgICAgICAg
bV9jZWxsLT5kZXN0cm95KCk7CisgICAgfQorCitwcm90ZWN0ZWQ6CisgICAgUmVuZGVyVGFibGVD
ZWxsKiBtX2NlbGw7Cit9OworCitURVNUX0YoUmVuZGVyVGFibGVDZWxsRGVhdGhUZXN0LCBDYW5T
ZXRDb2x1bW4pCit7CisgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGNvbHVtbkluZGV4ID0gMTA7
CisgICAgbV9jZWxsLT5zZXRDb2woY29sdW1uSW5kZXgpOworICAgIEVYUEVDVF9FUShjb2x1bW5J
bmRleCwgbV9jZWxsLT5jb2woKSk7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxEZWF0aFRl
c3QsIENhblNldFJvdykKK3sKKyAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgcm93SW5kZXggPSAx
MDsKKyAgICBtX2NlbGwtPnNldFJvdyhyb3dJbmRleCk7CisgICAgRVhQRUNUX0VRKHJvd0luZGV4
LCBtX2NlbGwtPnJvdygpKTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbERlYXRoVGVzdCwg
Q2FuU2V0Q29sdW1uVG9NYXhDb2x1bW5JbmRleCkKK3sKKyAgICBtX2NlbGwtPnNldENvbChtYXhD
b2x1bW5JbmRleCk7CisgICAgRVhQRUNUX0VRKG1heENvbHVtbkluZGV4LCBtX2NlbGwtPmNvbCgp
KTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxlQ2VsbERlYXRoVGVzdCwgQ2FuU2V0Um93VG9NYXhS
b3dJbmRleCkKK3sKKyAgICBtX2NlbGwtPnNldFJvdyhtYXhSb3dJbmRleCk7CisgICAgRVhQRUNU
X0VRKG1heFJvd0luZGV4LCBtX2NlbGwtPnJvdygpKTsKK30KKworVEVTVF9GKFJlbmRlclRhYmxl
Q2VsbERlYXRoVGVzdCwgQ3Jhc2hJZkNvbHVtbk92ZXJmbG93T25TZXR0aW5nKQoreworICAgIEFT
U0VSVF9ERUFUSChtX2NlbGwtPnNldENvbChtYXhDb2x1bW5JbmRleCArIDEpLCAiIik7Cit9CisK
K1RFU1RfRihSZW5kZXJUYWJsZUNlbGxEZWF0aFRlc3QsIENyYXNoSWZSb3dPdmVyZmxvd09uU2V0
dGluZykKK3sKKyAgICBBU1NFUlRfREVBVEgobV9jZWxsLT5zZXRSb3cobWF4Um93SW5kZXggKyAx
KSwgIiIpOworfQorCitURVNUX0YoUmVuZGVyVGFibGVDZWxsRGVhdGhUZXN0LCBDcmFzaElmU2V0
dGluZ1Vuc2V0Q29sdW1uSW5kZXgpCit7CisgICAgQVNTRVJUX0RFQVRIKG1fY2VsbC0+c2V0Q29s
KHVuc2V0Q29sdW1uSW5kZXgpLCAiIik7Cit9CisKK1RFU1RfRihSZW5kZXJUYWJsZUNlbGxEZWF0
aFRlc3QsIENyYXNoSWZTZXR0aW5nVW5zZXRSb3dJbmRleCkKK3sKKyAgICBBU1NFUlRfREVBVEgo
bV9jZWxsLT5zZXRSb3codW5zZXRSb3dJbmRleCksICIiKTsKK30KKworfQorCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>