<?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>96198</bug_id>
          
          <creation_ts>2012-09-09 00:23:35 -0700</creation_ts>
          <short_desc>[V8] setNamedHiddenWindowReference doesn&apos;t need to be a special case</short_desc>
          <delta_ts>2012-09-10 13:54:25 -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>New Bugs</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="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>ojan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>715432</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 00:23:35 -0700</bug_when>
    <thetext>[V8] setNamedHiddenWindowReference doesn&apos;t need to be a special case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715435</commentid>
    <comment_count>1</comment_count>
      <attachid>162982</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 00:27:24 -0700</bug_when>
    <thetext>Created attachment 162982
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715436</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 00:28:05 -0700</bug_when>
    <thetext>I haven&apos;t looked into the history here to see why this code is the way it is.  We might want to do that before landing this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715437</commentid>
    <comment_count>3</comment_count>
      <attachid>162982</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-09 00:31:45 -0700</bug_when>
    <thetext>Comment on attachment 162982
Patch

Sounds reasonable to me, but I&apos;m not 100% sure. Would you cc a guy who wrote this logic?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715440</commentid>
    <comment_count>4</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-09-09 00:32:44 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; We might want to do that before landing this patch.

Yeah, sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715445</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 00:41:41 -0700</bug_when>
    <thetext>Yes, this one is trickier than the others.  Let&apos;s research it a bit more.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715454</commentid>
    <comment_count>6</comment_count>
      <attachid>162982</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-09 01:28:26 -0700</bug_when>
    <thetext>Comment on attachment 162982
Patch

Attachment 162982 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13801329

New failing tests:
fast/dom/Window/customized-property-survives-gc.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715509</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 09:01:35 -0700</bug_when>
    <thetext>Interesting.  The generated code for window.location is different than for other properites:

static v8::Handle&lt;v8::Value&gt; cryptoAttrGetter(v8::Local&lt;v8::String&gt; name, const v8::AccessorInfo&amp; info)
{
    INC_STATS(&quot;DOM.DOMWindow.crypto._get&quot;);
    DOMWindow* imp = V8DOMWindow::toNative(info.Holder());
    RefPtr&lt;Crypto&gt; result = imp-&gt;crypto();
    v8::Handle&lt;v8::Value&gt; wrapper = result.get() ? getDOMObjectMap(info.GetIsolate()).get(result.get()) : v8Undefined();
    if (wrapper.IsEmpty()) {
        wrapper = toV8(result.get(), info.Holder(), info.GetIsolate());
        if (!wrapper.IsEmpty())
            V8DOMWrapper::setNamedHiddenReference(info.Holder(), &quot;crypto&quot;, wrapper);
    }
    return wrapper;
}

static v8::Handle&lt;v8::Value&gt; locationAttrGetter(v8::Local&lt;v8::String&gt; name, const v8::AccessorInfo&amp; info)
{
    INC_STATS(&quot;DOM.DOMWindow.location._get&quot;);
    v8::Handle&lt;v8::Object&gt; holder = info.Holder();
    DOMWindow* imp = V8DOMWindow::toNative(holder);
    return toV8(imp-&gt;location(), info.Holder(), info.GetIsolate());
}</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715516</commentid>
    <comment_count>8</comment_count>
      <attachid>162999</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 09:35:02 -0700</bug_when>
    <thetext>Created attachment 162999
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715517</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 09:36:15 -0700</bug_when>
    <thetext>I&apos;m not happy about the special case for location in CodeGeneratorV8.pm.  The issue is that window.location is neither readonly nor replaceable.  In principle, it should be readonly, except that there&apos;s a legacy setter for window.location that navigates the frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>715527</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-09 10:14:18 -0700</bug_when>
    <thetext>Looks like we originally used to do this just for DOMWindow, but Nate generalized it to work with other objects as well in &lt;https://bugs.webkit.org/show_bug.cgi?id=36777&gt;.

Nate: Is there any reason why we can&apos;t use the general-purpose logic for DOMWindow as well?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716458</commentid>
    <comment_count>11</comment_count>
      <attachid>162999</attachid>
    <who name="Nate Chapin">japhet</who>
    <bug_when>2012-09-10 13:42:35 -0700</bug_when>
    <thetext>Comment on attachment 162999
Patch

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

If there was a reason the difference between DOMWindow handling and everything else, I&apos;ve long since forgotten and haven&apos;t succeeded in deriving it again. I&apos;m guessing I cargo-culted it.

&gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:988
&gt;      # the newly created wrapper into an internal field of the holder object.
&gt; -    if (!IsNodeSubType($dataNode) &amp;&amp; $attrName ne &quot;self&quot; &amp;&amp; (IsWrapperType($returnType) &amp;&amp; ($attribute-&gt;type =~ /^readonly/ || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;})
&gt; +    if (!IsNodeSubType($dataNode) &amp;&amp; $attrName ne &quot;self&quot; &amp;&amp; (IsWrapperType($returnType) &amp;&amp; ($attribute-&gt;type =~ /^readonly/ || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;} || $attrName eq &quot;location&quot;)
&gt;          &amp;&amp; $returnType ne &quot;EventTarget&quot; &amp;&amp; $returnType ne &quot;SerializedScriptValue&quot; &amp;&amp; $returnType ne &quot;DOMWindow&quot; 

This if statement is the most embarrassing code I&apos;ve written in my career thus far. I&apos;m sad to add to it, but it&apos;s still better than the current state of the code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716459</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-09-10 13:44:09 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 162999 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=162999&amp;action=review
&gt; 
&gt; If there was a reason the difference between DOMWindow handling and everything else, I&apos;ve long since forgotten and haven&apos;t succeeded in deriving it again. I&apos;m guessing I cargo-culted it.
&gt; 
&gt; &gt; Source/WebCore/bindings/scripts/CodeGeneratorV8.pm:988
&gt; &gt;      # the newly created wrapper into an internal field of the holder object.
&gt; &gt; -    if (!IsNodeSubType($dataNode) &amp;&amp; $attrName ne &quot;self&quot; &amp;&amp; (IsWrapperType($returnType) &amp;&amp; ($attribute-&gt;type =~ /^readonly/ || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;})
&gt; &gt; +    if (!IsNodeSubType($dataNode) &amp;&amp; $attrName ne &quot;self&quot; &amp;&amp; (IsWrapperType($returnType) &amp;&amp; ($attribute-&gt;type =~ /^readonly/ || $attribute-&gt;signature-&gt;extendedAttributes-&gt;{&quot;Replaceable&quot;} || $attrName eq &quot;location&quot;)
&gt; &gt;          &amp;&amp; $returnType ne &quot;EventTarget&quot; &amp;&amp; $returnType ne &quot;SerializedScriptValue&quot; &amp;&amp; $returnType ne &quot;DOMWindow&quot; 
&gt; 
&gt; This if statement is the most embarrassing code I&apos;ve written in my career thus far. I&apos;m sad to add to it, but it&apos;s still better than the current state of the code.

I&apos;ll take a look to see if there&apos;s some way of making it better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716479</commentid>
    <comment_count>13</comment_count>
      <attachid>162999</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 13:54:21 -0700</bug_when>
    <thetext>Comment on attachment 162999
Patch

Clearing flags on attachment: 162999

Committed r128102: &lt;http://trac.webkit.org/changeset/128102&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716480</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 13:54:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162982</attachid>
            <date>2012-09-09 00:27:24 -0700</date>
            <delta_ts>2012-09-09 09:34:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96198-20120909002702.patch</filename>
            <type>text/plain</type>
            <size>7116</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3OTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJiOTg2ZGIzNzY5ZGM3
YjJlYTdkZTg4MTk5ZGM5OTdhZmQyYjEzYi4uOWNlZjNhMWE1MGVhNWVlYzMxMjQ2ZGZlNDI5NjBi
MzVhMTRmMDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTA5LTA5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBzZXROYW1lZEhpZGRl
bldpbmRvd1JlZmVyZW5jZSBkb2Vzbid0IG5lZWQgdG8gYmUgYSBzcGVjaWFsIGNhc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJpb3IgdG8gdGhpcyBw
YXRjaCwgdGhlIERPTVdpbmRvdyBjYWNoZWQgaXRzIHByb3BlcnRpZXMgb24gdGhlIG91dHRlcgor
ICAgICAgICBnbG9iYWwgb2JqZWN0IHJhdGhlciB0aGFuIG9uIHRoZSBIb2xkZXIgb2YgdGhlIHBy
b3BlcnRpZXMuIChXZSBjYWNoZQorICAgICAgICBwcm9wZXJ0aWVzIHRvIHByZXZlbnQgdGhlaXIg
RE9NIHdyYXBwZXJzIGZyb20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgdG9vIGVh
cmx5LikgVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFueSByZWFzb24gd2h5IERPTVdpbmRvdyBu
ZWVkIHRvCisgICAgICAgIGJlIHNwZWNpYWwtY2FzZWQgaW4gdGhpcyByZWdhcmQuIFdlIGNhbiBq
dXN0IGNhY2hlIHRoZSBwcm9wZXJpdGllcyBvbgorICAgICAgICB0aGVpciBIb2xkZXJzLCBhcyB1
c3VhbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgor
ICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5o
OgorICAgICAgICAoVjhET01XcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5pZGw6CisgICAg
ICAgICAgICAtIFByZXZpb3VzbHksIExvY2F0aW9uIGhhZCBhIGN1c3RvbSB0b1Y4IGZ1bmN0aW9u
IHNvIHRoYXQKKyAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24gd291bGQgY2FjaGUgaXRz
IHdyYXBwZXIgaW4gdGhlIHNhbWUgcGxhY2UgYXMKKyAgICAgICAgICAgICAgd2luZG93LmxvY2F0
aW9uLiBIb3dldmVyLCB0aGF0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBhcyB0aGUKKyAgICAgICAg
ICAgICAgRE9NV2luZG93IG5vdyBob2xkcyBpdHMgRG9jdW1lbnQgaW4gYSBoaWRkZW4gcHJvcGVy
dHksIHdoaWNoCisgICAgICAgICAgICAgIG1lYW5zIHRoZSBET01XaW5kb3cga2VlcHMgdGhlIGNh
Y2hlZCBsb2NhdGlvbiBwcm9wZXJ0eSBvbgorICAgICAgICAgICAgICBEb2N1bWVudCBhbGl2ZSBh
bnl3YXkuCisKKzIwMTItMDktMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBbVjhdIGNvbnZlcnRFdmVudFRhcmdldFRvVjhPYmplY3QgZG9lc24ndCBuZWVkIHRv
IGJlIG92ZXJsb2FkZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MTk1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMjQwZWZhZDUyMjE4NzkzOWFlNzRiNjAxNDczN2UxZGI1
YjAzYmRhOS4uZWYxZjUwZjYxMWQ4N2Y2OGM3YjM0NWFmZDMzZDUwNTYzNmE2NmI3ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
QEAgLTEwMDksMTIgKzEwMDksNyBAQCBFTkQKICAgICAgICAgcHVzaChAaW1wbENvbnRlbnREZWNs
cywgIiAgICBpZiAod3JhcHBlci5Jc0VtcHR5KCkpIHtcbiIpOwogICAgICAgICBwdXNoKEBpbXBs
Q29udGVudERlY2xzLCAiICAgICAgICB3cmFwcGVyID0gdG9WOChyZXN1bHQuZ2V0KCksIGluZm8u
SG9sZGVyKCksIGluZm8uR2V0SXNvbGF0ZSgpKTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudERlY2xzLCAiICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKVxuIik7Ci0gICAgICAg
IGlmICgkZGF0YU5vZGUtPm5hbWUgZXEgIkRPTVdpbmRvdyIpIHsKLSAgICAgICAgICAgIEFkZFRv
SW1wbEluY2x1ZGVzKCJGcmFtZS5oIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERl
Y2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVy
ZW5jZShpbXAtPmZyYW1lKCksIFwiJHthdHRyTmFtZX1cIiwgd3JhcHBlcik7XG4iKTsKLSAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgICAg
ICAgICBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKGluZm8uSG9sZGVyKCks
IFwiJHthdHRyTmFtZX1cIiwgd3JhcHBlcik7XG4iKTsKLSAgICAgICAgfQorICAgICAgICBwdXNo
KEBpbXBsQ29udGVudERlY2xzLCAiICAgICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhp
ZGRlblJlZmVyZW5jZShpbmZvLkhvbGRlcigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xu
Iik7CiAgICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgfVxuIik7CiAgICAgICAg
IHB1c2goQGltcGxDb250ZW50RGVjbHMsICIgICAgcmV0dXJuIHdyYXBwZXI7XG4iKTsKICAgICAg
ICAgcHVzaChAaW1wbENvbnRlbnREZWNscywgIn1cblxuIik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcAppbmRleCBjOTRjNTc5YWVlMTE3YmRmM2NlMGE1ZTJi
NDhhOGMxOTNhZjMxMWJlLi5mYzNhYjc3YThjODFjYTdlZTljMjZkYzJkYjVlMDY4ZGY2MjA1ZWRm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKQEAgLTEy
MSwyMyArMTIxLDYgQEAgdm9pZCBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuUmVmZXJlbmNl
KHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gcGFyZW50LCBjb25zdAogICAgIHBhcmVudC0+U2V0SGlk
ZGVuVmFsdWUoVjhIaWRkZW5Qcm9wZXJ0eU5hbWU6OmhpZGRlblJlZmVyZW5jZU5hbWUobmFtZSks
IGNoaWxkKTsKIH0KIAotdm9pZCBWOERPTVdyYXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVm
ZXJlbmNlKEZyYW1lKiBmcmFtZSwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFs
dWU+IGpzT2JqZWN0KQotewotICAgIC8vIEdldCBET01XaW5kb3cKLSAgICBpZiAoIWZyYW1lKQot
ICAgICAgICByZXR1cm47IC8vIE9iamVjdCBtaWdodCBiZSBkZXRhY2hlZCBmcm9tIHdpbmRvdwot
ICAgIHY4OjpIYW5kbGU8djg6OkNvbnRleHQ+IGNvbnRleHQgPSBmcmFtZS0+c2NyaXB0KCktPmN1
cnJlbnRXb3JsZENvbnRleHQoKTsKLSAgICBpZiAoY29udGV4dC5Jc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybjsKLQotICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gZ2xvYmFsID0gY29udGV4dC0+
R2xvYmFsKCk7Ci0gICAgLy8gTG9vayBmb3IgcmVhbCBET00gd3JhcHBlci4KLSAgICBnbG9iYWwg
PSBWOERPTVdyYXBwZXI6Omxvb2t1cERPTVdyYXBwZXIoVjhET01XaW5kb3c6OkdldFRlbXBsYXRl
KCksIGdsb2JhbCk7Ci0gICAgQVNTRVJUKCFnbG9iYWwuSXNFbXB0eSgpKTsKLQotICAgIHNldE5h
bWVkSGlkZGVuUmVmZXJlbmNlKGdsb2JhbCwgbmFtZSwganNPYmplY3QpOwotfQotCiBXcmFwcGVy
VHlwZUluZm8qIFY4RE9NV3JhcHBlcjo6ZG9tV3JhcHBlclR5cGUodjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0PiBvYmplY3QpCiB7CiAgICAgQVNTRVJUKFY4RE9NV3JhcHBlcjo6bWF5YmVET01XcmFwcGVy
KG9iamVjdCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01X
cmFwcGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAppbmRl
eCA2MGVjZmM2ZGVlYTdiZDU2MTliNzllMWVmZTQ3NDFlYTVlNjUxNGJmLi42MjFiNjFkZmMzNTgx
NzFiM2QyNTQxMmI0NTExZWMyYzcwNThhZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9WOERPTVdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuaApAQCAtMTA1LDE0ICsxMDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIC8vIENoZWNrIHdoZXRoZXIgYSBWOCB2YWx1ZSBpcyBhIHdyYXBwZXIgb2YgdHlw
ZSB8Y2xhc3NUeXBlfC4KICAgICAgICAgc3RhdGljIGJvb2wgaXNXcmFwcGVyT2ZUeXBlKHY4OjpI
YW5kbGU8djg6OlZhbHVlPiwgV3JhcHBlclR5cGVJbmZvKik7CiAKLSAgICAgICAgLy8gUHJvcGVy
IG9iamVjdCBsaWZldGltZSBzdXBwb3J0LgotICAgICAgICAvLwotICAgICAgICAvLyBIZWxwZXIg
ZnVuY3Rpb25zIHRvIG1ha2Ugc3VyZSB0aGUgY2hpbGQgb2JqZWN0IHN0YXlzIGFsaXZlCi0gICAg
ICAgIC8vIHdoaWxlIHRoZSBwYXJlbnQgaXMgYWxpdmUuIFVzaW5nIHRoZSBuYW1lIG1vcmUgdGhh
biBvbmNlCi0gICAgICAgIC8vIG92ZXJ3cml0ZXMgcHJldmlvdXMgcmVmZXJlbmNlcyBtYWtpbmcg
aXQgcG9zc2libGUgdG8gZnJlZQotICAgICAgICAvLyBvbGQgY2hpbGRyZW4uCiAgICAgICAgIHN0
YXRpYyB2b2lkIHNldE5hbWVkSGlkZGVuUmVmZXJlbmNlKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4g
cGFyZW50LCBjb25zdCBjaGFyKiBuYW1lLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gY2hpbGQpOwot
ICAgICAgICBzdGF0aWMgdm9pZCBzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5jZShGcmFtZSos
IGNvbnN0IGNoYXIqLCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4pOwogCiAgICAgICAgIHN0YXRpYyB2
ODo6TG9jYWw8djg6Ok9iamVjdD4gaW5zdGFudGlhdGVWOE9iamVjdChXcmFwcGVyVHlwZUluZm8q
LCB2b2lkKik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOExvY2F0aW9uQ3VzdG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3Rv
bS9WOExvY2F0aW9uQ3VzdG9tLmNwcAppbmRleCA0NWZkY2U3OWIyNGNkYzBlZjdjMjZkYjgyOWE2
YTYwYTA1ZmE2ODQ1Li43ODMzZWE0YmM3YjIwYWQzZGE0NTVjY2MzYzkwZjlhMjdmOWY2ZjE2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhMb2NhdGlvbkN1
c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRp
b25DdXN0b20uY3BwCkBAIC0yNzAsMTcgKzI3MCw0IEBAIGJvb2wgVjhMb2NhdGlvbjo6bmFtZWRT
ZWN1cml0eUNoZWNrKHY4OjpMb2NhbDx2ODo6T2JqZWN0PiBob3N0LCB2ODo6TG9jYWw8djg6OlZh
CiAgICAgcmV0dXJuIEJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0ZyYW1lKEJp
bmRpbmdTdGF0ZTo6aW5zdGFuY2UoKSwgaW1wLT5mcmFtZSgpLCBEb05vdFJlcG9ydFNlY3VyaXR5
RXJyb3IpOwogfQogCi12ODo6SGFuZGxlPHY4OjpWYWx1ZT4gdG9WOChMb2NhdGlvbiogaW1wbCwg
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiBjcmVhdGlvbkNvbnRleHQsIHY4OjpJc29sYXRlKiBpc29s
YXRlKQotewotICAgIGlmICghaW1wbCkKLSAgICAgICAgcmV0dXJuIHY4TnVsbFdpdGhDaGVjayhp
c29sYXRlKTsKLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHdyYXBwZXIgPSBnZXRET01PYmpl
Y3RNYXAoKS5nZXQoaW1wbCk7Ci0gICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7Ci0gICAgICAg
IHdyYXBwZXIgPSBWOExvY2F0aW9uOjp3cmFwKGltcGwsIGNyZWF0aW9uQ29udGV4dCwgaXNvbGF0
ZSk7Ci0gICAgICAgIGlmICghd3JhcHBlci5Jc0VtcHR5KCkpCi0gICAgICAgICAgICBWOERPTVdy
YXBwZXI6OnNldE5hbWVkSGlkZGVuV2luZG93UmVmZXJlbmNlKGltcGwtPmZyYW1lKCksICJsb2Nh
dGlvbiIsIHdyYXBwZXIpOwotICAgIH0KLSAgICByZXR1cm4gd3JhcHBlcjsKLX0KLQogfSAgLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRp
b24uaWRsIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKaW5kZXggMWYxNzAzYWY2
YTU2YjcwOWY2NWVkMGQ5ZThmZGFiYWM2MGJlNWE3Mi4uMWJjMzJhMDM4OTQ3NDVlYzIyNWFiMWVk
NjExOGRjYTg4YWY3NTQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlv
bi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Mb2NhdGlvbi5pZGwKQEAgLTQwLDggKzQw
LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIEpTQ3VzdG9tRGVmaW5lT3duUHJvcGVydHks
CiAgICAgICAgIEpTQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSwKICAgICAgICAgSlNDdXN0
b21EZWZpbmVPd25Qcm9wZXJ0eU9uUHJvdG90eXBlLAotICAgICAgICBPbWl0Q29uc3RydWN0b3Is
Ci0gICAgICAgIFY4Q3VzdG9tVG9KU09iamVjdAorICAgICAgICBPbWl0Q29uc3RydWN0b3IKICAg
ICBdIExvY2F0aW9uIHsKICNpZiAhZGVmaW5lZChMQU5HVUFHRV9DUFApIHx8ICFMQU5HVUFHRV9D
UFAKICAgICAgICAgICAgICAgICAgYXR0cmlidXRlIFtEb05vdENoZWNrU2VjdXJpdHlPblNldHRl
ciwgQ3VzdG9tU2V0dGVyLCBWOFVuZm9yZ2VhYmxlXSBET01TdHJpbmcgaHJlZjsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>162999</attachid>
            <date>2012-09-09 09:35:02 -0700</date>
            <delta_ts>2012-09-10 13:54:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96198-20120909093439.patch</filename>
            <type>text/plain</type>
            <size>8146</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI3OTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJiOTg2ZGIzNzY5ZGM3
YjJlYTdkZTg4MTk5ZGM5OTdhZmQyYjEzYi4uOWNlZjNhMWE1MGVhNWVlYzMxMjQ2ZGZlNDI5NjBi
MzVhMTRmMDU4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDEyLTA5LTA5ICBBZGFt
IEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAgICAgW1Y4XSBzZXROYW1lZEhpZGRl
bldpbmRvd1JlZmVyZW5jZSBkb2Vzbid0IG5lZWQgdG8gYmUgYSBzcGVjaWFsIGNhc2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MTk4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJpb3IgdG8gdGhpcyBw
YXRjaCwgdGhlIERPTVdpbmRvdyBjYWNoZWQgaXRzIHByb3BlcnRpZXMgb24gdGhlIG91dHRlcgor
ICAgICAgICBnbG9iYWwgb2JqZWN0IHJhdGhlciB0aGFuIG9uIHRoZSBIb2xkZXIgb2YgdGhlIHBy
b3BlcnRpZXMuIChXZSBjYWNoZQorICAgICAgICBwcm9wZXJ0aWVzIHRvIHByZXZlbnQgdGhlaXIg
RE9NIHdyYXBwZXJzIGZyb20gYmVpbmcgZ2FyYmFnZSBjb2xsZWN0ZWQKKyAgICAgICAgdG9vIGVh
cmx5LikgVGhlcmUgZG9lc24ndCBzZWVtIHRvIGJlIGFueSByZWFzb24gd2h5IERPTVdpbmRvdyBu
ZWVkIHRvCisgICAgICAgIGJlIHNwZWNpYWwtY2FzZWQgaW4gdGhpcyByZWdhcmQuIFdlIGNhbiBq
dXN0IGNhY2hlIHRoZSBwcm9wZXJpdGllcyBvbgorICAgICAgICB0aGVpciBIb2xkZXJzLCBhcyB1
c3VhbC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvclY4LnBtOgor
ICAgICAgICAoR2VuZXJhdGVOb3JtYWxBdHRyR2V0dGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92
OC9WOERPTVdyYXBwZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5o
OgorICAgICAgICAoVjhET01XcmFwcGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy92OC9jdXN0b20v
VjhMb2NhdGlvbkN1c3RvbS5jcHA6CisgICAgICAgICogcGFnZS9Mb2NhdGlvbi5pZGw6CisgICAg
ICAgICAgICAtIFByZXZpb3VzbHksIExvY2F0aW9uIGhhZCBhIGN1c3RvbSB0b1Y4IGZ1bmN0aW9u
IHNvIHRoYXQKKyAgICAgICAgICAgICAgZG9jdW1lbnQubG9jYXRpb24gd291bGQgY2FjaGUgaXRz
IHdyYXBwZXIgaW4gdGhlIHNhbWUgcGxhY2UgYXMKKyAgICAgICAgICAgICAgd2luZG93LmxvY2F0
aW9uLiBIb3dldmVyLCB0aGF0J3Mgbm8gbG9uZ2VyIG5lY2Vzc2FyeSBhcyB0aGUKKyAgICAgICAg
ICAgICAgRE9NV2luZG93IG5vdyBob2xkcyBpdHMgRG9jdW1lbnQgaW4gYSBoaWRkZW4gcHJvcGVy
dHksIHdoaWNoCisgICAgICAgICAgICAgIG1lYW5zIHRoZSBET01XaW5kb3cga2VlcHMgdGhlIGNh
Y2hlZCBsb2NhdGlvbiBwcm9wZXJ0eSBvbgorICAgICAgICAgICAgICBEb2N1bWVudCBhbGl2ZSBh
bnl3YXkuCisKKzIwMTItMDktMDkgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKwog
ICAgICAgICBbVjhdIGNvbnZlcnRFdmVudFRhcmdldFRvVjhPYmplY3QgZG9lc24ndCBuZWVkIHRv
IGJlIG92ZXJsb2FkZWQKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk2MTk1CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvQ29kZUdlbmVyYXRvclY4LnBtIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yVjgucG0KaW5kZXggMjQwZWZhZDUyMjE4NzkzOWFlNzRiNjAxNDczN2UxZGI1
YjAzYmRhOS4uZmMwNzFhNTdiNDJkY2E3OTAyOGFkNGZhMWJlOGZhYTRkMDJlNGJkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yVjgucG0K
QEAgLTk4NCw3ICs5ODQsNyBAQCBFTkQKICAgICAjIFNwZWNpYWwgY2FzZSBmb3IgcmVhZG9ubHkg
b3IgUmVwbGFjZWFibGUgYXR0cmlidXRlcyAod2l0aCBhIGZldyBleGNlcHRpb25zKS4gVGhpcyBh
dHRlbXB0cyB0byBlbnN1cmUgdGhhdCBKUyB3cmFwcGVycyBkb24ndCBnZXQKICAgICAjIGdhcmJh
Z2UtY29sbGVjdGVkIHByZW1hdHVyZWx5IHdoZW4gdGhlaXIgbGlmZXRpbWUgaXMgc3Ryb25nbHkg
dGllZCB0byB0aGVpciBvd25lci4gV2UgYWNjb21wbGlzaCB0aGlzIGJ5IGluc2VydGluZyBhIHJl
ZmVyZW5jZSB0bwogICAgICMgdGhlIG5ld2x5IGNyZWF0ZWQgd3JhcHBlciBpbnRvIGFuIGludGVy
bmFsIGZpZWxkIG9mIHRoZSBob2xkZXIgb2JqZWN0LgotICAgIGlmICghSXNOb2RlU3ViVHlwZSgk
ZGF0YU5vZGUpICYmICRhdHRyTmFtZSBuZSAic2VsZiIgJiYgKElzV3JhcHBlclR5cGUoJHJldHVy
blR5cGUpICYmICgkYXR0cmlidXRlLT50eXBlID1+IC9ecmVhZG9ubHkvIHx8ICRhdHRyaWJ1dGUt
PnNpZ25hdHVyZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57IlJlcGxhY2VhYmxlIn0pCisgICAgaWYg
KCFJc05vZGVTdWJUeXBlKCRkYXRhTm9kZSkgJiYgJGF0dHJOYW1lIG5lICJzZWxmIiAmJiAoSXNX
cmFwcGVyVHlwZSgkcmV0dXJuVHlwZSkgJiYgKCRhdHRyaWJ1dGUtPnR5cGUgPX4gL15yZWFkb25s
eS8gfHwgJGF0dHJpYnV0ZS0+c2lnbmF0dXJlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPnsiUmVwbGFj
ZWFibGUifSB8fCAkYXR0ck5hbWUgZXEgImxvY2F0aW9uIikKICAgICAgICAgJiYgJHJldHVyblR5
cGUgbmUgIkV2ZW50VGFyZ2V0IiAmJiAkcmV0dXJuVHlwZSBuZSAiU2VyaWFsaXplZFNjcmlwdFZh
bHVlIiAmJiAkcmV0dXJuVHlwZSBuZSAiRE9NV2luZG93IiAKICAgICAgICAgJiYgJHJldHVyblR5
cGUgbmUgIk1lc3NhZ2VQb3J0QXJyYXkiCiAgICAgICAgICYmICRyZXR1cm5UeXBlICF+IC9TVkcv
ICYmICRyZXR1cm5UeXBlICF+IC9IVE1MLyAmJiAhSXNET01Ob2RlVHlwZSgkcmV0dXJuVHlwZSkp
KSB7CkBAIC0xMDA5LDEyICsxMDA5LDcgQEAgRU5ECiAgICAgICAgIHB1c2goQGltcGxDb250ZW50
RGVjbHMsICIgICAgaWYgKHdyYXBwZXIuSXNFbXB0eSgpKSB7XG4iKTsKICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnREZWNscywgIiAgICAgICAgd3JhcHBlciA9IHRvVjgocmVzdWx0LmdldCgpLCBp
bmZvLkhvbGRlcigpLCBpbmZvLkdldElzb2xhdGUoKSk7XG4iKTsKICAgICAgICAgcHVzaChAaW1w
bENvbnRlbnREZWNscywgIiAgICAgICAgaWYgKCF3cmFwcGVyLklzRW1wdHkoKSlcbiIpOwotICAg
ICAgICBpZiAoJGRhdGFOb2RlLT5uYW1lIGVxICJET01XaW5kb3ciKSB7Ci0gICAgICAgICAgICBB
ZGRUb0ltcGxJbmNsdWRlcygiRnJhbWUuaCIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFtZWRIaWRkZW5XaW5kb3dS
ZWZlcmVuY2UoaW1wLT5mcmFtZSgpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAg
ICAgICAgICAgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVyZW5jZShpbmZvLkhvbGRl
cigpLCBcIiR7YXR0ck5hbWV9XCIsIHdyYXBwZXIpO1xuIik7Ci0gICAgICAgIH0KKyAgICAgICAg
cHVzaChAaW1wbENvbnRlbnREZWNscywgIiAgICAgICAgICAgIFY4RE9NV3JhcHBlcjo6c2V0TmFt
ZWRIaWRkZW5SZWZlcmVuY2UoaW5mby5Ib2xkZXIoKSwgXCIke2F0dHJOYW1lfVwiLCB3cmFwcGVy
KTtcbiIpOwogICAgICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIH1cbiIpOwogICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudERlY2xzLCAiICAgIHJldHVybiB3cmFwcGVyO1xuIik7CiAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50RGVjbHMsICJ9XG5cbiIpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L1Y4RE9NV3JhcHBlci5jcHAKaW5kZXggYzk0YzU3OWFlZTExN2JkZjNjZTBh
NWUyYjQ4YThjMTkzYWYzMTFiZS4uZmMzYWI3N2E4YzgxY2E3ZWU5YzI2ZGMyZGI1ZTA2OGRmNjIw
NWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9WOERPTVdyYXBwZXIuY3BwCkBA
IC0xMjEsMjMgKzEyMSw2IEBAIHZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlblJlZmVy
ZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IHBhcmVudCwgY29uc3QKICAgICBwYXJlbnQtPlNl
dEhpZGRlblZhbHVlKFY4SGlkZGVuUHJvcGVydHlOYW1lOjpoaWRkZW5SZWZlcmVuY2VOYW1lKG5h
bWUpLCBjaGlsZCk7CiB9CiAKLXZvaWQgVjhET01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRv
d1JlZmVyZW5jZShGcmFtZSogZnJhbWUsIGNvbnN0IGNoYXIqIG5hbWUsIHY4OjpIYW5kbGU8djg6
OlZhbHVlPiBqc09iamVjdCkKLXsKLSAgICAvLyBHZXQgRE9NV2luZG93Ci0gICAgaWYgKCFmcmFt
ZSkKLSAgICAgICAgcmV0dXJuOyAvLyBPYmplY3QgbWlnaHQgYmUgZGV0YWNoZWQgZnJvbSB3aW5k
b3cKLSAgICB2ODo6SGFuZGxlPHY4OjpDb250ZXh0PiBjb250ZXh0ID0gZnJhbWUtPnNjcmlwdCgp
LT5jdXJyZW50V29ybGRDb250ZXh0KCk7Ci0gICAgaWYgKGNvbnRleHQuSXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IGdsb2JhbCA9IGNvbnRl
eHQtPkdsb2JhbCgpOwotICAgIC8vIExvb2sgZm9yIHJlYWwgRE9NIHdyYXBwZXIuCi0gICAgZ2xv
YmFsID0gVjhET01XcmFwcGVyOjpsb29rdXBET01XcmFwcGVyKFY4RE9NV2luZG93OjpHZXRUZW1w
bGF0ZSgpLCBnbG9iYWwpOwotICAgIEFTU0VSVCghZ2xvYmFsLklzRW1wdHkoKSk7Ci0KLSAgICBz
ZXROYW1lZEhpZGRlblJlZmVyZW5jZShnbG9iYWwsIG5hbWUsIGpzT2JqZWN0KTsKLX0KLQogV3Jh
cHBlclR5cGVJbmZvKiBWOERPTVdyYXBwZXI6OmRvbVdyYXBwZXJUeXBlKHY4OjpIYW5kbGU8djg6
Ok9iamVjdD4gb2JqZWN0KQogewogICAgIEFTU0VSVChWOERPTVdyYXBwZXI6Om1heWJlRE9NV3Jh
cHBlcihvYmplY3QpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Y4
RE9NV3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgK
aW5kZXggNjBlY2ZjNmRlZWE3YmQ1NjE5Yjc5ZTFlZmU0NzQxZWE1ZTY1MTRiZi4uNjIxYjYxZGZj
MzU4MTcxYjNkMjU0MTJiNDUxMWVjMmM3MDU4YWRjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvVjhET01XcmFwcGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvVjhET01XcmFwcGVyLmgKQEAgLTEwNSwxNCArMTA1LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICAvLyBDaGVjayB3aGV0aGVyIGEgVjggdmFsdWUgaXMgYSB3cmFwcGVyIG9m
IHR5cGUgfGNsYXNzVHlwZXwuCiAgICAgICAgIHN0YXRpYyBib29sIGlzV3JhcHBlck9mVHlwZSh2
ODo6SGFuZGxlPHY4OjpWYWx1ZT4sIFdyYXBwZXJUeXBlSW5mbyopOwogCi0gICAgICAgIC8vIFBy
b3BlciBvYmplY3QgbGlmZXRpbWUgc3VwcG9ydC4KLSAgICAgICAgLy8KLSAgICAgICAgLy8gSGVs
cGVyIGZ1bmN0aW9ucyB0byBtYWtlIHN1cmUgdGhlIGNoaWxkIG9iamVjdCBzdGF5cyBhbGl2ZQot
ICAgICAgICAvLyB3aGlsZSB0aGUgcGFyZW50IGlzIGFsaXZlLiBVc2luZyB0aGUgbmFtZSBtb3Jl
IHRoYW4gb25jZQotICAgICAgICAvLyBvdmVyd3JpdGVzIHByZXZpb3VzIHJlZmVyZW5jZXMgbWFr
aW5nIGl0IHBvc3NpYmxlIHRvIGZyZWUKLSAgICAgICAgLy8gb2xkIGNoaWxkcmVuLgogICAgICAg
ICBzdGF0aWMgdm9pZCBzZXROYW1lZEhpZGRlblJlZmVyZW5jZSh2ODo6SGFuZGxlPHY4OjpPYmpl
Y3Q+IHBhcmVudCwgY29uc3QgY2hhciogbmFtZSwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGNoaWxk
KTsKLSAgICAgICAgc3RhdGljIHZvaWQgc2V0TmFtZWRIaWRkZW5XaW5kb3dSZWZlcmVuY2UoRnJh
bWUqLCBjb25zdCBjaGFyKiwgdjg6OkhhbmRsZTx2ODo6VmFsdWU+KTsKIAogICAgICAgICBzdGF0
aWMgdjg6OkxvY2FsPHY4OjpPYmplY3Q+IGluc3RhbnRpYXRlVjhPYmplY3QoV3JhcHBlclR5cGVJ
bmZvKiwgdm9pZCopOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9j
dXN0b20vVjhMb2NhdGlvbkN1c3RvbS5jcHAKaW5kZXggNDVmZGNlNzliMjRjZGMwZWY3YzI2ZGI4
MjlhNmE2MGEwNWZhNjg0NS4uNzgzM2VhNGJjN2IyMGFkM2RhNDU1Y2NjM2M5MGY5YTI3ZjlmNmYx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4TG9jYXRp
b25DdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOExv
Y2F0aW9uQ3VzdG9tLmNwcApAQCAtMjcwLDE3ICsyNzAsNCBAQCBib29sIFY4TG9jYXRpb246Om5h
bWVkU2VjdXJpdHlDaGVjayh2ODo6TG9jYWw8djg6Ok9iamVjdD4gaG9zdCwgdjg6OkxvY2FsPHY4
OjpWYQogICAgIHJldHVybiBCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9GcmFt
ZShCaW5kaW5nU3RhdGU6Omluc3RhbmNlKCksIGltcC0+ZnJhbWUoKSwgRG9Ob3RSZXBvcnRTZWN1
cml0eUVycm9yKTsKIH0KIAotdjg6OkhhbmRsZTx2ODo6VmFsdWU+IHRvVjgoTG9jYXRpb24qIGlt
cGwsIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gY3JlYXRpb25Db250ZXh0LCB2ODo6SXNvbGF0ZSog
aXNvbGF0ZSkKLXsKLSAgICBpZiAoIWltcGwpCi0gICAgICAgIHJldHVybiB2OE51bGxXaXRoQ2hl
Y2soaXNvbGF0ZSk7Ci0gICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiB3cmFwcGVyID0gZ2V0RE9N
T2JqZWN0TWFwKCkuZ2V0KGltcGwpOwotICAgIGlmICh3cmFwcGVyLklzRW1wdHkoKSkgewotICAg
ICAgICB3cmFwcGVyID0gVjhMb2NhdGlvbjo6d3JhcChpbXBsLCBjcmVhdGlvbkNvbnRleHQsIGlz
b2xhdGUpOwotICAgICAgICBpZiAoIXdyYXBwZXIuSXNFbXB0eSgpKQotICAgICAgICAgICAgVjhE
T01XcmFwcGVyOjpzZXROYW1lZEhpZGRlbldpbmRvd1JlZmVyZW5jZShpbXBsLT5mcmFtZSgpLCAi
bG9jYXRpb24iLCB3cmFwcGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHdyYXBwZXI7Ci19Ci0KIH0g
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0xv
Y2F0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCmluZGV4IDFmMTcw
M2FmNmE1NmI3MDlmNjVlZDBkOWU4ZmRhYmFjNjBiZTVhNzIuLjFiYzMyYTAzODk0NzQ1ZWMyMjVh
YjFlZDYxMThkY2E4OGFmNzU0MWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9j
YXRpb24uaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvTG9jYXRpb24uaWRsCkBAIC00MCw4
ICs0MCw3IEBAIG1vZHVsZSB3aW5kb3cgewogICAgICAgICBKU0N1c3RvbURlZmluZU93blByb3Bl
cnR5LAogICAgICAgICBKU0N1c3RvbU5hbWVkR2V0dGVyT25Qcm90b3R5cGUsCiAgICAgICAgIEpT
Q3VzdG9tRGVmaW5lT3duUHJvcGVydHlPblByb3RvdHlwZSwKLSAgICAgICAgT21pdENvbnN0cnVj
dG9yLAotICAgICAgICBWOEN1c3RvbVRvSlNPYmplY3QKKyAgICAgICAgT21pdENvbnN0cnVjdG9y
CiAgICAgXSBMb2NhdGlvbiB7CiAjaWYgIWRlZmluZWQoTEFOR1VBR0VfQ1BQKSB8fCAhTEFOR1VB
R0VfQ1BQCiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZSBbRG9Ob3RDaGVja1NlY3VyaXR5T25T
ZXR0ZXIsIEN1c3RvbVNldHRlciwgVjhVbmZvcmdlYWJsZV0gRE9NU3RyaW5nIGhyZWY7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>