<?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>155438</bug_id>
          
          <creation_ts>2016-03-14 07:48:08 -0700</creation_ts>
          <short_desc>Need to distinguish between Symbol() and Symbol(&quot;&quot;).</short_desc>
          <delta_ts>2016-03-14 16:20:47 -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>JavaScriptCore</component>
          <version>WebKit 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>
          
          <blocked>155437</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1174452</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 07:48:08 -0700</bug_when>
    <thetext>While toString of both Symbol() and Symbol(&quot;&quot;) yields &quot;Symbol()&quot;, Function.name should yield &quot;&quot; and &quot;[]&quot; respectively.  Hence, we need to tell between the two.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174454</commentid>
    <comment_count>1</comment_count>
      <attachid>273973</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 07:56:35 -0700</bug_when>
    <thetext>Created attachment 273973
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174501</commentid>
    <comment_count>2</comment_count>
      <attachid>273973</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-03-14 09:53:06 -0700</bug_when>
    <thetext>Comment on attachment 273973
proposed patch.

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

Can we use some mechanism other than a new flag to indicate that the Symbol is null? How about setting m_data8/m_data16 to nullptr?

&gt; Source/WTF/wtf/text/StringImpl.h:305
&gt; +        CreateEmptySymbol = StringEmptySymbol

There&apos;s no need to make this enumeration equal another enumeration. This would be clearer without the =.

In String and StringImpl, we call String(&quot;&quot;) &quot;empty&quot; and we call String() &quot;null&quot;.

Therefore, this new kind of Symbol is the *null* Symbol, not the empty Symbol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174740</commentid>
    <comment_count>3</comment_count>
      <attachid>274034</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 15:17:47 -0700</bug_when>
    <thetext>Created attachment 274034
proposed patch applying Geoff&apos;s feedback.

(In reply to comment #2)
&gt; Can we use some mechanism other than a new flag to indicate that the Symbol
&gt; is null? How about setting m_data8/m_data16 to nullptr?

There are lot of assertions in StringImpl that suggests that it is an expected invariant that m_data8 / m_data16 are never null.  That said, there is a better implementation that I can use that does not require changing the flags i.e. to use a singleton null StringImpl.

&gt; &gt; Source/WTF/wtf/text/StringImpl.h:305
&gt; &gt; +        CreateEmptySymbol = StringEmptySymbol
&gt; 
&gt; There&apos;s no need to make this enumeration equal another enumeration. This
&gt; would be clearer without the =.

Removed in the new patch.

&gt; In String and StringImpl, we call String(&quot;&quot;) &quot;empty&quot; and we call String()
&gt; &quot;null&quot;.
&gt; 
&gt; Therefore, this new kind of Symbol is the *null* Symbol, not the empty
&gt; Symbol.

&quot;Symbol()&quot; being called &quot;empty&quot; preceded this patch.  My new patch will rename SymbolEmpty to be a NullSymbol.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174760</commentid>
    <comment_count>4</comment_count>
      <attachid>274034</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-03-14 15:48:29 -0700</bug_when>
    <thetext>Comment on attachment 274034
proposed patch applying Geoff&apos;s feedback.

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

&gt; Source/WTF/wtf/text/StringStatics.cpp:46
&gt; +    static NeverDestroyed&lt;StringImpl&gt;nullString(ConstructEmptyString);

style: space between &quot;&gt;&quot; and &quot;n&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174782</commentid>
    <comment_count>5</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 16:17:04 -0700</bug_when>
    <thetext>Thanks for the review.

The mac test failure was pre-existing: See https://build.webkit.org/builders/Apple%20El%20Capitan%20Debug%20WK1%20%28Tests%29/builds/3689.

I&apos;ll land shortly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1174784</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-03-14 16:20:47 -0700</bug_when>
    <thetext>Landed in r198168: &lt;http://trac.webkit.org/r198168&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>273973</attachid>
            <date>2016-03-14 07:56:35 -0700</date>
            <delta_ts>2016-03-14 15:17:47 -0700</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-155438.patch</filename>
            <type>text/plain</type>
            <size>7776</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hh
bmdlTG9nCShyZXZpc2lvbiAxOTgxMjYpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDMxIEBACisyMDE2LTAzLTE0ICBNYXJrIExhbSAgPG1hcmsubGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBOZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gU3ltYm9s
KCkgYW5kIFN5bWJvbCgiIikuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTU0MzgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBXaGlsZSB0b1N0cmluZyBvZiBib3RoIFN5bWJvbCgpIGFuZCBTeW1ib2woIiIp
IHlpZWxkcyAiU3ltYm9sKCkiLCBGdW5jdGlvbi5uYW1lCisgICAgICAgIHNob3VsZCB5aWVsZCAi
IiBhbmQgIltdIiByZXNwZWN0aXZlbHkuICBIZW5jZSwgd2UgbmVlZCB0byB0ZWxsIGJldHdlZW4g
dGhlIHR3by4KKyAgICAgICAgVGhpcyBmdW5jdGlvbmFsaXR5IHdpbGwgYmUgbmVlZGVkIChhbmQg
Y2FuIG9ubHkgYmUgdGVzdGVkKSBsYXRlciBpbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NDM3LgorCisgICAgICAgIFdlIGFjaGlldmUgdGhpcyBi
eSBzZXR0aW5nIGFub3RoZXIgZmxhZyBpbiB0aGUgdW5kZXJseWluZyBTdHJpbmdJbXBsIHRvIGlu
ZGljYXRlCisgICAgICAgIGlmIHRoZSBzeW1ib2wgaXMgZW1wdHkuCisKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlKToK
KyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sKToKKyAgICAgICAgKFdURjo6
U3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sRW1wdHkpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBs
Ojpjb250YWluc09ubHlXaGl0ZXNwYWNlKToKKyAgICAgICAgKiB3dGYvdGV4dC9TdHJpbmdJbXBs
Lmg6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OlN0cmluZ0ltcGwpOgorICAgICAgICAoV1RG
OjpTdHJpbmdJbXBsOjpzdHJpbmdLaW5kKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6aXNF
bXB0eVN5bWJvbCk6CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmlzU3ltYm9sKToKKyAgICAg
ICAgKFdURjo6U3RyaW5nSW1wbDo6aXNBdG9taWMpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBs
OjpzZXRJc0F0b21pYyk6CisKIDIwMTYtMDMtMTMgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJv
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgRU5BQkxFKEVTNl9URU1QTEFURV9MSVRFUkFM
X1NZTlRBWCkgZ3VhcmRzCkluZGV4OiBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0cmluZ0ltcGwuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHJldmlz
aW9uIDE5ODEyNikKKysrIFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1wbC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI5MSw3ICsyOTEsNyBAQCBSZWY8U3RyaW5nSW1wbD4gU3RyaW5nSW1wbDo6
Y3JlYXRlKGNvbnN0CiAgICAgcmV0dXJuIGNyZWF0ZShzdHJpbmcsIGxlbmd0aCk7CiB9CiAKLVJl
ZjxTeW1ib2xJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTeW1ib2woUGFzc1JlZlB0cjxTdHJpbmdJ
bXBsPiByZXApCitSZWY8U3ltYm9sSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sKFBhc3NS
ZWZQdHI8U3RyaW5nSW1wbD4gcmVwLCBDcmVhdGVTeW1ib2xUYWcgc3ltYm9sVGFnKQogewogICAg
IFN0cmluZ0ltcGwqIG93bmVyUmVwID0gKHJlcC0+YnVmZmVyT3duZXJzaGlwKCkgPT0gQnVmZmVy
U3Vic3RyaW5nKSA/IHJlcC0+c3Vic3RyaW5nQnVmZmVyKCkgOiByZXAuZ2V0KCk7CiAKQEAgLTMw
MiwxMyArMzAyLDE4IEBAIFJlZjxTeW1ib2xJbXBsPiBTdHJpbmdJbXBsOjpjcmVhdGVTeW1ib2wK
ICAgICAvLyA0LiB0aGUgcGxhY2Vob2xkZXIgZm9yIHN5bWJvbCBhd2FyZSBoYXNoIHZhbHVlIChh
bGxvY2F0ZWQgc2l6ZSBpcyBwb2ludGVyIHNpemUsIGJ1dCBvbmx5IDQgYnl0ZXMgYXJlIHVzZWQp
CiAgICAgU3RyaW5nSW1wbCogc3RyaW5nSW1wbCA9IHN0YXRpY19jYXN0PFN0cmluZ0ltcGwqPihm
YXN0TWFsbG9jKGFsbG9jYXRpb25TaXplPFN0cmluZ0ltcGwqPigzKSkpOwogICAgIGlmIChyZXAt
PmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCpuZXcgKE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9sLCBy
ZXAtPm1fZGF0YTgsIHJlcC0+bGVuZ3RoKCksIG93bmVyUmVwKSkpOwotICAgIHJldHVybiBhZG9w
dFJlZihzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1wbCkg
U3RyaW5nSW1wbChDcmVhdGVTeW1ib2wsIHJlcC0+bV9kYXRhMTYsIHJlcC0+bGVuZ3RoKCksIG93
bmVyUmVwKSkpOworICAgICAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8U3ltYm9sSW1w
bCY+KCpuZXcgKE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0cmluZ0ltcGwoc3ltYm9sVGFnLCByZXAt
Pm1fZGF0YTgsIHJlcC0+bGVuZ3RoKCksIG93bmVyUmVwKSkpOworICAgIHJldHVybiBhZG9wdFJl
ZihzdGF0aWNfY2FzdDxTeW1ib2xJbXBsJj4oKm5ldyAoTm90TnVsbCwgc3RyaW5nSW1wbCkgU3Ry
aW5nSW1wbChzeW1ib2xUYWcsIHJlcC0+bV9kYXRhMTYsIHJlcC0+bGVuZ3RoKCksIG93bmVyUmVw
KSkpOworfQorCitSZWY8U3ltYm9sSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sKFBhc3NS
ZWZQdHI8U3RyaW5nSW1wbD4gcmVwKQoreworICAgIHJldHVybiBjcmVhdGVTeW1ib2wocmVwLCBD
cmVhdGVTeW1ib2wpOwogfQogCiBSZWY8U3ltYm9sSW1wbD4gU3RyaW5nSW1wbDo6Y3JlYXRlU3lt
Ym9sRW1wdHkoKQogewotICAgIHJldHVybiBjcmVhdGVTeW1ib2woZW1wdHkoKSk7CisgICAgcmV0
dXJuIGNyZWF0ZVN5bWJvbChlbXB0eSgpLCBDcmVhdGVFbXB0eVN5bWJvbCk7CiB9CiAKIGJvb2wg
U3RyaW5nSW1wbDo6Y29udGFpbnNPbmx5V2hpdGVzcGFjZSgpCkluZGV4OiBTb3VyY2UvV1RGL3d0
Zi90ZXh0L1N0cmluZ0ltcGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaAkocmV2aXNpb24gMTk4MTI2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCwxNCArMTQ4LDE1IEBAIHByaXZhdGU6CiAg
ICAgfTsKIAogICAgIC8vIFRoZSBib3R0b20gNiBiaXRzIGluIHRoZSBoYXNoIGFyZSBmbGFncy4K
LSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19mbGFnQ291bnQgPSA2OworICAgIHN0YXRpYyBj
b25zdCB1bnNpZ25lZCBzX2ZsYWdDb3VudCA9IDc7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVk
IHNfZmxhZ01hc2sgPSAoMXUgPDwgc19mbGFnQ291bnQpIC0gMTsKICAgICBDT01QSUxFX0FTU0VS
VChzX2ZsYWdDb3VudCA8PSBTdHJpbmdIYXNoZXI6OmZsYWdDb3VudCwgU3RyaW5nSGFzaGVyX3Jl
c2VydmVzX2Vub3VnaF9iaXRzX2Zvcl9TdHJpbmdJbXBsX2ZsYWdzKTsKICAgICBzdGF0aWMgY29u
c3QgdW5zaWduZWQgc19mbGFnU3RyaW5nS2luZENvdW50ID0gNDsKIAogICAgIHN0YXRpYyBjb25z
dCB1bnNpZ25lZCBzX2hhc2hGbGFnU3RyaW5nS2luZElzQXRvbWljID0gMXUgPDwgKHNfZmxhZ1N0
cmluZ0tpbmRDb3VudCk7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaEZsYWdTdHJp
bmdLaW5kSXNTeW1ib2wgPSAxdSA8PCAoc19mbGFnU3RyaW5nS2luZENvdW50ICsgMSk7Ci0gICAg
c3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaE1hc2tTdHJpbmdLaW5kID0gc19oYXNoRmxhZ1N0
cmluZ0tpbmRJc0F0b21pYyB8IHNfaGFzaEZsYWdTdHJpbmdLaW5kSXNTeW1ib2w7CisgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaEZsYWdTdHJpbmdLaW5kSXNFbXB0eVN5bWJvbCA9IDF1
IDw8IChzX2ZsYWdTdHJpbmdLaW5kQ291bnQgKyAyKTsKKyAgICBzdGF0aWMgY29uc3QgdW5zaWdu
ZWQgc19oYXNoTWFza1N0cmluZ0tpbmQgPSBzX2hhc2hGbGFnU3RyaW5nS2luZElzQXRvbWljIHwg
c19oYXNoRmxhZ1N0cmluZ0tpbmRJc1N5bWJvbCB8IHNfaGFzaEZsYWdTdHJpbmdLaW5kSXNFbXB0
eVN5bWJvbDsKICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19oYXNoRmxhZzhCaXRCdWZmZXIg
PSAxdSA8PCAzOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX2hhc2hGbGFnRGlkUmVwb3J0
Q29zdCA9IDF1IDw8IDI7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHNfaGFzaE1hc2tCdWZm
ZXJPd25lcnNoaXAgPSAoMXUgPDwgMCkgfCAoMXUgPDwgMSk7CkBAIC0xNjQsNiArMTY1LDcgQEAg
cHJpdmF0ZToKICAgICAgICAgU3RyaW5nTm9ybWFsID0gMHUsIC8vIG5vbi1zeW1ib2wsIG5vbi1h
dG9taWMKICAgICAgICAgU3RyaW5nQXRvbWljID0gc19oYXNoRmxhZ1N0cmluZ0tpbmRJc0F0b21p
YywgLy8gbm9uLXN5bWJvbCwgYXRvbWljCiAgICAgICAgIFN0cmluZ1N5bWJvbCA9IHNfaGFzaEZs
YWdTdHJpbmdLaW5kSXNTeW1ib2wsIC8vIHN5bWJvbCwgbm9uLWF0b21pYworICAgICAgICBTdHJp
bmdFbXB0eVN5bWJvbCA9IHNfaGFzaEZsYWdTdHJpbmdLaW5kSXNFbXB0eVN5bWJvbCwgLy8gZW1w
dHkgc3ltYm9sLCBub24tYXRvbWljCiAgICAgfTsKIAogICAgIC8vIFVzZWQgdG8gY29uc3RydWN0
IHN0YXRpYyBzdHJpbmdzLCB3aGljaCBoYXZlIGFuIHNwZWNpYWwgcmVmQ291bnQgdGhhdCBjYW4g
bmV2ZXIgaGl0IHplcm8uCkBAIC0yOTgsMTMgKzMwMCwxNiBAQCBwcml2YXRlOgogICAgICAgICBT
VFJJTkdfU1RBVFNfQUREXzE2QklUX1NUUklORzIobV9sZW5ndGgsIHRydWUpOwogICAgIH0KIAot
ICAgIGVudW0gQ3JlYXRlU3ltYm9sVGFnIHsgQ3JlYXRlU3ltYm9sIH07CisgICAgZW51bSBDcmVh
dGVTeW1ib2xUYWcgeworICAgICAgICBDcmVhdGVTeW1ib2wgPSBTdHJpbmdTeW1ib2wsCisgICAg
ICAgIENyZWF0ZUVtcHR5U3ltYm9sID0gU3RyaW5nRW1wdHlTeW1ib2wKKyAgICB9OwogICAgIC8v
IFVzZWQgdG8gY3JlYXRlIG5ldyBzeW1ib2wgc3RyaW5ncyB0aGF0IGhvbGRzIGV4aXN0aW5nIDgt
Yml0IFtbRGVzY3JpcHRpb25dXSBzdHJpbmcgYXMgYSBzdWJzdHJpbmcgYnVmZmVyIChCdWZmZXJT
dWJzdHJpbmcpLgotICAgIFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9sVGFnLCBjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGJhc2Up
CisgICAgU3RyaW5nSW1wbChDcmVhdGVTeW1ib2xUYWcgc3ltYm9sVGFnLCBjb25zdCBMQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoLCBQYXNzUmVmUHRyPFN0cmluZ0ltcGw+IGJhc2Up
CiAgICAgICAgIDogbV9yZWZDb3VudChzX3JlZkNvdW50SW5jcmVtZW50KQogICAgICAgICAsIG1f
bGVuZ3RoKGxlbmd0aCkKICAgICAgICAgLCBtX2RhdGE4KGNoYXJhY3RlcnMpCi0gICAgICAgICwg
bV9oYXNoQW5kRmxhZ3Moc19oYXNoRmxhZzhCaXRCdWZmZXIgfCBTdHJpbmdTeW1ib2wgfCBCdWZm
ZXJTdWJzdHJpbmcpCisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3Moc19oYXNoRmxhZzhCaXRCdWZm
ZXIgfCBzeW1ib2xUYWcgfCBCdWZmZXJTdWJzdHJpbmcpCiAgICAgewogICAgICAgICBBU1NFUlQo
aXM4Qml0KCkpOwogICAgICAgICBBU1NFUlQobV9kYXRhOCk7CkBAIC0zMTgsMTEgKzMyMywxMSBA
QCBwcml2YXRlOgogICAgIH0KIAogICAgIC8vIFVzZWQgdG8gY3JlYXRlIG5ldyBzeW1ib2wgc3Ry
aW5ncyB0aGF0IGhvbGRzIGV4aXN0aW5nIDE2LWJpdCBbW0Rlc2NyaXB0aW9uXV0gc3RyaW5nIGFz
IGEgc3Vic3RyaW5nIGJ1ZmZlciAoQnVmZmVyU3Vic3RyaW5nKS4KLSAgICBTdHJpbmdJbXBsKENy
ZWF0ZVN5bWJvbFRhZywgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBiYXNlKQorICAgIFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9s
VGFnIHN5bWJvbFRhZywgY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCwg
UGFzc1JlZlB0cjxTdHJpbmdJbXBsPiBiYXNlKQogICAgICAgICA6IG1fcmVmQ291bnQoc19yZWZD
b3VudEluY3JlbWVudCkKICAgICAgICAgLCBtX2xlbmd0aChsZW5ndGgpCiAgICAgICAgICwgbV9k
YXRhMTYoY2hhcmFjdGVycykKLSAgICAgICAgLCBtX2hhc2hBbmRGbGFncyhTdHJpbmdTeW1ib2wg
fCBCdWZmZXJTdWJzdHJpbmcpCisgICAgICAgICwgbV9oYXNoQW5kRmxhZ3Moc3ltYm9sVGFnIHwg
QnVmZmVyU3Vic3RyaW5nKQogICAgIHsKICAgICAgICAgQVNTRVJUKCFpczhCaXQoKSk7CiAgICAg
ICAgIEFTU0VSVChtX2RhdGExNik7CkBAIC00ODIsNyArNDg3LDggQEAgcHVibGljOgogICAgIFdU
Rl9FWFBPUlRfU1RSSU5HX0FQSSBzaXplX3Qgc2l6ZUluQnl0ZXMoKSBjb25zdDsKIAogICAgIFN0
cmluZ0tpbmQgc3RyaW5nS2luZCgpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PFN0cmluZ0tp
bmQ+KG1faGFzaEFuZEZsYWdzICYgc19oYXNoTWFza1N0cmluZ0tpbmQpOyB9Ci0gICAgYm9vbCBp
c1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdzICYgc19oYXNoRmxhZ1N0cmlu
Z0tpbmRJc1N5bWJvbDsgfQorICAgIGJvb2wgaXNFbXB0eVN5bWJvbCgpIGNvbnN0IHsgcmV0dXJu
IG1faGFzaEFuZEZsYWdzICYgc19oYXNoRmxhZ1N0cmluZ0tpbmRJc0VtcHR5U3ltYm9sOyB9Cisg
ICAgYm9vbCBpc1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdzICYgKHNfaGFz
aEZsYWdTdHJpbmdLaW5kSXNTeW1ib2wgfCBzX2hhc2hGbGFnU3RyaW5nS2luZElzRW1wdHlTeW1i
b2wpOyB9CiAgICAgYm9vbCBpc0F0b21pYygpIGNvbnN0IHsgcmV0dXJuIG1faGFzaEFuZEZsYWdz
ICYgc19oYXNoRmxhZ1N0cmluZ0tpbmRJc0F0b21pYzsgfQogCiAgICAgdm9pZCBzZXRJc0F0b21p
Yyhib29sIGlzQXRvbWljKQpAQCAtODY0LDYgKzg3MCw4IEBAIHByaXZhdGU6CiAgICAgV1RGX0VY
UE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nhc2UoKSBjb25zdDsK
ICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHVuc2lnbmVkIG5leHRIYXNoRm9yU3ltYm9s
KCk7CiAKKyAgICBzdGF0aWMgUmVmPFN5bWJvbEltcGw+IGNyZWF0ZVN5bWJvbChQYXNzUmVmUHRy
PFN0cmluZ0ltcGw+IHJlcCwgQ3JlYXRlU3ltYm9sVGFnKTsKKwogICAgIC8vIFRoZSBib3R0b20g
Yml0IGluIHRoZSByZWYgY291bnQgaW5kaWNhdGVzIGEgc3RhdGljIChpbW1vcnRhbCkgc3RyaW5n
LgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50RmxhZ0lzU3RhdGljU3RyaW5n
ID0gMHgxOwogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBzX3JlZkNvdW50SW5jcmVtZW50ID0g
MHgyOyAvLyBUaGlzIGFsbG93cyB1cyB0byByZWYgLyBkZXJlZiB3aXRob3V0IGRpc3R1cmJpbmcg
dGhlIHN0YXRpYyBzdHJpbmcgZmxhZy4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>274034</attachid>
            <date>2016-03-14 15:17:47 -0700</date>
            <delta_ts>2016-03-14 15:48:29 -0700</delta_ts>
            <desc>proposed patch applying Geoff&apos;s feedback.</desc>
            <filename>bug-155438.patch</filename>
            <type>text/plain</type>
            <size>9169</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MTQ2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDE2LTAzLTE0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBO
ZWVkIHRvIGRpc3Rpbmd1aXNoIGJldHdlZW4gU3ltYm9sKCkgYW5kIFN5bWJvbCgiIikuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTU0MzgKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvUHJp
dmF0ZU5hbWUuaDoKKyAgICAgICAgKEpTQzo6UHJpdmF0ZU5hbWU6OlByaXZhdGVOYW1lKToKKwog
MjAxNi0wMy0xNCAgU2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBh
c3NpZ25tZW50cyBpbiBmb3ItaW4vZm9yLW9mIGhlYWRlciBub3QgYWxsb3dlZApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvUHJpdmF0ZU5hbWUuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcml2YXRlTmFtZS5oCShyZXZpc2lvbiAxOTgx
NDYpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcml2YXRlTmFtZS5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBKU0MgewogY2xhc3MgUHJpdmF0ZU5h
bWUgewogcHVibGljOgogICAgIFByaXZhdGVOYW1lKCkKLSAgICAgICAgOiBtX3VpZChTdHJpbmdJ
bXBsOjpjcmVhdGVTeW1ib2xFbXB0eSgpKQorICAgICAgICA6IG1fdWlkKFN0cmluZ0ltcGw6OmNy
ZWF0ZU51bGxTeW1ib2woKSkKICAgICB7CiAgICAgfQogCkluZGV4OiBTb3VyY2UvV1RGL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV1RGL0NoYW5nZUxvZwkocmV2aXNpb24gMTk4MTQ2
KQorKysgU291cmNlL1dURi9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzMiBA
QAorMjAxNi0wMy0xNCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAg
TmVlZCB0byBkaXN0aW5ndWlzaCBiZXR3ZWVuIFN5bWJvbCgpIGFuZCBTeW1ib2woIiIpLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NDM4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2hpbGUgdG9TdHJp
bmcgb2YgYm90aCBTeW1ib2woKSBhbmQgU3ltYm9sKCIiKSB5aWVsZHMgIlN5bWJvbCgpIiwgRnVu
Y3Rpb24ubmFtZQorICAgICAgICBzaG91bGQgeWllbGQgIiIgYW5kICJbXSIgcmVzcGVjdGl2ZWx5
LiAgSGVuY2UsIHdlIG5lZWQgdG8gdGVsbCBiZXR3ZWVuIHRoZSB0d28uCisgICAgICAgIFRoaXMg
ZnVuY3Rpb25hbGl0eSB3aWxsIGJlIG5lZWRlZCBsYXRlciBpbiBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NDM3LgorCisgICAgICAgIFdlIGFjaGlldmUgdGhpcyBi
eSBjcmVhdGluZyBhbm90aGVyIHNpbmdsZXRvbiBpbnN0YW5jZSBsaWtlIHRoZSBlbXB0eSBTdHJp
bmdJbXBsCisgICAgICAgIGFzIHRoZSBudWxsIFN0cmluZ0ltcGwuICBpc051bGxTeW1ib2woKSB0
ZXN0cyBpZiB0aGUgU3RyaW5naW1wbCBpbnN0YW5jZSBpcyBhCisgICAgICAgIHN5bWJvbCwgYW5k
IGl0cyBzdWJzdHJpbmcgaXMgdGhlIG51bGwoKSBzaW5nbGV0b24uCisKKyAgICAgICAgKiB3dGYv
dGV4dC9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlU3lt
Ym9sKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6Y3JlYXRlTnVsbFN5bWJvbCk6CisgICAg
ICAgIChXVEY6OlN0cmluZ0ltcGw6OmNvbnRhaW5zT25seVdoaXRlc3BhY2UpOgorICAgICAgICAo
V1RGOjpTdHJpbmdJbXBsOjpjcmVhdGVTeW1ib2xFbXB0eSk6IERlbGV0ZWQuCisgICAgICAgICog
d3RmL3RleHQvU3RyaW5nSW1wbC5oOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjp0cnlDcmVh
dGVVbmluaXRpYWxpemVkKToKKyAgICAgICAgKFdURjo6U3RyaW5nSW1wbDo6c3RyaW5nS2luZCk6
CisgICAgICAgIChXVEY6OlN0cmluZ0ltcGw6OmlzU3ltYm9sKToKKyAgICAgICAgKFdURjo6U3Ry
aW5nSW1wbDo6aXNBdG9taWMpOgorICAgICAgICAoV1RGOjpTdHJpbmdJbXBsOjppc051bGxTeW1i
b2wpOgorICAgICAgICAqIHd0Zi90ZXh0L1N0cmluZ1N0YXRpY3MuY3BwOgorICAgICAgICAoV1RG
OjpTdHJpbmdJbXBsOjpudWxsKToKKwogMjAxNi0wMy0xMyAgSm9zZXBoIFBlY29yYXJvICA8cGVj
b3Jhcm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBFTkFCTEUoRVM2X1RFTVBMQVRFX0xJ
VEVSQUxfU1lOVEFYKSBndWFyZHMKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQvU3RyaW5nSW1w
bC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAko
cmV2aXNpb24gMTk4MTQ2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzA2LDkgKzMwNiw5IEBAIFJlZjxTeW1ib2xJbXBsPiBTdHJpbmdJ
bXBsOjpjcmVhdGVTeW1ib2wKICAgICByZXR1cm4gYWRvcHRSZWYoc3RhdGljX2Nhc3Q8U3ltYm9s
SW1wbCY+KCpuZXcgKE5vdE51bGwsIHN0cmluZ0ltcGwpIFN0cmluZ0ltcGwoQ3JlYXRlU3ltYm9s
LCByZXAtPm1fZGF0YTE2LCByZXAtPmxlbmd0aCgpLCBvd25lclJlcCkpKTsKIH0KIAotUmVmPFN5
bWJvbEltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZVN5bWJvbEVtcHR5KCkKK1JlZjxTeW1ib2xJbXBs
PiBTdHJpbmdJbXBsOjpjcmVhdGVOdWxsU3ltYm9sKCkKIHsKLSAgICByZXR1cm4gY3JlYXRlU3lt
Ym9sKGVtcHR5KCkpOworICAgIHJldHVybiBjcmVhdGVTeW1ib2wobnVsbCgpKTsKIH0KIAogYm9v
bCBTdHJpbmdJbXBsOjpjb250YWluc09ubHlXaGl0ZXNwYWNlKCkKSW5kZXg6IFNvdXJjZS9XVEYv
d3RmL3RleHQvU3RyaW5nSW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oCShyZXZpc2lvbiAxOTgxNDYpCisrKyBTb3VyY2UvV1RGL3d0Zi90ZXh0L1N0
cmluZ0ltcGwuaAkod29ya2luZyBjb3B5KQpAQCAtNDA4LDcgKzQwOCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgcmV0dXJuIGNvbnN0cnVjdEludGVybmFsPFQ+KHJlc3VsdEltcGwsIGxlbmd0aCk7CiAg
ICAgfQogCi0gICAgV1RGX0VYUE9SVF9TVFJJTkdfQVBJIHN0YXRpYyBSZWY8U3ltYm9sSW1wbD4g
Y3JlYXRlU3ltYm9sRW1wdHkoKTsKKyAgICBXVEZfRVhQT1JUX1NUUklOR19BUEkgc3RhdGljIFJl
ZjxTeW1ib2xJbXBsPiBjcmVhdGVOdWxsU3ltYm9sKCk7CiAgICAgV1RGX0VYUE9SVF9TVFJJTkdf
QVBJIHN0YXRpYyBSZWY8U3ltYm9sSW1wbD4gY3JlYXRlU3ltYm9sKFBhc3NSZWZQdHI8U3RyaW5n
SW1wbD4gcmVwKTsKIAogICAgIC8vIFJlYWxsb2NhdGUgdGhlIFN0cmluZ0ltcGwuIFRoZSBvcmln
aW5hbFN0cmluZyBtdXN0IGJlIG9ubHkgb3duZWQgYnkgdGhlIFBhc3NSZWZQdHIsCkBAIC00ODQs
NiArNDg0LDcgQEAgcHVibGljOgogICAgIFN0cmluZ0tpbmQgc3RyaW5nS2luZCgpIGNvbnN0IHsg
cmV0dXJuIHN0YXRpY19jYXN0PFN0cmluZ0tpbmQ+KG1faGFzaEFuZEZsYWdzICYgc19oYXNoTWFz
a1N0cmluZ0tpbmQpOyB9CiAgICAgYm9vbCBpc1N5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIG1faGFz
aEFuZEZsYWdzICYgc19oYXNoRmxhZ1N0cmluZ0tpbmRJc1N5bWJvbDsgfQogICAgIGJvb2wgaXNB
dG9taWMoKSBjb25zdCB7IHJldHVybiBtX2hhc2hBbmRGbGFncyAmIHNfaGFzaEZsYWdTdHJpbmdL
aW5kSXNBdG9taWM7IH0KKyAgICBib29sIGlzTnVsbFN5bWJvbCgpIGNvbnN0IHsgcmV0dXJuIGlz
U3ltYm9sKCkgJiYgKHN1YnN0cmluZ0J1ZmZlcigpID09IG51bGwoKSk7IH0KIAogICAgIHZvaWQg
c2V0SXNBdG9taWMoYm9vbCBpc0F0b21pYykKICAgICB7CkBAIC04NjMsNiArODY0LDcgQEAgcHJp
dmF0ZToKICAgICB0ZW1wbGF0ZSA8dHlwZW5hbWUgQ2hhclR5cGU+IHN0YXRpYyBSZWY8U3RyaW5n
SW1wbD4gY3JlYXRlSW50ZXJuYWwoY29uc3QgQ2hhclR5cGUqLCB1bnNpZ25lZCk7CiAgICAgV1RG
X0VYUE9SVF9QUklWQVRFIE5FVkVSX0lOTElORSB1bnNpZ25lZCBoYXNoU2xvd0Nhc2UoKSBjb25z
dDsKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHVuc2lnbmVkIG5leHRIYXNoRm9yU3lt
Ym9sKCk7CisgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBTdHJpbmdJbXBsKiBudWxsKCk7
CiAKICAgICAvLyBUaGUgYm90dG9tIGJpdCBpbiB0aGUgcmVmIGNvdW50IGluZGljYXRlcyBhIHN0
YXRpYyAoaW1tb3J0YWwpIHN0cmluZy4KICAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgc19yZWZD
b3VudEZsYWdJc1N0YXRpY1N0cmluZyA9IDB4MTsKSW5kZXg6IFNvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nU3RhdGljcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dURi93dGYvdGV4dC9TdHJp
bmdTdGF0aWNzLmNwcAkocmV2aXNpb24gMTk4MTQ2KQorKysgU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdTdGF0aWNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLgorICogQ29w
eXJpZ2h0IChDKSAyMDEwLCAyMDE2IEFwcGxlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC4KICAq
CiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNiArNDEsMTIgQEAKIAogbmFtZXNw
YWNlIFdURiB7CiAKK1N0cmluZ0ltcGwqIFN0cmluZ0ltcGw6Om51bGwoKQoreworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmdJbXBsPm51bGxTdHJpbmcoQ29uc3RydWN0RW1wdHlTdHJp
bmcpOworICAgIHJldHVybiAmbnVsbFN0cmluZy5nZXQoKTsKK30KKwogU3RyaW5nSW1wbCogU3Ry
aW5nSW1wbDo6ZW1wdHkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmdJbXBs
PiBlbXB0eVN0cmluZyhDb25zdHJ1Y3RFbXB0eVN0cmluZyk7CkluZGV4OiBUb29scy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxOTgxNjApCisrKyBU
b29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxNi0wMy0x
NCAgTWFyayBMYW0gIDxtYXJrLmxhbUBhcHBsZS5jb20+CisKKyAgICAgICAgTmVlZCB0byBkaXN0
aW5ndWlzaCBiZXR3ZWVuIFN5bWJvbCgpIGFuZCBTeW1ib2woIiIpLgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU1NDM4CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dU
Ri9TdHJpbmdJbXBsLmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAg
ICAtIFRlc3QgdGhhdCB0aGUgYSBzeW1ib2wgd2l0aCBhbiBlbXB0eSBzdHJpbmcgaXMgbm90IGVx
dWl2YWxlbnQgdG8gYSBudWxsIHN5bWJvbC4gCisKIDIwMTYtMDMtMTQgIERhdmlkIEtpbHplciAg
PGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYmxhbmsgbGluZXMgYWZ0ZXIg
I2luY2x1ZGUgImNvbmZpZy5oIgpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XVEYv
U3RyaW5nSW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
VEYvU3RyaW5nSW1wbC5jcHAJKHJldmlzaW9uIDE5ODE0NikKKysrIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV1RGL1N0cmluZ0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBA
QAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTIsIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC01MTMsMTAgKzUxMywx
MSBAQCBURVNUKFdURiwgU3RyaW5nSW1wbEVuZHNXaXRoSWdub3JpbmdBU0NJCiAgICAgQVNTRVJU
X0ZBTFNFKGVtcHR5LT5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCpyZWZlcmVuY2UuZ2V0KCkp
KTsKIH0KIAotVEVTVChXVEYsIFN0cmluZ0ltcGxDcmVhdGVTeW1ib2xFbXB0eSkKK1RFU1QoV1RG
LCBTdHJpbmdJbXBsQ3JlYXRlTnVsbFN5bWJvbCkKIHsKLSAgICBSZWZQdHI8U3RyaW5nSW1wbD4g
cmVmZXJlbmNlID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sRW1wdHkoKTsKKyAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gcmVmZXJlbmNlID0gU3RyaW5nSW1wbDo6Y3JlYXRlTnVsbFN5bWJvbCgpOwog
ICAgIEFTU0VSVF9UUlVFKHJlZmVyZW5jZS0+aXNTeW1ib2woKSk7CisgICAgQVNTRVJUX1RSVUUo
cmVmZXJlbmNlLT5pc051bGxTeW1ib2woKSk7CiAgICAgQVNTRVJUX0ZBTFNFKHJlZmVyZW5jZS0+
aXNBdG9taWMoKSk7CiAgICAgQVNTRVJUX0VRKDB1LCByZWZlcmVuY2UtPmxlbmd0aCgpKTsKICAg
ICBBU1NFUlRfVFJVRShlcXVhbChyZWZlcmVuY2UuZ2V0KCksICIiKSk7CkBAIC01MjcsMTEgKzUy
OCwyMyBAQCBURVNUKFdURiwgU3RyaW5nSW1wbENyZWF0ZVN5bWJvbCkKICAgICBSZWZQdHI8U3Ry
aW5nSW1wbD4gb3JpZ2luYWwgPSBzdHJpbmdGcm9tVVRGOCgib3JpZ2luYWwiKTsKICAgICBSZWZQ
dHI8U3RyaW5nSW1wbD4gcmVmZXJlbmNlID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sKG9yaWdp
bmFsKTsKICAgICBBU1NFUlRfVFJVRShyZWZlcmVuY2UtPmlzU3ltYm9sKCkpOworICAgIEFTU0VS
VF9GQUxTRShyZWZlcmVuY2UtPmlzTnVsbFN5bWJvbCgpKTsKICAgICBBU1NFUlRfRkFMU0UocmVm
ZXJlbmNlLT5pc0F0b21pYygpKTsKICAgICBBU1NFUlRfRkFMU0Uob3JpZ2luYWwtPmlzU3ltYm9s
KCkpOwogICAgIEFTU0VSVF9GQUxTRShvcmlnaW5hbC0+aXNBdG9taWMoKSk7CiAgICAgQVNTRVJU
X0VRKG9yaWdpbmFsLT5sZW5ndGgoKSwgcmVmZXJlbmNlLT5sZW5ndGgoKSk7CiAgICAgQVNTRVJU
X1RSVUUoZXF1YWwocmVmZXJlbmNlLmdldCgpLCAib3JpZ2luYWwiKSk7CisKKyAgICBSZWZQdHI8
U3RyaW5nSW1wbD4gZW1wdHkgPSBzdHJpbmdGcm9tVVRGOCgiIik7CisgICAgUmVmUHRyPFN0cmlu
Z0ltcGw+IGVtcHR5UmVmZXJlbmNlID0gU3RyaW5nSW1wbDo6Y3JlYXRlU3ltYm9sKGVtcHR5KTsK
KyAgICBBU1NFUlRfVFJVRShlbXB0eVJlZmVyZW5jZS0+aXNTeW1ib2woKSk7CisgICAgQVNTRVJU
X0ZBTFNFKGVtcHR5UmVmZXJlbmNlLT5pc051bGxTeW1ib2woKSk7CisgICAgQVNTRVJUX0ZBTFNF
KGVtcHR5UmVmZXJlbmNlLT5pc0F0b21pYygpKTsKKyAgICBBU1NFUlRfRkFMU0UoZW1wdHktPmlz
U3ltYm9sKCkpOworICAgIEFTU0VSVF9GQUxTRShlbXB0eS0+aXNOdWxsU3ltYm9sKCkpOworICAg
IEFTU0VSVF9UUlVFKGVtcHR5LT5pc0F0b21pYygpKTsKKyAgICBBU1NFUlRfRVEoZW1wdHktPmxl
bmd0aCgpLCBlbXB0eVJlZmVyZW5jZS0+bGVuZ3RoKCkpOworICAgIEFTU0VSVF9UUlVFKGVxdWFs
KGVtcHR5UmVmZXJlbmNlLmdldCgpLCAiIikpOwogfQogCiBURVNUKFdURiwgU3RyaW5nSW1wbFN5
bWJvbFRvQXRvbWljU3RyaW5nKQpAQCAtNTQ4LDkgKzU2MSw5IEBAIFRFU1QoV1RGLCBTdHJpbmdJ
bXBsU3ltYm9sVG9BdG9taWNTdHJpbmcKICAgICBBU1NFUlRfRkFMU0UocmVmZXJlbmNlLT5pc0F0
b21pYygpKTsKIH0KIAotVEVTVChXVEYsIFN0cmluZ0ltcGxTeW1ib2xFbXB0eVRvQXRvbWljU3Ry
aW5nKQorVEVTVChXVEYsIFN0cmluZ0ltcGxOdWxsU3ltYm9sVG9BdG9taWNTdHJpbmcpCiB7Ci0g
ICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlZmVyZW5jZSA9IFN0cmluZ0ltcGw6OmNyZWF0ZVN5bWJv
bEVtcHR5KCk7CisgICAgUmVmUHRyPFN0cmluZ0ltcGw+IHJlZmVyZW5jZSA9IFN0cmluZ0ltcGw6
OmNyZWF0ZU51bGxTeW1ib2woKTsKICAgICBBU1NFUlRfVFJVRShyZWZlcmVuY2UtPmlzU3ltYm9s
KCkpOwogICAgIEFTU0VSVF9GQUxTRShyZWZlcmVuY2UtPmlzQXRvbWljKCkpOwogCg==
</data>
<flag name="review"
          id="298545"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>