<?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>170879</bug_id>
          
          <creation_ts>2017-04-15 17:39:36 -0700</creation_ts>
          <short_desc>test262: test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js</short_desc>
          <delta_ts>2017-04-16 10:37:48 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Joseph Pecoraro">joepeck</reporter>
          <assigned_to name="Joseph Pecoraro">joepeck</assigned_to>
          <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1297709</commentid>
    <comment_count>0</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 17:39:36 -0700</bug_when>
    <thetext>test262/test/built-ins/Object/getOwnPropertyNames/15.2.3.4-4-44.js

Boils down to:

  var str = new String(&quot;abc&quot;);
  str[5] = &quot;d&quot;;
  print( Object.getOwnPropertyNames(str) )

Expected:
[&apos;0&apos;, &apos;1&apos;, &apos;2&apos;, &apos;5&apos;, &apos;length&apos;]

Actual:
[&apos;0&apos;, &apos;1&apos;, &apos;2&apos;, &apos;length&apos;, &apos;5&apos;]

Index Properties should be before Non-Index properties.

Notes:
- Chrome and Firefox pass the test
- Edge passes the test but mixes up the order of non-Index properties which should be ordered by insertion order (length, ...)

Spec:

19.1.2.9 Object.getOwnPropertyNames ( O )
https://tc39.github.io/ecma262/#sec-object.getownpropertynames

&gt; 1. Return ? GetOwnPropertyKeys(O, String).

19.1.2.10.1 Runtime Semantics: GetOwnPropertyKeys ( O, Type )
https://tc39.github.io/ecma262/#sec-getownpropertykeys

&gt; 1. Let obj be ? ToObject(O).
&gt; 2. Let keys be ? obj.[[OwnPropertyKeys]]().
&gt;   ...

9.4.3.3 String exotic object [[OwnPropertyKeys]]
https://tc39.github.io/ecma262/#sec-string-exotic-objects-ownpropertykeys

&gt; 1. Let keys be a new empty List.
&gt; 2. Let str be the String value of O.[[StringData]].
&gt; 3. Let len be the number of elements in str.
&gt; 4. For each integer i starting with 0 such that i &lt; len, in ascending order, do
&gt;   a. Add ! ToString(i) as the last element of keys.
&gt; 5. For each own property key P of O such that P is an integer index and ToInteger(P) ≥ len, in ascending numeric index order, do
&gt;   a. Add P as the last element of keys.
&gt; 6. For each own property key P of O such that Type(P) is String and P is not an integer index, in ascending chronological order of property creation, do
&gt;   a. Add P as the last element of keys.
&gt; 7. For each own property key P of O such that Type(P) is Symbol, in ascending chronological order of property creation, do
&gt;   a. Add P as the last element of keys.
&gt; 8. Return keys.

The important bits here are (4) and (5) say add the Indices first. (6) properties in ascending order.

So I&apos;d expect something like:

    var str = new String(&quot;abc&quot;);
    str.bar = &quot;baz&quot;;
    str[999] = &quot;d&quot;;
    Object.getOwnPropertyNames(str); // [&apos;0&apos;, &apos;1&apos;, &apos;2&apos;, &apos;999&apos;, &apos;length&apos;, &apos;bar&apos;]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297711</commentid>
    <comment_count>1</comment_count>
      <attachid>307209</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 17:47:18 -0700</bug_when>
    <thetext>Created attachment 307209
[PATCH] Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297712</commentid>
    <comment_count>2</comment_count>
      <attachid>307209</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 17:49:59 -0700</bug_when>
    <thetext>Comment on attachment 307209
[PATCH] Proposed Fix

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

&gt; LayoutTests/js/Object-getOwnPropertyNames-expected.txt:20
&gt; +PASS getSortedOwnPropertyNames((function(){var x=new String(&apos;abc&apos;);x.bar=&apos;baz&apos;;x[999]=&apos;d&apos;;return x;})()) is [&apos;0&apos;, &apos;1&apos;, &apos;2&apos;, &apos;999&apos;, &apos;bar&apos;, &apos;length&apos;]

Unfortunately this test sorts the order, so the actual exact order I&apos;d expect is:

    &apos;0&apos;, &apos;1&apos;, &apos;2&apos;, &apos;999&apos;, &apos;bar&apos;, &apos;length&apos;

I can extend this test to test the exact order.

&gt; Source/JavaScriptCore/runtime/StringObject.cpp:168
&gt; -    return JSObject::getOwnPropertyNames(thisObject, exec, propertyNames, mode);
&gt; +    return JSObject::getOwnNonIndexPropertyNames(thisObject, exec, propertyNames, mode);

I&apos;ve always found it kind of weird that we explicitly use the use the base class name instead of just doing &quot;Base::methodName(...)&quot;. If the base class were to ever change, all this code using the explicit name would need to change. I kept the existing style, but I&apos;m open to making this the more explicit &quot;Base::&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297717</commentid>
    <comment_count>3</comment_count>
      <attachid>307212</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 18:17:16 -0700</bug_when>
    <thetext>Created attachment 307212
[PATCH] Proposed Fix

Rebaselined ChakraCore test results. Order improvement!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297720</commentid>
    <comment_count>4</comment_count>
      <attachid>307214</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2017-04-15 19:22:05 -0700</bug_when>
    <thetext>Created attachment 307214
[PATCH] Proposed Fix

Rebaselined on trunk</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297768</commentid>
    <comment_count>5</comment_count>
      <attachid>307214</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-04-16 10:09:58 -0700</bug_when>
    <thetext>Comment on attachment 307214
[PATCH] Proposed Fix

LGTM</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297776</commentid>
    <comment_count>6</comment_count>
      <attachid>307214</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-16 10:37:46 -0700</bug_when>
    <thetext>Comment on attachment 307214
[PATCH] Proposed Fix

Clearing flags on attachment: 307214

Committed r215400: &lt;http://trac.webkit.org/changeset/215400&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1297777</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-16 10:37:48 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307209</attachid>
            <date>2017-04-15 17:47:18 -0700</date>
            <delta_ts>2017-04-15 18:17:16 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>getOwnPropertyNames-1.patch</filename>
            <type>text/plain</type>
            <size>7360</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hhbmdlTG9nIGIvSlNUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NGZlZTliMDhhNDYuLjkxZDM1YTI4NDlmIDEwMDY0NAotLS0gYS9KU1Rlc3RzL0NoYW5nZUxvZwor
KysgYi9KU1Rlc3RzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDE3LTA0LTE1ICBKb3Nl
cGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2MjogdGVz
dDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy8xNS4yLjMuNC00
LTQ0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
NzA4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHRlc3QyNjIueWFtbDoKKworMjAxNy0wNC0xNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9A
YXBwbGUuY29tPgorCiAgICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHBy
ZXNzaW9ucy90YWdnZWQtdGVtcGxhdGUvdGVtcGxhdGUtb2JqZWN0LmpzCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4NzgKIApkaWZmIC0tZ2l0IGEv
SlNUZXN0cy90ZXN0MjYyLnlhbWwgYi9KU1Rlc3RzL3Rlc3QyNjIueWFtbAppbmRleCA0ZDA3N2Zm
YmFiYS4uNDFiNWYzMzU3ZjggMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvdGVzdDI2Mi55YW1sCisrKyBi
L0pTVGVzdHMvdGVzdDI2Mi55YW1sCkBAIC0zMjYyNiw5ICszMjYyNiw5IEBACiAtIHBhdGg6IHRl
c3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvMTUuMi4zLjQt
NC00My5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJd
LCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3du
UHJvcGVydHlOYW1lcy8xNS4yLjMuNC00LTQ0LmpzCi0gIGNtZDogcnVuVGVzdDI2MiA6ZmFpbCwg
Ik5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8u
Li8uLi9oYXJuZXNzL3N0YS5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL2NvbXBhcmVBcnJheS5q
cyJdLCBbXQorICBjbWQ6IHJ1blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8u
Li8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyIs
ICIuLi8uLi8uLi8uLi9oYXJuZXNzL2NvbXBhcmVBcnJheS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0
MjYyL3Rlc3QvYnVpbHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eU5hbWVzLzE1LjIuMy40LTQt
NDQuanMKLSAgY21kOiBydW5UZXN0MjYyIDpmYWlsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4u
Ly4uL2hhcm5lc3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIiwgIi4u
Ly4uLy4uLy4uL2hhcm5lc3MvY29tcGFyZUFycmF5LmpzIl0sIFs6c3RyaWN0XQorICBjbWQ6IHJ1
blRlc3QyNjIgOm5vcm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fz
c2VydC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyIsICIuLi8uLi8uLi8uLi9oYXJu
ZXNzL2NvbXBhcmVBcnJheS5qcyJdLCBbOnN0cmljdF0KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1
aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy8xNS4yLjMuNC00LTQ1LmpzCiAgIGNt
ZDogcnVuVGVzdDI2MiA6bm9ybWFsLCAiTm9FeGNlcHRpb24iLCBbIi4uLy4uLy4uLy4uL2hhcm5l
c3MvYXNzZXJ0LmpzIiwgIi4uLy4uLy4uLy4uL2hhcm5lc3Mvc3RhLmpzIl0sIFtdCiAtIHBhdGg6
IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvMTUuMi4z
LjQtNC00NS5qcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDFkMmY2YjVmYmVkLi5kNjAyMGM1OTEyMyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDE3LTA0LTE1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5j
b20+CisKKyAgICAgICAgdGVzdDI2MjogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0
T3duUHJvcGVydHlOYW1lcy8xNS4yLjMuNC00LTQ0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGpzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWdldE93blBy
b3BlcnR5TmFtZXMuanM6CisKIDIwMTctMDQtMTMgIFNhYW0gQmFyYXRpICA8c2JhcmF0aUBhcHBs
ZS5jb20+CiAKICAgICAgICAgV2ViQXNzZW1ibHk6IFdlIHNob3VsZCBiZSBhYmxlIHRvIHBvc3RN
ZXNzYWdlIGEgSlNXZWJBc3NlbWJseU1vZHVsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvanMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvanMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IDkxZThkYWUxMmRk
Li4zODIzMGNlNzAwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdldE93blBy
b3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL09iamVjdC1nZXRP
d25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtMTcsNiArMTcsNyBAQCBQQVNTIGdldFNv
cnRlZE93blByb3BlcnR5TmFtZXMobmV3IFN0cmluZygnJykpIGlzIFsnbGVuZ3RoJ10KIFBBU1Mg
Z2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3RyaW5nKCdhJykpIGlzIFsnMCcsICdsZW5n
dGgnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJpbmcoJ2FiYycpKSBp
cyBbJzAnLCAnMScsICcyJywgJ2xlbmd0aCddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFN0cmluZygnJyk7eC5fX3Byb3RvX189WzEsMiwzXTty
ZXR1cm4geDt9KSgpKSBpcyBbJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFt
ZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFN0cmluZygnYWJjJyk7eC5iYXI9J2Jheic7eFs5OTld
PSdkJztyZXR1cm4geDt9KSgpKSBpcyBbJzAnLCAnMScsICcyJywgJzk5OScsICdiYXInLCAnbGVu
Z3RoJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbXSkgaXMgWydsZW5ndGgnXQog
UEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFtudWxsXSkgaXMgWycwJywgJ2xlbmd0aCdd
CiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoW251bGwsbnVsbF0pIGlzIFsnMCcsJzEn
LCAnbGVuZ3RoJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmpl
Y3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9P
YmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCAzODY0MzhkNjQxOS4uMWQ4ZTg5MzZj
MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3QtZ2V0T3du
UHJvcGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0
LWdldE93blByb3BlcnR5TmFtZXMuanMKQEAgLTE5LDYgKzE5LDcgQEAgdmFyIGV4cGVjdGVkUHJv
cGVydHlOYW1lc1NldCA9IHsKICAgICAibmV3IFN0cmluZygnYScpIjogIlsnMCcsICdsZW5ndGgn
XSIsCiAgICAgIm5ldyBTdHJpbmcoJ2FiYycpIjogIlsnMCcsICcxJywgJzInLCAnbGVuZ3RoJ10i
LAogICAgICIoZnVuY3Rpb24oKXt2YXIgeD1uZXcgU3RyaW5nKCcnKTt4Ll9fcHJvdG9fXz1bMSwy
LDNdO3JldHVybiB4O30pKCkiOiAiWydsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigpe3ZhciB4
PW5ldyBTdHJpbmcoJ2FiYycpO3guYmFyPSdiYXonO3hbOTk5XT0nZCc7cmV0dXJuIHg7fSkoKSI6
ICJbJzAnLCAnMScsICcyJywgJzk5OScsICdiYXInLCAnbGVuZ3RoJ10iLAogLy8gQXJyYXkgb2Jq
ZWN0cwogICAgICJbXSI6ICJbJ2xlbmd0aCddIiwKICAgICAiW251bGxdIjogIlsnMCcsICdsZW5n
dGgnXSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCAzODZhZDRjYzNlZS4uMGYyMWJlYjc4
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE3LTA0LTE1
ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAgdGVzdDI2
MjogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy8xNS4y
LjMuNC00LTQ0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzA4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9TdHJpbmdP
YmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFt
ZXMpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmdldE93bk5vbkluZGV4UHJvcGVydHlO
YW1lcyk6CisgICAgICAgIEVuc3VyZSAnbGVuZ3RoJyBjb21lcyBhZnRlciBhbGwgaW5kZXhlZCBw
cm9wZXJ0aWVzIGJ5IG1vdmluZworICAgICAgICBpdCBvdXQgdG8gdGhlIGdldE93bk5vbkluZGV4
UHJvcGVydHlOYW1lcyBtZXRob2Qgd2hpY2ggaXMgY2FsbGVkCisgICAgICAgIGluc2lkZSBvZiBn
ZXRPd25Qcm9wZXJ0eU5hbWVzIGFmdGVyIEpTT2JqZWN0IGhhbmRsZXMgaW5kaWNlcy4KKworMjAx
Ny0wNC0xNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAgICAgICAg
IHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy90YWdnZWQtdGVtcGxh
dGUvdGVtcGxhdGUtb2JqZWN0LmpzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzA4NzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5jcHAKaW5kZXggMTliYzMzMmVkNjAuLjVlNzdlZDZkY2M4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAgLTE1Nyw5
ICsxNTcsMTUgQEAgdm9pZCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXIKICAgICAgICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tKGV4ZWMsIGkpKTsKICAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworfQor
Cit2b2lkIFN0cmluZ09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFt
ZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQoreworICAgIFN0cmluZ09iamVjdCogdGhpc09iamVj
dCA9IGpzQ2FzdDxTdHJpbmdPYmplY3QqPihvYmplY3QpOwogICAgIGlmIChtb2RlLmluY2x1ZGVE
b250RW51bVByb3BlcnRpZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhlYy0+cHJv
cGVydHlOYW1lcygpLmxlbmd0aCk7Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBTdHJpbmdPYmplY3QqIGNvbnN0cnVjdFN0cmlu
ZyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgc3RyaW5nKQpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0Lmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRleCA2MGNi
NjFmZWExZS4uMjRmZmYwMGFkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1l
L1N0cmluZ09iamVjdC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBKU19FWFBPUlRf
UFJJVkFURSBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3RhdGUqLCBQ
cm9wZXJ0eU5hbWUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRlbGV0ZVBy
b3BlcnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUp
OwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0aW9uTW9k
ZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZ2V0T3duTm9uSW5kZXhQcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkmLCBFbnVt
ZXJhdGlvbk1vZGUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRlZmluZU93
blByb3BlcnR5KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKIAogICAgIERFQ0xBUkVfRVhQT1JU
X0lORk87Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307212</attachid>
            <date>2017-04-15 18:17:16 -0700</date>
            <delta_ts>2017-04-15 19:22:05 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>StringObject.cpp</filename>
            <type>text/plain</type>
            <size>7244</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">LyoKICogIENvcHlyaWdodCAoQykgMTk5OS0yMDAxIEhhcnJpIFBvcnRlbiAocG9ydGVuQGtkZS5v
cmcpCiAqICBDb3B5cmlnaHQgKEMpIDIwMDQtMjAwOCwgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAqCiAqICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAqICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9m
IHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCiAqICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBi
eSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKICogIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KICoKICog
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAogKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKICogIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCiAqICBMZXNzZXIgR2VuZXJhbCBQdWJsaWMg
TGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVk
IGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYwogKiAgTGljZW5zZSBhbG9u
ZyB3aXRoIHRoaXMgbGlicmFyeTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQog
KiAgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9z
dG9uLCBNQSAgMDIxMTAtMTMwMSAgVVNBCiAqCiAqLwoKI2luY2x1ZGUgImNvbmZpZy5oIgojaW5j
bHVkZSAiU3RyaW5nT2JqZWN0LmgiCgojaW5jbHVkZSAiRXJyb3IuaCIKI2luY2x1ZGUgIkpTR2xv
YmFsT2JqZWN0LmgiCiNpbmNsdWRlICJKU0NJbmxpbmVzLmgiCiNpbmNsdWRlICJQcm9wZXJ0eU5h
bWVBcnJheS5oIgoKbmFtZXNwYWNlIEpTQyB7CgpTVEFUSUNfQVNTRVJUX0lTX1RSSVZJQUxMWV9E
RVNUUlVDVElCTEUoU3RyaW5nT2JqZWN0KTsKCmNvbnN0IENsYXNzSW5mbyBTdHJpbmdPYmplY3Q6
OnNfaW5mbyA9IHsgIlN0cmluZyIsICZKU1dyYXBwZXJPYmplY3Q6OnNfaW5mbywgMCwgQ1JFQVRF
X01FVEhPRF9UQUJMRShTdHJpbmdPYmplY3QpIH07CgpTdHJpbmdPYmplY3Q6OlN0cmluZ09iamVj
dChWTSYgdm0sIFN0cnVjdHVyZSogc3RydWN0dXJlKQogICAgOiBKU1dyYXBwZXJPYmplY3Qodm0s
IHN0cnVjdHVyZSkKewp9Cgp2b2lkIFN0cmluZ09iamVjdDo6ZmluaXNoQ3JlYXRpb24oVk0mIHZt
LCBKU1N0cmluZyogc3RyaW5nKQp7CiAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7CiAgICBB
U1NFUlQoaW5oZXJpdHModm0sIGluZm8oKSkpOwogICAgc2V0SW50ZXJuYWxWYWx1ZSh2bSwgc3Ry
aW5nKTsKfQoKYm9vbCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCog
Y2VsbCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCnsKICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxTdHJp
bmdPYmplY3QqPihjZWxsKTsKICAgIGlmICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmdl
dFN0cmluZ1Byb3BlcnR5U2xvdChleGVjLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgIHJl
dHVybiB0cnVlOwogICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgZXhlYywgcHJvcGVydHlOYW1lLCBzbG90KTsKfQogICAgCmJvb2wgU3RyaW5nT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
ZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCnsKICAgIFN0
cmluZ09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxTdHJpbmdPYmplY3QqPihvYmplY3QpOwog
ICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFsVmFsdWUoKS0+Z2V0U3RyaW5nUHJvcGVydHlTbG90
KGV4ZWMsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgcmV0dXJuIHRydWU7ICAgIAogICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgZXhlYywgSWRl
bnRpZmllcjo6ZnJvbShleGVjLCBwcm9wZXJ0eU5hbWUpLCBzbG90KTsKfQoKYm9vbCBTdHJpbmdP
YmplY3Q6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBzbG90KQp7CiAgICBW
TSYgdm0gPSBleGVjLT52bSgpOwogICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
dm0pOwoKICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9IGpzQ2FzdDxTdHJpbmdPYmplY3Qq
PihjZWxsKTsKCiAgICBpZiAoVU5MSUtFTFkoaXNUaGlzVmFsdWVBbHRlcmVkKHNsb3QsIHRoaXNP
YmplY3QpKSkgewogICAgICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgICAgICByZXR1cm4gb3JkaW5h
cnlTZXRTbG93KGV4ZWMsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QudGhp
c1ZhbHVlKCksIHNsb3QuaXNTdHJpY3RNb2RlKCkpOwogICAgfQoKICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKQogICAgICAgIHJldHVybiB0eXBlRXJyb3Io
ZXhlYywgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIEFTQ0lJTGl0ZXJhbChSZWFkb25seVBy
b3BlcnR5V3JpdGVFcnJvcikpOwogICAgaWYgKHN0ZDo6b3B0aW9uYWw8dWludDMyX3Q+IGluZGV4
ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgc2NvcGUucmVsZWFzZSgpOwog
ICAgICAgIHJldHVybiBwdXRCeUluZGV4KGNlbGwsIGV4ZWMsIGluZGV4LnZhbHVlKCksIHZhbHVl
LCBzbG90LmlzU3RyaWN0TW9kZSgpKTsKICAgIH0KICAgIHNjb3BlLnJlbGVhc2UoKTsKICAgIHJl
dHVybiBKU09iamVjdDo6cHV0KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qp
Owp9Cgpib29sIFN0cmluZ09iamVjdDo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogZXhlYywgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3Vs
ZFRocm93KQp7CiAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgYXV0byBzY29wZSA9IERFQ0xB
UkVfVEhST1dfU0NPUEUodm0pOwoKICAgIFN0cmluZ09iamVjdCogdGhpc09iamVjdCA9IGpzQ2Fz
dDxTdHJpbmdPYmplY3QqPihjZWxsKTsKICAgIGlmICh0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVl
KCktPmNhbkdldEluZGV4KHByb3BlcnR5TmFtZSkpCiAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihl
eGVjLCBzY29wZSwgc2hvdWxkVGhyb3csIEFTQ0lJTGl0ZXJhbChSZWFkb25seVByb3BlcnR5V3Jp
dGVFcnJvcikpOwogICAgc2NvcGUucmVsZWFzZSgpOwogICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRC
eUluZGV4KGNlbGwsIGV4ZWMsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNob3VsZFRocm93KTsKfQoK
c3RhdGljIGJvb2wgaXNTdHJpbmdPd25Qcm9wZXJ0eShFeGVjU3RhdGUqIGV4ZWMsIFN0cmluZ09i
amVjdCogb2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQp7CiAgICBpZiAocHJvcGVy
dHlOYW1lID09IGV4ZWMtPnByb3BlcnR5TmFtZXMoKS5sZW5ndGgpCiAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICBpZiAoc3RkOjpvcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHBy
b3BlcnR5TmFtZSkpIHsKICAgICAgICBpZiAob2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmNhbkdl
dEluZGV4KGluZGV4LnZhbHVlKCkpKQogICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgIH0KICAg
IHJldHVybiBmYWxzZTsKfQoKYm9vbCBTdHJpbmdPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29sIHRocm93RXhjZXB0
aW9uKQp7CiAgICBWTSYgdm0gPSBleGVjLT52bSgpOwogICAgYXV0byBzY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUodm0pOwogICAgU3RyaW5nT2JqZWN0KiB0aGlzT2JqZWN0ID0ganNDYXN0PFN0
cmluZ09iamVjdCo+KG9iamVjdCk7CgogICAgaWYgKGlzU3RyaW5nT3duUHJvcGVydHkoZXhlYywg
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgIC8vIFRoZSBjdXJyZW50IFByb3Bl
cnR5RGVzY3JpcHRvciBpcyBhbHdheXMKICAgICAgICAvLyBQcm9wZXJ0eURlc2NyaXB0b3J7W1tW
YWx1ZV1dOiB2YWx1ZSwgW1tXcml0YWJsZV1dOiBmYWxzZSwgW1tFbnVtZXJhYmxlXV06IHRydWUs
IFtbQ29uZmlndXJhYmxlXV06IGZhbHNlfS4KICAgICAgICAvLyBUaGlzIGVuc3VyZXMgdGhhdCBh
bnkgcHJvcGVydHkgZGVzY3JpcHRvciBjYW5ub3QgY2hhbmdlIHRoZSBleGlzdGluZyBvbmUuCiAg
ICAgICAgLy8gSGVyZSwgc2ltcGx5IHJldHVybiB0aGUgcmVzdWx0IG9mIHZhbGlkYXRlQW5kQXBw
bHlQcm9wZXJ0eURlc2NyaXB0b3IuCiAgICAgICAgLy8gaHR0cHM6Ly90YzM5LmdpdGh1Yi5pby9l
Y21hMjYyLyNzZWMtc3RyaW5nLWV4b3RpYy1vYmplY3RzLWdldG93bnByb3BlcnR5LXAKICAgICAg
ICBQcm9wZXJ0eURlc2NyaXB0b3IgY3VycmVudDsKICAgICAgICBib29sIGlzQ3VycmVudERlZmlu
ZWQgPSB0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZXhlYywgcHJvcGVydHlO
YW1lLCBjdXJyZW50KTsKICAgICAgICBBU1NFUlQoaXNDdXJyZW50RGVmaW5lZCk7CiAgICAgICAg
Ym9vbCBpc0V4dGVuc2libGUgPSB0aGlzT2JqZWN0LT5pc0V4dGVuc2libGUoZXhlYyk7CiAgICAg
ICAgUkVUVVJOX0lGX0VYQ0VQVElPTihzY29wZSwgZmFsc2UpOwogICAgICAgIHNjb3BlLnJlbGVh
c2UoKTsKICAgICAgICByZXR1cm4gdmFsaWRhdGVBbmRBcHBseVByb3BlcnR5RGVzY3JpcHRvcihl
eGVjLCBudWxscHRyLCBwcm9wZXJ0eU5hbWUsIGlzRXh0ZW5zaWJsZSwgZGVzY3JpcHRvciwgaXND
dXJyZW50RGVmaW5lZCwgY3VycmVudCwgdGhyb3dFeGNlcHRpb24pOwogICAgfQoKICAgIHNjb3Bl
LnJlbGVhc2UoKTsKICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgdGhyb3dFeGNlcHRpb24pOwp9Cgpib29sIFN0
cmluZ09iamVjdDo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIGV4ZWMs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCnsKICAgIFN0cmluZ09iamVjdCogdGhpc09iamVj
dCA9IGpzQ2FzdDxTdHJpbmdPYmplY3QqPihjZWxsKTsKICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0g
ZXhlYy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCkKICAgICAgICByZXR1cm4gZmFsc2U7CiAgICBz
dGQ6Om9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsK
ICAgIGlmIChpbmRleCAmJiB0aGlzT2JqZWN0LT5pbnRlcm5hbFZhbHVlKCktPmNhbkdldEluZGV4
KGluZGV4LnZhbHVlKCkpKQogICAgICAgIHJldHVybiBmYWxzZTsKICAgIHJldHVybiBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgZXhlYywgcHJvcGVydHlOYW1lKTsKfQoKYm9v
bCBTdHJpbmdPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogZXhlYywgdW5zaWduZWQgaSkKewogICAgU3RyaW5nT2JqZWN0KiB0aGlzT2JqZWN0ID0g
anNDYXN0PFN0cmluZ09iamVjdCo+KGNlbGwpOwogICAgaWYgKHRoaXNPYmplY3QtPmludGVybmFs
VmFsdWUoKS0+Y2FuR2V0SW5kZXgoaSkpCiAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgZXhlYywgaSk7Cn0K
CnZvaWQgU3RyaW5nT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQp7CiAgICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
U3RyaW5nT2JqZWN0Kj4ob2JqZWN0KTsKICAgIGlmIChwcm9wZXJ0eU5hbWVzLmluY2x1ZGVTdHJp
bmdQcm9wZXJ0aWVzKCkpIHsKICAgICAgICBpbnQgc2l6ZSA9IHRoaXNPYmplY3QtPmludGVybmFs
VmFsdWUoKS0+bGVuZ3RoKCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kp
CiAgICAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oZXhlYywgaSkp
OwogICAgfQogICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmpl
Y3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwp9Cgp2b2lkIFN0cmluZ09iamVjdDo6Z2V0
T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhl
YywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2Rl
KQp7CiAgICBTdHJpbmdPYmplY3QqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8U3RyaW5nT2JqZWN0Kj4o
b2JqZWN0KTsKICAgIGlmIChtb2RlLmluY2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkKICAgICAg
ICBwcm9wZXJ0eU5hbWVzLmFkZChleGVjLT5wcm9wZXJ0eU5hbWVzKCkubGVuZ3RoKTsKICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4
ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwp9CgpTdHJpbmdPYmplY3QqIGNvbnN0cnVjdFN0cmlu
ZyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgc3RyaW5nKQp7
CiAgICBTdHJpbmdPYmplY3QqIG9iamVjdCA9IFN0cmluZ09iamVjdDo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QtPnN0cmluZ09iamVjdFN0cnVjdHVyZSgpKTsKICAgIG9iamVjdC0+c2V0SW50ZXJu
YWxWYWx1ZSh2bSwgc3RyaW5nKTsKICAgIHJldHVybiBvYmplY3Q7Cn0KCn0gLy8gbmFtZXNwYWNl
IEpTQwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>307214</attachid>
            <date>2017-04-15 19:22:05 -0700</date>
            <delta_ts>2017-04-16 10:37:46 -0700</delta_ts>
            <desc>[PATCH] Proposed Fix</desc>
            <filename>try-this-1.patch</filename>
            <type>text/plain</type>
            <size>7993</size>
            <attacher name="Joseph Pecoraro">joepeck</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0pTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2VzNS9lbnVtZXJhYmxlLmJhc2Vs
aW5lLWpzYyBiL0pTVGVzdHMvQ2hha3JhQ29yZS90ZXN0L2VzNS9lbnVtZXJhYmxlLmJhc2VsaW5l
LWpzYwppbmRleCAxM2FlZjY5N2VhZS4uMzc3ZTI4OGI3MzkgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMv
Q2hha3JhQ29yZS90ZXN0L2VzNS9lbnVtZXJhYmxlLmJhc2VsaW5lLWpzYworKysgYi9KU1Rlc3Rz
L0NoYWtyYUNvcmUvdGVzdC9lczUvZW51bWVyYWJsZS5iYXNlbGluZS1qc2MKQEAgLTE2OSw5ICsx
NjksOSBAQCBUeXBlRXJyb3IgOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBhY2Nlc3MgbWVjaGFuaXNt
IGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eQogICAxOiBiIGVudW1lcmFibGUKICAgMjog
YyBlbnVtZXJhYmxlCiAgIDM6IGQgZW51bWVyYWJsZQotICBsZW5ndGg6IDQKICAgNjogNiBlbnVt
ZXJhYmxlIGNvbmZpZ3VyYWJsZSB3cml0YWJsZQogICA3OiA3IGVudW1lcmFibGUKKyAgbGVuZ3Ro
OiA0CiAgIC0tLSBFbnVtZXJhdGUgLS0tCiAgIDA6IGEKICAgMTogYgpkaWZmIC0tZ2l0IGEvSlNU
ZXN0cy9DaGFuZ2VMb2cgYi9KU1Rlc3RzL0NoYW5nZUxvZwppbmRleCBhMzA2ODk1ODBlYi4uNjA0
YjAwMWQwNGYgMTAwNjQ0Ci0tLSBhL0pTVGVzdHMvQ2hhbmdlTG9nCisrKyBiL0pTVGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTctMDQtMTUgIEpvc2VwaCBQZWNvcmFybyAgPHBl
Y29yYXJvQGFwcGxlLmNvbT4KIAorICAgICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eU5hbWVzLzE1LjIuMy40LTQtNDQuanMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MDg3OQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogQ2hha3JhQ29yZS90ZXN0
L2VzNS9lbnVtZXJhYmxlLmJhc2VsaW5lLWpzYzoKKyAgICAgICAgKiB0ZXN0MjYyLnlhbWw6CisK
KzIwMTctMDQtMTUgIEpvc2VwaCBQZWNvcmFybyAgPHBlY29yYXJvQGFwcGxlLmNvbT4KKwogICAg
ICAgICB0ZXN0MjYyOiB0ZXN0MjYyL3Rlc3QvbGFuZ3VhZ2UvZXhwcmVzc2lvbnMvdGFnZ2VkLXRl
bXBsYXRlL3RlbXBsYXRlLW9iamVjdC5qcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcwODc4CiAKZGlmZiAtLWdpdCBhL0pTVGVzdHMvdGVzdDI2Mi55
YW1sIGIvSlNUZXN0cy90ZXN0MjYyLnlhbWwKaW5kZXggNGQwNzdmZmJhYmEuLjQxYjVmMzM1N2Y4
IDEwMDY0NAotLS0gYS9KU1Rlc3RzL3Rlc3QyNjIueWFtbAorKysgYi9KU1Rlc3RzL3Rlc3QyNjIu
eWFtbApAQCAtMzI2MjYsOSArMzI2MjYsOSBAQAogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVpbHQt
aW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eU5hbWVzLzE1LjIuMy40LTQtNDMuanMKICAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiXSwgWzpzdHJpY3RdCiAtIHBh
dGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMvMTUu
Mi4zLjQtNC00NC5qcwotICBjbWQ6IHJ1blRlc3QyNjIgOmZhaWwsICJOb0V4Y2VwdGlvbiIsIFsi
Li4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEu
anMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9jb21wYXJlQXJyYXkuanMiXSwgW10KKyAgY21kOiBy
dW5UZXN0MjYyIDpub3JtYWwsICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9h
c3NlcnQuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9zdGEuanMiLCAiLi4vLi4vLi4vLi4vaGFy
bmVzcy9jb21wYXJlQXJyYXkuanMiXSwgW10KIC0gcGF0aDogdGVzdDI2Mi90ZXN0L2J1aWx0LWlu
cy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1lcy8xNS4yLjMuNC00LTQ0LmpzCi0gIGNtZDogcnVu
VGVzdDI2MiA6ZmFpbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2Vy
dC5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyIsICIuLi8uLi8uLi8uLi9oYXJuZXNz
L2NvbXBhcmVBcnJheS5qcyJdLCBbOnN0cmljdF0KKyAgY21kOiBydW5UZXN0MjYyIDpub3JtYWws
ICJOb0V4Y2VwdGlvbiIsIFsiLi4vLi4vLi4vLi4vaGFybmVzcy9hc3NlcnQuanMiLCAiLi4vLi4v
Li4vLi4vaGFybmVzcy9zdGEuanMiLCAiLi4vLi4vLi4vLi4vaGFybmVzcy9jb21wYXJlQXJyYXku
anMiXSwgWzpzdHJpY3RdCiAtIHBhdGg6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dl
dE93blByb3BlcnR5TmFtZXMvMTUuMi4zLjQtNC00NS5qcwogICBjbWQ6IHJ1blRlc3QyNjIgOm5v
cm1hbCwgIk5vRXhjZXB0aW9uIiwgWyIuLi8uLi8uLi8uLi9oYXJuZXNzL2Fzc2VydC5qcyIsICIu
Li8uLi8uLi8uLi9oYXJuZXNzL3N0YS5qcyJdLCBbXQogLSBwYXRoOiB0ZXN0MjYyL3Rlc3QvYnVp
bHQtaW5zL09iamVjdC9nZXRPd25Qcm9wZXJ0eU5hbWVzLzE1LjIuMy40LTQtNDUuanMKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCAxNGJmNjAzYmY5YS4uOGYyZDlmNjM4MjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0w
NC0xNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCisgICAgICAgIHRl
c3QyNjI6IHRlc3QyNjIvdGVzdC9idWlsdC1pbnMvT2JqZWN0L2dldE93blByb3BlcnR5TmFtZXMv
MTUuMi4zLjQtNC00NC5qcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTcwODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBqcy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICoganMvc2NyaXB0LXRlc3RzL09iamVjdC1nZXRPd25Qcm9wZXJ0eU5hbWVzLmpzOgor
CiAyMDE3LTA0LTE0ICBOaWtpdGEgVmFzaWx5ZXYgIDxudmFzaWx5ZXZAYXBwbGUuY29tPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IFdlYlNvY2tldHM6IG1lc3NhZ2VzIHdpdGggbm9uLWxhdGlu
IGxldHRlcnMgYXJlIGRpc3BsYXllZCBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvanMvT2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CmluZGV4IDkxZThk
YWUxMmRkLi4zODIzMGNlNzAwZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvanMvT2JqZWN0LWdl
dE93blByb3BlcnR5TmFtZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2pzL09iamVj
dC1nZXRPd25Qcm9wZXJ0eU5hbWVzLWV4cGVjdGVkLnR4dApAQCAtMTcsNiArMTcsNyBAQCBQQVNT
IGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMobmV3IFN0cmluZygnJykpIGlzIFsnbGVuZ3RoJ10K
IFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhuZXcgU3RyaW5nKCdhJykpIGlzIFsnMCcs
ICdsZW5ndGgnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKG5ldyBTdHJpbmcoJ2Fi
YycpKSBpcyBbJzAnLCAnMScsICcyJywgJ2xlbmd0aCddCiBQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFN0cmluZygnJyk7eC5fX3Byb3RvX189WzEs
MiwzXTtyZXR1cm4geDt9KSgpKSBpcyBbJ2xlbmd0aCddCitQQVNTIGdldFNvcnRlZE93blByb3Bl
cnR5TmFtZXMoKGZ1bmN0aW9uKCl7dmFyIHg9bmV3IFN0cmluZygnYWJjJyk7eC5iYXI9J2Jheic7
eFs5OTldPSdkJztyZXR1cm4geDt9KSgpKSBpcyBbJzAnLCAnMScsICcyJywgJzk5OScsICdiYXIn
LCAnbGVuZ3RoJ10KIFBBU1MgZ2V0U29ydGVkT3duUHJvcGVydHlOYW1lcyhbXSkgaXMgWydsZW5n
dGgnXQogUEFTUyBnZXRTb3J0ZWRPd25Qcm9wZXJ0eU5hbWVzKFtudWxsXSkgaXMgWycwJywgJ2xl
bmd0aCddCiBQQVNTIGdldFNvcnRlZE93blByb3BlcnR5TmFtZXMoW251bGwsbnVsbF0pIGlzIFsn
MCcsJzEnLCAnbGVuZ3RoJ10KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0
cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcyBiL0xheW91dFRlc3RzL2pzL3NjcmlwdC10
ZXN0cy9PYmplY3QtZ2V0T3duUHJvcGVydHlOYW1lcy5qcwppbmRleCAzODY0MzhkNjQxOS4uMWQ4
ZTg5MzZjMzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2pzL3NjcmlwdC10ZXN0cy9PYmplY3Qt
Z2V0T3duUHJvcGVydHlOYW1lcy5qcworKysgYi9MYXlvdXRUZXN0cy9qcy9zY3JpcHQtdGVzdHMv
T2JqZWN0LWdldE93blByb3BlcnR5TmFtZXMuanMKQEAgLTE5LDYgKzE5LDcgQEAgdmFyIGV4cGVj
dGVkUHJvcGVydHlOYW1lc1NldCA9IHsKICAgICAibmV3IFN0cmluZygnYScpIjogIlsnMCcsICds
ZW5ndGgnXSIsCiAgICAgIm5ldyBTdHJpbmcoJ2FiYycpIjogIlsnMCcsICcxJywgJzInLCAnbGVu
Z3RoJ10iLAogICAgICIoZnVuY3Rpb24oKXt2YXIgeD1uZXcgU3RyaW5nKCcnKTt4Ll9fcHJvdG9f
Xz1bMSwyLDNdO3JldHVybiB4O30pKCkiOiAiWydsZW5ndGgnXSIsCisgICAgIihmdW5jdGlvbigp
e3ZhciB4PW5ldyBTdHJpbmcoJ2FiYycpO3guYmFyPSdiYXonO3hbOTk5XT0nZCc7cmV0dXJuIHg7
fSkoKSI6ICJbJzAnLCAnMScsICcyJywgJzk5OScsICdiYXInLCAnbGVuZ3RoJ10iLAogLy8gQXJy
YXkgb2JqZWN0cwogICAgICJbXSI6ICJbJ2xlbmd0aCddIiwKICAgICAiW251bGxdIjogIlsnMCcs
ICdsZW5ndGgnXSIsCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9n
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBmYWZlNjNjZDllZC4uOTdk
MmZmNmM3YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIwIEBACiAyMDE3
LTA0LTE1ICBKb3NlcGggUGVjb3Jhcm8gIDxwZWNvcmFyb0BhcHBsZS5jb20+CiAKKyAgICAgICAg
dGVzdDI2MjogdGVzdDI2Mi90ZXN0L2J1aWx0LWlucy9PYmplY3QvZ2V0T3duUHJvcGVydHlOYW1l
cy8xNS4yLjMuNC00LTQ0LmpzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzA4NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIHJ1bnRpbWUvU3RyaW5nT2JqZWN0Lmg6CisgICAgICAgICogcnVudGltZS9T
dHJpbmdPYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMpOgorICAgICAgICAoSlNDOjpTdHJpbmdPYmplY3Q6OmdldE93bk5vbkluZGV4UHJv
cGVydHlOYW1lcyk6CisgICAgICAgIEVuc3VyZSAnbGVuZ3RoJyBjb21lcyBhZnRlciBhbGwgaW5k
ZXhlZCBwcm9wZXJ0aWVzIGJ5IG1vdmluZworICAgICAgICBpdCBvdXQgdG8gdGhlIGdldE93bk5v
bkluZGV4UHJvcGVydHlOYW1lcyBtZXRob2Qgd2hpY2ggaXMgY2FsbGVkCisgICAgICAgIGluc2lk
ZSBvZiBnZXRPd25Qcm9wZXJ0eU5hbWVzIGFmdGVyIEpTT2JqZWN0IGhhbmRsZXMgaW5kaWNlcy4K
KworMjAxNy0wNC0xNSAgSm9zZXBoIFBlY29yYXJvICA8cGVjb3Jhcm9AYXBwbGUuY29tPgorCiAg
ICAgICAgIHRlc3QyNjI6IHRlc3QyNjIvdGVzdC9sYW5ndWFnZS9leHByZXNzaW9ucy90YWdnZWQt
dGVtcGxhdGUvdGVtcGxhdGUtb2JqZWN0LmpzCiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzA4NzgKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvU3RyaW5nT2JqZWN0LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5jcHAKaW5kZXggMTliYzMzMmVkNjAuLjVlNzdlZDZkY2M4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5jcHAKQEAg
LTE1Nyw5ICsxNTcsMTUgQEAgdm9pZCBTdHJpbmdPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBleGVjLCBQcm9wZXIKICAgICAgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBzaXplOyArK2kpCiAgICAgICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJ
ZGVudGlmaWVyOjpmcm9tKGV4ZWMsIGkpKTsKICAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OworfQorCit2b2lkIFN0cmluZ09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQoreworICAgIFN0cmluZ09iamVjdCogdGhp
c09iamVjdCA9IGpzQ2FzdDxTdHJpbmdPYmplY3QqPihvYmplY3QpOwogICAgIGlmIChtb2RlLmlu
Y2x1ZGVEb250RW51bVByb3BlcnRpZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoZXhl
Yy0+cHJvcGVydHlOYW1lcygpLmxlbmd0aCk7Ci0gICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duTm9uSW5kZXhQcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3Qs
IGV4ZWMsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBTdHJpbmdPYmplY3QqIGNvbnN0cnVj
dFN0cmluZyhWTSYgdm0sIEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTVmFsdWUgc3Ry
aW5nKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RyaW5nT2Jq
ZWN0LmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJpbmdPYmplY3QuaAppbmRl
eCA2MGNiNjFmZWExZS4uMjRmZmYwMGFkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ydW50aW1lL1N0cmluZ09iamVjdC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cmluZ09iamVjdC5oCkBAIC01NCw2ICs1NCw3IEBAIHB1YmxpYzoKICAgICBKU19F
WFBPUlRfUFJJVkFURSBzdGF0aWMgYm9vbCBkZWxldGVQcm9wZXJ0eShKU0NlbGwqLCBFeGVjU3Rh
dGUqLCBQcm9wZXJ0eU5hbWUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRl
bGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqLCBFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0
eU5hbWUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyB2b2lkIGdldE93blByb3BlcnR5
TmFtZXMoSlNPYmplY3QqLCBFeGVjU3RhdGUqLCBQcm9wZXJ0eU5hbWVBcnJheSYsIEVudW1lcmF0
aW9uTW9kZSk7CisgICAgSlNfRVhQT1JUX1BSSVZBVEUgc3RhdGljIHZvaWQgZ2V0T3duTm9uSW5k
ZXhQcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lQXJyYXkm
LCBFbnVtZXJhdGlvbk1vZGUpOwogICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRpYyBib29sIGRl
ZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiwgRXhlY1N0YXRlKiwgUHJvcGVydHlOYW1lLCBjb25z
dCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHNob3VsZFRocm93KTsKIAogICAgIERFQ0xBUkVf
RVhQT1JUX0lORk87Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>