<?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>59984</bug_id>
          
          <creation_ts>2011-05-02 17:08:57 -0700</creation_ts>
          <short_desc>Need a way to determine if the main thread has been initialized.</short_desc>
          <delta_ts>2011-07-12 14:52:03 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>INVALID</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>31639</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="David Levin">levin</reporter>
          <assigned_to name="David Levin">levin</assigned_to>
          <cc>ap</cc>
    
    <cc>barraclough</cc>
    
    <cc>jchaffraix</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>396808</commentid>
    <comment_count>0</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-02 17:08:57 -0700</bug_when>
    <thetext>wtf may be used without initializing the main thread. Due to these cases, it would be useful to know if the main thread has been initialized before calling isMainThread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398298</commentid>
    <comment_count>1</comment_count>
      <attachid>92327</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 15:17:10 -0700</bug_when>
    <thetext>Created attachment 92327
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398305</commentid>
    <comment_count>2</comment_count>
      <attachid>92327</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-05-04 15:22:27 -0700</bug_when>
    <thetext>Comment on attachment 92327
Patch

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

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:253
&gt; +bool internalIsMainThreadInitialized()
&gt; +{
&gt; +#ifndef NDEBUG
&gt; +    return mainThreadInitialized;
&gt; +#else
&gt; +    return false;
&gt; +#endif
&gt; +}

It doesn’t make sense to have this return false in NDEBUG builds. Maybe put a CRASH() here instead or in addition?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398366</commentid>
    <comment_count>3</comment_count>
      <attachid>92327</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-04 16:15:47 -0700</bug_when>
    <thetext>Comment on attachment 92327
Patch

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

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:246
&gt; +bool internalIsMainThreadInitialized()

It&apos;s slightly inelegant to have a function that returns a boolean, but only &quot;true&quot; results can be trusted. Trusting a &quot;false&quot; results would be a race condition.

Can this be changed into a check-style function that asserts internally?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398370</commentid>
    <comment_count>4</comment_count>
      <attachid>92327</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-04 16:18:03 -0700</bug_when>
    <thetext>Comment on attachment 92327
Patch

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

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:248
&gt; +#ifndef NDEBUG

Another extremely minor nit. ASSERTION_ENABLED is not exactly the same as !NDEBUG. People sometimes want to build release mode with assertions - I know that I did that once, with a significant but practical amount of code changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398392</commentid>
    <comment_count>5</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 16:36:00 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 92327 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92327&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:246
&gt; &gt; +bool internalIsMainThreadInitialized()
&gt; 
&gt; It&apos;s slightly inelegant to have a function that returns a boolean, but only &quot;true&quot; results can be trusted. 

Per discussion in irc, will change the name to mayCallIsMainThread.

(In reply to comment #4)
&gt; (From update of attachment 92327 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=92327&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wtf/MainThread.cpp:248
&gt; &gt; +#ifndef NDEBUG
&gt; 
&gt; Another extremely minor nit. ASSERTION_ENABLED is not exactly the same as !NDEBUG. People sometimes want to build release mode with assertions - I know that I did that once, with a significant but practical amount of code changes.

Thanks. Will fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398415</commentid>
    <comment_count>6</comment_count>
      <attachid>92327</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 17:04:51 -0700</bug_when>
    <thetext>Comment on attachment 92327
Patch

Changing to &quot;isKnownAsMainThread&quot; which will change the code some.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398459</commentid>
    <comment_count>7</comment_count>
      <attachid>92352</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 18:05:36 -0700</bug_when>
    <thetext>Created attachment 92352
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398467</commentid>
    <comment_count>8</comment_count>
      <attachid>92354</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 18:28:59 -0700</bug_when>
    <thetext>Created attachment 92354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398579</commentid>
    <comment_count>9</comment_count>
      <attachid>92354</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-04 23:42:03 -0700</bug_when>
    <thetext>Comment on attachment 92354
Patch

I should add a similar atomicIncrement to initializeMainThreadToProcessMainThreadOnce().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398845</commentid>
    <comment_count>10</comment_count>
      <attachid>92433</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-05-05 11:10:56 -0700</bug_when>
    <thetext>Created attachment 92433
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>398901</commentid>
    <comment_count>11</comment_count>
      <attachid>92433</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-05-05 12:15:14 -0700</bug_when>
    <thetext>Comment on attachment 92433
Patch

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

&gt; Source/JavaScriptCore/ChangeLog:13
&gt; +        (WTF::initializeMainThreadOnce): Ditto (for OSX).
&gt; +        (WTF::initializeMainThreadToProcessMainThreadOnce): Ditto (for OSX).

&quot;OS X&quot;.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:76
&gt; +static int mainThreadInitialized;

It&apos;s quite confusing to have both mainThreadInitialized and initializedMainThread in this code.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:113
&gt; +    // Flush all writes and set mainThreadInitialized to 1 to indicate that the initialization has been done.
&gt; +    atomicIncrement(&amp;mainThreadInitialized);

Not sure if the fact that setting a variable named mainThreadInitialized to 1 indicates that the initialization has been done needs a comment.

That said, I can see why the use of atomicIncrement to insert a memory barrier needs some explanation. But after an IRC discussion, I also don&apos;t think that it&apos;s doing the job. There is no way to guarantee memory consistency without a memory barrier on a thread that checks mainThreadInitialized - it&apos;s not enough to use on the thread that changes it.

Also, I&apos;m not sure if we want or do guarantee a full memory barrier in atomicIncrement implementations. Clearly, it&apos;s not required to increment one integer.

&gt; Source/JavaScriptCore/wtf/MainThread.cpp:257
&gt; +    CRASH();

This probably need a comment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>435985</commentid>
    <comment_count>12</comment_count>
    <who name="David Levin">levin</who>
    <bug_when>2011-07-12 14:52:03 -0700</bug_when>
    <thetext>Instead of doing this, I&apos;m looking into making current thread much faster.

currentThread takes about 3x the time of isMainThread in debug and more than 2x in release, which is the reason for preferring to use isMainThread when possible.

On the other hand, if currentThread were faster than it is now, then this issue may go away.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92327</attachid>
            <date>2011-05-04 15:17:10 -0700</date>
            <delta_ts>2011-05-04 18:05:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59984-20110504151708.patch</filename>
            <type>text/plain</type>
            <size>7666</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ODlmNzVjZmNkNTIxMDBlZGI0NTgxMzhmZTcxNjBjZWZkYjc5OWQuLmVjMWEzNTI0M2U0ZWFhOTlm
YjcwZTEwNmI2MjkxMGJkOWIxMjYwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI2IEBACisyMDExLTA1LTA0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
d2F5IHRvIGRldGVybWluZSBpZiB0aGUgbWFpbiB0aHJlYWQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk4NAor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOiBleHBvcnRlZCBpbnRlcm5hbElzTWFpblRo
cmVhZEluaXRpYWxpemVkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2Ny
aXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWY6IERpdHRvLgorICAgICAgICAqIHd0Zi9NYWluVGhy
ZWFkLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOiBTZXQgdGhlIGZs
YWcuCisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkT25jZSk6IERpdHRvIChmb3Ig
T1NYKS4KKyAgICAgICAgKFdURjo6aW50ZXJuYWxJc01haW5UaHJlYWRJbml0aWFsaXplZCk6IEFk
ZGVkLgorICAgICAgICAoV1RGOjppc01haW5UaHJlYWQpOiBBZGRlZCBhc3NlcnQgdG8gdmVyaWZ5
IGluaXRpYWxpemF0aW9uLgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmg6CisgICAgICAgIChX
VEY6OmlzTWFpblRocmVhZEluaXRpYWxpemVkKTogQWRkZWQuCisgICAgICAgICogd3RmL2Nocm9t
aXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHA6CisgICAgICAgIChXVEY6OmluaXRpYWxpemVNYWlu
VGhyZWFkKTogU2V0IHRoZSBmbGFnLgorICAgICAgICAoV1RGOjppbnRlcm5hbElzTWFpblRocmVh
ZEluaXRpYWxpemVkKTogQWRkZWQuCisgICAgICAgIChXVEY6OmlzTWFpblRocmVhZCk6IEFkZGVk
IGFzc2VydCB0byB2ZXJpZnkgaW5pdGlhbGl6YXRpb24uCisgICAgICAgICogd3RmL21hYy9NYWlu
VGhyZWFkTWFjLm1tOgorICAgICAgICAoV1RGOjppc01haW5UaHJlYWQpOiBBZGRlZCBhc3NlcnQg
dG8gdmVyaWZ5IGluaXRpYWxpemF0aW9uLgorCiAyMDExLTA1LTAyICBHYXZpbiBCYXJyYWNsb3Vn
aCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIg
SHVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5l
eHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCmluZGV4IGEyN2I4
MDdkNTJlOGY3M2QxNTRjYWVlODBlNWM1YjVmMGJmNTg0YmQuLjc3OWEwZDBlMjg2MDE2YmU5YjJi
NjRkNzU3YmVkZjk3ZTc0MjAyMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9K
YXZhU2NyaXB0Q29yZS5leHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmV4cApAQCAtNDQyLDYgKzQ0Miw3IEBAIF9fWk4zV1RGMjdyZWxlYXNlRmFzdE1hbGxvY0Zy
ZWVNZW1vcnlFdgogX19aTjNXVEYyOHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWRFYgogX19a
TjNXVEYyOWNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyRXYKIF9fWk4zV1RGMjljcnlwdG9n
cmFwaGljYWxseVJhbmRvbVZhbHVlc0VQdm0KK19fWk4zV1RGMzFpbnRlcm5hbElzTWFpblRocmVh
ZEluaXRpYWxpemVkRXYKIF9fWk4zV1RGMzZsb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGlj
TXV0ZXhFdgogX19aTjNXVEYzN3BhcnNlRGF0ZUZyb21OdWxsVGVybWluYXRlZENoYXJhY3RlcnNF
UEtjCiBfX1pOM1dURjM4dW5sb2NrQXRvbWljYWxseUluaXRpYWxpemVkU3RhdGljTXV0ZXhFdgpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpp
bmRleCA2ZDE5ZWU2YmU3MWNhY2QxODI5ZjhhNzViZDg3MTU1YWQwNDEwZDFmLi40MTA4ZTE0MTNi
YzRlZDAyYmIxMDQ2MTQwMmFkMDE3MTQ0N2VlYWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLmRlZgorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9q
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZgpAQCAtMjE4LDYgKzIxOCw3IEBAIEVY
UE9SVFMKICAgICA/aW5pdGlhbGl6ZU1haW5UaHJlYWRAV1RGQEBZQVhYWgogICAgID9pbml0aWFs
aXplVGhyZWFkaW5nQEpTQ0BAWUFYWFoKICAgICA/aW5pdGlhbGl6ZVRocmVhZGluZ0BXVEZAQFlB
WFhaCisgICAgP2ludGVybmFsSXNNYWluVGhyZWFkSW5pdGlhbGl6ZWRAV1RGQEBZQV9OWFoKICAg
ICA/aW50ZXJwcmV0QFlhcnJASlNDQEBZQUhQQVVCeXRlY29kZVBhdHRlcm5AMTJAUEJfV0lJUEFI
QFoKICAgICA/aXNBY2Nlc3NvckRlc2NyaXB0b3JAUHJvcGVydHlEZXNjcmlwdG9yQEpTQ0BAUUJF
X05YWgogICAgID9pc0J1c3lASGVhcEBKU0NAQFFBRV9OWFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
d3RmL01haW5UaHJlYWQuY3BwCmluZGV4IGE1ZjIzNDZiYThlNWZiODRjMmQyOWU1MjAyNDgyNzU0
OWRjNmFhZTQuLmFkMjM2OTRjNWExMjgyZDYyM2Y4ZGE5OTVlOWE4ODIzMTE2OTAwM2IgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKKysrIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjksNiArMjksNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKIAorI2luY2x1ZGUg
IkF0b21pY3MuaCIKICNpbmNsdWRlICJDdXJyZW50VGltZS5oIgogI2luY2x1ZGUgIkRlcXVlLmgi
CiAjaW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCkBAIC03MCw2ICs3MSwxMSBAQCBwdWJsaWM6CiB0
eXBlZGVmIERlcXVlPEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVldWU7CiAKIHN0YXRp
YyBib29sIGNhbGxiYWNrc1BhdXNlZDsgLy8gVGhpcyBnbG9iYWwgdmFyaWFibGUgaXMgb25seSBh
Y2Nlc3NlZCBmcm9tIG1haW4gdGhyZWFkLgorCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGludCBt
YWluVGhyZWFkSW5pdGlhbGl6ZWQ7CisjZW5kaWYKKwogI2lmICFQTEFURk9STShNQUMpICYmICFQ
TEFURk9STShRVCkKIHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1haW5UaHJlYWRJZGVudGlmaWVy
OwogI2VuZGlmCkBAIC0xMDIsNiArMTA4LDEwIEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWQo
KQogCiAgICAgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgpOwogICAgIGluaXRpYWxpemVN
YWluVGhyZWFkUGxhdGZvcm0oKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gRmx1c2ggYWxsIHdy
aXRlcyBhbmQgc2V0IG1haW5UaHJlYWRJbml0aWFsaXplZCB0byAxIHRvIGluZGljYXRlIHRoYXQg
dGhlIGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIGRvbmUuCisgICAgYXRvbWljSW5jcmVtZW50KCZt
YWluVGhyZWFkSW5pdGlhbGl6ZWQpOworI2VuZGlmCiB9CiAKICNlbHNlCkBAIC0xMTIsNiArMTIy
LDEwIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkT25jZSgpCiB7CiAgICAgbWFp
blRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgpOwogICAgIGluaXRpYWxpemVNYWluVGhyZWFkUGxh
dGZvcm0oKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gRmx1c2ggYWxsIHdyaXRlcyBhbmQgc2V0
IG1haW5UaHJlYWRJbml0aWFsaXplZCB0byAxIHRvIGluZGljYXRlIHRoYXQgdGhlIGluaXRpYWxp
emF0aW9uIGhhcyBiZWVuIGRvbmUuCisgICAgYXRvbWljSW5jcmVtZW50KCZtYWluVGhyZWFkSW5p
dGlhbGl6ZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWQoKQpAQCAt
MjI5LDkgKzI0MywxOSBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBw
YXVzZWQpCiAgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1haW5UaHJlYWQoKTsK
IH0KIAorYm9vbCBpbnRlcm5hbElzTWFpblRocmVhZEluaXRpYWxpemVkKCkKK3sKKyNpZm5kZWYg
TkRFQlVHCisgICAgcmV0dXJuIG1haW5UaHJlYWRJbml0aWFsaXplZDsKKyNlbHNlCisgICAgcmV0
dXJuIGZhbHNlOworI2VuZGlmCit9CisKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
UVQpICYmICFQTEFURk9STShCUkVXTVApCiBib29sIGlzTWFpblRocmVhZCgpCiB7CisgICAgQVNT
RVJUKG1haW5UaHJlYWRJbml0aWFsaXplZCk7CiAgICAgcmV0dXJuIGN1cnJlbnRUaHJlYWQoKSA9
PSBtYWluVGhyZWFkSWRlbnRpZmllcjsKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L01haW5UaHJlYWQuaAppbmRleCA3NzAzZjNlMjk4NzQwZTZhMDVmMDhmMDRlZTcxMmMyOGEyY2Q2
N2NjLi44Y2E1Y2FkMjhiYTIwNzgzMzViYzg4MjVjZGQ0ZDdlNmZjYmE2ZjczIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaApAQCAtNDgsNiArNDgsMTcgQEAgdm9pZCBzZXRN
YWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKTsKIAogYm9vbCBpc01haW5UaHJl
YWQoKTsKIAorCisvLyBVc2UgaXNNYWluVGhyZWFkSW5pdGlhbGl6ZWQgaW5zdGVhZCBvZiBpbnRl
cm5hbElzTWFpblRocmVhZEluaXRpYWxpemVkLgorLy8gT25seSB3b3JrcyBpbiBkZWJ1ZyBjb2Rl
IGJ1dCBtdXN0IGJlIGV4cG9zZWQgaW4gYWxsIGJ1aWxkcyBiZWNhdXNlIHRoZXJlIGlzIG5vIHdh
eSB0byBleHBvcnQgZGVidWcgb25seSBzeW1ib2xzLgorYm9vbCBpbnRlcm5hbElzTWFpblRocmVh
ZEluaXRpYWxpemVkKCk7CisjaWZuZGVmIE5ERUJVRworaW5saW5lIGJvb2wgaXNNYWluVGhyZWFk
SW5pdGlhbGl6ZWQoKQoreworICAgIHJldHVybiBpbnRlcm5hbElzTWFpblRocmVhZEluaXRpYWxp
emVkKCk7Cit9CisjZW5kaWYKKwogLy8gTk9URTogdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5h
bCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRhdGlvbi4KIHZvaWQgaW5pdGlhbGl6
ZU1haW5UaHJlYWRQbGF0Zm9ybSgpOwogdm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25N
YWluVGhyZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Nocm9t
aXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2No
cm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2NzlhZTJiYzlh
NmQxYTBiNmYzYjhjOWUxOGU4MS4uNmZmZThhYzlhNTdiM2Q4ZGZjYTg0YWE5Mjg1YWJmNDk1OTdm
NDA1YSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9jaHJvbWl1bS9NYWlu
VGhyZWFkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvY2hyb21p
dW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk1h
aW5UaHJlYWQuaCIKIAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIKKyNpbmNsdWRlICJBdG9taWNz
LmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1UaHJlYWRpbmcuaCIKICNpbmNsdWRlICJUaHJlYWRpbmcu
aCIKIApAQCAtMzksNiArNDAsMTAgQEAgbmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBUaHJlYWRJ
ZGVudGlmaWVyIG1haW5UaHJlYWRJZGVudGlmaWVyOwogCisjaWZuZGVmIE5ERUJVRworc3RhdGlj
IGludCBtYWluVGhyZWFkSW5pdGlhbGl6ZWQ7CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplTWFp
blRocmVhZCgpCiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6ZWRNYWluVGhyZWFkOwpAQCAt
NDcsNiArNTIsMTAgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiAgICAgaW5pdGlhbGl6
ZWRNYWluVGhyZWFkID0gdHJ1ZTsKIAogICAgIG1haW5UaHJlYWRJZGVudGlmaWVyID0gY3VycmVu
dFRocmVhZCgpOworI2lmbmRlZiBOREVCVUcKKyAgICAvLyBGbHVzaCBhbGwgd3JpdGVzIGFuZCBz
ZXQgbWFpblRocmVhZEluaXRpYWxpemVkIHRvIDEgdG8gaW5kaWNhdGUgdGhhdCB0aGUgaW5pdGlh
bGl6YXRpb24gaGFzIGJlZW4gZG9uZS4KKyAgICBhdG9taWNJbmNyZW1lbnQoJm1haW5UaHJlYWRJ
bml0aWFsaXplZCk7CisjZW5kaWYKIH0KIAogdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJl
YWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCkBAIC02NCw4ICs3MywxOCBAQCB2
b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCkKICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKIH0KIAorYm9vbCBpbnRlcm5hbElzTWFpblRocmVhZEluaXRpYWxpemVkKCkKK3sK
KyNpZm5kZWYgTkRFQlVHCisgICAgcmV0dXJuIG1haW5UaHJlYWRJbml0aWFsaXplZDsKKyNlbHNl
CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGJvb2wgaXNNYWluVGhyZWFkKCkKIHsK
KyAgICBBU1NFUlQobWFpblRocmVhZEluaXRpYWxpemVkKTsKICAgICByZXR1cm4gY3VycmVudFRo
cmVhZCgpID09IG1haW5UaHJlYWRJZGVudGlmaWVyOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhyZWFkTWFjLm1tIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL3d0Zi9tYWMvTWFpblRocmVhZE1hYy5tbQppbmRleCA4MmI5ZGNlZGZlZDVkNzJmODI5
OTQwZjIxN2YzOTIxNWJhMjc2Y2ExLi4yYTBkNDQ4NDcxNmIxMTYzYTBkZWYzZjBkYWIxYzY4MzE0
ZmIwYTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL21hYy9NYWluVGhy
ZWFkTWFjLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvbWFjL01haW5UaHJlYWRN
YWMubW0KQEAgLTExOSw2ICsxMTksNyBAQCB2b2lkIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNP
bk1haW5UaHJlYWQoKQogCiBib29sIGlzTWFpblRocmVhZCgpCiB7CisgICAgQVNTRVJUKGlzTWFp
blRocmVhZEluaXRpYWxpemVkKCkpOwogICAgIGlmIChtYWluVGhyZWFkRXN0YWJsaXNoZWRBc1B0
aHJlYWRNYWluKSB7CiAgICAgICAgIEFTU0VSVCghbWFpblRocmVhZFB0aHJlYWQpOwogICAgICAg
ICByZXR1cm4gcHRocmVhZF9tYWluX25wKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92352</attachid>
            <date>2011-05-04 18:05:36 -0700</date>
            <delta_ts>2011-05-04 18:28:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59984-20110504180534.patch</filename>
            <type>text/plain</type>
            <size>7092</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ODlmNzVjZmNkNTIxMDBlZGI0NTgxMzhmZTcxNjBjZWZkYjc5OWQuLjZkNGNjYzQ2M2E4ODBlYjJm
YzkwNDVhZDgzZDJiZDVhODJjMGIwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDI0IEBACisyMDExLTA1LTA0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
d2F5IHRvIGRldGVybWluZSBpZiB0aGUgbWFpbiB0aHJlYWQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk4NAor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOiBFeHBvcnQgaW50ZXJuYWxJc0tub3duQXNN
YWluVGhyZWFkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWY6IERpdHRvLgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNw
cDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOiBTZXQgdGhlIGZsYWcuCisg
ICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkT25jZSk6IERpdHRvIChmb3IgT1NYKS4K
KyAgICAgICAgKFdURjo6aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKTogQWRkZWQuCisgICAg
ICAgIChXVEY6OmlzTWFpblRocmVhZCk6IEFkZGVkIGFzc2VydCB0byB2ZXJpZnkgaW5pdGlhbGl6
YXRpb24uCisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKFdURjo6aXNNYWlu
VGhyZWFkSW5pdGlhbGl6ZWQpOiBBZGRlZC4KKyAgICAgICAgKiB3dGYvY2hyb21pdW0vTWFpblRo
cmVhZENocm9taXVtLmNwcDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOiBT
ZXQgdGhlIGZsYWcuCisgICAgICAgIChXVEY6OmludGVybmFsSXNNYWluVGhyZWFkSW5pdGlhbGl6
ZWQpOiBBZGRlZC4KKyAgICAgICAgKFdURjo6aXNNYWluVGhyZWFkKTogQWRkZWQgYXNzZXJ0IHRv
IHZlcmlmeSBpbml0aWFsaXphdGlvbi4KKwogMjAxMS0wNS0wMiAgR2F2aW4gQmFycmFjbG91Z2gg
IDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1
bnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhw
IGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAppbmRleCBhMjdiODA3
ZDUyZThmNzNkMTU0Y2FlZTgwZTVjNWI1ZjBiZjU4NGJkLi5iNzViOTMzM2RkOTkyZmEwNTExNjQz
ZGI5ODU2NTJlZWM4Y2ZlZjkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUuZXhwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS5leHAKQEAgLTQzOCw2ICs0MzgsNyBAQCBfX1pOM1dURjIyY2hhcmFjdGVyc1RvVUludFN0cmlj
dEVQS3RtUGJpCiBfX1pOM1dURjIzY2FsbE9uTWFpblRocmVhZEFuZFdhaXRFUEZ2UHZFUzBfCiBf
X1pOM1dURjIzZGF5SW5Nb250aEZyb21EYXlJblllYXJFaWIKIF9fWk4zV1RGMjN3YWl0Rm9yVGhy
ZWFkQ29tcGxldGlvbkVqUFB2CitfX1pOM1dURjI3aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFk
RXYKIF9fWk4zV1RGMjdyZWxlYXNlRmFzdE1hbGxvY0ZyZWVNZW1vcnlFdgogX19aTjNXVEYyOHNl
dE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWRFYgogX19aTjNXVEYyOWNyeXB0b2dyYXBoaWNhbGx5
UmFuZG9tTnVtYmVyRXYKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZh
U2NyaXB0Q29yZS5kZWYKaW5kZXggNmQxOWVlNmJlNzFjYWNkMTgyOWY4YTc1YmQ4NzE1NWFkMDQx
MGQxZi4uNjFjMjcyZTNlZWE2MmRhMjRjZGYzZjg2NDAxNzA1ZjE0ODVkM2VhNCAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFT
Y3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5kZWYKQEAgLTIx
OCw2ICsyMTgsNyBAQCBFWFBPUlRTCiAgICAgP2luaXRpYWxpemVNYWluVGhyZWFkQFdURkBAWUFY
WFoKICAgICA/aW5pdGlhbGl6ZVRocmVhZGluZ0BKU0NAQFlBWFhaCiAgICAgP2luaXRpYWxpemVU
aHJlYWRpbmdAV1RGQEBZQVhYWgorICAgID9pbnRlcm5hbElzS25vd25Bc01haW5UaHJlYWRAV1RG
QEBZQV9OWFoKICAgICA/aW50ZXJwcmV0QFlhcnJASlNDQEBZQUhQQVVCeXRlY29kZVBhdHRlcm5A
MTJAUEJfV0lJUEFIQFoKICAgICA/aXNBY2Nlc3NvckRlc2NyaXB0b3JAUHJvcGVydHlEZXNjcmlw
dG9yQEpTQ0BAUUJFX05YWgogICAgID9pc0J1c3lASGVhcEBKU0NAQFFBRV9OWFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCmluZGV4IGE1ZjIzNDZiYThlNWZiODRjMmQy
OWU1MjAyNDgyNzU0OWRjNmFhZTQuLjE0ZWRkMzU0MDA3ZDEyODZmYWZkZTY3NTNlMTVhYTEwODMx
MjYzNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5j
cHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApAQCAtMjks
NiArMjksNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIK
IAorI2luY2x1ZGUgIkF0b21pY3MuaCIKICNpbmNsdWRlICJDdXJyZW50VGltZS5oIgogI2luY2x1
ZGUgIkRlcXVlLmgiCiAjaW5jbHVkZSAiU3RkTGliRXh0cmFzLmgiCkBAIC03MCw2ICs3MSwxMSBA
QCBwdWJsaWM6CiB0eXBlZGVmIERlcXVlPEZ1bmN0aW9uV2l0aENvbnRleHQ+IEZ1bmN0aW9uUXVl
dWU7CiAKIHN0YXRpYyBib29sIGNhbGxiYWNrc1BhdXNlZDsgLy8gVGhpcyBnbG9iYWwgdmFyaWFi
bGUgaXMgb25seSBhY2Nlc3NlZCBmcm9tIG1haW4gdGhyZWFkLgorCisjaWZuZGVmIE5ERUJVRwor
c3RhdGljIGludCBtYWluVGhyZWFkSW5pdGlhbGl6ZWQ7CisjZW5kaWYKKwogI2lmICFQTEFURk9S
TShNQUMpICYmICFQTEFURk9STShRVCkKIHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1haW5UaHJl
YWRJZGVudGlmaWVyOwogI2VuZGlmCkBAIC0xMDIsNiArMTA4LDEwIEBAIHZvaWQgaW5pdGlhbGl6
ZU1haW5UaHJlYWQoKQogCiAgICAgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgpOwogICAg
IGluaXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8g
Rmx1c2ggYWxsIHdyaXRlcyBhbmQgc2V0IG1haW5UaHJlYWRJbml0aWFsaXplZCB0byAxIHRvIGlu
ZGljYXRlIHRoYXQgdGhlIGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIGRvbmUuCisgICAgYXRvbWlj
SW5jcmVtZW50KCZtYWluVGhyZWFkSW5pdGlhbGl6ZWQpOworI2VuZGlmCiB9CiAKICNlbHNlCkBA
IC0xMTIsNiArMTIyLDEwIEBAIHN0YXRpYyB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkT25jZSgp
CiB7CiAgICAgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgpOwogICAgIGluaXRpYWxpemVN
YWluVGhyZWFkUGxhdGZvcm0oKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gRmx1c2ggYWxsIHdy
aXRlcyBhbmQgc2V0IG1haW5UaHJlYWRJbml0aWFsaXplZCB0byAxIHRvIGluZGljYXRlIHRoYXQg
dGhlIGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIGRvbmUuCisgICAgYXRvbWljSW5jcmVtZW50KCZt
YWluVGhyZWFkSW5pdGlhbGl6ZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgaW5pdGlhbGl6ZU1haW5U
aHJlYWQoKQpAQCAtMjI5LDkgKzI0MywyNCBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQ
YXVzZWQoYm9vbCBwYXVzZWQpCiAgICAgICAgIHNjaGVkdWxlRGlzcGF0Y2hGdW5jdGlvbnNPbk1h
aW5UaHJlYWQoKTsKIH0KIAorYm9vbCBpbnRlcm5hbElzS25vd25Bc01haW5UaHJlYWQoKQorewor
I2lmbmRlZiBOREVCVUcKKyAgICBpZiAoIW1haW5UaHJlYWRJbml0aWFsaXplZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsKKyNlbHNlCisgICAgQ1JB
U0goKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI2lmICFQTEFURk9STShNQUMp
ICYmICFQTEFURk9STShRVCkgJiYgIVBMQVRGT1JNKEJSRVdNUCkKIGJvb2wgaXNNYWluVGhyZWFk
KCkKIHsKKyNpZm5kZWYgTkRFQlVHCisgICAgQVNTRVJUKG1haW5UaHJlYWRJbml0aWFsaXplZCk7
CisjZW5kaWYKICAgICByZXR1cm4gY3VycmVudFRocmVhZCgpID09IG1haW5UaHJlYWRJZGVudGlm
aWVyOwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01h
aW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCmluZGV4
IDc3MDNmM2UyOTg3NDBlNmEwNWYwOGYwNGVlNzEyYzI4YTJjZDY3Y2MuLjE5ODA1MWZhNjYyNjJk
MzFjMGI5MGJkYTM2OTQ0ZWEwODExZjI3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5oCkBAIC00OCw2ICs0OCwxNyBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQ
YXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgpOwogCisKKy8vIFVzZSBp
c0tub3duQXNNYWluVGhyZWFkIGluc3RlYWQgb2YgaW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFk
LgorLy8gT25seSB3b3JrcyBpbiBkZWJ1ZyBjb2RlIGJ1dCBtdXN0IGJlIGV4cG9zZWQgaW4gYWxs
IGJ1aWxkcyBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBleHBvcnQgZGVidWcgb25seSBzeW1i
b2xzLgorYm9vbCBpbnRlcm5hbElzS25vd25Bc01haW5UaHJlYWQoKTsKKyNpZm5kZWYgTkRFQlVH
CitpbmxpbmUgYm9vbCBpc0tub3duQXNNYWluVGhyZWFkKCkKK3sKKyAgICByZXR1cm4gaW50ZXJu
YWxJc0tub3duQXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogLy8gTk9URTogdGhlc2UgZnVu
Y3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVhZCBpbXBsZW1lbnRhdGlv
bi4KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpOwogdm9pZCBzY2hlZHVsZURp
c3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKaW5kZXggOWU2
NTkyYjU3MTU2NzlhZTJiYzlhNmQxYTBiNmYzYjhjOWUxOGU4MS4uYjg4ODM1ZDZhYzViMTY0YmU4
NGYwZDMzMjdlMWU0NjIyYjExZmEzZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNwcApAQCAtMzIsNiArMzIs
NyBAQAogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKIAogI2luY2x1ZGUgIkFzc2VydGlvbnMuaCIK
KyNpbmNsdWRlICJBdG9taWNzLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1UaHJlYWRpbmcuaCIKICNp
bmNsdWRlICJUaHJlYWRpbmcuaCIKIApAQCAtMzksNiArNDAsMTAgQEAgbmFtZXNwYWNlIFdURiB7
CiAKIHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1haW5UaHJlYWRJZGVudGlmaWVyOwogCisjaWZu
ZGVmIE5ERUJVRworc3RhdGljIGludCBtYWluVGhyZWFkSW5pdGlhbGl6ZWQ7CisjZW5kaWYKKwog
dm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiB7CiAgICAgc3RhdGljIGJvb2wgaW5pdGlhbGl6
ZWRNYWluVGhyZWFkOwpAQCAtNDcsNiArNTIsMTAgQEAgdm9pZCBpbml0aWFsaXplTWFpblRocmVh
ZCgpCiAgICAgaW5pdGlhbGl6ZWRNYWluVGhyZWFkID0gdHJ1ZTsKIAogICAgIG1haW5UaHJlYWRJ
ZGVudGlmaWVyID0gY3VycmVudFRocmVhZCgpOworI2lmbmRlZiBOREVCVUcKKyAgICAvLyBGbHVz
aCBhbGwgd3JpdGVzIGFuZCBzZXQgbWFpblRocmVhZEluaXRpYWxpemVkIHRvIDEgdG8gaW5kaWNh
dGUgdGhhdCB0aGUgaW5pdGlhbGl6YXRpb24gaGFzIGJlZW4gZG9uZS4KKyAgICBhdG9taWNJbmNy
ZW1lbnQoJm1haW5UaHJlYWRJbml0aWFsaXplZCk7CisjZW5kaWYKIH0KIAogdm9pZCBjYWxsT25N
YWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZvaWQqIGNvbnRleHQpCkBA
IC02NCw4ICs3MywyMyBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCkK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorYm9vbCBpbnRlcm5hbElzS25vd25Bc01h
aW5UaHJlYWQoKQoreworI2lmbmRlZiBOREVCVUcKKyAgICBpZiAoIW1haW5UaHJlYWRJbml0aWFs
aXplZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBpc01haW5UaHJlYWQoKTsK
KyNlbHNlCisgICAgQ1JBU0goKTsKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogYm9v
bCBpc01haW5UaHJlYWQoKQogeworI2lmbmRlZiBOREVCVUcKKyAgICBBU1NFUlQobWFpblRocmVh
ZEluaXRpYWxpemVkKTsKKyNlbmRpZgogICAgIHJldHVybiBjdXJyZW50VGhyZWFkKCkgPT0gbWFp
blRocmVhZElkZW50aWZpZXI7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92354</attachid>
            <date>2011-05-04 18:28:59 -0700</date>
            <delta_ts>2011-05-04 23:42:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59984-20110504182858.patch</filename>
            <type>text/plain</type>
            <size>6757</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ODlmNzVjZmNkNTIxMDBlZGI0NTgxMzhmZTcxNjBjZWZkYjc5OWQuLmM1MDQ1MzVjYmVmOWYzM2Yz
ODY3OGNiN2E5NmNlYWM3MTQ1MzhjNTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIyIEBACisyMDExLTA1LTA0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
d2F5IHRvIGRldGVybWluZSBpZiB0aGUgbWFpbiB0aHJlYWQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk4NAor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOiBFeHBvcnQgaW50ZXJuYWxJc0tub3duQXNN
YWluVGhyZWFkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWY6IERpdHRvLgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNw
cDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOiBTZXQgdGhlIGZsYWcuCisg
ICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkT25jZSk6IERpdHRvIChmb3IgT1NYKS4K
KyAgICAgICAgKFdURjo6aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKTogQWRkZWQuCisgICAg
ICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKFdURjo6aXNLbm93bkFzTWFpblRocmVh
ZCk6IEFkZGVkLgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3Bw
OgorICAgICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVhZCk6IFNldCB0aGUgZmxhZy4KKyAg
ICAgICAgKFdURjo6aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKTogQWRkZWQuCisKIDIwMTEt
MDUtMDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS5leHAKaW5kZXggYTI3YjgwN2Q1MmU4ZjczZDE1NGNhZWU4MGU1YzViNWYwYmY1ODRi
ZC4uYjc1YjkzMzNkZDk5MmZhMDUxMTY0M2RiOTg1NjUyZWVjOGNmZWY5MCAxMDA2NDQKLS0tIGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC00MzgsNiArNDM4LDcgQEAgX19aTjNX
VEYyMmNoYXJhY3RlcnNUb1VJbnRTdHJpY3RFUEt0bVBiaQogX19aTjNXVEYyM2NhbGxPbk1haW5U
aHJlYWRBbmRXYWl0RVBGdlB2RVMwXwogX19aTjNXVEYyM2RheUluTW9udGhGcm9tRGF5SW5ZZWFy
RWliCiBfX1pOM1dURjIzd2FpdEZvclRocmVhZENvbXBsZXRpb25FalBQdgorX19aTjNXVEYyN2lu
dGVybmFsSXNLbm93bkFzTWFpblRocmVhZEV2CiBfX1pOM1dURjI3cmVsZWFzZUZhc3RNYWxsb2NG
cmVlTWVtb3J5RXYKIF9fWk4zV1RGMjhzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkRWIKIF9f
Wk4zV1RGMjljcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJlckV2CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNwcm9qL0phdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCmluZGV4IDZkMTllZTZiZTcx
Y2FjZDE4MjlmOGE3NWJkODcxNTVhZDA0MTBkMWYuLjYxYzI3MmUzZWVhNjJkYTI0Y2RmM2Y4NjQw
MTcwNWYxNDg1ZDNlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2Ny
aXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUuZGVmCkBAIC0yMTgsNiArMjE4LDcgQEAgRVhQT1JUUwogICAgID9pbml0
aWFsaXplTWFpblRocmVhZEBXVEZAQFlBWFhaCiAgICAgP2luaXRpYWxpemVUaHJlYWRpbmdASlND
QEBZQVhYWgogICAgID9pbml0aWFsaXplVGhyZWFkaW5nQFdURkBAWUFYWFoKKyAgICA/aW50ZXJu
YWxJc0tub3duQXNNYWluVGhyZWFkQFdURkBAWUFfTlhaCiAgICAgP2ludGVycHJldEBZYXJyQEpT
Q0BAWUFIUEFVQnl0ZWNvZGVQYXR0ZXJuQDEyQFBCX1dJSVBBSEBaCiAgICAgP2lzQWNjZXNzb3JE
ZXNjcmlwdG9yQFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQFFCRV9OWFoKICAgICA/aXNCdXN5QEhl
YXBASlNDQEBRQUVfTlhaCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01h
aW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmNwcApp
bmRleCBhNWYyMzQ2YmE4ZTVmYjg0YzJkMjllNTIwMjQ4Mjc1NDlkYzZhYWU0Li4yMjk4NDAxOTVk
OTFjYzNhNTdmNzM1ODYzMjUxZGY2OTE3NjFjMDA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93
dGYvTWFpblRocmVhZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJNYWluVGhyZWFkLmgiCiAKKyNpbmNsdWRlICJBdG9taWNzLmgiCiAjaW5jbHVk
ZSAiQ3VycmVudFRpbWUuaCIKICNpbmNsdWRlICJEZXF1ZS5oIgogI2luY2x1ZGUgIlN0ZExpYkV4
dHJhcy5oIgpAQCAtNzAsNiArNzEsMTEgQEAgcHVibGljOgogdHlwZWRlZiBEZXF1ZTxGdW5jdGlv
bldpdGhDb250ZXh0PiBGdW5jdGlvblF1ZXVlOwogCiBzdGF0aWMgYm9vbCBjYWxsYmFja3NQYXVz
ZWQ7IC8vIFRoaXMgZ2xvYmFsIHZhcmlhYmxlIGlzIG9ubHkgYWNjZXNzZWQgZnJvbSBtYWluIHRo
cmVhZC4KKworI2lmbmRlZiBOREVCVUcKK3N0YXRpYyBpbnQgbWFpblRocmVhZEluaXRpYWxpemVk
OworI2VuZGlmCisKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oUVQpCiBzdGF0aWMg
VGhyZWFkSWRlbnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKICNlbmRpZgpAQCAtMTAyLDYg
KzEwOCwxMCBAQCB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKIAogICAgIG1haW5UaHJlYWRG
dW5jdGlvblF1ZXVlTXV0ZXgoKTsKICAgICBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCk7
CisjaWZuZGVmIE5ERUJVRworICAgIC8vIEZsdXNoIGFsbCB3cml0ZXMgYW5kIHNldCBtYWluVGhy
ZWFkSW5pdGlhbGl6ZWQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBo
YXMgYmVlbiBkb25lLgorICAgIGF0b21pY0luY3JlbWVudCgmbWFpblRocmVhZEluaXRpYWxpemVk
KTsKKyNlbmRpZgogfQogCiAjZWxzZQpAQCAtMTEyLDYgKzEyMiwxMCBAQCBzdGF0aWMgdm9pZCBp
bml0aWFsaXplTWFpblRocmVhZE9uY2UoKQogewogICAgIG1haW5UaHJlYWRGdW5jdGlvblF1ZXVl
TXV0ZXgoKTsKICAgICBpbml0aWFsaXplTWFpblRocmVhZFBsYXRmb3JtKCk7CisjaWZuZGVmIE5E
RUJVRworICAgIC8vIEZsdXNoIGFsbCB3cml0ZXMgYW5kIHNldCBtYWluVGhyZWFkSW5pdGlhbGl6
ZWQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBoYXMgYmVlbiBkb25l
LgorICAgIGF0b21pY0luY3JlbWVudCgmbWFpblRocmVhZEluaXRpYWxpemVkKTsKKyNlbmRpZgog
fQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKQEAgLTIyOSw2ICsyNDMsMTggQEAgdm9p
ZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wgcGF1c2VkKQogICAgICAgICBzY2hl
ZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CiB9CiAKK2Jvb2wgaW50ZXJuYWxJ
c0tub3duQXNNYWluVGhyZWFkKCkKK3sKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKCFtYWluVGhy
ZWFkSW5pdGlhbGl6ZWQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNNYWlu
VGhyZWFkKCk7CisjZWxzZQorICAgIENSQVNIKCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlm
Cit9CisKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oUVQpICYmICFQTEFURk9STShC
UkVXTVApCiBib29sIGlzTWFpblRocmVhZCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvd3RmL01haW5UaHJlYWQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFp
blRocmVhZC5oCmluZGV4IDc3MDNmM2UyOTg3NDBlNmEwNWYwOGYwNGVlNzEyYzI4YTJjZDY3Y2Mu
LjE5ODA1MWZhNjYyNjJkMzFjMGI5MGJkYTM2OTQ0ZWEwODExZjI3ODggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5oCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS93dGYvTWFpblRocmVhZC5oCkBAIC00OCw2ICs0OCwxNyBAQCB2b2lkIHNldE1haW5U
aHJlYWRDYWxsYmFja3NQYXVzZWQoYm9vbCBwYXVzZWQpOwogCiBib29sIGlzTWFpblRocmVhZCgp
OwogCisKKy8vIFVzZSBpc0tub3duQXNNYWluVGhyZWFkIGluc3RlYWQgb2YgaW50ZXJuYWxJc0tu
b3duQXNNYWluVGhyZWFkLgorLy8gT25seSB3b3JrcyBpbiBkZWJ1ZyBjb2RlIGJ1dCBtdXN0IGJl
IGV4cG9zZWQgaW4gYWxsIGJ1aWxkcyBiZWNhdXNlIHRoZXJlIGlzIG5vIHdheSB0byBleHBvcnQg
ZGVidWcgb25seSBzeW1ib2xzLgorYm9vbCBpbnRlcm5hbElzS25vd25Bc01haW5UaHJlYWQoKTsK
KyNpZm5kZWYgTkRFQlVHCitpbmxpbmUgYm9vbCBpc0tub3duQXNNYWluVGhyZWFkKCkKK3sKKyAg
ICByZXR1cm4gaW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKCk7Cit9CisjZW5kaWYKKwogLy8g
Tk9URTogdGhlc2UgZnVuY3Rpb25zIGFyZSBpbnRlcm5hbCB0byB0aGUgY2FsbE9uTWFpblRocmVh
ZCBpbXBsZW1lbnRhdGlvbi4KIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRQbGF0Zm9ybSgpOwog
dm9pZCBzY2hlZHVsZURpc3BhdGNoRnVuY3Rpb25zT25NYWluVGhyZWFkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1
bS5jcHAKaW5kZXggOWU2NTkyYjU3MTU2NzlhZTJiYzlhNmQxYTBiNmYzYjhjOWUxOGU4MS4uYzU5
NmNmYzU3NGZjOTVjYWI0ZTQ2ZTFlN2EzNmZmNWY0NjRmMmFhNyAxMDA2NDQKLS0tIGEvU291cmNl
L0phdmFTY3JpcHRDb3JlL3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCisrKyBi
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvY2hyb21pdW0vTWFpblRocmVhZENocm9taXVtLmNw
cApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIk1haW5UaHJlYWQuaCIKIAogI2luY2x1ZGUg
IkFzc2VydGlvbnMuaCIKKyNpbmNsdWRlICJBdG9taWNzLmgiCiAjaW5jbHVkZSAiQ2hyb21pdW1U
aHJlYWRpbmcuaCIKICNpbmNsdWRlICJUaHJlYWRpbmcuaCIKIApAQCAtMzksNiArNDAsMTAgQEAg
bmFtZXNwYWNlIFdURiB7CiAKIHN0YXRpYyBUaHJlYWRJZGVudGlmaWVyIG1haW5UaHJlYWRJZGVu
dGlmaWVyOwogCisjaWZuZGVmIE5ERUJVRworc3RhdGljIGludCBtYWluVGhyZWFkSW5pdGlhbGl6
ZWQ7CisjZW5kaWYKKwogdm9pZCBpbml0aWFsaXplTWFpblRocmVhZCgpCiB7CiAgICAgc3RhdGlj
IGJvb2wgaW5pdGlhbGl6ZWRNYWluVGhyZWFkOwpAQCAtNDcsNiArNTIsMTAgQEAgdm9pZCBpbml0
aWFsaXplTWFpblRocmVhZCgpCiAgICAgaW5pdGlhbGl6ZWRNYWluVGhyZWFkID0gdHJ1ZTsKIAog
ICAgIG1haW5UaHJlYWRJZGVudGlmaWVyID0gY3VycmVudFRocmVhZCgpOworI2lmbmRlZiBOREVC
VUcKKyAgICAvLyBGbHVzaCBhbGwgd3JpdGVzIGFuZCBzZXQgbWFpblRocmVhZEluaXRpYWxpemVk
IHRvIDEgdG8gaW5kaWNhdGUgdGhhdCB0aGUgaW5pdGlhbGl6YXRpb24gaGFzIGJlZW4gZG9uZS4K
KyAgICBhdG9taWNJbmNyZW1lbnQoJm1haW5UaHJlYWRJbml0aWFsaXplZCk7CisjZW5kaWYKIH0K
IAogdm9pZCBjYWxsT25NYWluVGhyZWFkKE1haW5UaHJlYWRGdW5jdGlvbiogZnVuY3Rpb24sIHZv
aWQqIGNvbnRleHQpCkBAIC02NCw2ICs3MywxOCBAQCB2b2lkIHNldE1haW5UaHJlYWRDYWxsYmFj
a3NQYXVzZWQoYm9vbCkKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAorYm9vbCBpbnRl
cm5hbElzS25vd25Bc01haW5UaHJlYWQoKQoreworI2lmbmRlZiBOREVCVUcKKyAgICBpZiAoIW1h
aW5UaHJlYWRJbml0aWFsaXplZCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBp
c01haW5UaHJlYWQoKTsKKyNlbHNlCisgICAgQ1JBU0goKTsKKyAgICByZXR1cm4gZmFsc2U7Cisj
ZW5kaWYKK30KKwogYm9vbCBpc01haW5UaHJlYWQoKQogewogICAgIHJldHVybiBjdXJyZW50VGhy
ZWFkKCkgPT0gbWFpblRocmVhZElkZW50aWZpZXI7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>92433</attachid>
            <date>2011-05-05 11:10:56 -0700</date>
            <delta_ts>2011-05-05 12:19:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-59984-20110505111055.patch</filename>
            <type>text/plain</type>
            <size>7244</size>
            <attacher name="David Levin">levin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODU0OTgKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGVj
ODlmNzVjZmNkNTIxMDBlZGI0NTgxMzhmZTcxNjBjZWZkYjc5OWQuLjhhYzk1MjE1NTYzMDFkZWE3
ZmY1OTE5YTc2ODFkNzMzMDM0MDA0NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDExLTA1LTA0ICBEYXZpZCBMZXZpbiAgPGxldmluQGNocm9taXVtLm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBOZWVkIGEg
d2F5IHRvIGRldGVybWluZSBpZiB0aGUgbWFpbiB0aHJlYWQgaGFzIGJlZW4gaW5pdGlhbGl6ZWQu
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01OTk4NAor
CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuZXhwOiBFeHBvcnQgaW50ZXJuYWxJc0tub3duQXNN
YWluVGhyZWFkLgorICAgICAgICAqIEphdmFTY3JpcHRDb3JlLnZjcHJvai9KYXZhU2NyaXB0Q29y
ZS9KYXZhU2NyaXB0Q29yZS5kZWY6IERpdHRvLgorICAgICAgICAqIHd0Zi9NYWluVGhyZWFkLmNw
cDoKKyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWQpOiBTZXQgdGhlIGZsYWcuCisg
ICAgICAgIChXVEY6OmluaXRpYWxpemVNYWluVGhyZWFkT25jZSk6IERpdHRvIChmb3IgT1NYKS4K
KyAgICAgICAgKFdURjo6aW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nlc3NNYWluVGhyZWFkT25j
ZSk6IERpdHRvIChmb3IgT1NYKS4KKyAgICAgICAgKFdURjo6aW50ZXJuYWxJc0tub3duQXNNYWlu
VGhyZWFkKTogQWRkZWQuCisgICAgICAgICogd3RmL01haW5UaHJlYWQuaDoKKyAgICAgICAgKFdU
Rjo6aXNLbm93bkFzTWFpblRocmVhZCk6IEFkZGVkLgorICAgICAgICAqIHd0Zi9jaHJvbWl1bS9N
YWluVGhyZWFkQ2hyb21pdW0uY3BwOgorICAgICAgICAoV1RGOjppbml0aWFsaXplTWFpblRocmVh
ZCk6IFNldCB0aGUgZmxhZy4KKyAgICAgICAgKFdURjo6aW50ZXJuYWxJc0tub3duQXNNYWluVGhy
ZWFkKTogQWRkZWQuCisKIDIwMTEtMDUtMDIgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91
Z2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE9saXZlciBIdW50LgpkaWZmIC0t
Z2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cCBiL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAKaW5kZXggYTI3YjgwN2Q1MmU4ZjczZDE1
NGNhZWU4MGU1YzViNWYwYmY1ODRiZC4uYjc1YjkzMzNkZDk5MmZhMDUxMTY0M2RiOTg1NjUyZWVj
OGNmZWY5MCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3Jl
LmV4cAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCkBAIC00
MzgsNiArNDM4LDcgQEAgX19aTjNXVEYyMmNoYXJhY3RlcnNUb1VJbnRTdHJpY3RFUEt0bVBiaQog
X19aTjNXVEYyM2NhbGxPbk1haW5UaHJlYWRBbmRXYWl0RVBGdlB2RVMwXwogX19aTjNXVEYyM2Rh
eUluTW9udGhGcm9tRGF5SW5ZZWFyRWliCiBfX1pOM1dURjIzd2FpdEZvclRocmVhZENvbXBsZXRp
b25FalBQdgorX19aTjNXVEYyN2ludGVybmFsSXNLbm93bkFzTWFpblRocmVhZEV2CiBfX1pOM1dU
RjI3cmVsZWFzZUZhc3RNYWxsb2NGcmVlTWVtb3J5RXYKIF9fWk4zV1RGMjhzZXRNYWluVGhyZWFk
Q2FsbGJhY2tzUGF1c2VkRWIKIF9fWk4zV1RGMjljcnlwdG9ncmFwaGljYWxseVJhbmRvbU51bWJl
ckV2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUudmNw
cm9qL0phdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmRlZiBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
ZGVmCmluZGV4IDZkMTllZTZiZTcxY2FjZDE4MjlmOGE3NWJkODcxNTVhZDA0MTBkMWYuLjYxYzI3
MmUzZWVhNjJkYTI0Y2RmM2Y4NjQwMTcwNWYxNDg1ZDNlYTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNj
cmlwdENvcmUuZGVmCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52
Y3Byb2ovSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZGVmCkBAIC0yMTgsNiArMjE4LDcg
QEAgRVhQT1JUUwogICAgID9pbml0aWFsaXplTWFpblRocmVhZEBXVEZAQFlBWFhaCiAgICAgP2lu
aXRpYWxpemVUaHJlYWRpbmdASlNDQEBZQVhYWgogICAgID9pbml0aWFsaXplVGhyZWFkaW5nQFdU
RkBAWUFYWFoKKyAgICA/aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkQFdURkBAWUFfTlhaCiAg
ICAgP2ludGVycHJldEBZYXJyQEpTQ0BAWUFIUEFVQnl0ZWNvZGVQYXR0ZXJuQDEyQFBCX1dJSVBB
SEBaCiAgICAgP2lzQWNjZXNzb3JEZXNjcmlwdG9yQFByb3BlcnR5RGVzY3JpcHRvckBKU0NAQFFC
RV9OWFoKICAgICA/aXNCdXN5QEhlYXBASlNDQEBRQUVfTlhaCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9NYWluVGhyZWFkLmNwcAppbmRleCBhNWYyMzQ2YmE4ZTVmYjg0YzJkMjllNTIwMjQ4Mjc1
NDlkYzZhYWU0Li42MTYwYTcyNDAyYjY2MTc1ZjIwYTdhNThmY2ViMDkyMTA2YzI2MWFjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuY3BwCisrKyBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvTWFpblRocmVhZC5jcHAKQEAgLTI5LDYgKzI5LDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJNYWluVGhyZWFkLmgiCiAKKyNpbmNsdWRl
ICJBdG9taWNzLmgiCiAjaW5jbHVkZSAiQ3VycmVudFRpbWUuaCIKICNpbmNsdWRlICJEZXF1ZS5o
IgogI2luY2x1ZGUgIlN0ZExpYkV4dHJhcy5oIgpAQCAtNzAsNiArNzEsMTEgQEAgcHVibGljOgog
dHlwZWRlZiBEZXF1ZTxGdW5jdGlvbldpdGhDb250ZXh0PiBGdW5jdGlvblF1ZXVlOwogCiBzdGF0
aWMgYm9vbCBjYWxsYmFja3NQYXVzZWQ7IC8vIFRoaXMgZ2xvYmFsIHZhcmlhYmxlIGlzIG9ubHkg
YWNjZXNzZWQgZnJvbSBtYWluIHRocmVhZC4KKworI2lmbmRlZiBOREVCVUcKK3N0YXRpYyBpbnQg
bWFpblRocmVhZEluaXRpYWxpemVkOworI2VuZGlmCisKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAh
UExBVEZPUk0oUVQpCiBzdGF0aWMgVGhyZWFkSWRlbnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmll
cjsKICNlbmRpZgpAQCAtMTAyLDYgKzEwOCwxMCBAQCB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFk
KCkKIAogICAgIG1haW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgoKTsKICAgICBpbml0aWFsaXpl
TWFpblRocmVhZFBsYXRmb3JtKCk7CisjaWZuZGVmIE5ERUJVRworICAgIC8vIEZsdXNoIGFsbCB3
cml0ZXMgYW5kIHNldCBtYWluVGhyZWFkSW5pdGlhbGl6ZWQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0
IHRoZSBpbml0aWFsaXphdGlvbiBoYXMgYmVlbiBkb25lLgorICAgIGF0b21pY0luY3JlbWVudCgm
bWFpblRocmVhZEluaXRpYWxpemVkKTsKKyNlbmRpZgogfQogCiAjZWxzZQpAQCAtMTEyLDYgKzEy
MiwxMCBAQCBzdGF0aWMgdm9pZCBpbml0aWFsaXplTWFpblRocmVhZE9uY2UoKQogewogICAgIG1h
aW5UaHJlYWRGdW5jdGlvblF1ZXVlTXV0ZXgoKTsKICAgICBpbml0aWFsaXplTWFpblRocmVhZFBs
YXRmb3JtKCk7CisjaWZuZGVmIE5ERUJVRworICAgIC8vIEZsdXNoIGFsbCB3cml0ZXMgYW5kIHNl
dCBtYWluVGhyZWFkSW5pdGlhbGl6ZWQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBpbml0aWFs
aXphdGlvbiBoYXMgYmVlbiBkb25lLgorICAgIGF0b21pY0luY3JlbWVudCgmbWFpblRocmVhZElu
aXRpYWxpemVkKTsKKyNlbmRpZgogfQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkKCkKQEAg
LTEyMyw2ICsxMzcsMTAgQEAgc3RhdGljIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWRUb1Byb2Nl
c3NNYWluVGhyZWFkT25jZSgpCiB7CiAgICAgbWFpblRocmVhZEZ1bmN0aW9uUXVldWVNdXRleCgp
OwogICAgIGluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRocmVhZFBsYXRmb3JtKCk7
CisjaWZuZGVmIE5ERUJVRworICAgIC8vIEZsdXNoIGFsbCB3cml0ZXMgYW5kIHNldCBtYWluVGhy
ZWFkSW5pdGlhbGl6ZWQgdG8gMSB0byBpbmRpY2F0ZSB0aGF0IHRoZSBpbml0aWFsaXphdGlvbiBo
YXMgYmVlbiBkb25lLgorICAgIGF0b21pY0luY3JlbWVudCgmbWFpblRocmVhZEluaXRpYWxpemVk
KTsKKyNlbmRpZgogfQogCiB2b2lkIGluaXRpYWxpemVNYWluVGhyZWFkVG9Qcm9jZXNzTWFpblRo
cmVhZCgpCkBAIC0yMjksNiArMjQ3LDE4IEBAIHZvaWQgc2V0TWFpblRocmVhZENhbGxiYWNrc1Bh
dXNlZChib29sIHBhdXNlZCkKICAgICAgICAgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0aW9uc09uTWFp
blRocmVhZCgpOwogfQogCitib29sIGludGVybmFsSXNLbm93bkFzTWFpblRocmVhZCgpCit7Cisj
aWZuZGVmIE5ERUJVRworICAgIGlmICghbWFpblRocmVhZEluaXRpYWxpemVkKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIGlzTWFpblRocmVhZCgpOworI2Vsc2UKKyAgICBDUkFT
SCgpOworICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiAjaWYgIVBMQVRGT1JNKE1BQykg
JiYgIVBMQVRGT1JNKFFUKSAmJiAhUExBVEZPUk0oQlJFV01QKQogYm9vbCBpc01haW5UaHJlYWQo
KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0Zi9NYWluVGhyZWFkLmgg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaAppbmRleCA3NzAzZjNlMjk4
NzQwZTZhMDVmMDhmMDRlZTcxMmMyOGEyY2Q2N2NjLi4xOTgwNTFmYTY2MjYyZDMxYzBiOTBiZGEz
Njk0NGVhMDgxMWYyNzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01h
aW5UaHJlYWQuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3RmL01haW5UaHJlYWQuaApA
QCAtNDgsNiArNDgsMTcgQEAgdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wg
cGF1c2VkKTsKIAogYm9vbCBpc01haW5UaHJlYWQoKTsKIAorCisvLyBVc2UgaXNLbm93bkFzTWFp
blRocmVhZCBpbnN0ZWFkIG9mIGludGVybmFsSXNLbm93bkFzTWFpblRocmVhZC4KKy8vIE9ubHkg
d29ya3MgaW4gZGVidWcgY29kZSBidXQgbXVzdCBiZSBleHBvc2VkIGluIGFsbCBidWlsZHMgYmVj
YXVzZSB0aGVyZSBpcyBubyB3YXkgdG8gZXhwb3J0IGRlYnVnIG9ubHkgc3ltYm9scy4KK2Jvb2wg
aW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKCk7CisjaWZuZGVmIE5ERUJVRworaW5saW5lIGJv
b2wgaXNLbm93bkFzTWFpblRocmVhZCgpCit7CisgICAgcmV0dXJuIGludGVybmFsSXNLbm93bkFz
TWFpblRocmVhZCgpOworfQorI2VuZGlmCisKIC8vIE5PVEU6IHRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW50ZXJuYWwgdG8gdGhlIGNhbGxPbk1haW5UaHJlYWQgaW1wbGVtZW50YXRpb24uCiB2b2lkIGlu
aXRpYWxpemVNYWluVGhyZWFkUGxhdGZvcm0oKTsKIHZvaWQgc2NoZWR1bGVEaXNwYXRjaEZ1bmN0
aW9uc09uTWFpblRocmVhZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3d0
Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3d0Zi9jaHJvbWl1bS9NYWluVGhyZWFkQ2hyb21pdW0uY3BwCmluZGV4IDllNjU5MmI1NzE1Njc5
YWUyYmM5YTZkMWEwYjZmM2I4YzllMThlODEuLmM1OTZjZmM1NzRmYzk1Y2FiNGU0NmUxZTdhMzZm
ZjVmNDY0ZjJhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS93dGYvY2hyb21p
dW0vTWFpblRocmVhZENocm9taXVtLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvd3Rm
L2Nocm9taXVtL01haW5UaHJlYWRDaHJvbWl1bS5jcHAKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJNYWluVGhyZWFkLmgiCiAKICNpbmNsdWRlICJBc3NlcnRpb25zLmgiCisjaW5jbHVkZSAi
QXRvbWljcy5oIgogI2luY2x1ZGUgIkNocm9taXVtVGhyZWFkaW5nLmgiCiAjaW5jbHVkZSAiVGhy
ZWFkaW5nLmgiCiAKQEAgLTM5LDYgKzQwLDEwIEBAIG5hbWVzcGFjZSBXVEYgewogCiBzdGF0aWMg
VGhyZWFkSWRlbnRpZmllciBtYWluVGhyZWFkSWRlbnRpZmllcjsKIAorI2lmbmRlZiBOREVCVUcK
K3N0YXRpYyBpbnQgbWFpblRocmVhZEluaXRpYWxpemVkOworI2VuZGlmCisKIHZvaWQgaW5pdGlh
bGl6ZU1haW5UaHJlYWQoKQogewogICAgIHN0YXRpYyBib29sIGluaXRpYWxpemVkTWFpblRocmVh
ZDsKQEAgLTQ3LDYgKzUyLDEwIEBAIHZvaWQgaW5pdGlhbGl6ZU1haW5UaHJlYWQoKQogICAgIGlu
aXRpYWxpemVkTWFpblRocmVhZCA9IHRydWU7CiAKICAgICBtYWluVGhyZWFkSWRlbnRpZmllciA9
IGN1cnJlbnRUaHJlYWQoKTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gRmx1c2ggYWxsIHdyaXRl
cyBhbmQgc2V0IG1haW5UaHJlYWRJbml0aWFsaXplZCB0byAxIHRvIGluZGljYXRlIHRoYXQgdGhl
IGluaXRpYWxpemF0aW9uIGhhcyBiZWVuIGRvbmUuCisgICAgYXRvbWljSW5jcmVtZW50KCZtYWlu
VGhyZWFkSW5pdGlhbGl6ZWQpOworI2VuZGlmCiB9CiAKIHZvaWQgY2FsbE9uTWFpblRocmVhZChN
YWluVGhyZWFkRnVuY3Rpb24qIGZ1bmN0aW9uLCB2b2lkKiBjb250ZXh0KQpAQCAtNjQsNiArNzMs
MTggQEAgdm9pZCBzZXRNYWluVGhyZWFkQ2FsbGJhY2tzUGF1c2VkKGJvb2wpCiAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7CiB9CiAKK2Jvb2wgaW50ZXJuYWxJc0tub3duQXNNYWluVGhyZWFkKCkK
K3sKKyNpZm5kZWYgTkRFQlVHCisgICAgaWYgKCFtYWluVGhyZWFkSW5pdGlhbGl6ZWQpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gaXNNYWluVGhyZWFkKCk7CisjZWxzZQorICAg
IENSQVNIKCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIGJvb2wgaXNNYWluVGhy
ZWFkKCkKIHsKICAgICByZXR1cm4gY3VycmVudFRocmVhZCgpID09IG1haW5UaHJlYWRJZGVudGlm
aWVyOwo=
</data>
<flag name="review"
          id="85405"
          type_id="1"
          status="-"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>