<?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>3999</bug_id>
          
          <creation_ts>2005-07-14 10:41:02 -0700</creation_ts>
          <short_desc>Object.prototype is missing propertyIsEnumerable</short_desc>
          <delta_ts>2005-12-04 15:31:16 -0800</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>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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="Geoffrey Garen">ggaren</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>14653</commentid>
    <comment_count>0</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-07-14 10:41:02 -0700</bug_when>
    <thetext>Section 15.2.4 of ECMA-262</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25517</commentid>
    <comment_count>1</comment_count>
      <attachid>4942</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-12-04 13:32:08 -0800</bug_when>
    <thetext>Created attachment 4942
Implement propertyIsEnumerable</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25525</commentid>
    <comment_count>2</comment_count>
      <attachid>4942</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-04 13:42:06 -0800</bug_when>
    <thetext>Comment on attachment 4942
Implement propertyIsEnumerable

isPropertyEnumerable should just call ObjectImp::get instead of doing the
lookup manually.

The putDirect calls need spaces after the commas, per our style guidelines.

r- because of the above.

I think it would be clearer if you named the C++ function propertyIsEnumerable
instead of isPropertyEnumerable, to match the name of the corresponding
(admittedly poorly named) JS function. I&apos;ll leave that decision up to you.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25527</commentid>
    <comment_count>3</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-12-04 13:47:50 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 4942 [edit])
&gt; isPropertyEnumerable should just call ObjectImp::get instead of doing the
&gt; lookup manually.
&gt; 
The problem is that ObjectImp::get doesn&apos;t return the property flags. ObjectImp::canPut does the same 
thing in order to get the flags.

&gt; The putDirect calls need spaces after the commas, per our style guidelines.
OK. I was just following the style that was in the file.

&gt; 
&gt; r- because of the above.
&gt; 
&gt; I think it would be clearer if you named the C++ function propertyIsEnumerable
&gt; instead of isPropertyEnumerable, to match the name of the corresponding
&gt; (admittedly poorly named) JS function. I&apos;ll leave that decision up to you.
&gt; 
Sounds like a good idea.
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25532</commentid>
    <comment_count>4</comment_count>
      <attachid>4949</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2005-12-04 14:54:53 -0800</bug_when>
    <thetext>Created attachment 4949
Address comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25533</commentid>
    <comment_count>5</comment_count>
      <attachid>4949</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-04 15:18:48 -0800</bug_when>
    <thetext>Comment on attachment 4949
Address comments

ggaren: andersca:
[3:10pm] ggaren: +    return !(attributes &amp; DontEnum);
[3:10pm] ggaren: is backwards, no?
[3:12pm] ggaren: +    putDirect(valueOfPropertyName,  new
ObjectProtoFuncImp(exec, funcProto, ObjectProtoFuncImp::ValueOf,	       
0), DontEnum);
[3:12pm] ggaren: has an extra space

Otherwise, looks great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>25534</commentid>
    <comment_count>6</comment_count>
      <attachid>4949</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2005-12-04 15:26:35 -0800</bug_when>
    <thetext>Comment on attachment 4949
Address comments

My bad. Not Don&apos;t Enum == enumberable. 

r=me</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4942</attachid>
            <date>2005-12-04 13:32:08 -0800</date>
            <delta_ts>2005-12-04 14:54:53 -0800</delta_ts>
            <desc>Implement propertyIsEnumerable</desc>
            <filename>property-is-enumerable.diff</filename>
            <type>text/plain</type>
            <size>9527</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg5
MApkaWZmIC1wIC11IC1yMS44OTAgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMiBEZWMgMjAwNSAwMzo0Nzo1OSAtMDAwMAkxLjg5MAorKysgSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCTQgRGVjIDIwMDUgMjE6Mjg6NTYgLTAwMDAKQEAgLTEsMyAr
MSwyMiBAQAorMjAwNS0xMi0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeGVz
IDxodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5OTk+CisK
KyAgICAgICAgKiBranMvb2JqZWN0LmNwcDoKKyAgICAgICAgKEtKUzo6T2JqZWN0SW1wOjppc1By
b3BlcnR5RW51bWVyYWJsZSk6CisgICAgICAgICoga2pzL29iamVjdC5oOgorICAgICAgICBBZGQg
aXNQcm9wZXJ0eUVudW1lcmFibGUgd2hpY2ggY2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgZW51bWVy
YWJsZS4KKworICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0LmNwcDoKKyAgICAgICAgKE9iamVj
dFByb3RvdHlwZUltcDo6T2JqZWN0UHJvdG90eXBlSW1wKToKKyAgICAgICAgKE9iamVjdFByb3Rv
RnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0Lmg6
CisgICAgICAgIChLSlM6Ok9iamVjdFByb3RvRnVuY0ltcDo6KToKKyAgICAgICAgQWRkIHByb3Bl
cnR5SXNFbnVtZXJhYmxlIHRvIHRoZSBPYmplY3QgcHJvdG90eXBlIGFuZCBoYXZlIGl0IGNhbGwK
KyAgICAgICAgaXNQcm9wZXJ0eUVudW1lcmFibGUuCisKIDIwMDUtMTItMDEgIE1hY2llaiBTdGFj
aG93aWFrICA8bWpzQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW0gSGF0Y2hl
ci4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp
bGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0LmNwcCx2CnJldHJpZXZpbmcg
cmV2aXNpb24gMS41NQpkaWZmIC1wIC11IC1yMS41NSBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0
LmNwcAotLS0gSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5jcHAJMTYgT2N0IDIwMDUgMDA6NDY6
MjIgLTAwMDAJMS41NQorKysgSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5jcHAJNCBEZWMgMjAw
NSAyMToyODo1NiAtMDAwMApAQCAtMzc0LDYgKzM3NCwyMSBAQCBib29sIE9iamVjdEltcDo6aGFz
SW5zdGFuY2UoRXhlY1N0YXRlICovCiAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBPYmplY3RJ
bXA6OmlzUHJvcGVydHlFbnVtZXJhYmxlKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciAmcHJvcGVydHlOYW1lKSBjb25zdAoreworICAgIGludCBhdHRyaWJ1dGVzOworICAgIAorICAg
IGlmIChfcHJvcC5nZXQocHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSkKKyAgICAgICAgcmV0dXJu
ICEoYXR0cmlidXRlcyAmIERvbnRFbnVtKTsKKyAgICAgICAgCisgICAgLy8gTG9vayBpbiB0aGUg
c3RhdGljIGhhc2h0YWJsZSBvZiBwcm9wZXJ0aWVzCisgICAgY29uc3QgSGFzaEVudHJ5KiBlID0g
ZmluZFByb3BlcnR5SGFzaEVudHJ5KHByb3BlcnR5TmFtZSk7CisgICAgaWYgKGUpCisgICAgICAg
IHJldHVybiAhKGUtPmF0dHIgJiBEb250RW51bSk7CisgICAgCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCiBSZWZlcmVuY2VMaXN0IE9iamVjdEltcDo6cHJvcExpc3QoRXhlY1N0YXRlICpleGVjLCBi
b29sIHJlY3Vyc2l2ZSkKIHsKICAgUmVmZXJlbmNlTGlzdCBsaXN0OwpJbmRleDogSmF2YVNjcmlw
dENvcmUva2pzL29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2Ny
aXB0Q29yZS9ranMvb2JqZWN0LmgsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNDgKZGlmZiAtcCAt
dSAtcjEuNDggSmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5oCi0tLSBKYXZhU2NyaXB0Q29yZS9r
anMvb2JqZWN0LmgJMjcgTm92IDIwMDUgMDE6Mjg6MzAgLTAwMDAJMS40OAorKysgSmF2YVNjcmlw
dENvcmUva2pzL29iamVjdC5oCTQgRGVjIDIwMDUgMjE6Mjg6NTYgLTAwMDAKQEAgLTI0Niw2ICsy
NDYsMTcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCBib29sIGNhblB1dChFeGVjU3Rh
dGUgKmV4ZWMsIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSkgY29uc3Q7CiAKICAgICAv
KioKKyAgICAgKiBDaGVja3MgaWYgYSBwcm9wZXJ0eSBpcyBlbnVtZXJhYmxlLCB0aGF0IGlzIGlm
IGl0IGRvZXNuJ3QgaGF2ZSB0aGUgRG9udEVudW0KKyAgICAgKiBmbGFnIHNldAorICAgICAqCisg
ICAgICogU2VlIEVDTUEgMTUuMi40CisgICAgICogQHBhcmFtIGV4ZWMgVGhlIGN1cnJlbnQgZXhl
Y3V0aW9uIHN0YXRlCisgICAgICogQHBhcmFtIHByb3BlcnR5TmFtZSBUaGUgbmFtZSBvZiB0aGUg
cHJvcGVydHkKKyAgICAgKiBAcmV0dXJuIHRydWUgaWYgdGhlIHByb3BlcnR5IGlzIGVudW1lcmFi
bGUsIG90aGVyd2lzZSBmYWxzZQorICAgICAqLworICAgIGJvb2wgaXNQcm9wZXJ0eUVudW1lcmFi
bGUoRXhlY1N0YXRlICpleGVjLCBjb25zdCBJZGVudGlmaWVyICZwcm9wZXJ0eU5hbWUpIGNvbnN0
OworCisgICAgLyoqCiAgICAgICogQ2hlY2tzIHRvIHNlZSB3aGV0aGVyIHRoZSBvYmplY3QgKG9y
IGFueSBvYmplY3QgaW4gaXQncyBwcm90b3R5cGUgY2hhaW4pCiAgICAgICogaGFzIGEgcHJvcGVy
dHkgd2l0aCB0aGUgc3BlY2lmaWVkIG5hbWUuCiAgICAgICoKSW5kZXg6IEphdmFTY3JpcHRDb3Jl
L2tqcy9vYmplY3Rfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2
YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuY3BwLHYKcmV0cmlldmluZyByZXZpc2lvbiAx
LjE1CmRpZmYgLXAgLXUgLXIxLjE1IEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmNw
cAotLS0gSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuY3BwCTMgT2N0IDIwMDUgMjE6
MTE6NTAgLTAwMDAJMS4xNQorKysgSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuY3Bw
CTQgRGVjIDIwMDUgMjE6Mjg6NTYgLTAwMDAKQEAgLTM4LDEwICszOCwxMSBAQCBPYmplY3RQcm90
b3R5cGVJbXA6Ok9iamVjdFByb3RvdHlwZUltcChFCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBGdW5jdGlvblByb3RvdHlwZUltcCAqZnVuY1Byb3RvKQogICA6IE9iamVj
dEltcCgpIC8vIFtbUHJvdG90eXBlXV0gaXMgTnVsbCgpCiB7Ci0gICAgcHV0RGlyZWN0KHRvU3Ry
aW5nUHJvcGVydHlOYW1lLCBuZXcgT2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE9i
amVjdFByb3RvRnVuY0ltcDo6VG9TdHJpbmcsICAgICAgICAgICAgMCksIERvbnRFbnVtKTsKLSAg
ICBwdXREaXJlY3QodG9Mb2NhbGVTdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBPYmplY3RQcm90b0Z1
bmNJbXAoZXhlYyxmdW5jUHJvdG8sT2JqZWN0UHJvdG9GdW5jSW1wOjpUb0xvY2FsZVN0cmluZyww
KSwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2YWx1ZU9mUHJvcGVydHlOYW1lLCAgbmV3IE9i
amVjdFByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90byxPYmplY3RQcm90b0Z1bmNJbXA6OlZhbHVl
T2YsICAgICAgICAgICAgIDApLCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KCJoYXNPd25Qcm9w
ZXJ0eSIsIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoZXhlYyxmdW5jUHJvdG8sT2JqZWN0UHJvdG9G
dW5jSW1wOjpIYXNPd25Qcm9wZXJ0eSwgICAgICAgICAgMSksIERvbnRFbnVtKTsKKyAgICBwdXRE
aXJlY3QodG9TdHJpbmdQcm9wZXJ0eU5hbWUsIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoZXhlYyxm
dW5jUHJvdG8sT2JqZWN0UHJvdG9GdW5jSW1wOjpUb1N0cmluZywgICAgICAgICAgICAgIDApLCBE
b250RW51bSk7CisgICAgcHV0RGlyZWN0KHRvTG9jYWxlU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcg
T2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE9iamVjdFByb3RvRnVuY0ltcDo6VG9M
b2NhbGVTdHJpbmcsICAwKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCh2YWx1ZU9mUHJvcGVy
dHlOYW1lLCAgbmV3IE9iamVjdFByb3RvRnVuY0ltcChleGVjLGZ1bmNQcm90byxPYmplY3RQcm90
b0Z1bmNJbXA6OlZhbHVlT2YsICAgICAgICAgICAgICAgMCksIERvbnRFbnVtKTsKKyAgICBwdXRE
aXJlY3QoImhhc093blByb3BlcnR5IiwgbmV3IE9iamVjdFByb3RvRnVuY0ltcChleGVjLGZ1bmNQ
cm90byxPYmplY3RQcm90b0Z1bmNJbXA6Okhhc093blByb3BlcnR5LCAgICAgICAgICAgIDEpLCBE
b250RW51bSk7CisgICAgcHV0RGlyZWN0KCJwcm9wZXJ0eUlzRW51bWVyYWJsZSIsIG5ldyBPYmpl
Y3RQcm90b0Z1bmNJbXAoZXhlYyxmdW5jUHJvdG8sT2JqZWN0UHJvdG9GdW5jSW1wOjpQcm9wZXJ0
eUlzRW51bWVyYWJsZSwxKSwgRG9udEVudW0pOwogfQogCiAKQEAgLTYxLDcgKzYyLDcgQEAgYm9v
bCBPYmplY3RQcm90b0Z1bmNJbXA6OmltcGxlbWVudHNDYWxsKAogICByZXR1cm4gdHJ1ZTsKIH0K
IAotLy8gRUNNQSAxNS4yLjQuMiwgMTUuMi40LjQsIDE1LjIuNC41CisvLyBFQ01BIDE1LjIuNC4y
LCAxNS4yLjQuNCwgMTUuMi40LjUsIDE1LjIuNC43CiAKIFZhbHVlSW1wICpPYmplY3RQcm90b0Z1
bmNJbXA6OmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqZXhlYywgT2JqZWN0SW1wICp0aGlzT2Jq
LCBjb25zdCBMaXN0ICZhcmdzKQogewpAQCAtNzIsNiArNzMsOCBAQCBWYWx1ZUltcCAqT2JqZWN0
UHJvdG9GdW5jSW1wOjpjYWxsQXNGdW5jCiAgICAgICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdDsK
ICAgICAgICAgICAgIHJldHVybiBqc0Jvb2xlYW4odGhpc09iai0+Z2V0T3duUHJvcGVydHlTbG90
KGV4ZWMsIElkZW50aWZpZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhlYykpLCBzbG90KSk7CiAgICAg
ICAgIH0KKyAgICAgICAgY2FzZSBQcm9wZXJ0eUlzRW51bWVyYWJsZToKKyAgICAgICAgICAgIHJl
dHVybiBqc0Jvb2xlYW4odGhpc09iai0+aXNQcm9wZXJ0eUVudW1lcmFibGUoZXhlYywgSWRlbnRp
ZmllcihhcmdzWzBdLT50b1N0cmluZyhleGVjKSkpKTsKICAgICAgICAgY2FzZSBUb0xvY2FsZVN0
cmluZzoKICAgICAgICAgICAgIHJldHVybiBqc1N0cmluZyh0aGlzT2JqLT50b1N0cmluZyhleGVj
KSk7CiAgICAgICAgIGNhc2UgVG9TdHJpbmc6CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvb2Jq
ZWN0X29iamVjdC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvcm9vdC9KYXZhU2NyaXB0Q29y
ZS9ranMvb2JqZWN0X29iamVjdC5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjkKZGlmZiAtcCAt
dSAtcjEuOSBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5oCi0tLSBKYXZhU2NyaXB0
Q29yZS9ranMvb2JqZWN0X29iamVjdC5oCTggQXVnIDIwMDUgMDQ6MDc6MjkgLTAwMDAJMS45Cisr
KyBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5oCTQgRGVjIDIwMDUgMjE6Mjg6NTYg
LTAwMDAKQEAgLTUyLDcgKzUyLDcgQEAgbmFtZXNwYWNlIEtKUyB7CiAgICAgdmlydHVhbCBib29s
IGltcGxlbWVudHNDYWxsKCkgY29uc3Q7CiAgICAgdmlydHVhbCBWYWx1ZUltcCAqY2FsbEFzRnVu
Y3Rpb24oRXhlY1N0YXRlICosIE9iamVjdEltcCAqLCBjb25zdCBMaXN0ICZhcmdzKTsKIAotICAg
IGVudW0geyBUb1N0cmluZywgVG9Mb2NhbGVTdHJpbmcsIFZhbHVlT2YsIEhhc093blByb3BlcnR5
IH07CisgICAgZW51bSB7IFRvU3RyaW5nLCBUb0xvY2FsZVN0cmluZywgVmFsdWVPZiwgSGFzT3du
UHJvcGVydHksIFByb3BlcnR5SXNFbnVtZXJhYmxlIH07CiAgIHByaXZhdGU6CiAgICAgaW50IGlk
OwogICB9OwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6
IC9jdnMvcm9vdC9MYXlvdXRUZXN0cy9DaGFuZ2VMb2csdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEu
MTI0CmRpZmYgLXAgLXUgLXIxLjEyNCBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwk0IERlYyAyMDA1IDAxOjIyOjI1IC0wMDAwCTEuMTI0CisrKyBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJNCBEZWMgMjAwNSAyMToyOToxMSAtMDAwMApAQCAtMSwzICsxLDEzIEBA
CisyMDA1LTEyLTA0ICBBbmRlcnMgQ2FybHNzb24gIDxhbmRlcnNjYUBtYWMuY29tPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBuZXcgdGVzdHMg
Zm9yCisgICAgICAgIDxodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dp
P2lkPTM5OTk+CisKKyAgICAgICAgKiBmYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1lcmFibGUt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0Vu
dW1lcmFibGUuaHRtbDogQWRkZWQuCisKIDIwMDUtMTItMDMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dh
cmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBMYXlvdXQgdGVzdCBmb3IgPHJkYXI6Ly9wcm9ibGVt
LzQzNjQzMDI+IGxlZnRtYXJnaW4gYW5kIHRvcG1hcmdpbiAKSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvanMvdGVzdC1wcm9wZXJ0eUlzRW51bWVyYWJsZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpS
Q1MgZmlsZTogZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLWV4cGVjdGVkLnR4dApk
aWZmIC1OIExheW91dFRlc3RzL2Zhc3QvanMvdGVzdC1wcm9wZXJ0eUlzRW51bWVyYWJsZS1leHBl
Y3RlZC50eHQKLS0tIExheW91dFRlc3RzL2Zhc3QvanMvdGVzdC1wcm9wZXJ0eUlzRW51bWVyYWJs
ZS1leHBlY3RlZC50eHQJMSBKYW4gMTk3MCAwMDowMDowMCAtMDAwMAorKysgTGF5b3V0VGVzdHMv
ZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLWV4cGVjdGVkLnR4dAk0IERlYyAyMDA1
IDIxOjI5OjE3IC0wMDAwCkBAIC0wLDAgKzEsNCBAQAorVGhpcyB0ZXN0cyB0aGF0IHByb3BlcnR5
SXNFbnVtZXJhYmxlIHdvcmtzIGFjY29yZGluZyB0byB0aGUgRUNNQSBzcGVjLiBJZiB0aGlzIHRl
c3QgaXMgc3VjY2Vzc2Z1bCwgIlNVQ0NFU1MiIHNob3VsZCBiZSBzaG93biBiZWxvdy4KKworU1VD
Q0VTUworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1lcmFi
bGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiBmYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1l
cmFibGUuaHRtbApkaWZmIC1OIExheW91dFRlc3RzL2Zhc3QvanMvdGVzdC1wcm9wZXJ0eUlzRW51
bWVyYWJsZS5odG1sCi0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1l
cmFibGUuaHRtbAkxIEphbiAxOTcwIDAwOjAwOjAwIC0wMDAwCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1lcmFibGUuaHRtbAk0IERlYyAyMDA1IDIxOjI5OjE3IC0w
MDAwCkBAIC0wLDAgKzEsNDIgQEAKKzxodG1sPgorICA8aGVhZD4KKyAgICA8c2NyaXB0PgorICAg
ICAgICBmdW5jdGlvbiBkZWJ1ZyhzdHIpIHsKKyAgICAgICAgICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKQorICAgICAgICAgICAgYy5pbm5lckhUTUwgKz0gc3Ry
ICsgIjxicj4iCisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVzdHMgKCkg
eworICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICBhID0gbmV3IEFycmF5KCk7CisgICAgICAgICAgICBhLmZvbz0nYmFy
JworCisgICAgICAgICAgICAvLyAnbGVuZ3RoJyBzaG91bGQgbm90IGJlIGVudW1lcmFibGUKKyAg
ICAgICAgICAgIGlmIChhLnByb3BlcnR5SXNFbnVtZXJhYmxlICgnbGVuZ3RoJykgIT0gZmFsc2Up
IHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiRkFJTFVSRTogJ2xlbmd0aCcgc2hvdWxkIG5vdCBi
ZSBlbnVtZXJhYmxlLiIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAnZm9vJyBpcyBhIGN1c3RvbSBwcm9wZXJ0eSBh
bmQgc2hvdWxkIHRodXMgYmUgZW51bWVyYWJsZQorICAgICAgICAgICAgaWYgKGEucHJvcGVydHlJ
c0VudW1lcmFibGUgKCdmb28nKSAhPSB0cnVlKSB7CisgICAgICAgICAgICAgICAgZGVidWcoIkZB
SUxVUkU6ICdmb28nIHNob3VsZCBiZSBlbnVtZXJhYmxlLiIpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICAvLyAnbm9uLWV4
aXN0YW50JyBpcyBhIG5vbi1leGlzdGFudCBwcm9wZXJ0eSBhbmQgc2hvdWxkbid0IGJlIGVudW1l
cmFibGUKKyAgICAgICAgICAgIGlmIChhLnByb3BlcnR5SXNFbnVtZXJhYmxlICgnbm9uLWV4aXN0
YW50JykgIT0gZmFsc2UpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiRkFJTFVSRTogJ25vbi1l
eGlzdGFudCcgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlLiIpCisgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgfQorICAgICAgICAgICAgCisgICAgICAgICAgICBkZWJ1ZygnU1VD
Q0VTUycpCisgICAgICAgIH0KKyAgICA8L3NjcmlwdD4KKyAgPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJydW5UZXN0cygpOyI+CisJIDxwPlRoaXMgdGVzdHMgdGhhdCBwcm9wZXJ0eUlzRW51bWVyYWJs
ZSB3b3JrcyBhY2NvcmRpbmcgdG8gdGhlIEVDTUEgc3BlYy4gSWYgdGhpcyB0ZXN0IGlzIHN1Y2Nl
c3NmdWwsICJTVUNDRVNTIiBzaG91bGQgYmUgc2hvd24gYmVsb3cuPC9wPgorICAgIDxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorICA8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQg
b2YgZmlsZQo=
</data>
<flag name="review"
          id="949"
          type_id="1"
          status="-"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>4949</attachid>
            <date>2005-12-04 14:54:53 -0800</date>
            <delta_ts>2005-12-04 15:26:35 -0800</delta_ts>
            <desc>Address comments</desc>
            <filename>property-is-enumerable.diff</filename>
            <type>text/plain</type>
            <size>11040</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3Zz
L3Jvb3QvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjg5
MApkaWZmIC1wIC11IC1yMS44OTAgSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCi0tLSBKYXZhU2Ny
aXB0Q29yZS9DaGFuZ2VMb2cJMiBEZWMgMjAwNSAwMzo0Nzo1OSAtMDAwMAkxLjg5MAorKysgSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCTQgRGVjIDIwMDUgMjI6NDQ6NTIgLTAwMDAKQEAgLTEsMyAr
MSwyNyBAQAorMjAwNS0xMi0wNCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAbWFjLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAtIEZpeGVz
IDxodHRwOi8vYnVnemlsbGEub3BlbmRhcndpbi5vcmcvc2hvd19idWcuY2dpP2lkPTM5OTk+CisK
KyAgICAgICAgKiBranMvb2JqZWN0LmNwcDoKKyAgICAgICAgKEtKUzo6T2JqZWN0SW1wOjpjYW5Q
dXQpOgorICAgICAgICBSZWZhY3RvciB0byB1c2UgZ2V0UHJvcGVydHlBdHRyaWJ1dGVzLgorCisg
ICAgICAgIChLSlM6Ok9iamVjdEltcDo6cHJvcGVydHlJc0VudW1lcmFibGUpOgorICAgICAgICBO
ZXcgZnVuY3Rpb24gd2hpY2ggY2hlY2tzIGlmIGEgcHJvcGVydHkgaXMgZW51bWVyYWJsZS4KKwor
ICAgICAgICAoS0pTOjpPYmplY3RJbXA6OmdldFByb3BlcnR5QXR0cmlidXRlcyk6CisgICAgICAg
ICoga2pzL29iamVjdC5oOgorICAgICAgICBBZGQgZ2V0UHJvcGVydHlBdHRyaWJ1dGVzIGFuZCBw
cm9wZXJ0eUlzRW51bWVyYWJsZS4KKworICAgICAgICAqIGtqcy9vYmplY3Rfb2JqZWN0LmNwcDoK
KyAgICAgICAgKE9iamVjdFByb3RvdHlwZUltcDo6T2JqZWN0UHJvdG90eXBlSW1wKToKKyAgICAg
ICAgKE9iamVjdFByb3RvRnVuY0ltcDo6Y2FsbEFzRnVuY3Rpb24pOgorICAgICAgICAqIGtqcy9v
YmplY3Rfb2JqZWN0Lmg6CisgICAgICAgIChLSlM6Ok9iamVjdFByb3RvRnVuY0ltcDo6KToKKyAg
ICAgICAgQWRkIHByb3BlcnR5SXNFbnVtZXJhYmxlIHRvIHRoZSBPYmplY3QgcHJvdG90eXBlLgor
CiAyMDA1LTEyLTAxICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvb2Jq
ZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pz
L29iamVjdC5jcHAsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuNTUKZGlmZiAtcCAtdSAtcjEuNTUg
SmF2YVNjcmlwdENvcmUva2pzL29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vYmpl
Y3QuY3BwCTE2IE9jdCAyMDA1IDAwOjQ2OjIyIC0wMDAwCTEuNTUKKysrIEphdmFTY3JpcHRDb3Jl
L2tqcy9vYmplY3QuY3BwCTQgRGVjIDIwMDUgMjI6NDQ6NTIgLTAwMDAKQEAgLTIyNiwxOCArMjI2
LDE0IEBAIHZvaWQgT2JqZWN0SW1wOjpwdXQoRXhlY1N0YXRlICpleGVjLCB1bnMKIGJvb2wgT2Jq
ZWN0SW1wOjpjYW5QdXQoRXhlY1N0YXRlICosIGNvbnN0IElkZW50aWZpZXIgJnByb3BlcnR5TmFt
ZSkgY29uc3QKIHsKICAgaW50IGF0dHJpYnV0ZXM7Ci0gIFZhbHVlSW1wICp2ID0gX3Byb3AuZ2V0
KHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcyk7Ci0gIGlmICh2KQotICAgIHJldHVybiEoYXR0cmli
dXRlcyAmIFJlYWRPbmx5KTsKLQotICAvLyBMb29rIGluIHRoZSBzdGF0aWMgaGFzaHRhYmxlIG9m
IHByb3BlcnRpZXMKLSAgY29uc3QgSGFzaEVudHJ5KiBlID0gZmluZFByb3BlcnR5SGFzaEVudHJ5
KHByb3BlcnR5TmFtZSk7Ci0gIGlmIChlKQotICAgIHJldHVybiAhKGUtPmF0dHIgJiBSZWFkT25s
eSk7Ci0KKyAgICAKICAgLy8gRG9uJ3QgbG9vayBpbiB0aGUgcHJvdG90eXBlIGhlcmUuIFdlIGNh
biBhbHdheXMgcHV0IGFuIG92ZXJyaWRlCiAgIC8vIGluIHRoZSBvYmplY3QsIGV2ZW4gaWYgdGhl
IHByb3RvdHlwZSBoYXMgYSBSZWFkT25seSBwcm9wZXJ0eS4KLSAgcmV0dXJuIHRydWU7CisKKyAg
aWYgKCFnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMocHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSkKKyAg
ICByZXR1cm4gdHJ1ZTsKKyAgZWxzZQorICAgIHJldHVybiAhKGF0dHJpYnV0ZXMgJiBSZWFkT25s
eSk7CiB9CiAKIC8vIEVDTUEgOC42LjIuNApAQCAtMzc0LDYgKzM3MCwzMSBAQCBib29sIE9iamVj
dEltcDo6aGFzSW5zdGFuY2UoRXhlY1N0YXRlICovCiAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9v
bCBPYmplY3RJbXA6OnByb3BlcnR5SXNFbnVtZXJhYmxlKEV4ZWNTdGF0ZSAqZXhlYywgY29uc3Qg
SWRlbnRpZmllciAmcHJvcGVydHlOYW1lKSBjb25zdAoreworICBpbnQgYXR0cmlidXRlczsKKyAK
KyAgaWYgKCFnZXRQcm9wZXJ0eUF0dHJpYnV0ZXMocHJvcGVydHlOYW1lLCBhdHRyaWJ1dGVzKSkK
KyAgICByZXR1cm4gZmFsc2U7CisgIGVsc2UKKyAgICByZXR1cm4gIShhdHRyaWJ1dGVzICYgRG9u
dEVudW0pOworfQorCitib29sIE9iamVjdEltcDo6Z2V0UHJvcGVydHlBdHRyaWJ1dGVzKGNvbnN0
IElkZW50aWZpZXImIHByb3BlcnR5TmFtZSwgaW50JiBhdHRyaWJ1dGVzKSBjb25zdAoreworICBp
ZiAoX3Byb3AuZ2V0KHByb3BlcnR5TmFtZSwgYXR0cmlidXRlcykpCisgICAgcmV0dXJuIHRydWU7
CisgICAgCisgIC8vIExvb2sgaW4gdGhlIHN0YXRpYyBoYXNodGFibGUgb2YgcHJvcGVydGllcwor
ICBjb25zdCBIYXNoRW50cnkqIGUgPSBmaW5kUHJvcGVydHlIYXNoRW50cnkocHJvcGVydHlOYW1l
KTsKKyAgaWYgKGUpIHsKKyAgICBhdHRyaWJ1dGVzID0gZS0+YXR0cjsKKyAgICByZXR1cm4gdHJ1
ZTsKKyAgfQorICAgIAorICByZXR1cm4gZmFsc2U7Cit9CisKIFJlZmVyZW5jZUxpc3QgT2JqZWN0
SW1wOjpwcm9wTGlzdChFeGVjU3RhdGUgKmV4ZWMsIGJvb2wgcmVjdXJzaXZlKQogewogICBSZWZl
cmVuY2VMaXN0IGxpc3Q7CkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQpSQ1MgZmlsZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS40OApkaWZmIC1wIC11IC1yMS40OCBKYXZhU2NyaXB0Q29yZS9r
anMvb2JqZWN0LmgKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3QuaAkyNyBOb3YgMjAwNSAw
MToyODozMCAtMDAwMAkxLjQ4CisrKyBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0LmgJNCBEZWMg
MjAwNSAyMjo0NDo1MiAtMDAwMApAQCAtMjQ2LDYgKzI0NiwxNyBAQCBuYW1lc3BhY2UgS0pTIHsK
ICAgICB2aXJ0dWFsIGJvb2wgY2FuUHV0KEV4ZWNTdGF0ZSAqZXhlYywgY29uc3QgSWRlbnRpZmll
ciAmcHJvcGVydHlOYW1lKSBjb25zdDsKIAogICAgIC8qKgorICAgICAqIENoZWNrcyBpZiBhIHBy
b3BlcnR5IGlzIGVudW1lcmFibGUsIHRoYXQgaXMgaWYgaXQgZG9lc24ndCBoYXZlIHRoZSBEb250
RW51bQorICAgICAqIGZsYWcgc2V0CisgICAgICoKKyAgICAgKiBTZWUgRUNNQSAxNS4yLjQKKyAg
ICAgKiBAcGFyYW0gZXhlYyBUaGUgY3VycmVudCBleGVjdXRpb24gc3RhdGUKKyAgICAgKiBAcGFy
YW0gcHJvcGVydHlOYW1lIFRoZSBuYW1lIG9mIHRoZSBwcm9wZXJ0eQorICAgICAqIEByZXR1cm4g
dHJ1ZSBpZiB0aGUgcHJvcGVydHkgaXMgZW51bWVyYWJsZSwgb3RoZXJ3aXNlIGZhbHNlCisgICAg
ICovCisgICAgYm9vbCBwcm9wZXJ0eUlzRW51bWVyYWJsZShFeGVjU3RhdGUgKmV4ZWMsIGNvbnN0
IElkZW50aWZpZXIgJnByb3BlcnR5TmFtZSkgY29uc3Q7CisKKyAgICAvKioKICAgICAgKiBDaGVj
a3MgdG8gc2VlIHdoZXRoZXIgdGhlIG9iamVjdCAob3IgYW55IG9iamVjdCBpbiBpdCdzIHByb3Rv
dHlwZSBjaGFpbikKICAgICAgKiBoYXMgYSBwcm9wZXJ0eSB3aXRoIHRoZSBzcGVjaWZpZWQgbmFt
ZS4KICAgICAgKgpAQCAtNDU0LDYgKzQ2NSw4IEBAIG5hbWVzcGFjZSBLSlMgewogICAgIFVTdHJp
bmcgdG9TdHJpbmcoRXhlY1N0YXRlICpleGVjKSBjb25zdDsKICAgICBPYmplY3RJbXAgKnRvT2Jq
ZWN0KEV4ZWNTdGF0ZSAqZXhlYykgY29uc3Q7CiAKKyAgICBib29sIGdldFByb3BlcnR5QXR0cmli
dXRlcyhjb25zdCBJZGVudGlmaWVyJiBwcm9wZXJ0eU5hbWUsIGludCYgYXR0cmlidXRlcykgY29u
c3Q7CisgICAgCiAgICAgLy8gVGhpcyBnZXQgZnVuY3Rpb24gb25seSBsb29rcyBhdCB0aGUgcHJv
cGVydHkgbWFwLgogICAgIC8vIFRoaXMgaXMgdXNlZCBlLmcuIGJ5IGxvb2t1cE9yQ3JlYXRlRnVu
Y3Rpb24gKHRvIGNhY2hlIGEgZnVuY3Rpb24sIHdlIGRvbid0IHdhbnQKICAgICAvLyB0byBsb29r
IHVwIGluIHRoZSBwcm90b3R5cGUsIGl0IG1pZ2h0IGFscmVhZHkgZXhpc3QgdGhlcmUpCkluZGV4
OiBKYXZhU2NyaXB0Q29yZS9ranMvb2JqZWN0X29iamVjdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogL2N2cy9yb290L0phdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmNwcCx2CnJldHJp
ZXZpbmcgcmV2aXNpb24gMS4xNQpkaWZmIC1wIC11IC1yMS4xNSBKYXZhU2NyaXB0Q29yZS9ranMv
b2JqZWN0X29iamVjdC5jcHAKLS0tIEphdmFTY3JpcHRDb3JlL2tqcy9vYmplY3Rfb2JqZWN0LmNw
cAkzIE9jdCAyMDA1IDIxOjExOjUwIC0wMDAwCTEuMTUKKysrIEphdmFTY3JpcHRDb3JlL2tqcy9v
YmplY3Rfb2JqZWN0LmNwcAk0IERlYyAyMDA1IDIyOjQ0OjUyIC0wMDAwCkBAIC0zOCwxMCArMzgs
MTEgQEAgT2JqZWN0UHJvdG90eXBlSW1wOjpPYmplY3RQcm90b3R5cGVJbXAoRQogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRnVuY3Rpb25Qcm90b3R5cGVJbXAgKmZ1bmNQ
cm90bykKICAgOiBPYmplY3RJbXAoKSAvLyBbW1Byb3RvdHlwZV1dIGlzIE51bGwoKQogewotICAg
IHB1dERpcmVjdCh0b1N0cmluZ1Byb3BlcnR5TmFtZSwgbmV3IE9iamVjdFByb3RvRnVuY0ltcChl
eGVjLGZ1bmNQcm90byxPYmplY3RQcm90b0Z1bmNJbXA6OlRvU3RyaW5nLCAgICAgICAgICAgIDAp
LCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHRvTG9jYWxlU3RyaW5nUHJvcGVydHlOYW1lLCBu
ZXcgT2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1Byb3RvLE9iamVjdFByb3RvRnVuY0ltcDo6
VG9Mb2NhbGVTdHJpbmcsMCksIERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3QodmFsdWVPZlByb3Bl
cnR5TmFtZSwgIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoZXhlYyxmdW5jUHJvdG8sT2JqZWN0UHJv
dG9GdW5jSW1wOjpWYWx1ZU9mLCAgICAgICAgICAgICAwKSwgRG9udEVudW0pOwotICAgIHB1dERp
cmVjdCgiaGFzT3duUHJvcGVydHkiLCBuZXcgT2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsZnVuY1By
b3RvLE9iamVjdFByb3RvRnVuY0ltcDo6SGFzT3duUHJvcGVydHksICAgICAgICAgIDEpLCBEb250
RW51bSk7CisgICAgcHV0RGlyZWN0KHRvU3RyaW5nUHJvcGVydHlOYW1lLCBuZXcgT2JqZWN0UHJv
dG9GdW5jSW1wKGV4ZWMsIGZ1bmNQcm90bywgT2JqZWN0UHJvdG9GdW5jSW1wOjpUb1N0cmluZywg
ICAgICAgICAgICAgICAwKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCh0b0xvY2FsZVN0cmlu
Z1Byb3BlcnR5TmFtZSwgbmV3IE9iamVjdFByb3RvRnVuY0ltcChleGVjLCBmdW5jUHJvdG8sIE9i
amVjdFByb3RvRnVuY0ltcDo6VG9Mb2NhbGVTdHJpbmcsICAgMCksIERvbnRFbnVtKTsKKyAgICBw
dXREaXJlY3QodmFsdWVPZlByb3BlcnR5TmFtZSwgIG5ldyBPYmplY3RQcm90b0Z1bmNJbXAoZXhl
YywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmNJbXA6OlZhbHVlT2YsICAgICAgICAgICAgICAg
IDApLCBEb250RW51bSk7CisgICAgcHV0RGlyZWN0KCJoYXNPd25Qcm9wZXJ0eSIsIG5ldyBPYmpl
Y3RQcm90b0Z1bmNJbXAoZXhlYywgZnVuY1Byb3RvLCBPYmplY3RQcm90b0Z1bmNJbXA6Okhhc093
blByb3BlcnR5LCAgICAgICAgICAgICAxKSwgRG9udEVudW0pOworICAgIHB1dERpcmVjdCgicHJv
cGVydHlJc0VudW1lcmFibGUiLCBuZXcgT2JqZWN0UHJvdG9GdW5jSW1wKGV4ZWMsIGZ1bmNQcm90
bywgT2JqZWN0UHJvdG9GdW5jSW1wOjpQcm9wZXJ0eUlzRW51bWVyYWJsZSwgMSksIERvbnRFbnVt
KTsKIH0KIAogCkBAIC02MSw3ICs2Miw3IEBAIGJvb2wgT2JqZWN0UHJvdG9GdW5jSW1wOjppbXBs
ZW1lbnRzQ2FsbCgKICAgcmV0dXJuIHRydWU7CiB9CiAKLS8vIEVDTUEgMTUuMi40LjIsIDE1LjIu
NC40LCAxNS4yLjQuNQorLy8gRUNNQSAxNS4yLjQuMiwgMTUuMi40LjQsIDE1LjIuNC41LCAxNS4y
LjQuNwogCiBWYWx1ZUltcCAqT2JqZWN0UHJvdG9GdW5jSW1wOjpjYWxsQXNGdW5jdGlvbihFeGVj
U3RhdGUgKmV4ZWMsIE9iamVjdEltcCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKIHsKQEAg
LTcyLDYgKzczLDggQEAgVmFsdWVJbXAgKk9iamVjdFByb3RvRnVuY0ltcDo6Y2FsbEFzRnVuYwog
ICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3Q7CiAgICAgICAgICAgICByZXR1cm4ganNCb29s
ZWFuKHRoaXNPYmotPmdldE93blByb3BlcnR5U2xvdChleGVjLCBJZGVudGlmaWVyKGFyZ3NbMF0t
PnRvU3RyaW5nKGV4ZWMpKSwgc2xvdCkpOwogICAgICAgICB9CisgICAgICAgIGNhc2UgUHJvcGVy
dHlJc0VudW1lcmFibGU6CisgICAgICAgICAgICByZXR1cm4ganNCb29sZWFuKHRoaXNPYmotPnBy
b3BlcnR5SXNFbnVtZXJhYmxlKGV4ZWMsIElkZW50aWZpZXIoYXJnc1swXS0+dG9TdHJpbmcoZXhl
YykpKSk7CiAgICAgICAgIGNhc2UgVG9Mb2NhbGVTdHJpbmc6CiAgICAgICAgICAgICByZXR1cm4g
anNTdHJpbmcodGhpc09iai0+dG9TdHJpbmcoZXhlYykpOwogICAgICAgICBjYXNlIFRvU3RyaW5n
OgpJbmRleDogSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ClJD
UyBmaWxlOiAvY3ZzL3Jvb3QvSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuaCx2CnJl
dHJpZXZpbmcgcmV2aXNpb24gMS45CmRpZmYgLXAgLXUgLXIxLjkgSmF2YVNjcmlwdENvcmUva2pz
L29iamVjdF9vYmplY3QuaAotLS0gSmF2YVNjcmlwdENvcmUva2pzL29iamVjdF9vYmplY3QuaAk4
IEF1ZyAyMDA1IDA0OjA3OjI5IC0wMDAwCTEuOQorKysgSmF2YVNjcmlwdENvcmUva2pzL29iamVj
dF9vYmplY3QuaAk0IERlYyAyMDA1IDIyOjQ0OjUyIC0wMDAwCkBAIC01Miw3ICs1Miw3IEBAIG5h
bWVzcGFjZSBLSlMgewogICAgIHZpcnR1YWwgYm9vbCBpbXBsZW1lbnRzQ2FsbCgpIGNvbnN0Owog
ICAgIHZpcnR1YWwgVmFsdWVJbXAgKmNhbGxBc0Z1bmN0aW9uKEV4ZWNTdGF0ZSAqLCBPYmplY3RJ
bXAgKiwgY29uc3QgTGlzdCAmYXJncyk7CiAKLSAgICBlbnVtIHsgVG9TdHJpbmcsIFRvTG9jYWxl
U3RyaW5nLCBWYWx1ZU9mLCBIYXNPd25Qcm9wZXJ0eSB9OworICAgIGVudW0geyBUb1N0cmluZywg
VG9Mb2NhbGVTdHJpbmcsIFZhbHVlT2YsIEhhc093blByb3BlcnR5LCBQcm9wZXJ0eUlzRW51bWVy
YWJsZSB9OwogICBwcml2YXRlOgogICAgIGludCBpZDsKICAgfTsKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3Jvb3QvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyNApkaWZmIC1wIC11IC1yMS4xMjQgTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCi0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJNCBEZWMgMjAwNSAw
MToyMjoyNSAtMDAwMAkxLjEyNAorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCTQgRGVjIDIwMDUg
MjI6NDU6MDUgLTAwMDAKQEAgLTEsMyArMSwxMyBAQAorMjAwNS0xMi0wNCAgQW5kZXJzIENhcmxz
c29uICA8YW5kZXJzY2FAbWFjLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgbmV3IHRlc3RzIGZvcgorICAgICAgICA8aHR0cDovL2J1Z3pp
bGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNnaT9pZD0zOTk5PgorCisgICAgICAgICogZmFz
dC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLmh0bWw6IEFkZGVkLgorCiAy
MDA1LTEyLTAzICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAg
TGF5b3V0IHRlc3QgZm9yIDxyZGFyOi8vcHJvYmxlbS80MzY0MzAyPiBsZWZ0bWFyZ2luIGFuZCB0
b3BtYXJnaW4gCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1l
cmFibGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IGZhc3QvanMvdGVzdC1wcm9w
ZXJ0eUlzRW51bWVyYWJsZS1leHBlY3RlZC50eHQKZGlmZiAtTiBMYXlvdXRUZXN0cy9mYXN0L2pz
L3Rlc3QtcHJvcGVydHlJc0VudW1lcmFibGUtZXhwZWN0ZWQudHh0Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1lcmFibGUtZXhwZWN0ZWQudHh0CTEgSmFuIDE5NzAg
MDA6MDA6MDAgLTAwMDAKKysrIExheW91dFRlc3RzL2Zhc3QvanMvdGVzdC1wcm9wZXJ0eUlzRW51
bWVyYWJsZS1leHBlY3RlZC50eHQJNCBEZWMgMjAwNSAyMjo0NToxMyAtMDAwMApAQCAtMCwwICsx
LDQgQEAKK1RoaXMgdGVzdHMgdGhhdCBwcm9wZXJ0eUlzRW51bWVyYWJsZSB3b3JrcyBhY2NvcmRp
bmcgdG8gdGhlIEVDTUEgc3BlYy4gSWYgdGhpcyB0ZXN0IGlzIHN1Y2Nlc3NmdWwsICJTVUNDRVNT
IiBzaG91bGQgYmUgc2hvd24gYmVsb3cuCisKK1NVQ0NFU1MKKwpJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmls
ZTogZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLmh0bWwKZGlmZiAtTiBMYXlvdXRU
ZXN0cy9mYXN0L2pzL3Rlc3QtcHJvcGVydHlJc0VudW1lcmFibGUuaHRtbAotLS0gTGF5b3V0VGVz
dHMvZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJhYmxlLmh0bWwJMSBKYW4gMTk3MCAwMDow
MDowMCAtMDAwMAorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy90ZXN0LXByb3BlcnR5SXNFbnVtZXJh
YmxlLmh0bWwJNCBEZWMgMjAwNSAyMjo0NToxMyAtMDAwMApAQCAtMCwwICsxLDQyIEBACis8aHRt
bD4KKyAgPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gZGVidWcoc3RyKSB7
CisgICAgICAgICAgICB2YXIgYyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykK
KyAgICAgICAgICAgIGMuaW5uZXJIVE1MICs9IHN0ciArICI8YnI+IgorICAgICAgICB9CisgICAg
CisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RzICgpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgYSA9IG5ldyBB
cnJheSgpOworICAgICAgICAgICAgYS5mb289J2JhcicKKworICAgICAgICAgICAgLy8gJ2xlbmd0
aCcgc2hvdWxkIG5vdCBiZSBlbnVtZXJhYmxlCisgICAgICAgICAgICBpZiAoYS5wcm9wZXJ0eUlz
RW51bWVyYWJsZSAoJ2xlbmd0aCcpICE9IGZhbHNlKSB7CisgICAgICAgICAgICAgICAgZGVidWco
IkZBSUxVUkU6ICdsZW5ndGgnIHNob3VsZCBub3QgYmUgZW51bWVyYWJsZS4iKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAorICAgICAgICAgICAg
Ly8gJ2ZvbycgaXMgYSBjdXN0b20gcHJvcGVydHkgYW5kIHNob3VsZCB0aHVzIGJlIGVudW1lcmFi
bGUKKyAgICAgICAgICAgIGlmIChhLnByb3BlcnR5SXNFbnVtZXJhYmxlICgnZm9vJykgIT0gdHJ1
ZSkgeworICAgICAgICAgICAgICAgIGRlYnVnKCJGQUlMVVJFOiAnZm9vJyBzaG91bGQgYmUgZW51
bWVyYWJsZS4iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgLy8gJ25vbi1leGlzdGFudCcgaXMgYSBub24tZXhpc3RhbnQg
cHJvcGVydHkgYW5kIHNob3VsZG4ndCBiZSBlbnVtZXJhYmxlCisgICAgICAgICAgICBpZiAoYS5w
cm9wZXJ0eUlzRW51bWVyYWJsZSAoJ25vbi1leGlzdGFudCcpICE9IGZhbHNlKSB7CisgICAgICAg
ICAgICAgICAgZGVidWcoIkZBSUxVUkU6ICdub24tZXhpc3RhbnQnIHNob3VsZCBub3QgYmUgZW51
bWVyYWJsZS4iKQorICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIAorICAgICAgICAgICAgZGVidWcoJ1NVQ0NFU1MnKQorICAgICAgICB9CisgICAgPC9z
Y3JpcHQ+CisgIDwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKTsiPgorCSA8cD5UaGlz
IHRlc3RzIHRoYXQgcHJvcGVydHlJc0VudW1lcmFibGUgd29ya3MgYWNjb3JkaW5nIHRvIHRoZSBF
Q01BIHNwZWMuIElmIHRoaXMgdGVzdCBpcyBzdWNjZXNzZnVsLCAiU1VDQ0VTUyIgc2hvdWxkIGJl
IHNob3duIGJlbG93LjwvcD4KKyAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKyAgPC9ib2R5
PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
</data>
<flag name="review"
          id="957"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>