<?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>45426</bug_id>
          
          <creation_ts>2010-09-08 17:33:01 -0700</creation_ts>
          <short_desc>[Chromium] fast/dom/dataset-gc.html is failing</short_desc>
          <delta_ts>2010-09-21 09:34:12 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>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="Dirk Pranke">dpranke</reporter>
          <assigned_to name="Erik Arvidsson">arv</assigned_to>
          <cc>abarth</cc>
    
    <cc>antonm</cc>
    
    <cc>arv</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>276209</commentid>
    <comment_count>0</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2010-09-08 17:33:01 -0700</bug_when>
    <thetext>This test was introduced in r66954 (see bug 45358). If I understand the conversation on #webkit correctly, the wrapper object is being recreated incorrectly instead of persisting and being tied to the lifetime of the element.

JamesR suggests that we need to add a call to V8DomWrapper::setHIddenReference() at around line 860 of CodeGeneratorV8.pm ... patch to follow shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278610</commentid>
    <comment_count>1</comment_count>
      <attachid>67498</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-13 18:10:23 -0700</bug_when>
    <thetext>Created attachment 67498
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278614</commentid>
    <comment_count>2</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-13 18:12:25 -0700</bug_when>
    <thetext>The test still fails after my changes but I don&apos;t understand why. This seems to follow the same pattern as NamedNodeMap.

Nate, do you have any ideas?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279128</commentid>
    <comment_count>3</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-14 13:20:29 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; The test still fails after my changes but I don&apos;t understand why. This seems to follow the same pattern as NamedNodeMap.
&gt; 
&gt; Nate, do you have any ideas?

Are we sure NamedNodeMap is right?  If I&apos;m reading this correctly, your code is tying the Element wrapper&apos;s lifetime to that of the DOMStringMap, when we want the opposite.

:(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279310</commentid>
    <comment_count>4</comment_count>
      <attachid>67631</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-14 18:45:42 -0700</bug_when>
    <thetext>Created attachment 67631
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279617</commentid>
    <comment_count>5</comment_count>
      <attachid>67631</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-15 10:42:50 -0700</bug_when>
    <thetext>Comment on attachment 67631
Patch


&gt; @@ -44,6 +44,7 @@
&gt;  #include &quot;V8DedicatedWorkerContext.h&quot;
&gt;  #include &quot;V8DOMApplicationCache.h&quot;
&gt;  #include &quot;V8DOMMap.h&quot;
&gt; +#include &quot;V8DOMStringMap.h&quot;
&gt;  #include &quot;V8DOMWindow.h&quot;
&gt;  #include &quot;V8EventListenerList.h&quot;
&gt;  #include &quot;V8EventSource.h&quot;

Remove include

&gt; +v8::Handle&lt;v8::Value&gt; toV8(DOMStringMap* impl)
&gt; +{
&gt; +    if (!impl)
&gt; +        return v8::Null();
&gt; +    v8::Handle&lt;v8::Object&gt; wrapper = V8DOMStringMap::wrap(impl);
&gt; +    // Add a hidden reference from the element to the DOMStringMap.
&gt; +    Element* element = impl-&gt;element();
&gt; +    if (!wrapper.IsEmpty() &amp;&amp; element)
&gt; +        V8DOMWrapper::setHiddenReference(V8Element::wrap(element), wrapper);

I think this needs to be toV8(element) rather than V8Element::wrap(element). wrap() may not handle subclasses of Element correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279639</commentid>
    <comment_count>6</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-15 11:50:09 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 67631 [details])
&gt; 
&gt; &gt; @@ -44,6 +44,7 @@
&gt; &gt;  #include &quot;V8DedicatedWorkerContext.h&quot;
&gt; &gt;  #include &quot;V8DOMApplicationCache.h&quot;
&gt; &gt;  #include &quot;V8DOMMap.h&quot;
&gt; &gt; +#include &quot;V8DOMStringMap.h&quot;
&gt; &gt;  #include &quot;V8DOMWindow.h&quot;
&gt; &gt;  #include &quot;V8EventListenerList.h&quot;
&gt; &gt;  #include &quot;V8EventSource.h&quot;
&gt; 
&gt; Remove include

Done.

&gt; &gt; +v8::Handle&lt;v8::Value&gt; toV8(DOMStringMap* impl)
&gt; &gt; +{
&gt; &gt; +    if (!impl)
&gt; &gt; +        return v8::Null();
&gt; &gt; +    v8::Handle&lt;v8::Object&gt; wrapper = V8DOMStringMap::wrap(impl);
&gt; &gt; +    // Add a hidden reference from the element to the DOMStringMap.
&gt; &gt; +    Element* element = impl-&gt;element();
&gt; &gt; +    if (!wrapper.IsEmpty() &amp;&amp; element)
&gt; &gt; +        V8DOMWrapper::setHiddenReference(V8Element::wrap(element), wrapper);
&gt; 
&gt; I think this needs to be toV8(element) rather than V8Element::wrap(element). wrap() may not handle subclasses of Element correctly.

toV8 returns a V8::Value* but we need a V8::Object*</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279642</commentid>
    <comment_count>7</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-15 11:53:30 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (From update of attachment 67631 [details] [details])
&gt; &gt; 
&gt; &gt; &gt; @@ -44,6 +44,7 @@
&gt; &gt; &gt;  #include &quot;V8DedicatedWorkerContext.h&quot;
&gt; &gt; &gt;  #include &quot;V8DOMApplicationCache.h&quot;
&gt; &gt; &gt;  #include &quot;V8DOMMap.h&quot;
&gt; &gt; &gt; +#include &quot;V8DOMStringMap.h&quot;
&gt; &gt; &gt;  #include &quot;V8DOMWindow.h&quot;
&gt; &gt; &gt;  #include &quot;V8EventListenerList.h&quot;
&gt; &gt; &gt;  #include &quot;V8EventSource.h&quot;
&gt; &gt; 
&gt; &gt; Remove include
&gt; 
&gt; Done.
&gt; 
&gt; &gt; &gt; +v8::Handle&lt;v8::Value&gt; toV8(DOMStringMap* impl)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    if (!impl)
&gt; &gt; &gt; +        return v8::Null();
&gt; &gt; &gt; +    v8::Handle&lt;v8::Object&gt; wrapper = V8DOMStringMap::wrap(impl);
&gt; &gt; &gt; +    // Add a hidden reference from the element to the DOMStringMap.
&gt; &gt; &gt; +    Element* element = impl-&gt;element();
&gt; &gt; &gt; +    if (!wrapper.IsEmpty() &amp;&amp; element)
&gt; &gt; &gt; +        V8DOMWrapper::setHiddenReference(V8Element::wrap(element), wrapper);
&gt; &gt; 
&gt; &gt; I think this needs to be toV8(element) rather than V8Element::wrap(element). wrap() may not handle subclasses of Element correctly.
&gt; 
&gt; toV8 returns a V8::Value* but we need a V8::Object*

Nevermind.  The code generator changed and I missed it.  I was think of what is now wrapSlow()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279733</commentid>
    <comment_count>8</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-15 14:38:29 -0700</bug_when>
    <thetext>Is this good to go?

I&apos;m a bit concerned about using V8Element::wrap since toV8(element) checks isHTMLElement and isSVGElement and calls toV8 on those. I guess I could do the same thing but I&apos;m not sure it is necessary?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>279740</commentid>
    <comment_count>9</comment_count>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-15 14:43:31 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Is this good to go?
&gt; 
&gt; I&apos;m a bit concerned about using V8Element::wrap since toV8(element) checks isHTMLElement and isSVGElement and calls toV8 on those. I guess I could do the same thing but I&apos;m not sure it is necessary?

So my knowledge of these functions (and which one is which) is apparently out of date, but yes, I&apos;m pretty sure you need to be doing the isHTMLElement and isSVGElement calls.  We generally need to wrap an object as its real type to avoid problems when unwrapping them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280849</commentid>
    <comment_count>10</comment_count>
      <attachid>67948</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-17 14:15:20 -0700</bug_when>
    <thetext>Created attachment 67948
Now uses V8DOMWrapper::getWrapper which handles the different kind of elements we might have</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280898</commentid>
    <comment_count>11</comment_count>
      <attachid>67958</attachid>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-17 15:08:54 -0700</bug_when>
    <thetext>Created attachment 67958
Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280925</commentid>
    <comment_count>12</comment_count>
      <attachid>67958</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2010-09-17 15:32:56 -0700</bug_when>
    <thetext>Comment on attachment 67958
Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do


&gt; +v8::Handle&lt;v8::Value&gt; toV8(DOMStringMap* impl)
&gt; +{
&gt; +    if (!impl)
&gt; +        return v8::Null();
&gt; +    v8::Handle&lt;v8::Object&gt; wrapper = V8DOMStringMap::wrap(impl);
&gt; +    // Add a hidden reference from the element to the DOMStringMap.
&gt; +    Element* element = impl-&gt;element();
&gt; +    if (!wrapper.IsEmpty() &amp;&amp; element)
&gt; +        V8DOMWrapper::setHiddenWindowReference(element-&gt;document()-&gt;frame(), wrapper);
&gt; +    return wrapper;

If that&apos;s what JSC does, I guess it&apos;s ok to do the same. I don&apos;t know anything about DOMStringMap, so I don&apos;t have a good idea whether it make sense to keep it around for the life of the global object.  It seems like the default answer should be to tie it to its owner object, though.

Where do the JSC bindings do this?  I didn&apos;t immediately see it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280939</commentid>
    <comment_count>13</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-17 15:41:12 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; Where do the JSC bindings do this?  I didn&apos;t immediately see it.

It is done in WebCore/bindings/js/JSElementCustom.cpp

 63     markDOMObjectWrapper(markStack, globalData, element-&gt;optionalDataset());

This was done in Bug 45358</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281235</commentid>
    <comment_count>14</comment_count>
      <attachid>67958</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-18 18:05:26 -0700</bug_when>
    <thetext>Comment on attachment 67958
Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do

Clearing flags on attachment: 67958

Committed r67805: &lt;http://trac.webkit.org/changeset/67805&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281236</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-18 18:05:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281492</commentid>
    <comment_count>16</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-20 04:32:23 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=67958) [details]
&gt; Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do

Erik, apparently your patch doesn&apos;t do what JSC does: JSC makes DOMStringMap to live as long as elements is live, and you make it live as long as global object is alive, so it is apparently a leak.

There is another approach you may use which would be more inline with the way object lives are treated in v8 bindings: you could make a group out of element&apos;s and DOMStringMap&apos;s---in this case they would survive or get GCed together which is apparently what you&apos;re looking for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281645</commentid>
    <comment_count>17</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-20 10:32:38 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (In reply to comment #11)
&gt; &gt; Created an attachment (id=67958) [details] [details]
&gt; &gt; Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do
&gt; 
&gt; Erik, apparently your patch doesn&apos;t do what JSC does: JSC makes DOMStringMap to live as long as elements is live, and you make it live as long as global object is alive, so it is apparently a leak.

That is how I understood the JSC code. I should have known better though.

&gt; There is another approach you may use which would be more inline with the way object lives are treated in v8 bindings: you could make a group out of element&apos;s and DOMStringMap&apos;s---in this case they would survive or get GCed together which is apparently what you&apos;re looking for.

Yes, do you have any pointers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281647</commentid>
    <comment_count>18</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-20 10:39:34 -0700</bug_when>
    <thetext>(In reply to comment #17)
&gt; (In reply to comment #16)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; Created an attachment (id=67958) [details] [details] [details]
&gt; &gt; &gt; Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do
&gt; &gt; 
&gt; &gt; Erik, apparently your patch doesn&apos;t do what JSC does: JSC makes DOMStringMap to live as long as elements is live, and you make it live as long as global object is alive, so it is apparently a leak.
&gt; 
&gt; That is how I understood the JSC code. I should have known better though.
&gt; 
&gt; &gt; There is another approach you may use which would be more inline with the way object lives are treated in v8 bindings: you could make a group out of element&apos;s and DOMStringMap&apos;s---in this case they would survive or get GCed together which is apparently what you&apos;re looking for.
&gt; 
&gt; Yes, do you have any pointers?

Sure, take a look at http://www.google.com/codesearch/p?hl=en#N6Qhr5kJSgQ/WebCore/bindings/v8/V8GCController.cpp&amp;q=file:v8gccontroller.cpp%20ObjectGrouperVisitor&amp;sa=N&amp;cd=1&amp;ct=rc

You could either add wrapper for DOMStringMap when visiting Element (JSC requires the way to access the map for the element, so code should be already there) or when visiting the DOMStringMap itself if you have pointer back to the owning element.

Feel free to ping me if you have any questions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281942</commentid>
    <comment_count>19</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-20 17:27:19 -0700</bug_when>
    <thetext>I&apos;ve been here before but I think that 

        V8DOMWrapper::setHiddenReference(V8DOMWrapper::getWrapper(element), wrapper);

should work. Nate said that getWrapper might return null but since the classList can only be retrieved through the element the wrapper should always be available.

I did look at V8GCController and I could not figure out what to do with that :&apos;(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>281943</commentid>
    <comment_count>20</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-20 17:27:58 -0700</bug_when>
    <thetext>(In reply to comment #19)
s/classList/dataset/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282179</commentid>
    <comment_count>21</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-21 03:39:05 -0700</bug_when>
    <thetext>(In reply to comment #19)
&gt; I&apos;ve been here before but I think that 
&gt; 
&gt;         V8DOMWrapper::setHiddenReference(V8DOMWrapper::getWrapper(element), wrapper);
&gt; 
&gt; should work. Nate said that getWrapper might return null but since the classList can only be retrieved through the element the wrapper should always be available.
&gt; 
&gt; I did look at V8GCController and I could not figure out what to do with that :&apos;(

At least in https://bugs.webkit.org/attachment.cgi?id=67958&amp;action=prettypatch you use V8DOMWrapper::setHiddenWindowReference(element-&gt;document()-&gt;frame(), wrapper) which makes a reference from global object to the wrapper (but I saw your https://bugs.webkit.org/attachment.cgi?id=67948&amp;action=prettypatch which is better imho)

I think setHiddenReference thing should work right.  And there is no need to do it with object groping if you don&apos;t want to :)

Regarding getWrapper.  I don&apos;t know for sure, but it looks extremely likely that one can only create a wrapper for dataset when there is a live wrapper for element, so plain getWrapper should work.  To be completely safe you might want to prefer to use toV8 which will create a wrapper if one is missing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282318</commentid>
    <comment_count>22</comment_count>
    <who name="Erik Arvidsson">arv</who>
    <bug_when>2010-09-21 08:30:56 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Regarding getWrapper.  I don&apos;t know for sure, but it looks extremely likely that one can only create a wrapper for dataset when there is a live wrapper for element, so plain getWrapper should work.  To be completely safe you might want to prefer to use toV8 which will create a wrapper if one is missing.

toV8 creates a V8::Value. This needs a V8::Object.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>282353</commentid>
    <comment_count>23</comment_count>
    <who name="anton muhin">antonm</who>
    <bug_when>2010-09-21 09:34:12 -0700</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt; &gt; Regarding getWrapper.  I don&apos;t know for sure, but it looks extremely likely that one can only create a wrapper for dataset when there is a live wrapper for element, so plain getWrapper should work.  To be completely safe you might want to prefer to use toV8 which will create a wrapper if one is missing.
&gt; 
&gt; toV8 creates a V8::Value. This needs a V8::Object.

Yes.  That&apos;s why we have Cast or As methods :)  But you need to check before it&apos;s not empty.

v8::Value corresponds to any JS object (string, number, real object, etc) and v8::Object stands for real objects.  So if you manage to get anything from toV8, it must be object (unless handle is empty).  That probably should have been put into signature.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67498</attachid>
            <date>2010-09-13 18:10:23 -0700</date>
            <delta_ts>2010-09-14 18:45:39 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-45426-20100913181022.patch</filename>
            <type>text/plain</type>
            <size>4300</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MDcwNzMyOWIwMDI0YmZjNGQ4ODQ0OTQzN2EyODgxYWMyYTA5MTI0MC4uMjU5MjdmZTM5M2M4MzA4
YjVjZjNkMTBmZTI3MjQyMTA3ZmNiYTVjNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wOS0xMyAgRXJp
ayBBcnZpZHNzb24gIDxhcnZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIGZhc3QvZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWls
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQy
NgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogYmluZGluZ3Mv
c2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9WOCk6CisgICAgICAgICogZG9tL0RPTVN0
cmluZ01hcC5oOgorICAgICAgICAqIGRvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmg6CisgICAgICAg
IChXZWJDb3JlOjpEYXRhc2V0RE9NU3RyaW5nTWFwOjplbGVtZW50KToKKwogMjAxMC0wOS0xMyAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEtlbm5ldGggUnVzc2VsbC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy9Db2RlR2VuZXJhdG9yVjgucG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvclY4LnBtCmluZGV4IDA2YmNlMDQ4MDlmMTkyMmIwYWNiZjNkNzczNDQzNTBjN2IyMGYyZDQu
LjlmYzI2NWUwNWQ5NWViMDZmNjBlZmUxZGViMzQ4YmIxNDFkMzk5NDkgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjUwOSw2ICsyNTA5LDcgQEAg
c3ViIEhhc0N1c3RvbVRvVjhJbXBsZW1lbnRhdGlvbiB7CiAgICAgIyBXZSBnZW5lcmF0ZSBhIGN1
c3RvbSBjb252ZXJ0ZXIgKGJ1dCBKU0MgZG9lc24ndCkgZm9yIHRoZSBmb2xsb3dpbmc6CiAgICAg
cmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkNTU1N0eWxlU2hlZXQiOwogICAgIHJldHVy
biAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJDYW52YXNQaXhlbEFycmF5IjsKKyAgICByZXR1cm4g
MSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRE9NU3RyaW5nTWFwIjsKICAgICByZXR1cm4gMSBpZiAk
aW50ZXJmYWNlTmFtZSBlcSAiRE9NV2luZG93IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNl
TmFtZSBlcSAiRWxlbWVudCI7CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkhU
TUxEb2N1bWVudCI7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBl
ci5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggZTdhODE0
MmE2MTUxYmE0OGExZDNmZTlkZGNlOWNhMjY2NGM4MTgwOC4uMjQ2NzY0MTQzYTljZWNkMjExYjQ4
YmJiMzRiODExZGRhYWJmNGJmYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERP
TVdyYXBwZXIuY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApA
QCAtNDQsNiArNDQsNyBAQAogI2luY2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgog
I2luY2x1ZGUgIlY4RE9NQXBwbGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgi
CisjaW5jbHVkZSAiVjhET01TdHJpbmdNYXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgog
I2luY2x1ZGUgIlY4RXZlbnRMaXN0ZW5lckxpc3QuaCIKICNpbmNsdWRlICJWOEV2ZW50U291cmNl
LmgiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01h
cEN1c3RvbS5jcHAgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1
c3RvbS5jcHAKaW5kZXggN2NhMThhYmUyYmQwYTY5NWVkYTRiMzUwNGFhNzIzNTM2MjM3MWZhYy4u
MTAzNDkxYzU4NTEyMTkxZjBlODFkYjc5YjRjMDIxOWQzZmYxOGQxYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCisrKyBiL1dl
YkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtMzMs
NiArMzMsOCBAQAogCiAjaW5jbHVkZSAiRE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiVjhCaW5k
aW5nLmgiCisjaW5jbHVkZSAiVjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhFbGVtZW50Lmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtOTMsNCArOTUsMTcgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4RE9NU3RyaW5nTWFwOjpuYW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2
ODo6U3RyaW5nPgogICAgIHJldHVybiB2YWx1ZTsKIH0KIAordjg6OkhhbmRsZTx2ODo6VmFsdWU+
IHRvVjgoRE9NU3RyaW5nTWFwKiBpbXBsKQoreworICAgIGlmICghaW1wbCkKKyAgICAgICAgcmV0
dXJuIHY4OjpOdWxsKCk7CisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhE
T01TdHJpbmdNYXA6OndyYXAoaW1wbCk7CisgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBm
cm9tIHRoZSBET01TdHJpbmdNYXAgb2JqZWN0IHRvIGl0cyBvd25lciBub2RlLgorICAgIEVsZW1l
bnQqIGVsZW1lbnQgPSBpbXBsLT5lbGVtZW50KCk7CisgICAgaWYgKCF3cmFwcGVyLklzRW1wdHko
KSAmJiBlbGVtZW50KQorICAgICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZSh3
cmFwcGVyLCB0b1Y4KGVsZW1lbnQpKTsKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAu
aCBiL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5oCmluZGV4IGU5MWQ4ODQ0NGNlOThlZjU3NjVh
NTY4ZDJhMmFmNDkxZmVhYjU2NjcuLjg2YTIyYjBmZGU3N2FjNjdlZDI5MzQyYWQ2YTU3NmM2OGFk
NWMwNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5oCisrKyBiL1dlYkNv
cmUvZG9tL0RPTVN0cmluZ01hcC5oCkBAIC0zMiw2ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRWxlbWVudDsKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIERPTVN0cmluZ01hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC00Nyw2ICs0OCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAwOwogCisg
ICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgRE9N
U3RyaW5nTWFwKCkKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3Ry
aW5nTWFwLmggYi9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKaW5kZXggZjgyZWFh
NTJmYjcwNjAzZWEzYTdmZWI4YmRlYzRmMTkxMTExOTM4ZC4uNjMyZTM2NTQzYTg4OWRiMDg2ODY4
OGI1ZTBjZDI5NjRjZmY2NzRlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5oCisrKyBiL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaApAQCAtNDks
NiArNDksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKwog
cHJpdmF0ZToKICAgICBEYXRhc2V0RE9NU3RyaW5nTWFwKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAg
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67631</attachid>
            <date>2010-09-14 18:45:42 -0700</date>
            <delta_ts>2010-09-17 14:15:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45426-20100914184541.patch</filename>
            <type>text/plain</type>
            <size>5537</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwMWRkNzI2Njc2MWRiMmZiMWY1MGVmNjhkMWE3MTRiNTU2Zjc1M2RhLi5lYmM5MTNl
ZDgxN2FmYTQyZmY0ZmE4MzM5NmZlYTVlMjUyZjFlNjg4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMTQgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIGZhc3Qv
ZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQyNgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEwLTA5LTE0ICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VudCBUYW11cmEuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggMGRiYTQ1M2I0OTU3YWYzZDE4N2E2MjQxNjhlMjg2NTgwMjJiMWU2Yy4uYTg3MWFmYmMz
YmM5MmQwN2FmMDdjN2MwZWUxMjliMzMyNzBkOWViYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzA1MSw5ICszMDUx
LDYgQEAgQlVHV0s0NTIwOSBXSU4gOiBpbnNwZWN0b3IvZG9tLWJyZWFrcG9pbnRzLmh0bWwgPSBQ
QVNTIFRJTUVPVVQKIC8vIFJlZ3Jlc3NlZCBpbiByNjY5MDgKIEJVR1dLNDUzMzIgTUFDIDogZmFz
dC9jYW52YXMvd2ViZ2wvZ2wtdGV4aW1hZ2UuaHRtbCA9IFRFWFQKIAotLy8gUmVncmVzc2VkIGlu
IHI2Njk1NAotQlVHV0s0NTQzMiBXSU4gTUFDIExJTlVYIDogZmFzdC9kb20vZGF0YXNldC1nYy5o
dG1sID0gVEVYVAotCiBCVUdXSzQ1NDM4IDogZWRpdGluZy9zcGVsbGluZy9zcGVsbGluZy1iYWNr
c3BhY2UtYmV0d2Vlbi1saW5lcy5odG1sID0gVEVYVAogCiAvLyBSZWdyZXNzZWQgaW4gd2Via2l0
IHI1NDk0OApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCBmNWQzZGUwMmIxODYxNjRkNzZjZDdkNGE5YmYzOGViYzk0ZmU4OTRjLi5kZTZiMjNm
NTA5ZDVmOGU3NDEzNGM1NDZjZTdjNzlmNGNmNDcxNzYwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0No
YW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA5
LTE0ICBFcmlrIEFydmlkc3NvbiAgPGFydkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0Nocm9taXVtXSBmYXN0L2RvbS9kYXRh
c2V0LWdjLmh0bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDU0MjYKKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvclY4LnBtOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHA6Cisg
ICAgICAgICogYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnRvVjgpOgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaDoKKyAg
ICAgICAgKiBkb20vRGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YXNldERPTVN0cmluZ01hcDo6ZWxlbWVudCk6CisKIDIwMTAtMDktMTQgIFBhdHJpY2sgR2Fuc3Rl
cmVyICA8cGFyb2dhQHBhcm9nYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgu
cG0gYi9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCmluZGV4IGZk
ZTY5OTVlYmFlNjljNDk3ZWJlMTI3NjIwMzgzNGU0YWUyOGQyY2EuLmY3NGYyYjFkODhmNTg5OTVj
ODcwMjg1NWFkMmQ1NmEyZjJkYjQzNWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KKysrIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQpAQCAtMjUwOCw2ICsyNTA4LDcgQEAgc3ViIEhhc0N1c3RvbVRvVjhJ
bXBsZW1lbnRhdGlvbiB7CiAgICAgIyBXZSBnZW5lcmF0ZSBhIGN1c3RvbSBjb252ZXJ0ZXIgKGJ1
dCBKU0MgZG9lc24ndCkgZm9yIHRoZSBmb2xsb3dpbmc6CiAgICAgcmV0dXJuIDEgaWYgJGludGVy
ZmFjZU5hbWUgZXEgIkNTU1N0eWxlU2hlZXQiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VO
YW1lIGVxICJDYW52YXNQaXhlbEFycmF5IjsKKyAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFt
ZSBlcSAiRE9NU3RyaW5nTWFwIjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAi
RE9NV2luZG93IjsKICAgICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiRWxlbWVudCI7
CiAgICAgcmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkhUTUxEb2N1bWVudCI7CmRpZmYg
LS1naXQgYS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAgYi9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggZTdhODE0MmE2MTUxYmE0OGExZDNmZTlk
ZGNlOWNhMjY2NGM4MTgwOC4uMjQ2NzY0MTQzYTljZWNkMjExYjQ4YmJiMzRiODExZGRhYWJmNGJm
YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCisrKyBi
L1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcApAQCAtNDQsNiArNDQsNyBAQAog
I2luY2x1ZGUgIlY4RGVkaWNhdGVkV29ya2VyQ29udGV4dC5oIgogI2luY2x1ZGUgIlY4RE9NQXBw
bGljYXRpb25DYWNoZS5oIgogI2luY2x1ZGUgIlY4RE9NTWFwLmgiCisjaW5jbHVkZSAiVjhET01T
dHJpbmdNYXAuaCIKICNpbmNsdWRlICJWOERPTVdpbmRvdy5oIgogI2luY2x1ZGUgIlY4RXZlbnRM
aXN0ZW5lckxpc3QuaCIKICNpbmNsdWRlICJWOEV2ZW50U291cmNlLmgiCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAgYi9XZWJD
b3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1c3RvbS5jcHAKaW5kZXggN2Nh
MThhYmUyYmQwYTY5NWVkYTRiMzUwNGFhNzIzNTM2MjM3MWZhYy4uMDM1NDllZjExMjBiZDE2NDlm
OTExYjRkMjQxMzgwYjRjMDA2ZWZiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwCisrKyBiL1dlYkNvcmUvYmluZGluZ3Mvdjgv
Y3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcApAQCAtMzMsNiArMzMsOCBAQAogCiAjaW5j
bHVkZSAiRE9NU3RyaW5nTWFwLmgiCiAjaW5jbHVkZSAiVjhCaW5kaW5nLmgiCisjaW5jbHVkZSAi
VjhET01XcmFwcGVyLmgiCisjaW5jbHVkZSAiVjhFbGVtZW50LmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApAQCAtOTMsNCArOTUsMTcgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4RE9NU3Ry
aW5nTWFwOjpuYW1lZFByb3BlcnR5U2V0dGVyKHY4OjpMb2NhbDx2ODo6U3RyaW5nPgogICAgIHJl
dHVybiB2YWx1ZTsKIH0KIAordjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoRE9NU3RyaW5nTWFw
KiBpbXBsKQoreworICAgIGlmICghaW1wbCkKKyAgICAgICAgcmV0dXJuIHY4OjpOdWxsKCk7Cisg
ICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gVjhET01TdHJpbmdNYXA6OndyYXAo
aW1wbCk7CisgICAgLy8gQWRkIGEgaGlkZGVuIHJlZmVyZW5jZSBmcm9tIHRoZSBlbGVtZW50IHRv
IHRoZSBET01TdHJpbmdNYXAuCisgICAgRWxlbWVudCogZWxlbWVudCA9IGltcGwtPmVsZW1lbnQo
KTsKKyAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpICYmIGVsZW1lbnQpCisgICAgICAgIFY4RE9N
V3JhcHBlcjo6c2V0SGlkZGVuUmVmZXJlbmNlKFY4RWxlbWVudDo6d3JhcChlbGVtZW50KSwgd3Jh
cHBlcik7CisgICAgcmV0dXJuIHdyYXBwZXI7Cit9CisKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFwLmggYi9XZWJDb3JlL2RvbS9E
T01TdHJpbmdNYXAuaAppbmRleCBlOTFkODg0NDRjZTk4ZWY1NzY1YTU2OGQyYTJhZjQ5MWZlYWI1
NjY3Li44NmEyMmIwZmRlNzdhYzY3ZWQyOTM0MmFkNmE1NzZjNjhhZDVjMDRlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaAorKysgYi9XZWJDb3JlL2RvbS9ET01TdHJpbmdN
YXAuaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK2NsYXNzIEVs
ZW1lbnQ7CiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBjbGFzcyBET01TdHJpbmdNYXAg
OiBwdWJsaWMgTm9uY29weWFibGUgewpAQCAtNDcsNiArNDgsOCBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVl
LCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVtKGNvbnN0
IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKIAorICAgIHZpcnR1YWwgRWxlbWVu
dCogZWxlbWVudCgpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIERPTVN0cmluZ01hcCgpCiAgICAg
ewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oIGIvV2ViQ29y
ZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCmluZGV4IGY4MmVhYTUyZmI3MDYwM2VhM2E3ZmVi
OGJkZWM0ZjE5MTExMTkzOGQuLjYzMmUzNjU0M2E4ODlkYjA4Njg2ODhiNWUwY2QyOTY0Y2ZmNjc0
ZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaAorKysgYi9X
ZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKQEAgLTQ5LDYgKzQ5LDggQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3Ry
aW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVJdGVt
KGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwogCisgICAgdmlydHVhbCBFbGVt
ZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CisKIHByaXZhdGU6CiAgICAgRGF0
YXNldERPTVN0cmluZ01hcChFbGVtZW50KiBlbGVtZW50KQogICAgICAgICA6IG1fZWxlbWVudChl
bGVtZW50KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67948</attachid>
            <date>2010-09-17 14:15:20 -0700</date>
            <delta_ts>2010-09-17 15:08:50 -0700</delta_ts>
            <desc>Now uses V8DOMWrapper::getWrapper which handles the different kind of elements we might have</desc>
            <filename>bug-45426-20100917141519.patch</filename>
            <type>text/plain</type>
            <size>5098</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2JiMTA1NGJhNTI5NjNiM2Y5MjE5NTczZWZjYTgxY2UxNjQ3M2FkLi4yMjcyNGQx
OGE5NTM5N2RkNGRkYTQ3NGE1NDg2N2U2ZmNhODBjM2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMTcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIGZhc3Qv
ZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQyNgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEwLTA5LTE3ICBKaWFuIExpICA8amlhbmxp
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggNTM1ZjY4ZDk3YzU1YWRlZWU5NDQ5N2UyNmFjODE1YzViZWQxYTA0YS4uMWY5NTk5ZDQ0
MTA5NWY4ZDRmZTM4NjYyZWIyMThlZTBjMDZjZDc3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzAyNiw5ICszMDI2
LDYgQEAgQlVHV0s0NTE5MyBMSU5VWCA6IGZhc3QvdGV4dC9kZWNvbXBvc2VkLWFmdGVyLXN0YWNr
ZWQtZGlhY3JpdGljcy5odG1sID0gVEVYVAogQlVHV0s0NTIwOSBXSU4gREVCVUcgU0xPVyA6IGlu
c3BlY3Rvci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwgPSBQQVNT
CiBCVUdXSzQ1MjA5IFdJTiBERUJVRyBTTE9XIDogaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5o
dG1sID0gUEFTUwogCi0vLyBSZWdyZXNzZWQgaW4gcjY2OTU0Ci1CVUdXSzQ1NDMyIFdJTiBNQUMg
TElOVVggOiBmYXN0L2RvbS9kYXRhc2V0LWdjLmh0bWwgPSBURVhUCi0KIEJVR1dLNDU0MzggOiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwgPSBU
RVhUCiAKIC8vIFJlZ3Jlc3NlZCBpbiB3ZWJraXQgcjU0OTQ4CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRlYzdmYTJhMDk5MWY2YmU0Y2Fk
OTk1MmE3OTM5M2I5MTRhNTcwYmQuLmFkZWFhODA0NDk1ZDU0Nzk5NTgzNjRjNTdhZWNiMTJjOTc2
YTMxYTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMTcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbQ2hyb21pdW1dIGZhc3QvZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWlsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQyNgorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvVjgpOgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaDoKKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmlu
Z01hcDo6ZWxlbWVudCk6CisKIDIwMTAtMDktMTcgIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2FzLmRl
bWFyY2hpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeC4g
QWRkIGZpbGVzIG1pc3NlZCBpbiByNjc3MDQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQppbmRleCBmZGU2OTk1ZWJhZTY5YzQ5N2ViZTEyNzYyMDM4MzRlNGFl
MjhkMmNhLi5mNzRmMmIxZDg4ZjU4OTk1Yzg3MDI4NTVhZDJkNTZhMmYyZGI0MzVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI1MDgsNiArMjUw
OCw3IEBAIHN1YiBIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRpb24gewogICAgICMgV2UgZ2VuZXJh
dGUgYSBjdXN0b20gY29udmVydGVyIChidXQgSlNDIGRvZXNuJ3QpIGZvciB0aGUgZm9sbG93aW5n
OgogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJDU1NTdHlsZVNoZWV0IjsKICAg
ICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiQ2FudmFzUGl4ZWxBcnJheSI7CisgICAg
cmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ01hcCI7CiAgICAgcmV0dXJu
IDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAgICAgcmV0dXJuIDEgaWYgJGlu
dGVyZmFjZU5hbWUgZXEgIkVsZW1lbnQiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJIVE1MRG9jdW1lbnQiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4IDdjYTE4YWJlMmJkMGE2OTVlZGE0YjM1MDRh
YTcyMzUzNjIzNzFmYWMuLmZmMjA0MGJhODExM2U2ZTZhMjY0ZWY5ZmI0YjQ2ZTI4OTBiZmY3NzUg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1
c3RvbS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ01hcC5oIgog
I2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDQgKzk0LDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4KICAgICByZXR1cm4gdmFsdWU7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERP
TVN0cmluZ01hcCogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NU3RyaW5n
TWFwOjp3cmFwKGltcGwpOworICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUg
ZWxlbWVudCB0byB0aGUgRE9NU3RyaW5nTWFwLgorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBs
LT5lbGVtZW50KCk7CisgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KQorICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlblJlZmVyZW5jZShWOERPTVdyYXBwZXI6OmdldFdy
YXBwZXIoZWxlbWVudCksIHdyYXBwZXIpOworICAgIHJldHVybiB3cmFwcGVyOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAu
aCBiL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5oCmluZGV4IGU5MWQ4ODQ0NGNlOThlZjU3NjVh
NTY4ZDJhMmFmNDkxZmVhYjU2NjcuLjg2YTIyYjBmZGU3N2FjNjdlZDI5MzQyYWQ2YTU3NmM2OGFk
NWMwNGUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RPTVN0cmluZ01hcC5oCisrKyBiL1dlYkNv
cmUvZG9tL0RPTVN0cmluZ01hcC5oCkBAIC0zMiw2ICszMiw3IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAorY2xhc3MgRWxlbWVudDsKIHR5cGVkZWYgaW50IEV4Y2VwdGlvbkNvZGU7CiAKIGNs
YXNzIERPTVN0cmluZ01hcCA6IHB1YmxpYyBOb25jb3B5YWJsZSB7CkBAIC00Nyw2ICs0OCw4IEBA
IHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0SXRlbShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IFN0cmluZyYgdmFsdWUsIEV4Y2VwdGlvbkNvZGUmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRlbGV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJikgPSAwOwogCisg
ICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgPSAwOworCiBwcm90ZWN0ZWQ6CiAgICAgRE9N
U3RyaW5nTWFwKCkKICAgICB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3Ry
aW5nTWFwLmggYi9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKaW5kZXggZjgyZWFh
NTJmYjcwNjAzZWEzYTdmZWI4YmRlYzRmMTkxMTExOTM4ZC4uNjMyZTM2NTQzYTg4OWRiMDg2ODY4
OGI1ZTBjZDI5NjRjZmY2NzRlYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5oCisrKyBiL1dlYkNvcmUvZG9tL0RhdGFzZXRET01TdHJpbmdNYXAuaApAQCAtNDks
NiArNDksOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgU3RyaW5n
JiBuYW1lLCBjb25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdmlydHVh
bCB2b2lkIGRlbGV0ZUl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7CiAK
KyAgICB2aXJ0dWFsIEVsZW1lbnQqIGVsZW1lbnQoKSB7IHJldHVybiBtX2VsZW1lbnQ7IH0KKwog
cHJpdmF0ZToKICAgICBEYXRhc2V0RE9NU3RyaW5nTWFwKEVsZW1lbnQqIGVsZW1lbnQpCiAgICAg
ICAgIDogbV9lbGVtZW50KGVsZW1lbnQpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67958</attachid>
            <date>2010-09-17 15:08:54 -0700</date>
            <delta_ts>2010-09-18 18:05:26 -0700</delta_ts>
            <desc>Changed to use setHiddenWindowReference which is more inline with what the JSC bindings do</desc>
            <filename>bug-45426-20100917150852.patch</filename>
            <type>text/plain</type>
            <size>5099</size>
            <attacher name="Erik Arvidsson">arv</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzY2JiMTA1NGJhNTI5NjNiM2Y5MjE5NTczZWZjYTgxY2UxNjQ3M2FkLi4yMjcyNGQx
OGE5NTM5N2RkNGRkYTQ3NGE1NDg2N2U2ZmNhODBjM2JiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAK
KzIwMTAtMDktMTcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNocm9taXVtLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbQ2hyb21pdW1dIGZhc3Qv
ZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQyNgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCiAyMDEwLTA5LTE3ICBKaWFuIExpICA8amlhbmxp
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEbWl0cnkgVGl0b3YuCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQK
aW5kZXggNTM1ZjY4ZDk3YzU1YWRlZWU5NDQ5N2UyNmFjODE1YzViZWQxYTA0YS4uMWY5NTk5ZDQ0
MTA5NWY4ZDRmZTM4NjYyZWIyMThlZTBjMDZjZDc3YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzAyNiw5ICszMDI2
LDYgQEAgQlVHV0s0NTE5MyBMSU5VWCA6IGZhc3QvdGV4dC9kZWNvbXBvc2VkLWFmdGVyLXN0YWNr
ZWQtZGlhY3JpdGljcy5odG1sID0gVEVYVAogQlVHV0s0NTIwOSBXSU4gREVCVUcgU0xPVyA6IGlu
c3BlY3Rvci9kZWJ1Z2dlci1hdXRvY29udGludWUtb24tc3ludGF4LWVycm9yLmh0bWwgPSBQQVNT
CiBCVUdXSzQ1MjA5IFdJTiBERUJVRyBTTE9XIDogaW5zcGVjdG9yL2RvbS1icmVha3BvaW50cy5o
dG1sID0gUEFTUwogCi0vLyBSZWdyZXNzZWQgaW4gcjY2OTU0Ci1CVUdXSzQ1NDMyIFdJTiBNQUMg
TElOVVggOiBmYXN0L2RvbS9kYXRhc2V0LWdjLmh0bWwgPSBURVhUCi0KIEJVR1dLNDU0MzggOiBl
ZGl0aW5nL3NwZWxsaW5nL3NwZWxsaW5nLWJhY2tzcGFjZS1iZXR3ZWVuLWxpbmVzLmh0bWwgPSBU
RVhUCiAKIC8vIFJlZ3Jlc3NlZCBpbiB3ZWJraXQgcjU0OTQ4CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDRlYzdmYTJhMDk5MWY2YmU0Y2Fk
OTk1MmE3OTM5M2I5MTRhNTcwYmQuLmFkZWFhODA0NDk1ZDU0Nzk5NTgzNjRjNTdhZWNiMTJjOTc2
YTMxYTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDktMTcgIEVyaWsgQXJ2aWRzc29uICA8YXJ2QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBbQ2hyb21pdW1dIGZhc3QvZG9tL2RhdGFzZXQtZ2MuaHRtbCBpcyBmYWlsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTQyNgorCisgICAg
ICAgICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG06CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnRvVjgpOgorICAgICAgICAqIGRvbS9ET01TdHJpbmdNYXAuaDoKKyAgICAgICAgKiBkb20v
RGF0YXNldERPTVN0cmluZ01hcC5oOgorICAgICAgICAoV2ViQ29yZTo6RGF0YXNldERPTVN0cmlu
Z01hcDo6ZWxlbWVudCk6CisKIDIwMTAtMDktMTcgIEx1Y2FzIERlIE1hcmNoaSAgPGx1Y2FzLmRl
bWFyY2hpQHByb2Z1c2lvbi5tb2JpPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIGJ1aWxkIGZpeC4g
QWRkIGZpbGVzIG1pc3NlZCBpbiByNjc3MDQuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3JWOC5wbQppbmRleCBmZGU2OTk1ZWJhZTY5YzQ5N2ViZTEyNzYyMDM4MzRlNGFl
MjhkMmNhLi5mNzRmMmIxZDg4ZjU4OTk1Yzg3MDI4NTVhZDJkNTZhMmYyZGI0MzVhIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtCisrKyBiL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0KQEAgLTI1MDgsNiArMjUw
OCw3IEBAIHN1YiBIYXNDdXN0b21Ub1Y4SW1wbGVtZW50YXRpb24gewogICAgICMgV2UgZ2VuZXJh
dGUgYSBjdXN0b20gY29udmVydGVyIChidXQgSlNDIGRvZXNuJ3QpIGZvciB0aGUgZm9sbG93aW5n
OgogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1lIGVxICJDU1NTdHlsZVNoZWV0IjsKICAg
ICByZXR1cm4gMSBpZiAkaW50ZXJmYWNlTmFtZSBlcSAiQ2FudmFzUGl4ZWxBcnJheSI7CisgICAg
cmV0dXJuIDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVN0cmluZ01hcCI7CiAgICAgcmV0dXJu
IDEgaWYgJGludGVyZmFjZU5hbWUgZXEgIkRPTVdpbmRvdyI7CiAgICAgcmV0dXJuIDEgaWYgJGlu
dGVyZmFjZU5hbWUgZXEgIkVsZW1lbnQiOwogICAgIHJldHVybiAxIGlmICRpbnRlcmZhY2VOYW1l
IGVxICJIVE1MRG9jdW1lbnQiOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0
b20vVjhET01TdHJpbmdNYXBDdXN0b20uY3BwIGIvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20v
VjhET01TdHJpbmdNYXBDdXN0b20uY3BwCmluZGV4IDdjYTE4YWJlMmJkMGE2OTVlZGE0YjM1MDRh
YTcyMzUzNjIzNzFmYWMuLmM4YTk3NWIwZmZhZWZmYWJlZTk4ZjdhMzIzNWE1Yzk2NzQxZmYxZjgg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4RE9NU3RyaW5nTWFwQ3Vz
dG9tLmNwcAorKysgYi9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOERPTVN0cmluZ01hcEN1
c3RvbS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRPTVN0cmluZ01hcC5oIgog
I2luY2x1ZGUgIlY4QmluZGluZy5oIgorI2luY2x1ZGUgIlY4RE9NV3JhcHBlci5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTkzLDQgKzk0LDE2IEBAIHY4OjpIYW5kbGU8djg6OlZhbHVl
PiBWOERPTVN0cmluZ01hcDo6bmFtZWRQcm9wZXJ0eVNldHRlcih2ODo6TG9jYWw8djg6OlN0cmlu
Zz4KICAgICByZXR1cm4gdmFsdWU7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiB0b1Y4KERP
TVN0cmluZ01hcCogaW1wbCkKK3sKKyAgICBpZiAoIWltcGwpCisgICAgICAgIHJldHVybiB2ODo6
TnVsbCgpOworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gd3JhcHBlciA9IFY4RE9NU3RyaW5n
TWFwOjp3cmFwKGltcGwpOworICAgIC8vIEFkZCBhIGhpZGRlbiByZWZlcmVuY2UgZnJvbSB0aGUg
ZWxlbWVudCB0byB0aGUgRE9NU3RyaW5nTWFwLgorICAgIEVsZW1lbnQqIGVsZW1lbnQgPSBpbXBs
LT5lbGVtZW50KCk7CisgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSAmJiBlbGVtZW50KQorICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldEhpZGRlbldpbmRvd1JlZmVyZW5jZShlbGVtZW50LT5kb2N1
bWVudCgpLT5mcmFtZSgpLCB3cmFwcGVyKTsKKyAgICByZXR1cm4gd3JhcHBlcjsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRE9NU3RyaW5nTWFw
LmggYi9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaAppbmRleCBlOTFkODg0NDRjZTk4ZWY1NzY1
YTU2OGQyYTJhZjQ5MWZlYWI1NjY3Li44NmEyMmIwZmRlNzdhYzY3ZWQyOTM0MmFkNmE1NzZjNjhh
ZDVjMDRlIDEwMDY0NAotLS0gYS9XZWJDb3JlL2RvbS9ET01TdHJpbmdNYXAuaAorKysgYi9XZWJD
b3JlL2RvbS9ET01TdHJpbmdNYXAuaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKK2NsYXNzIEVsZW1lbnQ7CiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCiBj
bGFzcyBET01TdHJpbmdNYXAgOiBwdWJsaWMgTm9uY29weWFibGUgewpAQCAtNDcsNiArNDgsOCBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldEl0ZW0oY29uc3QgU3RyaW5nJiBuYW1lLCBj
b25zdCBTdHJpbmcmIHZhbHVlLCBFeGNlcHRpb25Db2RlJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkZWxldGVJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpID0gMDsKIAor
ICAgIHZpcnR1YWwgRWxlbWVudCogZWxlbWVudCgpID0gMDsKKwogcHJvdGVjdGVkOgogICAgIERP
TVN0cmluZ01hcCgpCiAgICAgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0
cmluZ01hcC5oIGIvV2ViQ29yZS9kb20vRGF0YXNldERPTVN0cmluZ01hcC5oCmluZGV4IGY4MmVh
YTUyZmI3MDYwM2VhM2E3ZmViOGJkZWM0ZjE5MTExMTkzOGQuLjYzMmUzNjU0M2E4ODlkYjA4Njg2
ODhiNWUwY2QyOTY0Y2ZmNjc0ZWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvZG9tL0RhdGFzZXRET01T
dHJpbmdNYXAuaAorKysgYi9XZWJDb3JlL2RvbS9EYXRhc2V0RE9NU3RyaW5nTWFwLmgKQEAgLTQ5
LDYgKzQ5LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRJdGVtKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiB2YWx1ZSwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZpcnR1
YWwgdm9pZCBkZWxldGVJdGVtKGNvbnN0IFN0cmluZyYgbmFtZSwgRXhjZXB0aW9uQ29kZSYpOwog
CisgICAgdmlydHVhbCBFbGVtZW50KiBlbGVtZW50KCkgeyByZXR1cm4gbV9lbGVtZW50OyB9CisK
IHByaXZhdGU6CiAgICAgRGF0YXNldERPTVN0cmluZ01hcChFbGVtZW50KiBlbGVtZW50KQogICAg
ICAgICA6IG1fZWxlbWVudChlbGVtZW50KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>