<?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>13129</bug_id>
          
          <creation_ts>2007-03-20 06:31:18 -0700</creation_ts>
          <short_desc>Democracy Player dies in NSException from WebScriptObject on startup</short_desc>
          <delta_ts>2011-03-09 00:02:30 -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>WebKit Misc.</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.getdemocracy.com/</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Major</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Rowe (bdash)">mrowe</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>eric</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>18101</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-20 06:31:18 -0700</bug_when>
    <thetext>Democracy Player is a media player written in Python using PyObjC.  It&apos;s interface makes heavy use of WebKit.  With a ToT build of WebKit Democracy player throws an NSException on launch and fails to function.  This also means that Democracy Player does not work at all in Leopard.  The exception is as follows:

KeyError: &apos;NSUnknownKeyException - [&lt;DOMHTMLElement 0x1622ef90&gt; valueForUndefinedKey:]: this class is not key value coding-compliant for the key length.&apos;

The cause for this is Python code such as:

        someElement = document.getElementsByID_(&apos;someElement&apos;)
        if not someElement:
            # do stuff here

The &quot;not someElement&quot; attempts to coerce Python&apos;s view on the DOMHTMLElement object into a boolean.  I&apos;m not completely sure what logic it uses to do this, but one step seems to be checking whether the object is sequence-like.  From an Objective-C point of view this means implementing -(int)count.  *All* WebScriptObjects implement this method as of r13877, with the big downside that it throws an exception if the WebScriptObject is not KVC-compliant for &quot;length&quot;.  One solution would be to only expose the &quot;count&quot; method if this object is KVC-compliant for &quot;length&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18034</commentid>
    <comment_count>1</comment_count>
      <attachid>13716</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-20 07:02:08 -0700</bug_when>
    <thetext>Created attachment 13716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18038</commentid>
    <comment_count>2</comment_count>
      <attachid>13716</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-03-20 07:24:38 -0700</bug_when>
    <thetext>Comment on attachment 13716
Patch

Nice solution! You should really just use @try/@catch instead of NS_DURING/NS_HANDLER. Those macros just wrap @try now...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>18039</commentid>
    <comment_count>3</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-20 08:26:34 -0700</bug_when>
    <thetext>Landed in r20343.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16367</commentid>
    <comment_count>4</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-30 21:49:46 -0700</bug_when>
    <thetext>This change broke Drosera. See bug 13239 for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16362</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-30 22:40:34 -0700</bug_when>
    <thetext>The patch landed here had incorrect selectors in it:

    count: and _count: rather than count and _count

And we didn&apos;t test that the count method still works. It doesn&apos;t! In fact, the _shouldRespondToCount method is never called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16187</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-31 03:10:50 -0700</bug_when>
    <thetext>As Darin points out my &quot;fix&quot; was bogus.  It fixed Democracy Player by hiding &quot;count&quot; at all times.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16188</commentid>
    <comment_count>7</comment_count>
      <attachid>13903</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-31 03:12:33 -0700</bug_when>
    <thetext>Created attachment 13903
Hide &quot;count&quot; at all times in an explicit fashion

This provides the same behaviour that ToT has but in an explicit manner.  I haven&apos;t been able to determine anywhere, other than in Drosera, that -[WebScriptObject count] is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>16037</commentid>
    <comment_count>8</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2007-03-31 12:12:44 -0700</bug_when>
    <thetext>Count and objectAtIndex: was added to better support bindings. Fixed in bug 8389.

Does Democracy Player blow up on the presence of count? Or the fact that calling count throws an exception?

We could simply put a @try/@catch in count to prevent the exception. We could also call lower level JavaScriptCore methods to see if the script object has the count property first. That would be faster than a @try/@catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15978</commentid>
    <comment_count>9</comment_count>
      <attachid>13903</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-03-31 16:23:05 -0700</bug_when>
    <thetext>Comment on attachment 13903
Hide &quot;count&quot; at all times in an explicit fashion

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15887</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-31 18:26:07 -0700</bug_when>
    <thetext>Tim, &quot;count&quot; is being called implicitly by PyObjC when Democracy does &quot;if myDOMNode:&quot;.  The fact it throws an exception makes this a very visible problem.  If &quot;count&quot; were to *not* throw an exception what would it return when the &quot;length&quot; property is not present?  0 or nil would be the two obvious values, but both of these would make &quot;myDOMNode&quot; appear as boolean false to Python and would break Democracy in a more subtle manner.

It&apos;s not clear to me how &quot;count&quot; helps for bindings support.  If it is required we might want to wrap collection-like JS objects in a subclass of WebScriptObject which implements count/objectAtIndex: rather than exposing them on *all* JS objects?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15890</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-31 22:06:27 -0700</bug_when>
    <thetext>Landed in r20642.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15894</commentid>
    <comment_count>12</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-03-31 22:15:04 -0700</bug_when>
    <thetext>&lt;rdar://problem/5103228&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>364344</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-03-09 00:02:30 -0800</bug_when>
    <thetext>There is some #if 0 code in WebCore which references this bug:

#if 0 

// FIXME: We&apos;d like to add this, but we can&apos;t do that until this issue is resolved:
// http://bugs.webkit.org/show_bug.cgi?id=13129: presence of &apos;count&apos; method on
// WebScriptObject breaks Democracy player.

- (unsigned)count
{
    id length = [self valueForKey:@&quot;length&quot;];
    if (![length respondsToSelector:@selector(intValue)])
        return 0;
    return [length intValue];
}

#endif

Can we turn that on now?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13716</attachid>
            <date>2007-03-20 07:02:08 -0700</date>
            <delta_ts>2007-03-31 03:09:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>webkit-bug-13129-v1.patch</filename>
            <type>text/plain</type>
            <size>3276</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDM0MSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMDctMDMtMjEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggZm9y
IGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMTI5LgorICAgICAgICBC
dWcgMTMxMjk6IERlbW9jcmFjeSBQbGF5ZXIgZGllcyBpbiBOU0V4Y2VwdGlvbiBmcm9tIFdlYlNj
cmlwdE9iamVjdCBvbiBzdGFydHVwLgorCisgICAgICAgIFNvbWUgY3Jvc3MtbGFuZ3VhZ2Ugc2Ny
aXB0aW5nIGJyaWRnZXMgdXNlIHRoZSBwcmVzZW5jZSBvZiAtKGludCljb3VudCB0byBkZXRlcm1p
bmUKKyAgICAgICAgd2hldGhlciB0byB0cmVhdCBvYmplY3RzIGFzIHNlcXVlbmNlLWxpa2UuICBB
bGwgV2ViU2NyaXB0T2JqZWN0J3MgZXhwb3NlZCB0aGlzIG1ldGhvZAorICAgICAgICB3aGljaCBs
ZWFkIHRvIG5vbi1jb2xsZWN0aW9uIFdlYlNjcmlwdE9iamVjdCdzIGJlaW5nIG1pc2hhbmRsZWQg
YnkgUHlPYmpDLiAgV2Ugbm93CisgICAgICAgIGV4cG9zZSAtY291bnQgb25seSB3aGVuIHRoZSBv
YmplY3Qgd2Ugd3JhcCBsb29rcyBsaWtlIGEgY29sbGVjdGlvbiBmcm9tIGEgSmF2YVNjcmlwdAor
ICAgICAgICBwb2ludCBvZiB2aWV3IChlZywgaXQgaGFzIGEgbGVuZ3RoIHByb3BlcnR5KS4KKwor
ICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tOgorICAgICAgICAoLVtX
ZWJTY3JpcHRPYmplY3QgX3Nob3VsZFJlc3BvbmRUb0NvdW50XSk6CisgICAgICAgICgtW1dlYlNj
cmlwdE9iamVjdCBtZXRob2RGb3JTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2Jq
ZWN0IHJlc3BvbmRzVG9TZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV2ViU2NyaXB0T2JqZWN0IF9j
b3VudF0pOgorICAgICAgICAqIGJpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
OgorCiAyMDA3LTAzLTIwICBEYXZlIEh5YXR0ICA8aHlhdHRAYXBwbGUuY29tPgogCiAgICAgICAg
IFJlZmFjdG9yIGZvbnRzIGEgYml0IGZvciBwb3J0YWJpbGl0eS4KSW5kZXg6IFdlYkNvcmUvYmlu
ZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9iaW5k
aW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQkocmV2aXNpb24gMjAzNDEpCisrKyBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC00OTcs
MTQgKzQ5Nyw1MSBAQCBzdGF0aWMgTGlzdCBsaXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICplCiAK
IEBpbnRlcmZhY2UgV2ViU2NyaXB0T2JqZWN0IChXZWJLaXRDb2NvYUJpbmRpbmdzKQogCi0tICh1
bnNpZ25lZCljb3VudDsKKy0gKHVuc2lnbmVkKV9jb3VudDsKIC0gKGlkKW9iamVjdEF0SW5kZXg6
KHVuc2lnbmVkKWluZGV4OwogCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJTY3JpcHRPYmpl
Y3QgKFdlYktpdENvY29hQmluZGluZ3MpCiAKLS0gKHVuc2lnbmVkKWNvdW50CistIChCT09MKV9z
aG91bGRSZXNwb25kVG9Db3VudAoreworICAgIEFTU0VSVChfcHJpdmF0ZSk7CisgICAgaWYgKF9w
cml2YXRlLT5zaG91bGRSZXNwb25kVG9Db3VudFNldCkKKyAgICAgICAgcmV0dXJuIF9wcml2YXRl
LT5zaG91bGRSZXNwb25kVG9Db3VudDsKKworICAgIEJPT0wgc2hvdWxkUmVzcG9uZFRvQ291bnQg
PSBZRVM7CisgCisgICAgTlNfRFVSSU5HCisgICAgICAgIFtzZWxmIHZhbHVlRm9yS2V5OkAibGVu
Z3RoIl07CisgICAgTlNfSEFORExFUgorICAgICAgICBzaG91bGRSZXNwb25kVG9Db3VudCA9IE5P
OworICAgIE5TX0VOREhBTkRMRVIKKworICAgIF9wcml2YXRlLT5zaG91bGRSZXNwb25kVG9Db3Vu
dCA9IHNob3VsZFJlc3BvbmRUb0NvdW50OworICAgIF9wcml2YXRlLT5zaG91bGRSZXNwb25kVG9D
b3VudFNldCA9IFlFUzsKKworICAgIHJldHVybiBzaG91bGRSZXNwb25kVG9Db3VudDsKK30KKwor
LSAoSU1QKW1ldGhvZEZvclNlbGVjdG9yOihTRUwpc2VsZWN0b3IKK3sKKyAgICBpZiAoc2VsX2lz
RXF1YWwoc2VsZWN0b3IsIEBzZWxlY3Rvcihjb3VudDopKSAmJiBbc2VsZiBfc2hvdWxkUmVzcG9u
ZFRvQ291bnRdKQorICAgICAgICBzZWxlY3RvciA9IEBzZWxlY3RvcihfY291bnQ6KTsKKworICAg
IHJldHVybiBbc3VwZXIgbWV0aG9kRm9yU2VsZWN0b3I6c2VsZWN0b3JdOworfQorCistIChCT09M
KXJlc3BvbmRzVG9TZWxlY3RvcjooU0VMKXNlbGVjdG9yCit7CisgICAgaWYgKHNlbF9pc0VxdWFs
KHNlbGVjdG9yLCBAc2VsZWN0b3IoY291bnQ6KSkgJiYgW3NlbGYgX3Nob3VsZFJlc3BvbmRUb0Nv
dW50XSkKKyAgICAgICAgc2VsZWN0b3IgPSBAc2VsZWN0b3IoX2NvdW50Oik7CisKKyAgICByZXR1
cm4gW3N1cGVyIHJlc3BvbmRzVG9TZWxlY3RvcjpzZWxlY3Rvcl07Cit9CisKKworLSAodW5zaWdu
ZWQpX2NvdW50CiB7CiAgICAgaWQgbGVuZ3RoID0gW3NlbGYgdmFsdWVGb3JLZXk6QCJsZW5ndGgi
XTsKICAgICBpZiAoW2xlbmd0aCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGludFZhbHVl
KV0pCkluZGV4OiBXZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3RQcml2
YXRlLmgJKHJldmlzaW9uIDIwMzQxKQorKysgV2ViQ29yZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlw
dE9iamVjdFByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtMjgsNiArMjgsOCBAQAogICAgIEtK
Uzo6QmluZGluZ3M6OlJvb3RPYmplY3QqIHJvb3RPYmplY3Q7CiAgICAgS0pTOjpCaW5kaW5nczo6
Um9vdE9iamVjdCogb3JpZ2luUm9vdE9iamVjdDsKICAgICBCT09MIGlzQ3JlYXRlZEJ5RE9NV3Jh
cHBlcjsKKyAgICBCT09MIHNob3VsZFJlc3BvbmRUb0NvdW50OworICAgIEJPT0wgc2hvdWxkUmVz
cG9uZFRvQ291bnRTZXQ7CiB9CiBAZW5kCiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>13903</attachid>
            <date>2007-03-31 03:12:33 -0700</date>
            <delta_ts>2007-03-31 16:23:05 -0700</delta_ts>
            <desc>Hide &quot;count&quot; at all times in an explicit fashion</desc>
            <filename>webkit-bug-13129-v2.patch</filename>
            <type>text/plain</type>
            <size>3308</size>
            <attacher name="Mark Rowe (bdash)">mrowe</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDYzNikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDctMDMtMzEgIE1hcmsgUm93ZSAgPG1yb3dlQGFwcGxlLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBIG1vcmUg
Y29ycmVjdCBmaXggZm9yIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEz
MTI5CisgICAgICAgIEJ1ZyAxMzEyOTogRGVtb2NyYWN5IFBsYXllciBkaWVzIGluIE5TRXhjZXB0
aW9uIGZyb20gV2ViU2NyaXB0T2JqZWN0IG9uIHN0YXJ0dXAKKworICAgICAgICBUaGUgcHJldmlv
dXMgYXR0ZW1wdCBhdCBhIGZpeCBpbiByMjAzNDMgYXR0ZW1wdGVkIHRvIGNvbmRpdGlvbmFsbHkg
ZXhwb3NlIHRoZSAnY291bnQnCisgICAgICAgIG1ldGhvZC4gIEl0IGRpZCBub3Qgd29yayB3aGlj
aCByZXN1bHRlZCBpbiAnY291bnQnIGFsd2F5cyBiZWluZyBoaWRkZW4uICBUaGlzIGNoYW5nZQor
ICAgICAgICBkaXNhYmxlcyAtW1dlYlNjcmlwdE9iamVjdCBjb3VudF0gY29tcGxldGVseSB1bnRp
bCBpdCBjYW4gYmUgZGV0ZXJtaW5lZCB3aGV0aGVyIGl0IGlzCisgICAgICAgIG5lZWRlZCBhbmQg
aG93IHRvIHN1cHBvcnQgaXQgd2l0aG91dCBicmVha2luZyB0aGlyZC1wYXJ0eSBhcHBsaWNhdGlv
bnMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbToKKyAgICAg
ICAgKC1bV2ViU2NyaXB0T2JqZWN0IGNvdW50XSk6CisgICAgICAgICogYmluZGluZ3Mvb2JqYy9X
ZWJTY3JpcHRPYmplY3RQcml2YXRlLmg6CisKIDIwMDctMDMtMzEgIE1pdHogUGV0dGVsICA8bWl0
ekB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEh5YXR0LgpJbmRleDogV2ViQ29y
ZS9iaW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0Lm1tCShyZXZpc2lvbiAyMDYzNikKKysrIFdl
YkNvcmUvYmluZGluZ3Mvb2JqYy9XZWJTY3JpcHRPYmplY3QubW0JKHdvcmtpbmcgY29weSkKQEAg
LTQ5Nyw1MCArNDk3LDE3IEBAIHN0YXRpYyBMaXN0IGxpc3RGcm9tTlNBcnJheShFeGVjU3RhdGUg
KmUKIAogQGludGVyZmFjZSBXZWJTY3JpcHRPYmplY3QgKFdlYktpdENvY29hQmluZGluZ3MpCiAK
LS0gKHVuc2lnbmVkKV9jb3VudDsKIC0gKGlkKW9iamVjdEF0SW5kZXg6KHVuc2lnbmVkKWluZGV4
OwogCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJTY3JpcHRPYmplY3QgKFdlYktpdENvY29h
QmluZGluZ3MpCiAKLS0gKEJPT0wpX3Nob3VsZFJlc3BvbmRUb0NvdW50Ci17Ci0gICAgaWYgKF9w
cml2YXRlLT5zaG91bGRSZXNwb25kVG9Db3VudFNldCkKLSAgICAgICAgcmV0dXJuIF9wcml2YXRl
LT5zaG91bGRSZXNwb25kVG9Db3VudDsKLQotICAgIEJPT0wgc2hvdWxkUmVzcG9uZFRvQ291bnQg
PSBZRVM7Ci0gCi0gICAgQHRyeSB7Ci0gICAgICAgIFtzZWxmIHZhbHVlRm9yS2V5OkAibGVuZ3Ro
Il07Ci0gICAgfSBAY2F0Y2ggKGlkIGUpIHsKLSAgICAgICAgc2hvdWxkUmVzcG9uZFRvQ291bnQg
PSBOTzsKLSAgICB9Ci0KLSAgICBfcHJpdmF0ZS0+c2hvdWxkUmVzcG9uZFRvQ291bnQgPSBzaG91
bGRSZXNwb25kVG9Db3VudDsKLSAgICBfcHJpdmF0ZS0+c2hvdWxkUmVzcG9uZFRvQ291bnRTZXQg
PSBZRVM7Ci0KLSAgICByZXR1cm4gc2hvdWxkUmVzcG9uZFRvQ291bnQ7Ci19CisjaWYgMCAKKy8v
IEZJWE1FOiBwcmVzZW5jZSBvZiAnY291bnQnIG1ldGhvZCBvbiBXZWJTY3JpcHRPYmplY3QgYnJl
YWtzIERlbW9jcmFjeSBwbGF5ZXIKKy8vICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xMzEyOQogCi0tIChJTVApbWV0aG9kRm9yU2VsZWN0b3I6KFNFTClzZWxl
Y3RvcgotewotICAgIGlmIChzZWxlY3RvciA9PSBAc2VsZWN0b3IoY291bnQ6KSAmJiBbc2VsZiBf
c2hvdWxkUmVzcG9uZFRvQ291bnRdKQotICAgICAgICBzZWxlY3RvciA9IEBzZWxlY3RvcihfY291
bnQ6KTsKLQotICAgIHJldHVybiBbc3VwZXIgbWV0aG9kRm9yU2VsZWN0b3I6c2VsZWN0b3JdOwot
fQotCi0tIChCT09MKXJlc3BvbmRzVG9TZWxlY3RvcjooU0VMKXNlbGVjdG9yCi17Ci0gICAgaWYg
KHNlbGVjdG9yID09IEBzZWxlY3Rvcihjb3VudDopICYmIFtzZWxmIF9zaG91bGRSZXNwb25kVG9D
b3VudF0pCi0gICAgICAgIHNlbGVjdG9yID0gQHNlbGVjdG9yKF9jb3VudDopOwotCi0gICAgcmV0
dXJuIFtzdXBlciByZXNwb25kc1RvU2VsZWN0b3I6c2VsZWN0b3JdOwotfQotCi0KLS0gKHVuc2ln
bmVkKV9jb3VudAorLSAodW5zaWduZWQpY291bnQKIHsKICAgICBpZCBsZW5ndGggPSBbc2VsZiB2
YWx1ZUZvcktleTpAImxlbmd0aCJdOwogICAgIGlmIChbbGVuZ3RoIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoaW50VmFsdWUpXSkKQEAgLTU0OSw2ICs1MTYsOCBAQCBzdGF0aWMgTGlzdCBs
aXN0RnJvbU5TQXJyYXkoRXhlY1N0YXRlICplCiAgICAgICAgIHJldHVybiAwOwogfQogCisjZW5k
aWYKKwogLSAoaWQpb2JqZWN0QXRJbmRleDoodW5zaWduZWQpaW5kZXgKIHsKICAgICByZXR1cm4g
W3NlbGYgd2ViU2NyaXB0VmFsdWVBdEluZGV4OmluZGV4XTsKSW5kZXg6IFdlYkNvcmUvYmluZGlu
Z3Mvb2JqYy9XZWJTY3JpcHRPYmplY3RQcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9i
aW5kaW5ncy9vYmpjL1dlYlNjcmlwdE9iamVjdFByaXZhdGUuaAkocmV2aXNpb24gMjA2MzYpCisr
KyBXZWJDb3JlL2JpbmRpbmdzL29iamMvV2ViU2NyaXB0T2JqZWN0UHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yOCw4ICsyOCw2IEBACiAgICAgS0pTOjpCaW5kaW5nczo6Um9vdE9iamVjdCog
cm9vdE9iamVjdDsKICAgICBLSlM6OkJpbmRpbmdzOjpSb290T2JqZWN0KiBvcmlnaW5Sb290T2Jq
ZWN0OwogICAgIEJPT0wgaXNDcmVhdGVkQnlET01XcmFwcGVyOwotICAgIEJPT0wgc2hvdWxkUmVz
cG9uZFRvQ291bnQ7Ci0gICAgQk9PTCBzaG91bGRSZXNwb25kVG9Db3VudFNldDsKIH0KIEBlbmQK
IAo=
</data>
<flag name="review"
          id="5582"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>