<?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>66505</bug_id>
          
          <creation_ts>2011-08-18 15:47:12 -0700</creation_ts>
          <short_desc>Implement allow-popups for iframe@sandbox</short_desc>
          <delta_ts>2011-11-04 11:15:20 -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 Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>71455</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>abarth</cc>
    
    <cc>ian</cc>
    
    <cc>japhet</cc>
    
    <cc>jasonthenderson</cc>
    
    <cc>ossy</cc>
    
    <cc>shadow2531</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>453440</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-18 15:47:12 -0700</bug_when>
    <thetext>Implement allow-popups for iframe@sandbox
Requested by abarth on #webkit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>454321</commentid>
    <comment_count>1</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-08-19 23:31:57 -0700</bug_when>
    <thetext>Details about how this is supposed to work:

---8&lt;---
Our current implementation is that popups inherit the same restrictions as their creator. Example:

Parent A sandboxes frame B with &quot;allow-scripts&quot;.
Frame B calls window.open(C).
The popup opens for C (normal browser popup blocker still applies).
The popup is sandboxed (unique origin, can&apos;t submit forms, etc) but is allowed to execute script.

Because B didn&apos;t have &quot;allow-same-origin,&quot;
origin(A) != origin(B) != origin(C)
regardless of their actual origins.

That is to say, B and C are each given a separate unique origin.

In the case that B has &quot;allow-same-origin,&quot; then normal (un-sandboxed) origin rules apply for both B and C.

Finally, we do not allow popups to be created that cross integrity levels. So, for example, Internet content sandboxed with &quot;allow-popups&quot; cannot open a popup to an Intranet site.
---&gt;8---

There&apos;s also a thread in the HTML bug tracker about this feature.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>494971</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-02 15:27:01 -0700</bug_when>
    <thetext>http://www.w3.org/Bugs/Public/show_bug.cgi?id=12393
http://www.w3.org/html/wg/tracker/issues/180</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495104</commentid>
    <comment_count>3</comment_count>
      <attachid>113410</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-02 17:50:27 -0700</bug_when>
    <thetext>Created attachment 113410
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495187</commentid>
    <comment_count>4</comment_count>
      <attachid>113410</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-11-02 21:33:33 -0700</bug_when>
    <thetext>Comment on attachment 113410
Patch

I feel kinda mixed about this feature.  It&apos;s hard to imagine why you wouldn&apos;t just postMessage() back to the main frame.  Pop-ups seem like kinda a strange feature for a sandboxed iframe to want.  But OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495188</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-02 21:37:37 -0700</bug_when>
    <thetext>Yeah, that would be safer.  I guess it depends on whether you&apos;re sandboxing legacy content or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495189</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-02 21:39:39 -0700</bug_when>
    <thetext>Committed r99138: &lt;http://trac.webkit.org/changeset/99138&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495322</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-03 03:38:43 -0700</bug_when>
    <thetext>Reopen, because it was rolled out: http://trac.webkit.org/changeset/99162</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495324</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-03 03:41:54 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; Reopen, because it was rolled out: http://trac.webkit.org/changeset/99162

It made 200+ tests flakey on SL and on Qt too: (and made runtime of layout testing +1 hour)

http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20%28Tests%29/r99148%20%2834414%29/results.html
http://build.webkit.org/results/Qt%20Linux%20Release/r99152%20%2839271%29/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495546</commentid>
    <comment_count>9</comment_count>
      <attachid>113410</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-03 09:45:17 -0700</bug_when>
    <thetext>Comment on attachment 113410
Patch

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

&gt; Source/WebCore/page/SecurityOrigin.cpp:554
&gt; +        while (start &lt; length &amp;&amp; isASCIISpace(characters[start]))

Strange to use isASCIISpace here instead of isHTMLSpace.

&gt; Source/WebCore/page/SecurityOrigin.cpp:563
&gt; +        String sandboxToken = String(characters + start, end - start);

This is unnecessarily inefficient in the case of a single token. Better to use the String::substring function rather than always explicitly making a new string which will always require allocating a new buffer and a new StringImpl.

Longer term, better for us to overload the equalIgnoringCase function so that it works directly on a UChar* and thus does not require making a String.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495551</commentid>
    <comment_count>10</comment_count>
      <attachid>113410</attachid>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2011-11-03 09:48:09 -0700</bug_when>
    <thetext>Comment on attachment 113410
Patch

remove r+ from landed and rolled out patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495623</commentid>
    <comment_count>11</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 10:42:39 -0700</bug_when>
    <thetext>Looks like some sandbox bits got flipped on.  I&apos;m not sure why that didn&apos;t happen in the Chromium port, which I was using for testing.  Thanks for rolling out the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495650</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 11:09:43 -0700</bug_when>
    <thetext>&gt; Strange to use isASCIISpace here instead of isHTMLSpace.

I&apos;ll change that in a separate patch so I can add a test.

&gt; &gt; Source/WebCore/page/SecurityOrigin.cpp:563
&gt; &gt; +        String sandboxToken = String(characters + start, end - start);
&gt; 
&gt; This is unnecessarily inefficient in the case of a single token. Better to use the String::substring function rather than always explicitly making a new string which will always require allocating a new buffer and a new StringImpl.

Fixed.

&gt; Longer term, better for us to overload the equalIgnoringCase function so that it works directly on a UChar* and thus does not require making a String.

Yes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495716</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 12:27:04 -0700</bug_when>
    <thetext>I&apos;m going to land the bulk of this change, which doesn&apos;t actually change behavior.  Then I&apos;m going to work up a smaller patch that actually changes behavior, making sure not to break these tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495719</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 12:29:27 -0700</bug_when>
    <thetext>Committed r99228: &lt;http://trac.webkit.org/changeset/99228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495940</commentid>
    <comment_count>15</comment_count>
      <attachid>113593</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-03 17:40:00 -0700</bug_when>
    <thetext>Created attachment 113593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496252</commentid>
    <comment_count>16</comment_count>
      <attachid>113593</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-11-04 10:05:22 -0700</bug_when>
    <thetext>Comment on attachment 113593
Patch

This looks OK, but I’m not sure we have enough test coverage. You mention problems with the previous patch and I am having a little trouble seeing the tests that were failing because of those problems, or the new tests that demonstrate them. Maybe it’s just these three tests you are changing here, and I couldn’t connect the dots.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496261</commentid>
    <comment_count>17</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2011-11-04 10:11:09 -0700</bug_when>
    <thetext>Oh, the old approach caused many, many tests to fail.  :)

I agree that this change would benefit from more tests.  I&apos;ll cook some more up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496330</commentid>
    <comment_count>18</comment_count>
      <attachid>113593</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 11:15:15 -0700</bug_when>
    <thetext>Comment on attachment 113593
Patch

Clearing flags on attachment: 113593

Committed r99301: &lt;http://trac.webkit.org/changeset/99301&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>496331</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-04 11:15:20 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113410</attachid>
            <date>2011-11-02 17:50:27 -0700</date>
            <delta_ts>2011-11-03 17:39:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66505-20111102175026.patch</filename>
            <type>text/plain</type>
            <size>17785</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MTI2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMTEtMDIgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgYWxsb3ctcG9wdXBz
IGZvciBpZnJhbWVAc2FuZGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjY1MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGVyZSdzIGJlZW4gc29tZSBkaXNjdXNzaW9uIGluIHRoZSBIVE1MIHdvcmtp
bmcgZ3JvdXAgYWJvdXQgYWRkaW5nIGFuCisgICAgICAgIGFsbG93LXBvcHVwcyBkaXJlY3RpdmUg
dG8gdGhlIGlmcmFtZSBzYW5kYm94LiAgTWljcm9zb2Z0IGhhcyBhZGRlZCBpdAorICAgICAgICB0
byBJRTEwIHBsYXRmb3JtIHByZXZpZXcgYW5kIGlzIGZhaXJseSBhZGFtYW50IGFib3V0IHRoaXMg
ZmVhdHVyZQorICAgICAgICBiZWNhdXNlIGl0J3MgbmVlZGVkIGJ5IG9uZSBvciB0aGVpciBwcm9k
dWN0cyB0aGF0J3MgcGxhbm5pbmcgdG8gdXNlCisgICAgICAgIGlmcmFtZSBzYW5kYm94LiAgSGl4
aWUgc2F5cyBoZSdsbCBhZGQgaXQgdG8gdGhlIHNwZWMgb25jZSB3ZSBpbXBsZW1lbnQKKyAgICAg
ICAgaXQsIHNvIGhlcmUncyBvdXIgaW1wbGVtZW50YXRpb24uICAoU2VlIGRpc2N1c3Npb24gaW4g
dGhlIFczQyBsaW5rZWQgaW4KKyAgICAgICAgdGhlIGJ1ZyBmb3IgbW9yZSBkZXRhaWxzLikKKwor
ICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRi
b3gtaXMtc2FuZGJveGVkLWNvbnRyb2wuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9z
ZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdo
ZW4tYWxsb3dlZC5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxJRnJhbWVFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZU1hcHBlZEF0dHJpYnV0
ZSk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyOjpzZXRPcGVuZXIpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93
KToKKyAgICAgICAgKiBsb2FkZXIvRnJhbWVMb2FkZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZy
YW1lTG9hZGVyOjpmb3JjZVNhbmRib3hGbGFncyk6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9h
ZGVyVHlwZXMuaDoKKyAgICAgICAgKiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisgICAgICAg
ICogcGFnZS9TZWN1cml0eU9yaWdpbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbjo6cGFyc2VTYW5kYm94UG9saWN5KToKKyAgICAgICAgKiBwYWdlL1NlY3VyaXR5T3JpZ2lu
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6c2FuZGJveEZsYWdzKToKKyAg
ICAgICAgKiBzdmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZH
SW1hZ2U6OmRhdGFDaGFuZ2VkKToKKwogMjAxMS0xMS0wMiAgTWFyayBIYWhuZW5iZXJnICA8bWhh
aG5lbmJlcmdAYXBwbGUuY29tPgogCiAgICAgICAgIERlLXZpcnR1YWxpemUgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElGcmFtZUVs
ZW1lbnQuY3BwCShyZXZpc2lvbiA5OTExMSkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElG
cmFtZUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVk
ZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTm9kZVJlbmRlcmluZ0NvbnRleHQuaCIKICNpbmNs
dWRlICJSZW5kZXJJRnJhbWUuaCIKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKQEAgLTY4LDQyICs2OSw2IEBAIGJvb2wgSFRNTElGcmFtZUVsZW1l
bnQ6Om1hcFRvRW50cnkoY29uc3QKICAgICByZXR1cm4gSFRNTEZyYW1lRWxlbWVudEJhc2U6Om1h
cFRvRW50cnkoYXR0ck5hbWUsIHJlc3VsdCk7CiB9CiAKLXN0YXRpYyBTYW5kYm94RmxhZ3MgcGFy
c2VTYW5kYm94QXR0cmlidXRlKEF0dHJpYnV0ZSogYXR0cmlidXRlKQotewotICAgIGlmIChhdHRy
aWJ1dGUtPmlzTnVsbCgpKQotICAgICAgICByZXR1cm4gU2FuZGJveE5vbmU7Ci0KLSAgICAvLyBQ
YXJzZSB0aGUgdW5vcmRlcmVkIHNldCBvZiB1bmlxdWUgc3BhY2Utc2VwYXJhdGVkIHRva2Vucy4K
LSAgICBTYW5kYm94RmxhZ3MgZmxhZ3MgPSBTYW5kYm94QWxsOwotICAgIGNvbnN0IFVDaGFyKiBj
aGFyYWN0ZXJzID0gYXR0cmlidXRlLT52YWx1ZSgpLmNoYXJhY3RlcnMoKTsKLSAgICB1bnNpZ25l
ZCBsZW5ndGggPSBhdHRyaWJ1dGUtPnZhbHVlKCkubGVuZ3RoKCk7Ci0gICAgdW5zaWduZWQgc3Rh
cnQgPSAwOwotICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgIHdoaWxlIChzdGFydCA8IGxlbmd0
aCAmJiBpc0FTQ0lJU3BhY2UoY2hhcmFjdGVyc1tzdGFydF0pKQotICAgICAgICAgICAgKytzdGFy
dDsKLSAgICAgICAgaWYgKHN0YXJ0ID49IGxlbmd0aCkKLSAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICB1bnNpZ25lZCBlbmQgPSBzdGFydCArIDE7Ci0gICAgICAgIHdoaWxlIChlbmQgPCBsZW5n
dGggJiYgIWlzQVNDSUlTcGFjZShjaGFyYWN0ZXJzW2VuZF0pKQotICAgICAgICAgICAgKytlbmQ7
Ci0KLSAgICAgICAgLy8gVHVybiBvZmYgdGhlIGNvcnJlc3BvbmRpbmcgc2FuZGJveCBmbGFnIGlm
IGl0J3Mgc2V0IGFzICJhbGxvd2VkIi4KLSAgICAgICAgU3RyaW5nIHNhbmRib3hUb2tlbiA9IFN0
cmluZyhjaGFyYWN0ZXJzICsgc3RhcnQsIGVuZCAtIHN0YXJ0KTsKLSAgICAgICAgaWYgKGVxdWFs
SWdub3JpbmdDYXNlKHNhbmRib3hUb2tlbiwgImFsbG93LXNhbWUtb3JpZ2luIikpCi0gICAgICAg
ICAgICBmbGFncyAmPSB+U2FuZGJveE9yaWdpbjsKLSAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25v
cmluZ0Nhc2Uoc2FuZGJveFRva2VuLCAiYWxsb3ctZm9ybXMiKSkKLSAgICAgICAgICAgIGZsYWdz
ICY9IH5TYW5kYm94Rm9ybXM7Ci0gICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHNh
bmRib3hUb2tlbiwgImFsbG93LXNjcmlwdHMiKSkKLSAgICAgICAgICAgIGZsYWdzICY9IH5TYW5k
Ym94U2NyaXB0czsKLSAgICAgICAgZWxzZSBpZiAoZXF1YWxJZ25vcmluZ0Nhc2Uoc2FuZGJveFRv
a2VuLCAiYWxsb3ctdG9wLW5hdmlnYXRpb24iKSkKLSAgICAgICAgICAgIGZsYWdzICY9IH5TYW5k
Ym94VG9wTmF2aWdhdGlvbjsKLQotICAgICAgICBzdGFydCA9IGVuZCArIDE7Ci0gICAgfQotCi0g
ICAgcmV0dXJuIGZsYWdzOwotfQotCiB2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpwYXJzZU1hcHBl
ZEF0dHJpYnV0ZShBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSB3
aWR0aEF0dHIpCkBAIC0xMjcsNyArOTIsNyBAQCB2b2lkIEhUTUxJRnJhbWVFbGVtZW50OjpwYXJz
ZU1hcHBlZEF0dHJpCiAgICAgICAgICAgICAvLyBBZGQgYSBydWxlIHRoYXQgbnVsbHMgb3V0IG91
ciBib3JkZXIgd2lkdGguCiAgICAgICAgICAgICBhZGRDU1NMZW5ndGgoYXR0ciwgQ1NTUHJvcGVy
dHlCb3JkZXJXaWR0aCwgIjAiKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9PSBzYW5k
Ym94QXR0cikKLSAgICAgICAgc2V0U2FuZGJveEZsYWdzKHBhcnNlU2FuZGJveEF0dHJpYnV0ZShh
dHRyKSk7CisgICAgICAgIHNldFNhbmRib3hGbGFncyhhdHRyLT5pc051bGwoKSA/IFNhbmRib3hO
b25lIDogU2VjdXJpdHlPcmlnaW46OnBhcnNlU2FuZGJveFBvbGljeShhdHRyLT52YWx1ZSgpKSk7
CiAgICAgZWxzZQogICAgICAgICBIVE1MRnJhbWVFbGVtZW50QmFzZTo6cGFyc2VNYXBwZWRBdHRy
aWJ1dGUoYXR0cik7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJ
KHJldmlzaW9uIDk5MTExKQorKysgU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTQ1LDggKzk0NSwxMiBAQCB2b2lkIEZyYW1lTG9hZGVyOjpz
ZXRPcGVuZXIoRnJhbWUqIG9wZW5lCiAgICAgICAgIG1fb3BlbmVyLT5sb2FkZXIoKS0+bV9vcGVu
ZWRGcmFtZXMucmVtb3ZlKG1fZnJhbWUpOwogICAgIGlmIChvcGVuZXIpCiAgICAgICAgIG9wZW5l
ci0+bG9hZGVyKCktPm1fb3BlbmVkRnJhbWVzLmFkZChtX2ZyYW1lKTsKKwogICAgIG1fb3BlbmVy
ID0gb3BlbmVyOwogCisgICAgaWYgKG1fb3BlbmVyICYmICFtX2ZyYW1lLT50cmVlKCktPnBhcmVu
dCgpKQorICAgICAgICBmb3JjZVNhbmRib3hGbGFncyhtX29wZW5lci0+ZG9jdW1lbnQoKS0+c2Vj
dXJpdHlPcmlnaW4oKS0+c2FuZGJveEZsYWdzKCkpOworCiAgICAgaWYgKG1fZnJhbWUtPmRvY3Vt
ZW50KCkpIHsKICAgICAgICAgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+aW5pdFNlY3VyaXR5Q29udGV4
dCgpOwogICAgICAgICBtX2ZyYW1lLT5kb21XaW5kb3coKS0+c2V0U2VjdXJpdHlPcmlnaW4obV9m
cmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CkBAIC0zMjY4LDcgKzMyNzIsNyBA
QCBGcmFtZSogY3JlYXRlV2luZG93KEZyYW1lKiBvcGVuZXJGcmFtZSwgCiAgICAgfQogCiAgICAg
Ly8gU2FuZGJveGVkIGZyYW1lcyBjYW5ub3Qgb3BlbiBuZXcgYXV4aWxpYXJ5IGJyb3dzaW5nIGNv
bnRleHRzLgotICAgIGlmIChpc0RvY3VtZW50U2FuZGJveGVkKG9wZW5lckZyYW1lLCBTYW5kYm94
TmF2aWdhdGlvbikpCisgICAgaWYgKGlzRG9jdW1lbnRTYW5kYm94ZWQob3BlbmVyRnJhbWUsIFNh
bmRib3hQb3B1cHMpKQogICAgICAgICByZXR1cm4gMDsKIAogICAgIC8vIEZJWE1FOiBTZXR0aW5n
IHRoZSByZWZlcnJlciBzaG91bGQgYmUgdGhlIGNhbGxlcidzIHJlc3BvbnNpYmlsaXR5LgpJbmRl
eDogU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHJldmlzaW9uIDk5MTExKQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTIxNSw3
ICsyMTUsNyBAQCBwdWJsaWM6CiAgICAgU2FuZGJveEZsYWdzIHNhbmRib3hGbGFncygpIGNvbnN0
IHsgcmV0dXJuIG1fc2FuZGJveEZsYWdzOyB9CiAgICAgLy8gVGhlIGZvbGxvd2luZyBzYW5kYm94
IGZsYWdzIHdpbGwgYmUgZm9yY2VkLCByZWdhcmRsZXNzIG9mIGNoYW5nZXMgdG8KICAgICAvLyB0
aGUgc2FuZGJveCBhdHRyaWJ1dGUgb2YgYW55IHBhcmVudCBmcmFtZXMuCi0gICAgdm9pZCBzZXRG
b3JjZWRTYW5kYm94RmxhZ3MoU2FuZGJveEZsYWdzIGZsYWdzKSB7IG1fZm9yY2VkU2FuZGJveEZs
YWdzID0gZmxhZ3M7IG1fc2FuZGJveEZsYWdzIHw9IGZsYWdzOyB9CisgICAgdm9pZCBmb3JjZVNh
bmRib3hGbGFncyhTYW5kYm94RmxhZ3MgZmxhZ3MpIHsgbV9mb3JjZWRTYW5kYm94RmxhZ3MgfD0g
ZmxhZ3M7IG1fc2FuZGJveEZsYWdzIHw9IGZsYWdzOyB9CiAKICAgICAvLyBNaXhlZCBjb250ZW50
IHJlbGF0ZWQgZnVuY3Rpb25zLgogICAgIHN0YXRpYyBib29sIGlzTWl4ZWRDb250ZW50KFNlY3Vy
aXR5T3JpZ2luKiBjb250ZXh0LCBjb25zdCBLVVJMJik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9s
b2FkZXIvRnJhbWVMb2FkZXJUeXBlcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9GcmFtZUxvYWRlclR5cGVzLmgJKHJldmlzaW9uIDk5MTExKQorKysgU291cmNlL1dlYkNv
cmUvbG9hZGVyL0ZyYW1lTG9hZGVyVHlwZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTAwLDYgKzEw
MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgU2FuZGJveEZvcm1zID0gMSA8PCAz
LAogICAgICAgICBTYW5kYm94U2NyaXB0cyA9IDEgPDwgNCwKICAgICAgICAgU2FuZGJveFRvcE5h
dmlnYXRpb24gPSAxIDw8IDUsCisgICAgICAgIFNhbmRib3hQb3B1cHMgPSAxIDw8IDYsCiAgICAg
ICAgIFNhbmRib3hBbGwgPSAtMSAvLyBNYXNrIHdpdGggYWxsIGJpdHMgc2V0IHRvIDEuCiAgICAg
fTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVyL1BvbGljeUNoZWNrZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Qb2xpY3lDaGVja2VyLmNwcAkocmV2aXNp
b24gOTkxMTEpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2FkZXIvUG9saWN5Q2hlY2tlci5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05h
dmlnYXRpb25Qb2xpYwogdm9pZCBQb2xpY3lDaGVja2VyOjpjaGVja05ld1dpbmRvd1BvbGljeShj
b25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIE5ld1dpbmRvd1BvbGljeURlY2lzaW9uRnVu
Y3Rpb24gZnVuY3Rpb24sCiAgICAgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNz
UmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBjb25zdCBTdHJpbmcmIGZyYW1lTmFtZSwgdm9p
ZCogYXJndW1lbnQpCiB7Ci0gICAgaWYgKG1fZnJhbWUtPmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNTYW5kYm94ZWQoU2FuZGJveE5hdmlnYXRp
b24pKQorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgpICYmIG1fZnJhbWUtPmRvY3VtZW50KCkt
PnNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNhbmRib3hQb3B1cHMpKQogICAgICAgICBy
ZXR1cm4gY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xpY3koUG9saWN5SWdub3JlKTsKIAogICAg
IG1fY2FsbGJhY2suc2V0KHJlcXVlc3QsIGZvcm1TdGF0ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIGZ1
bmN0aW9uLCBhcmd1bWVudCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2lu
LmNwcAkocmV2aXNpb24gOTkxMTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3Jp
Z2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTQzLDYgKzU0Myw0MSBAQCBib29sIFNlY3VyaXR5
T3JpZ2luOjpzaG91bGRIaWRlUmVmZXJyZXIoCiAgICAgcmV0dXJuICFVUkxJc1NlY3VyZVVSTDsK
IH0KIAorU2FuZGJveEZsYWdzIFNlY3VyaXR5T3JpZ2luOjpwYXJzZVNhbmRib3hQb2xpY3koY29u
c3QgU3RyaW5nJiBwb2xpY3kpCit7CisgICAgLy8gUGFyc2UgdGhlIHVub3JkZXJlZCBzZXQgb2Yg
dW5pcXVlIHNwYWNlLXNlcGFyYXRlZCB0b2tlbnMuCisgICAgU2FuZGJveEZsYWdzIGZsYWdzID0g
U2FuZGJveEFsbDsKKyAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVycyA9IHBvbGljeS5jaGFyYWN0
ZXJzKCk7CisgICAgdW5zaWduZWQgbGVuZ3RoID0gcG9saWN5Lmxlbmd0aCgpOworICAgIHVuc2ln
bmVkIHN0YXJ0ID0gMDsKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICB3aGlsZSAoc3RhcnQg
PCBsZW5ndGggJiYgaXNBU0NJSVNwYWNlKGNoYXJhY3RlcnNbc3RhcnRdKSkKKyAgICAgICAgICAg
ICsrc3RhcnQ7CisgICAgICAgIGlmIChzdGFydCA+PSBsZW5ndGgpCisgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgdW5zaWduZWQgZW5kID0gc3RhcnQgKyAxOworICAgICAgICB3aGlsZSAoZW5k
IDwgbGVuZ3RoICYmICFpc0FTQ0lJU3BhY2UoY2hhcmFjdGVyc1tlbmRdKSkKKyAgICAgICAgICAg
ICsrZW5kOworCisgICAgICAgIC8vIFR1cm4gb2ZmIHRoZSBjb3JyZXNwb25kaW5nIHNhbmRib3gg
ZmxhZyBpZiBpdCdzIHNldCBhcyAiYWxsb3dlZCIuCisgICAgICAgIFN0cmluZyBzYW5kYm94VG9r
ZW4gPSBTdHJpbmcoY2hhcmFjdGVycyArIHN0YXJ0LCBlbmQgLSBzdGFydCk7CisgICAgICAgIGlm
IChlcXVhbElnbm9yaW5nQ2FzZShzYW5kYm94VG9rZW4sICJhbGxvdy1zYW1lLW9yaWdpbiIpKQor
ICAgICAgICAgICAgZmxhZ3MgJj0gflNhbmRib3hPcmlnaW47CisgICAgICAgIGVsc2UgaWYgKGVx
dWFsSWdub3JpbmdDYXNlKHNhbmRib3hUb2tlbiwgImFsbG93LWZvcm1zIikpCisgICAgICAgICAg
ICBmbGFncyAmPSB+U2FuZGJveEZvcm1zOworICAgICAgICBlbHNlIGlmIChlcXVhbElnbm9yaW5n
Q2FzZShzYW5kYm94VG9rZW4sICJhbGxvdy1zY3JpcHRzIikpCisgICAgICAgICAgICBmbGFncyAm
PSB+U2FuZGJveFNjcmlwdHM7CisgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdDYXNlKHNh
bmRib3hUb2tlbiwgImFsbG93LXRvcC1uYXZpZ2F0aW9uIikpCisgICAgICAgICAgICBmbGFncyAm
PSB+U2FuZGJveFRvcE5hdmlnYXRpb247CisgICAgICAgIGVsc2UgaWYgKGVxdWFsSWdub3JpbmdD
YXNlKHNhbmRib3hUb2tlbiwgImFsbG93LXBvcHVwcyIpKQorICAgICAgICAgICAgZmxhZ3MgJj0g
flNhbmRib3hQb3B1cHM7CisKKyAgICAgICAgc3RhcnQgPSBlbmQgKyAxOworICAgIH0KKworICAg
IHJldHVybiBmbGFnczsKK30KKwogdm9pZCBTZWN1cml0eU9yaWdpbjo6c2V0TG9jYWxMb2FkUG9s
aWN5KExvY2FsTG9hZFBvbGljeSBwb2xpY3kpCiB7CiAgICAgbG9jYWxMb2FkUG9saWN5ID0gcG9s
aWN5OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9TZWN1cml0eU9yaWdpbi5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvU2VjdXJpdHlPcmlnaW4uaAkocmV2aXNpb24gOTkx
MTEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1NlY3VyaXR5T3JpZ2luLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU2LDYgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RG9tYWluRnJvbURPTShj
b25zdCBTdHJpbmcmIG5ld0RvbWFpbik7CiAgICAgYm9vbCBkb21haW5XYXNTZXRJbkRPTSgpIGNv
bnN0IHsgcmV0dXJuIG1fZG9tYWluV2FzU2V0SW5ET007IH0KIAorICAgIC8vIEZJWE1FOiBUaGlz
IHNob3VsZCBtb3ZlIHRvIFNjaGVtZVJlZ2lzdHJ5LgogICAgIHN0YXRpYyB2b2lkIHNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUoYm9vbCBmb3JiaWRkZW4sIGNvbnN0IFN0
cmluZyYpOwogICAgIHN0YXRpYyBib29sIGlzRG9tYWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVS
TFNjaGVtZShjb25zdCBTdHJpbmcmKTsKIApAQCAtMTE0LDYgKzExNSw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGdyYW50VW5pdmVyc2FsQWNjZXNzKCk7CiAKICAgICBib29sIGlzU2FuZGJveGVkKFNh
bmRib3hGbGFncyBtYXNrKSBjb25zdCB7IHJldHVybiBtX3NhbmRib3hGbGFncyAmIG1hc2s7IH0K
KyAgICBTYW5kYm94RmxhZ3Mgc2FuZGJveEZsYWdzKCkgY29uc3QgeyByZXR1cm4gbV9zYW5kYm94
RmxhZ3M7IH0KIAogICAgIGJvb2wgY2FuQWNjZXNzRGF0YWJhc2UoKSBjb25zdCB7IHJldHVybiAh
aXNVbmlxdWUoKTsgfQogICAgIGJvb2wgY2FuQWNjZXNzTG9jYWxTdG9yYWdlKCkgY29uc3QgeyBy
ZXR1cm4gIWlzVW5pcXVlKCk7IH0KQEAgLTE3OCw2ICsxODAsOCBAQCBwdWJsaWM6CiAgICAgLy8g
KGFuZCB3aGV0aGVyIGl0IHdhcyBzZXQpIGJ1dCBjb25zaWRlcmluZyB0aGUgaG9zdC4gSXQgaXMg
dXNlZCBmb3IgcG9zdE1lc3NhZ2UuCiAgICAgYm9vbCBpc1NhbWVTY2hlbWVIb3N0UG9ydChjb25z
dCBTZWN1cml0eU9yaWdpbiopIGNvbnN0OwogCisgICAgc3RhdGljIFNhbmRib3hGbGFncyBwYXJz
ZVNhbmRib3hQb2xpY3koY29uc3QgU3RyaW5nJiBwb2xpY3kpOworCiAgICAgc3RhdGljIGJvb2wg
c2hvdWxkSGlkZVJlZmVycmVyKGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIHJlZmVycmVyKTsK
IAogICAgIGVudW0gTG9jYWxMb2FkUG9saWN5IHsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3N2Zy9n
cmFwaGljcy9TVkdJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvc3ZnL2dy
YXBoaWNzL1NWR0ltYWdlLmNwcAkocmV2aXNpb24gOTkxMTEpCisrKyBTb3VyY2UvV2ViQ29yZS9z
dmcvZ3JhcGhpY3MvU1ZHSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMTMsNyArMzEzLDcg
QEAgYm9vbCBTVkdJbWFnZTo6ZGF0YUNoYW5nZWQoYm9vbCBhbGxEYXRhUgogICAgICAgICBmcmFt
ZS0+c2V0VmlldyhGcmFtZVZpZXc6OmNyZWF0ZShmcmFtZS5nZXQoKSkpOwogICAgICAgICBmcmFt
ZS0+aW5pdCgpOwogICAgICAgICBGcmFtZUxvYWRlciogbG9hZGVyID0gZnJhbWUtPmxvYWRlcigp
OwotICAgICAgICBsb2FkZXItPnNldEZvcmNlZFNhbmRib3hGbGFncyhTYW5kYm94QWxsKTsKKyAg
ICAgICAgbG9hZGVyLT5mb3JjZVNhbmRib3hGbGFncyhTYW5kYm94QWxsKTsKIAogICAgICAgICBm
cmFtZS0+dmlldygpLT5zZXRDYW5IYXZlU2Nyb2xsYmFycyhmYWxzZSk7IC8vIFNWRyBJbWFnZXMg
d2lsbCBhbHdheXMgc3ludGhlc2l6ZSBhIHZpZXdCb3gsIGlmIGl0J3Mgbm90IGF2YWlsYWJsZSwg
YW5kIHRodXMgbmV2ZXIgc2VlIHNjcm9sbGJhcnMuCiAgICAgICAgIGZyYW1lLT52aWV3KCktPnNl
dFRyYW5zcGFyZW50KHRydWUpOyAvLyBTVkcgSW1hZ2VzIGFyZSB0cmFuc3BhcmVudC4KSW5kZXg6
IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDk5MTI2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMDIgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgYWxsb3ctcG9wdXBzIGZvciBpZnJhbWVAc2Fu
ZGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjY1
MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0
IHRoYXQgdGhlIGFsbG93LXBvcHVwcyBkaXJlY3RpdmUgd29ya3MgYXMgZXhwZWN0ZWQuICBOb3Rl
OgorICAgICAgICBuby1wb3B1cC1mcm9tLXNhbmRib3guaHRtbCB2ZXJpZmllcyB0aGF0IHdlIHN0
aWxsIGJsb2NrIHBvcHVwcyB3aXRob3V0CisgICAgICAgIHRoZSBkaXJlY3RpdmUuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5k
Ym94ZWQtY29udHJvbC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC1jb250cm9sLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1i
eS1zYW5kYm94LWlzLXNhbmRib3hlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQt
Ynktc2FuZGJveC13aGVuLWFsbG93ZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93ZWQu
aHRtbDogQWRkZWQuCisKIDIwMTEtMTEtMDIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBh
cHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAocjk3NDk2LXI5NzQ5OSk6IDYgZmFzdC93
b3JrZXJzIHRlc3RzIGZhaWxpbmcgb24gU25vd0xlb3BhcmQgSW50ZWwgUmVsZWFzZSAoVGVzdHMp
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnkt
c2FuZGJveC1pcy1zYW5kYm94ZWQtY29udHJvbC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gt
aXMtc2FuZGJveGVkLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2Fu
ZGJveGVkLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDYgQEAK
K0FMRVJUOiAvUEFTUy8KK1RvIHJ1biB0aGlzIHRlc3Qgb3V0c2lkZSBvZiBEdW1wUmVuZGVyVHJl
ZSwgcGxlYXNlIGRpc2FibGUgeW91ciBwb3B1cCBibG9ja2VyIQorCitJZiB5b3UgY2hhbmdlIHRo
aXMgdGVzdCwgcGxlYXNlIGJlIHN1cmUgdG8gY2hhbmdlIHBvcHVwLWFsbG93ZWQtYnktc2FuZGJv
eC1pcy1zYW5kYm94ZWQuaHRtbCBhcyB3ZWxsIQorCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC1jb250
cm9sLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9w
b3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLWNvbnRyb2wuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1i
eS1zYW5kYm94LWlzLXNhbmRib3hlZC1jb250cm9sLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMTYgQEAKKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5P
cGVuV2luZG93cyh0cnVlKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDbG9zZVJlbWFp
bmluZ1dpbmRvd3NXaGVuQ29tcGxldGUodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzxwPlRvIHJ1biB0
aGlzIHRlc3Qgb3V0c2lkZSBvZiBEdW1wUmVuZGVyVHJlZSwgcGxlYXNlIGRpc2FibGUgeW91ciBw
b3B1cCBibG9ja2VyITwvcD4KKzxwPklmIHlvdSBjaGFuZ2UgdGhpcyB0ZXN0LCBwbGVhc2UgYmUg
c3VyZSB0byBjaGFuZ2UgcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC5odG1s
IGFzIHdlbGwhPC9wPgorPGlmcmFtZSBzYW5kYm94PSJhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVw
cyBhbGxvdy1mb3JtcyIKKyAgc3JjPSJkYXRhOnRleHQvaHRtbCwKKyAgICAgICA8c2NyaXB0Pgor
ICAgICAgIHZhciB3aW4gPSB3aW5kb3cub3BlbignZGF0YTp0ZXh0L2h0bWwsPGZvcm0gYWN0aW9u
PWphdmFzY3JpcHQ6YWxlcnQoL1BBU1MvKSA+PGlucHV0IHR5cGU9c3VibWl0PjwvZm9ybT48c2Ny
aXB0PmRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOyBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7PFwvc2NyaXB0PicsICdf
YmxhbmsnKTsKKyAgICAgICA8L3NjcmlwdD4iCisgID48L2lmcmFtZT4KSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRi
b3hlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAt
YWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsNyBAQAorVG8gcnVuIHRoaXMgdGVzdCBvdXRzaWRlIG9mIER1bXBSZW5kZXJU
cmVlLCBwbGVhc2UgZGlzYWJsZSB5b3VyIHBvcHVwIGJsb2NrZXIhCisKK0lmIHlvdSBjaGFuZ2Ug
dGhpcyB0ZXN0LCBwbGVhc2UgYmUgc3VyZSB0byBjaGFuZ2UgcG9wdXAtYWxsb3dlZC1ieS1zYW5k
Ym94LWlzLXNhbmRib3hlZC1jb250cm9sLmh0bWwgYXMgd2VsbCEKKworVGhpcyB0ZXN0IHBhc3Nl
cyBpZiBpdCBkb2Vzbid0IGFsZXJ0IEZBSUwuCisKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxv
d2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5k
Ym94ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNyBAQAorPHNjcmlwdD4KK2lmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0
cnVlKTsKK30KKzwvc2NyaXB0PgorPHA+VG8gcnVuIHRoaXMgdGVzdCBvdXRzaWRlIG9mIER1bXBS
ZW5kZXJUcmVlLCBwbGVhc2UgZGlzYWJsZSB5b3VyIHBvcHVwIGJsb2NrZXIhPC9wPgorPHA+SWYg
eW91IGNoYW5nZSB0aGlzIHRlc3QsIHBsZWFzZSBiZSBzdXJlIHRvIGNoYW5nZSBwb3B1cC1hbGxv
d2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLWNvbnRyb2wuaHRtbCBhcyB3ZWxsITwvcD4KKzxw
PlRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBhbGVydCBGQUlMLjwvcD4KKzxpZnJhbWUg
c2FuZGJveD0iYWxsb3ctc2NyaXB0cyBhbGxvdy1wb3B1cHMiCisgIHNyYz0iZGF0YTp0ZXh0L2h0
bWwsCisgICAgICAgPHNjcmlwdD4KKyAgICAgICB2YXIgd2luID0gd2luZG93Lm9wZW4oJ2RhdGE6
dGV4dC9odG1sLDxmb3JtIGFjdGlvbj1qYXZhc2NyaXB0OmFsZXJ0KC9GQUlMLykgPjxpbnB1dCB0
eXBlPXN1Ym1pdD48L2Zvcm0+PHNjcmlwdD5kb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOzxcL3NjcmlwdD4nLCAnX2JsYW5rJyk7CisgICAgICAgPC9zY3JpcHQ+IgorICA+PC9p
ZnJhbWU+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93
ZWQtYnktc2FuZGJveC13aGVuLWFsbG93ZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdo
ZW4tYWxsb3dlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93ZWQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDQgQEAKK0FMRVJUOiBQQVNTCitUbyBy
dW4gdGhpcyB0ZXN0IG91dHNpZGUgb2YgRHVtcFJlbmRlclRyZWUsIHBsZWFzZSBkaXNhYmxlIHlv
dXIgcG9wdXAgYmxvY2tlciEKKworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2Fu
ZGJveC13aGVuLWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdoZW4tYWxsb3dlZC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOworfQor
PC9zY3JpcHQ+Cis8cD5UbyBydW4gdGhpcyB0ZXN0IG91dHNpZGUgb2YgRHVtcFJlbmRlclRyZWUs
IHBsZWFzZSBkaXNhYmxlIHlvdXIgcG9wdXAgYmxvY2tlciE8L3A+Cis8aWZyYW1lIHNhbmRib3g9
ImFsbG93LXNjcmlwdHMgYWxsb3ctcG9wdXBzIgorICBzcmM9ImRhdGE6dGV4dC9odG1sLAorICAg
ICAgIDxzY3JpcHQ+CisgICAgICAgdmFyIHdpbiA9IHdpbmRvdy5vcGVuKCdkYXRhOnRleHQvaHRt
bCw8c2NyaXB0PmlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTs8XC9zY3JpcHQ+JywgJ19ibGFuaycpOworICAgICAgIGFsZXJ0
KHdpbiA/ICdQQVNTJyA6ICdGQUlMJyk7CisgICAgICAgPC9zY3JpcHQ+IgorICA+PC9pZnJhbWU+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113593</attachid>
            <date>2011-11-03 17:40:00 -0700</date>
            <delta_ts>2011-11-04 11:15:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-66505-20111103173959.patch</filename>
            <type>text/plain</type>
            <size>6723</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDk5MjUzKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTEtMDMgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KKworICAgICAgICBJbXBsZW1lbnQgYWxsb3ctcG9wdXBz
IGZvciBpZnJhbWVAc2FuZGJveAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NjY1MDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFbmFibGUgYWxsb3ctcG9wdXBzIHNhbmRib3ggYml0LiAgTXkgcHJldmlvdXMg
cGF0Y2ggYXR0ZW1wdGVkIHRvCisgICAgICAgIGZvcndhcmQgdGhlIHNhbmRib3ggYml0cyBkdXJp
bmcgc2V0T3BlbmVyLCBidXQgdGhhdCBpbnRlcmFjdGVkIHBvb3JseQorICAgICAgICB3aXRoIG91
dCAoaW50ZXJuYWwpIHNhbmRib3hpbmcgb2YgdGhlIGluaXRpYWwgZG9jdW1lbnQuICBUaGlzIHBh
dGNoCisgICAgICAgIGZvcndhcmRzIHRoZSBiaXRzIGR1cmluZyBjcmVhdGVXaW5kb3csIHdoaWNo
IGlzIG1vcmUgdGFyZ2V0ZWQgdG8gdGhlCisgICAgICAgIGNhc2Ugd2hlbiBhIHNhbmRib3ggZnJh
bWUgYWN0dWFsbHkgY3JlYXRlcyBhIG5ldyB3aW5kb3cuCisKKyAgICAgICAgKiBsb2FkZXIvRnJh
bWVMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlV2luZG93KToKKyAgICAgICAg
KiBsb2FkZXIvUG9saWN5Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQb2xpY3lDaGVj
a2VyOjpjaGVja05ld1dpbmRvd1BvbGljeSk6CisKIDIwMTEtMTEtMDMgIEphbWVzIFJvYmluc29u
ICA8amFtZXNyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIE5vdGlmeSBzY2hl
ZHVsZXIgb24gU3dhcEJ1ZmZlcnMgaW4gdGhyZWFkZWQgY29tcG9zaXRvciBtb2RlCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHJldmlzaW9uIDk5MjI4KQorKysgU291
cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzI2
OCw3ICszMjY4LDcgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSogb3BlbmVyRnJhbWUsIAog
ICAgIH0KIAogICAgIC8vIFNhbmRib3hlZCBmcmFtZXMgY2Fubm90IG9wZW4gbmV3IGF1eGlsaWFy
eSBicm93c2luZyBjb250ZXh0cy4KLSAgICBpZiAoaXNEb2N1bWVudFNhbmRib3hlZChvcGVuZXJG
cmFtZSwgU2FuZGJveE5hdmlnYXRpb24pKQorICAgIGlmIChpc0RvY3VtZW50U2FuZGJveGVkKG9w
ZW5lckZyYW1lLCBTYW5kYm94UG9wdXBzKSkKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICAvLyBG
SVhNRTogU2V0dGluZyB0aGUgcmVmZXJyZXIgc2hvdWxkIGJlIHRoZSBjYWxsZXIncyByZXNwb25z
aWJpbGl0eS4KQEAgLTMyODYsNiArMzI4Niw5IEBAIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWUq
IG9wZW5lckZyYW1lLCAKICAgICAgICAgcmV0dXJuIDA7CiAKICAgICBGcmFtZSogZnJhbWUgPSBw
YWdlLT5tYWluRnJhbWUoKTsKKworICAgIGZyYW1lLT5sb2FkZXIoKS0+Zm9yY2VTYW5kYm94Rmxh
Z3Mob3BlbmVyRnJhbWUtPmxvYWRlcigpLT5zYW5kYm94RmxhZ3MoKSk7CisKICAgICBpZiAocmVx
dWVzdC5mcmFtZU5hbWUoKSAhPSAiX2JsYW5rIikKICAgICAgICAgZnJhbWUtPnRyZWUoKS0+c2V0
TmFtZShyZXF1ZXN0LmZyYW1lTmFtZSgpKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvbG9hZGVy
L1BvbGljeUNoZWNrZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
b2xpY3lDaGVja2VyLmNwcAkocmV2aXNpb24gOTkyMjgpCisrKyBTb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvUG9saWN5Q2hlY2tlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkzLDcgKzkzLDcgQEAgdm9p
ZCBQb2xpY3lDaGVja2VyOjpjaGVja05hdmlnYXRpb25Qb2xpYwogdm9pZCBQb2xpY3lDaGVja2Vy
OjpjaGVja05ld1dpbmRvd1BvbGljeShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rpb24sIE5l
d1dpbmRvd1BvbGljeURlY2lzaW9uRnVuY3Rpb24gZnVuY3Rpb24sCiAgICAgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBQYXNzUmVmUHRyPEZvcm1TdGF0ZT4gZm9ybVN0YXRlLCBjb25z
dCBTdHJpbmcmIGZyYW1lTmFtZSwgdm9pZCogYXJndW1lbnQpCiB7Ci0gICAgaWYgKG1fZnJhbWUt
PmRvY3VtZW50KCkgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKS0+aXNT
YW5kYm94ZWQoU2FuZGJveE5hdmlnYXRpb24pKQorICAgIGlmIChtX2ZyYW1lLT5kb2N1bWVudCgp
ICYmIG1fZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNh
bmRib3hQb3B1cHMpKQogICAgICAgICByZXR1cm4gY29udGludWVBZnRlck5hdmlnYXRpb25Qb2xp
Y3koUG9saWN5SWdub3JlKTsKIAogICAgIG1fY2FsbGJhY2suc2V0KHJlcXVlc3QsIGZvcm1TdGF0
ZSwgZnJhbWVOYW1lLCBhY3Rpb24sIGZ1bmN0aW9uLCBhcmd1bWVudCk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZp
c2lvbiA5OTI1MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDE4IEBACisyMDExLTExLTAzICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+
CisKKyAgICAgICAgSW1wbGVtZW50IGFsbG93LXBvcHVwcyBmb3IgaWZyYW1lQHNhbmRib3gKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2NTA1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIHRlc3Qg
cmVzdWx0cyB0byBzaG93IHRoYXQgd2Ugbm93IHBhc3MuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQtY29udHJvbC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2Vk
LWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLWNvbnRyb2wuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13
aGVuLWFsbG93ZWQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
cG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdoZW4tYWxsb3dlZC5odG1sOgorCiAyMDExLTExLTAz
ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZlIGFuIG9i
c29sZXRlIGNvbW1lbnQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Bv
cHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQtY29udHJvbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxv
d2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biA5OTIyOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dl
ZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC1jb250cm9sLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDQgQEAKK0FMRVJUOiAvUEFTUy8KIFRvIHJ1biB0aGlzIHRlc3Qgb3V0
c2lkZSBvZiBEdW1wUmVuZGVyVHJlZSwgcGxlYXNlIGRpc2FibGUgeW91ciBwb3B1cCBibG9ja2Vy
IQogCiBJZiB5b3UgY2hhbmdlIHRoaXMgdGVzdCwgcGxlYXNlIGJlIHN1cmUgdG8gY2hhbmdlIHBv
cHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQuaHRtbCBhcyB3ZWxsIQpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gt
aXMtc2FuZGJveGVkLWNvbnRyb2wuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC1pcy1zYW5kYm94ZWQtY29u
dHJvbC5odG1sCShyZXZpc2lvbiA5OTIyOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LWlzLXNhbmRib3hlZC1jb250cm9sLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw3IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CiAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0Q2xvc2VSZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwogfQpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNh
bmRib3gtaXMtc2FuZGJveGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLmh0bWwJ
KHJldmlzaW9uIDk5MjI4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1
cC1hbGxvd2VkLWJ5LXNhbmRib3gtaXMtc2FuZGJveGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNiArMSw3IEBACiA8c2NyaXB0PgogaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2xvc2VS
ZW1haW5pbmdXaW5kb3dzV2hlbkNvbXBsZXRlKHRydWUpOwogfQpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9wb3B1cC1hbGxvd2VkLWJ5LXNhbmRib3gtd2hlbi1hbGxvd2Vk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3BvcHVwLWFsbG93ZWQtYnktc2FuZGJveC13aGVuLWFsbG93ZWQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiA5OTIyOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAt
YWxsb3dlZC1ieS1zYW5kYm94LXdoZW4tYWxsb3dlZC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNCArMSw0IEBACi1BTEVSVDogRkFJTAorQUxFUlQ6IFBBU1MKIFRvIHJ1biB0aGlz
IHRlc3Qgb3V0c2lkZSBvZiBEdW1wUmVuZGVyVHJlZSwgcGxlYXNlIGRpc2FibGUgeW91ciBwb3B1
cCBibG9ja2VyIQogCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9w
dXAtYWxsb3dlZC1ieS1zYW5kYm94LXdoZW4tYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdo
ZW4tYWxsb3dlZC5odG1sCShyZXZpc2lvbiA5OTIyOCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvcG9wdXAtYWxsb3dlZC1ieS1zYW5kYm94LXdoZW4tYWxsb3dlZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNyBAQAogPHNjcmlwdD4KIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldENsb3NlUmVtYWluaW5nV2luZG93c1doZW5Db21wbGV0ZSh0cnVlKTsKIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>