<?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>27612</bug_id>
          
          <creation_ts>2009-07-23 11:56:25 -0700</creation_ts>
          <short_desc>handling scripts can block UI</short_desc>
          <delta_ts>2009-12-14 07:21:55 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>0</everconfirmed>
          <reporter name="Yong Li">yong.li.webkit</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>koivisto</cc>
    
    <cc>manyoso</cc>
    
    <cc>oliver</cc>
    
    <cc>staikos</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yael</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>134183</commentid>
    <comment_count>0</comment_count>
      <attachid>33349</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-07-23 11:56:25 -0700</bug_when>
    <thetext>Created attachment 33349
the patch

CachedScript calls client-&gt;notifyFinished() immediately if the script is already in cache, and it also does that when all resource data comes.

In the case that the user goes back/forward to a page that contains many JS files, HMTLTokenizer will decode and execute those JS files at one time. This can affect UI responsiveness.

The attached patch contains code to delay sending notifications to cliensts of CachedScript by timer.

It helps improving responsiveness on WinMob

(Probably this is not a problem at all for desktop browsers?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137762</commentid>
    <comment_count>1</comment_count>
      <attachid>33349</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-08-06 20:31:16 -0700</bug_when>
    <thetext>Comment on attachment 33349
the patch

For example.  When a script tag finishes loading, I think js can get a &quot;on load&quot; event sent.  If that&apos;s true, then that event will be sent before execution instead of after execution in your port.  I would have to look to confirm if there is an onload for &lt;script&gt; tags.

Seems 120 vs. 0 should be a constant defined with an #ifdef at one location in the file.

When would this ever be hit?
5     if (!m_clients.contains(c))
 166         return;
I would think that would be an error.

Style:
80             if (!m_clientsToNotify.isEmpty()) {
 181                 m_notifyTimer.startOneShot(0);
 182             } else {
 183                 m_decodedDataDeletionTimer.startOneShot(120);
 184             }


The change looks technically correct.  But I&apos;m not sure this will function correctly from a web page&apos;s perspective.

The change need more comment as to why this will be OK from a web page&apos;s perspective.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137764</commentid>
    <comment_count>2</comment_count>
    <who name="George Staikos">staikos</who>
    <bug_when>2009-08-06 20:37:57 -0700</bug_when>
    <thetext>We definitely need test cases for this.  Good point re: onload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>137866</commentid>
    <comment_count>3</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-07 07:16:25 -0700</bug_when>
    <thetext>Well, CachedScript originally supports async mode, because it&apos;s loading network resource. It&apos;s sync mode only when the resource happens to exist in the cache.

The patch actually uses async mode for both cases.

There was a bug introduced by that, which is fixed in DocumentLoader::isLoadingInAPISense(). isLoadingInAPISense() returned false if tokenizer is not processing source and there&apos;s no pending request for that document. The patch fixes that by checking Document::parsing().

I don&apos;t think it can introduce onload() event problem. If there is a problem, it must have existed in original code, because old code uses async mode, too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140264</commentid>
    <comment_count>4</comment_count>
      <attachid>34857</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-14 10:40:11 -0700</bug_when>
    <thetext>Created attachment 34857
test case

this is a simple test case</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>140270</commentid>
    <comment_count>5</comment_count>
      <attachid>34859</attachid>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-14 10:58:30 -0700</bug_when>
    <thetext>Created attachment 34859
modified for coding style

only changed CACHED_SCRIPT_DELAY_NOTIFICATION into ENABLE(CACHED_SCRIPT_DELAY_NOTIFICATION)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141157</commentid>
    <comment_count>6</comment_count>
    <who name="Oliver Hunt">oliver</who>
    <bug_when>2009-08-18 12:05:08 -0700</bug_when>
    <thetext>Am i worried about functional correctness of this patch as it is deliberately allowing incorrect behaviour -- if i have 
&lt;script&gt;
..do stuff..
&lt;/script&gt;
&lt;script&gt;
...do more stuff...
&lt;/script&gt;

It should not be possible for the dom to change in any way between these two script tags, but what you are doing allows the state to change</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141158</commentid>
    <comment_count>7</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-18 12:10:06 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Am i worried about functional correctness of this patch as it is deliberately
&gt; allowing incorrect behaviour -- if i have 
&gt; &lt;script&gt;
&gt; ..do stuff..
&gt; &lt;/script&gt;
&gt; &lt;script&gt;
&gt; ...do more stuff...
&gt; &lt;/script&gt;
&gt; 
&gt; It should not be possible for the dom to change in any way between these two
&gt; script tags, but what you are doing allows the state to change

Thanks for commenting. But could you please make it clear what state changes?

The order won&apos;t change. HTMLTokenizer::notifyFinished() always handles the first one in the pending script list.

Even without this patch, the scripts can be pending, too.

Inline scripts won&apos;t be affected. It&apos;s only for this case:

&lt;script src =... &gt;&lt;/script&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141184</commentid>
    <comment_count>8</comment_count>
      <attachid>34859</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-08-18 13:17:47 -0700</bug_when>
    <thetext>Comment on attachment 34859
modified for coding style

I think CachedScript is wrong place to do this. It is likely have all kinds of unforeseen side effect. If you want to chop processing to smaller pieces on scripts that is probably better done in the tokenizer level which already has logic and timers to do processing in reasonable sized chunks. HTMLTokenizer::notifyFinished(CachedResource*) might be the place to start looking.

Also I think it should be possible to implement this in a manner that works well unversally on all platforms and does not require #ifdeffing. The code rot is pretty certain for this kind of code otherwise.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>141186</commentid>
    <comment_count>9</comment_count>
    <who name="Yong Li">yong.li.webkit</who>
    <bug_when>2009-08-18 13:23:13 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 34859 [details])
&gt; I think CachedScript is wrong place to do this. It is likely have all kinds of
&gt; unforeseen side effect. If you want to chop processing to smaller pieces on
&gt; scripts that is probably better done in the tokenizer level which already has
&gt; logic and timers to do processing in reasonable sized chunks.
&gt; HTMLTokenizer::notifyFinished(CachedResource*) might be the place to start
&gt; looking.
&gt; 
&gt; Also I think it should be possible to implement this in a manner that works
&gt; well unversally on all platforms and does not require #ifdeffing. The code rot
&gt; is pretty certain for this kind of code otherwise.

Antti, I have to say your idea is better. This can be done in HTMLTokenzier.

Sigh. I should talk to you earlier.

The patch is rejected, but the bug should still open until it&apos;s fixed in HTMLTokenizer, right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171097</commentid>
    <comment_count>10</comment_count>
      <attachid>44738</attachid>
    <who name="Yael">yael</who>
    <bug_when>2009-12-12 07:44:28 -0800</bug_when>
    <thetext>Created attachment 44738
Patch. 

Implement Antti&apos;s proposal to break the script execution in HTMLTokenizer.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171098</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-12 07:49:08 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44738 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171316</commentid>
    <comment_count>12</comment_count>
      <attachid>44738</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2009-12-14 01:31:05 -0800</bug_when>
    <thetext>Comment on attachment 44738
Patch. 

Looks good, r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171395</commentid>
    <comment_count>13</comment_count>
      <attachid>44738</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-14 07:21:49 -0800</bug_when>
    <thetext>Comment on attachment 44738
Patch. 

Clearing flags on attachment: 44738

Committed r52091: &lt;http://trac.webkit.org/changeset/52091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171396</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2009-12-14 07:21:55 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>33349</attachid>
            <date>2009-07-23 11:56:25 -0700</date>
            <delta_ts>2009-08-14 10:58:30 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>cached_script.patch</filename>
            <type>text/plain</type>
            <size>7365</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcCBiL1dlYkNvcmUvaHRt
bC9IVE1MVG9rZW5pemVyLmNwcAppbmRleCBlNGU0NmM1Li5kYzExMmY3IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxUb2tl
bml6ZXIuY3BwCkBAIC0yMDUzLDYgKzIwNTMsMTggQEAgdm9pZCBIVE1MVG9rZW5pemVyOjpub3Rp
ZnlGaW5pc2hlZChDYWNoZWRSZXNvdXJjZSopCiAgICAgICAgICAgICB3cml0ZShyZXN0LCBmYWxz
ZSk7CiAgICAgICAgICAgICAvLyB3ZSBtaWdodCBiZSBkZWxldGVkIGF0IHRoaXMgcG9pbnQsIGRv
IG5vdCBhY2Nlc3MgYW55IG1lbWJlcnMuCiAgICAgICAgIH0KKworI2lmIENBQ0hFRF9TQ1JJUFRf
REVMQVlfTk9USUZJQ0FUSU9OCisgICAgICAgIC8vIFdlIGRvbid0IHByb2Nlc3MgYWxsIGxvYWRl
ZCBzY3JpcHRzIGhlcmUgYmVjYXVzZSB0aGF0IGNhbiBibG9jayBVSSAKKyAgICAgICAgLy8gZXNw
ZWNpYWxseSB3aGVuIGxvYWRpbmcgcGFnZSBmcm9tIGhpc3RvcnkuIEluc3RlYWQsIHdlIGhhbmRs
ZSBhdCBtb3N0IG9uZSBzY3JpcHQKKyAgICAgICAgLy8gZXZlcnkgdGltZS4KKyAgICAgICAgaWYg
KCFmaW5pc2hlZCAmJiBtX3BlbmRpbmdTY3JpcHRzLmZpcnN0KCktPmlzTG9hZGVkKCkpIHsKKyAg
ICAgICAgICAgIENhY2hlZFNjcmlwdCogY3MgPSBtX3BlbmRpbmdTY3JpcHRzLmZpcnN0KCkuZ2V0
KCk7CisgICAgICAgICAgICAvLyBMZXQgQ2FjaGVkU2NyaXB0IG5vdGlmeSB1cyBhZ2FpbgorICAg
ICAgICAgICAgY3MtPm5vdGlmeUxhdGVyKHRoaXMpOworICAgICAgICB9CisgICAgICAgIGJyZWFr
OworI2VuZGlmCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRT
Y3JpcHQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0LmNwcAppbmRleCAzMTQ4M2Q2
Li41MTNmZDZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuY3BwCisr
KyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTQsNiArNCw3IEBACiAgICAg
Q29weXJpZ2h0IChDKSAyMDAyIFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9yZykKICAgICBD
b3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFpbC5jb20pCiAg
ICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxl
LCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTM4LDYg
KzM5LDkgQEAgQ2FjaGVkU2NyaXB0OjpDYWNoZWRTY3JpcHQoY29uc3QgU3RyaW5nJiB1cmwsIGNv
bnN0IFN0cmluZyYgY2hhcnNldCkKICAgICA6IENhY2hlZFJlc291cmNlKHVybCwgU2NyaXB0KQog
ICAgICwgbV9kZWNvZGVyKFRleHRSZXNvdXJjZURlY29kZXI6OmNyZWF0ZSgiYXBwbGljYXRpb24v
amF2YXNjcmlwdCIsIGNoYXJzZXQpKQogICAgICwgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIo
dGhpcywgJkNhY2hlZFNjcmlwdDo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQpCisjaWYg
Q0FDSEVEX1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04KKyAgICAsIG1fbm90aWZ5VGltZXIodGhp
cywgJkNhY2hlZFNjcmlwdDo6bm90aWZ5VGltZXJGaXJlZCkKKyNlbmRpZgogewogICAgIC8vIEl0
J3MgamF2YXNjcmlwdCB3ZSB3YW50LgogICAgIC8vIEJ1dCBzb21lIHdlYnNpdGVzIHRoaW5rIHRo
ZWlyIHNjcmlwdHMgYXJlIDxzb21lIHdyb25nIG1pbWV0eXBlIGhlcmU+CkBAIC01MSwxMyArNTUs
MjcgQEAgQ2FjaGVkU2NyaXB0Ojp+Q2FjaGVkU2NyaXB0KCkKIAogdm9pZCBDYWNoZWRTY3JpcHQ6
OmRpZEFkZENsaWVudChDYWNoZWRSZXNvdXJjZUNsaWVudCogYykKIHsKKyNpZiBDQUNIRURfU0NS
SVBUX0RFTEFZX05PVElGSUNBVElPTgorICAgIGlmICghbV9sb2FkaW5nKSB7CisgICAgICAgIG1f
Y2xpZW50c1RvTm90aWZ5LmFwcGVuZChjKTsKKyAgICAgICAgaWYgKCFtX25vdGlmeVRpbWVyLmlz
QWN0aXZlKCkpCisgICAgICAgICAgICBtX25vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAg
ICB9CisjZWxzZQogICAgIGlmICghbV9sb2FkaW5nKQogICAgICAgICBjLT5ub3RpZnlGaW5pc2hl
ZCh0aGlzKTsKKyNlbmRpZgogfQogCiB2b2lkIENhY2hlZFNjcmlwdDo6YWxsQ2xpZW50c1JlbW92
ZWQoKQogeworI2lmIENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OCisgICAgbV9jbGll
bnRzVG9Ob3RpZnkuY2xlYXIoKTsKKyAgICBtX25vdGlmeVRpbWVyLnN0b3AoKTsKKyAgICBtX2Rl
Y29kZWREYXRhRGVsZXRpb25UaW1lci5zdGFydE9uZVNob3QoMTIwKTsKKyNlbHNlCiAgICAgbV9k
ZWNvZGVkRGF0YURlbGV0aW9uVGltZXIuc3RhcnRPbmVTaG90KDApOworI2VuZGlmCiB9CiAKIHZv
aWQgQ2FjaGVkU2NyaXB0OjpzZXRFbmNvZGluZyhjb25zdCBTdHJpbmcmIGNocykKQEAgLTgwLDcg
Kzk4LDExIEBAIGNvbnN0IFN0cmluZyYgQ2FjaGVkU2NyaXB0OjpzY3JpcHQoKQogICAgICAgICBz
ZXREZWNvZGVkU2l6ZShtX3NjcmlwdC5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpOwogICAgIH0K
IAorI2lmIENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OCisgICAgbV9kZWNvZGVkRGF0
YURlbGV0aW9uVGltZXIuc3RhcnRPbmVTaG90KDEyMC4pOworI2Vsc2UKICAgICBtX2RlY29kZWRE
YXRhRGVsZXRpb25UaW1lci5zdGFydE9uZVNob3QoMCk7CisjZW5kaWYKICAgICByZXR1cm4gbV9z
Y3JpcHQ7CiB9CiAKQEAgLTEwMCw5ICsxMjIsMTcgQEAgdm9pZCBDYWNoZWRTY3JpcHQ6OmNoZWNr
Tm90aWZ5KCkKICAgICBpZiAobV9sb2FkaW5nKQogICAgICAgICByZXR1cm47CiAKKyNpZiBDQUNI
RURfU0NSSVBUX0RFTEFZX05PVElGSUNBVElPTgorICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fs
a2VyIHcobV9jbGllbnRzKTsKKyAgICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMgPSB3
Lm5leHQoKSkKKyAgICAgICAgbV9jbGllbnRzVG9Ob3RpZnkuYXBwZW5kKGMpOworICAgIGlmICgh
bV9jbGllbnRzVG9Ob3RpZnkuaXNFbXB0eSgpICYmICFtX25vdGlmeVRpbWVyLmlzQWN0aXZlKCkp
CisgICAgICAgIG1fbm90aWZ5VGltZXIuc3RhcnRPbmVTaG90KDApOworI2Vsc2UKICAgICBDYWNo
ZWRSZXNvdXJjZUNsaWVudFdhbGtlciB3KG1fY2xpZW50cyk7CiAgICAgd2hpbGUgKENhY2hlZFJl
c291cmNlQ2xpZW50KiBjID0gdy5uZXh0KCkpCiAgICAgICAgIGMtPm5vdGlmeUZpbmlzaGVkKHRo
aXMpOworI2VuZGlmCiB9CiAKIHZvaWQgQ2FjaGVkU2NyaXB0OjplcnJvcigpCkBAIC0xMjIsNyAr
MTUyLDQ0IEBAIHZvaWQgQ2FjaGVkU2NyaXB0OjpkZXN0cm95RGVjb2RlZERhdGEoKQogCiB2b2lk
IENhY2hlZFNjcmlwdDo6ZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQoVGltZXI8Q2FjaGVk
U2NyaXB0PiopCiB7CisjaWYgQ0FDSEVEX1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04KKyAgICBp
ZiAoIW1fY2xpZW50c1RvTm90aWZ5LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworI2VuZGlm
CiAgICAgZGVzdHJveURlY29kZWREYXRhKCk7CiB9CiAKKyNpZiBDQUNIRURfU0NSSVBUX0RFTEFZ
X05PVElGSUNBVElPTgordm9pZCBDYWNoZWRTY3JpcHQ6Om5vdGlmeUxhdGVyKENhY2hlZFJlc291
cmNlQ2xpZW50KiBjKQoreworICAgIGlmICghbV9jbGllbnRzLmNvbnRhaW5zKGMpKQorICAgICAg
ICByZXR1cm47CisgICAgZm9yIChEZXF1ZTxDYWNoZWRSZXNvdXJjZUNsaWVudCo+Ojpjb25zdF9p
dGVyYXRvciBpID0gbV9jbGllbnRzVG9Ob3RpZnkuYmVnaW4oKTsgaSAhPSBtX2NsaWVudHNUb05v
dGlmeS5lbmQoKTsgKytpKSB7CisgICAgICAgIGlmICgqaSA9PSBjKQorICAgICAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBtX2NsaWVudHNUb05vdGlmeS5hcHBlbmQoYyk7Cit9CisKK3ZvaWQg
Q2FjaGVkU2NyaXB0Ojpub3RpZnlUaW1lckZpcmVkKFRpbWVyPENhY2hlZFNjcmlwdD4qKQorewor
ICAgIHdoaWxlICghbV9jbGllbnRzVG9Ob3RpZnkuaXNFbXB0eSgpKSB7CisgICAgICAgIENhY2hl
ZFJlc291cmNlQ2xpZW50KiBjID0gbV9jbGllbnRzVG9Ob3RpZnkuZmlyc3QoKTsKKyAgICAgICAg
bV9jbGllbnRzVG9Ob3RpZnkucmVtb3ZlRmlyc3QoKTsKKyAgICAgICAgaWYgKG1fY2xpZW50cy5j
b250YWlucyhjKSkgeworICAgICAgICAgICAgaWYgKCFtX2NsaWVudHNUb05vdGlmeS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgICAgICAgICBtX25vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAg
ICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgbV9kZWNvZGVkRGF0YURlbGV0aW9u
VGltZXIuc3RhcnRPbmVTaG90KDEyMCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGMt
Pm5vdGlmeUZpbmlzaGVkKHRoaXMpOworICAgICAgICAgICAgLy8gVGhlIG9iamVjdCBtYXkgaGF2
ZSBiZWVuIGRlbGV0ZWQgZnJvbSB0aGlzIHBvaW50CisgICAgICAgICAgICByZXR1cm47CisgICAg
ICAgIH0KKyAgICB9CisgICAgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIuc3RhcnRPbmVTaG90
KDEyMCk7Cit9CisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0LmggYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3Jp
cHQuaAppbmRleCAxM2FmYTg5Li4zMjNkNDQyIDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9D
YWNoZWRTY3JpcHQuaAorKysgYi9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaApAQCAtMyw2
ICszLDcgQEAKICAgICBDb3B5cmlnaHQgKEMpIDIwMDEgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtk
ZS5vcmc+CiAgICAgQ29weXJpZ2h0IChDKSAyMDA2IFNhbXVlbCBXZWluaWcgKHNhbS53ZWluaWdA
Z21haWwuY29tKQogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAw
OCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgICAgQ29weXJpZ2h0IChDKSAyMDA5
IFRvcmNoIE1vYmlsZSwgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogCiAgICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCkBAIC0yOSw2ICszMCwxMyBAQAogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlLmgiCiAjaW5j
bHVkZSAiVGltZXIuaCIKIAorI2lmIFBMQVRGT1JNKFRPUkNITU9CSUxFKQorI2luY2x1ZGUgInd0
Zi9EZXF1ZS5oIgorI2RlZmluZSBDQUNIRURfU0NSSVBUX0RFTEFZX05PVElGSUNBVElPTiAgICAg
IDEKKyNlbHNlCisjZGVmaW5lIENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OICAgICAg
MAorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgIGNsYXNzIERvY0xvYWRlcjsK
QEAgLTU1LDEyICs2MywyNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVh
bCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwogCisjaWYgQ0FDSEVEX1NDUklQVF9ERUxBWV9O
T1RJRklDQVRJT04KKyAgICAgICAgdm9pZCBub3RpZnlMYXRlcihDYWNoZWRSZXNvdXJjZUNsaWVu
dCopOworI2VuZGlmCisKICAgICBwcml2YXRlOgogICAgICAgICB2b2lkIGRlY29kZWREYXRhRGVs
ZXRpb25UaW1lckZpcmVkKFRpbWVyPENhY2hlZFNjcmlwdD4qKTsKKyNpZiBDQUNIRURfU0NSSVBU
X0RFTEFZX05PVElGSUNBVElPTgorICAgICAgICB2b2lkIG5vdGlmeVRpbWVyRmlyZWQoVGltZXI8
Q2FjaGVkU2NyaXB0PiopOworI2VuZGlmCiAKICAgICAgICAgU3RyaW5nIG1fc2NyaXB0OwogICAg
ICAgICBSZWZQdHI8VGV4dFJlc291cmNlRGVjb2Rlcj4gbV9kZWNvZGVyOwogICAgICAgICBUaW1l
cjxDYWNoZWRTY3JpcHQ+IG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyOworI2lmIENBQ0hFRF9T
Q1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OCisgICAgICAgIC8vIERlbGF5IG5vdGlmaWNhdGlvbnMK
KyAgICAgICAgVGltZXI8Q2FjaGVkU2NyaXB0PiBtX25vdGlmeVRpbWVyOworICAgICAgICBEZXF1
ZTxDYWNoZWRSZXNvdXJjZUNsaWVudCo+IG1fY2xpZW50c1RvTm90aWZ5OworI2VuZGlmCiAgICAg
fTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIv
V2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDg3Y2I3MjUuLjIxM2M3ZjIg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9XZWJD
b3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQ3Miw2ICs0NzIsMTUgQEAgYm9vbCBE
b2N1bWVudExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0CiAgICAgICAgIGlmICgh
bV9zdWJyZXNvdXJjZUxvYWRlcnMuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworI2lmIENBQ0hF
RF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OCisgICAgICAgIC8vIFdoZW4gYSBwZW5kaW5nIGNh
Y2hlZCBzY3JpcHQgaXMgYWxyZWFkeSBsb2FkZWQsIGFuZCBqdXN0IHdhaXRpbmcgCisgICAgICAg
IC8vIGZvciB0aW1lciB0byBwdXNoIHRva2VuaXplciwgdG9rLT5wcm9jZXNzaW5nRGF0YSgpIGNh
biByZXR1cm4gZmFsc2UsIAorICAgICAgICAvLyBhbmQgZG9jLT5kb2NMb2FkZXIoKS0+cmVxdWVz
dENvdW50KCkgY2FuIGJlIDAuIEluIHRoaXMgY2FzZSwgCisgICAgICAgIC8vIHdlIGNhbiByZWx5
IG9uIGRvYy0+cGFyc2luZygpLiBQcm9iYWJseSB3ZSBzaG91bGQgYWx3YXlzCisgICAgICAgIC8v
IHJlbHkgb24gZG9jLT5wYXJzaW5nIGluc3RlYWQgb2YgdG9rLT5wcm9jZXNzaW5nRGF0YSgpLgor
ICAgICAgICBpZiAoZG9jLT5wYXJzaW5nKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyNl
bmRpZgogICAgICAgICBpZiAoZG9jLT5kb2NMb2FkZXIoKS0+cmVxdWVzdENvdW50KCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgaWYgKFRva2VuaXplciogdG9rID0gZG9jLT50
b2tlbml6ZXIoKSkK
</data>
<flag name="review"
          id="17645"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>34857</attachid>
            <date>2009-08-14 10:40:11 -0700</date>
            <delta_ts>2009-08-14 10:40:11 -0700</delta_ts>
            <desc>test case</desc>
            <filename>CachedScriptTest.zip</filename>
            <type>application/zip</type>
            <size>983</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">UEsDBBQAAAAAAJhsDjtnfsyXJgAAACYAAAAkAAAAQ2FjaGVkU2NyaXB0L2NhY2hlZF9zY3JpcHRf
dGVzdF8xLmpzZG9jdW1lbnQud3JpdGUoIkpTIDEgaXMgbG9hZGVkPGJyPiIpOwpQSwMEFAAAAAAA
mWwOO874mjQmAAAAJgAAACQAAABDYWNoZWRTY3JpcHQvY2FjaGVkX3NjcmlwdF90ZXN0XzIuanNk
b2N1bWVudC53cml0ZSgiSlMgMiBpcyBsb2FkZWQ8YnI+Iik7ClBLAwQUAAAAAACEbA47lnh44yYA
AAAmAAAAJAAAAENhY2hlZFNjcmlwdC9jYWNoZWRfc2NyaXB0X3Rlc3RfMy5qc2RvY3VtZW50Lndy
aXRlKCJKUyAzIGlzIGxvYWRlZDxicj4iKTsKUEsDBBQAAAAAAJlsDjvd80apJgAAACYAAAAkAAAA
Q2FjaGVkU2NyaXB0L2NhY2hlZF9zY3JpcHRfdGVzdF80LmpzZG9jdW1lbnQud3JpdGUoIkpTIDQg
aXMgbG9hZGVkPGJyPiIpOwpQSwMEFAAAAAgA22sOO5mJ6JtFAAAA3QAAACQAAABDYWNoZWRTY3Jp
cHQvY2FjaGVkX3NjcmlwdF90ZXh0Lmh0bWyzySjJzbHjsilOLsosKFEoLkq2VUpOTM5ITYmHCMWX
pBaXxBvqZRUr2dnoQ8QIqzciUb0xiepN0NUn5adUAil9GA32FgBQSwECFAAUAAAAAACYbA47Z37M
lyYAAAAmAAAAJAAAAAAAAAABACAAAAAAAAAAQ2FjaGVkU2NyaXB0L2NhY2hlZF9zY3JpcHRfdGVz
dF8xLmpzUEsBAhQAFAAAAAAAmWwOO874mjQmAAAAJgAAACQAAAAAAAAAAQAgAAAAaAAAAENhY2hl
ZFNjcmlwdC9jYWNoZWRfc2NyaXB0X3Rlc3RfMi5qc1BLAQIUABQAAAAAAIRsDjuWeHjjJgAAACYA
AAAkAAAAAAAAAAEAIAAAANAAAABDYWNoZWRTY3JpcHQvY2FjaGVkX3NjcmlwdF90ZXN0XzMuanNQ
SwECFAAUAAAAAACZbA473fNGqSYAAAAmAAAAJAAAAAAAAAABACAAAAA4AQAAQ2FjaGVkU2NyaXB0
L2NhY2hlZF9zY3JpcHRfdGVzdF80LmpzUEsBAhQAFAAAAAgA22sOO5mJ6JtFAAAA3QAAACQAAAAA
AAAAAQAgAAAAoAEAAENhY2hlZFNjcmlwdC9jYWNoZWRfc2NyaXB0X3RleHQuaHRtbFBLBQYAAAAA
BQAFAJoBAAAnAgAAAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>34859</attachid>
            <date>2009-08-14 10:58:30 -0700</date>
            <delta_ts>2009-08-18 13:27:11 -0700</delta_ts>
            <desc>modified for coding style</desc>
            <filename>27612.patch</filename>
            <type>text/plain</type>
            <size>9020</size>
            <attacher name="Yong Li">yong.li.webkit</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWRmNGFhYy4uY2MyYzI4NSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAwOS0wOC0xNCAgWW9uZyBMaSAgPHlv
bmcubGlAdG9yY2htb2JpbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFsbG93IENhY2hlZFNjcmlwdCB0byBzZW5kIG5vdGlmaWNhdGlvbiBh
c3luY2hyb25vdXNseSBldmVuIGl0J3MgYWxyZWFkeSBsb2FkZWQKKyAgICAgICAgd2hlbiBhZGRD
bGllbnQoKSBpcyBjYWxsZWQuIExldCBIVE1MVG9rZW5pemVyIGhhbmRsZSBvbmx5IG9uZSBwZW5k
aW5nIHNjcmlwdCBldmVyeXRpbWUsIGFuZAorICAgICAgICBsZWF2ZSB0aGUgcmVzdCB0cmlnZ2Vy
ZWQgYnkgdGltZXIgaW4gQ2FjaGVkU2NyaXB0LiAKKyAgICAgICAgQWxsIG9mIHRoZSBjaGFuZ2Vz
IGNhbiBiZSB0dXJuIG9uL29mZiBieSAoQ0FDSEVEX1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04p
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYxMgor
CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5pemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhU
TUxUb2tlbml6ZXI6Om5vdGlmeUZpbmlzaGVkKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkU2Ny
aXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6Q2FjaGVkU2NyaXB0KToK
KyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6ZGlkQWRkQ2xpZW50KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNjcmlwdDo6YWxsQ2xpZW50c1JlbW92ZWQpOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGVkU2NyaXB0OjpzY3JpcHQpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2Ny
aXB0OjpjaGVja05vdGlmeSk6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTY3JpcHQ6OmRlY29k
ZWREYXRhRGVsZXRpb25UaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNhY2hlZFNjcmlw
dDo6bm90aWZ5TGF0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkU2NyaXB0Ojpub3RpZnlU
aW1lckZpcmVkKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkU2NyaXB0Lmg6CisgICAgICAgICog
bG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50TG9h
ZGVyOjppc0xvYWRpbmdJbkFQSVNlbnNlKToKKwogMjAwOS0wOC0xMyAgU3RldmUgQmxvY2sgIDxz
dGV2ZWJsb2NrQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAgYi9XZWJDb3JlL2h0
bWwvSFRNTFRva2VuaXplci5jcHAKaW5kZXggZTRlNDZjNS4uMGE5MTU0ZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVG9r
ZW5pemVyLmNwcApAQCAtMjA1Myw2ICsyMDUzLDE4IEBAIHZvaWQgSFRNTFRva2VuaXplcjo6bm90
aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKQogICAgICAgICAgICAgd3JpdGUocmVzdCwgZmFs
c2UpOwogICAgICAgICAgICAgLy8gd2UgbWlnaHQgYmUgZGVsZXRlZCBhdCB0aGlzIHBvaW50LCBk
byBub3QgYWNjZXNzIGFueSBtZW1iZXJzLgogICAgICAgICB9CisKKyNpZiBFTkFCTEUoQ0FDSEVE
X1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04pCisgICAgICAgIC8vIFdlIGRvbid0IHByb2Nlc3Mg
YWxsIGxvYWRlZCBzY3JpcHRzIGhlcmUgYmVjYXVzZSB0aGF0IGNhbiBibG9jayBVSSAKKyAgICAg
ICAgLy8gZXNwZWNpYWxseSB3aGVuIGxvYWRpbmcgcGFnZSBmcm9tIGhpc3RvcnkuIEluc3RlYWQs
IHdlIGhhbmRsZSBhdCBtb3N0IG9uZSBzY3JpcHQKKyAgICAgICAgLy8gZXZlcnkgdGltZS4KKyAg
ICAgICAgaWYgKCFmaW5pc2hlZCAmJiBtX3BlbmRpbmdTY3JpcHRzLmZpcnN0KCktPmlzTG9hZGVk
KCkpIHsKKyAgICAgICAgICAgIENhY2hlZFNjcmlwdCogY3MgPSBtX3BlbmRpbmdTY3JpcHRzLmZp
cnN0KCkuZ2V0KCk7CisgICAgICAgICAgICAvLyBMZXQgQ2FjaGVkU2NyaXB0IG5vdGlmeSB1cyBh
Z2FpbgorICAgICAgICAgICAgY3MtPm5vdGlmeUxhdGVyKHRoaXMpOworICAgICAgICB9CisgICAg
ICAgIGJyZWFrOworI2VuZGlmCiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9DYWNoZWRTY3JpcHQuY3BwIGIvV2ViQ29yZS9sb2FkZXIvQ2FjaGVkU2NyaXB0LmNwcAppbmRl
eCAzMTQ4M2Q2Li5jZWViZmI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9DYWNoZWRTY3Jp
cHQuY3BwCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5jcHAKQEAgLTQsNiArNCw3
IEBACiAgICAgQ29weXJpZ2h0IChDKSAyMDAyIFdhbGRvIEJhc3RpYW4gKGJhc3RpYW5Aa2RlLm9y
ZykKICAgICBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0BnbWFp
bC5jb20pCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkgVG9y
Y2ggTW9iaWxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgICBUaGlzIGxpYnJhcnkg
aXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9k
aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMK
QEAgLTMyLDEyICszMywxOSBAQAogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKKyNpZiBFTkFCTEUoQ0FDSEVEX1NDUklQVF9ERUxBWV9O
T1RJRklDQVRJT04pCitzdGF0aWMgY29uc3QgZmxvYXQgY2FjaGVkU2NyaXB0S2VlcEFsaXZlVGlt
ZSA9IDEyMC5mOyAvLyBzZWNvbmRzCisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBD
YWNoZWRTY3JpcHQ6OkNhY2hlZFNjcmlwdChjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5n
JiBjaGFyc2V0KQogICAgIDogQ2FjaGVkUmVzb3VyY2UodXJsLCBTY3JpcHQpCiAgICAgLCBtX2Rl
Y29kZXIoVGV4dFJlc291cmNlRGVjb2Rlcjo6Y3JlYXRlKCJhcHBsaWNhdGlvbi9qYXZhc2NyaXB0
IiwgY2hhcnNldCkpCiAgICAgLCBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcih0aGlzLCAmQ2Fj
aGVkU2NyaXB0OjpkZWNvZGVkRGF0YURlbGV0aW9uVGltZXJGaXJlZCkKKyNpZiBFTkFCTEUoQ0FD
SEVEX1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04pCisgICAgLCBtX25vdGlmeVRpbWVyKHRoaXMs
ICZDYWNoZWRTY3JpcHQ6Om5vdGlmeVRpbWVyRmlyZWQpCisjZW5kaWYKIHsKICAgICAvLyBJdCdz
IGphdmFzY3JpcHQgd2Ugd2FudC4KICAgICAvLyBCdXQgc29tZSB3ZWJzaXRlcyB0aGluayB0aGVp
ciBzY3JpcHRzIGFyZSA8c29tZSB3cm9uZyBtaW1ldHlwZSBoZXJlPgpAQCAtNTEsMTMgKzU5LDI3
IEBAIENhY2hlZFNjcmlwdDo6fkNhY2hlZFNjcmlwdCgpCiAKIHZvaWQgQ2FjaGVkU2NyaXB0Ojpk
aWRBZGRDbGllbnQoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMpCiB7CisjaWYgRU5BQkxFKENBQ0hF
RF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OKQorICAgIGlmICghbV9sb2FkaW5nKSB7CisgICAg
ICAgIG1fY2xpZW50c1RvTm90aWZ5LmFwcGVuZChjKTsKKyAgICAgICAgaWYgKCFtX25vdGlmeVRp
bWVyLmlzQWN0aXZlKCkpCisgICAgICAgICAgICBtX25vdGlmeVRpbWVyLnN0YXJ0T25lU2hvdCgw
KTsKKyAgICB9CisjZWxzZQogICAgIGlmICghbV9sb2FkaW5nKQogICAgICAgICBjLT5ub3RpZnlG
aW5pc2hlZCh0aGlzKTsKKyNlbmRpZgogfQogCiB2b2lkIENhY2hlZFNjcmlwdDo6YWxsQ2xpZW50
c1JlbW92ZWQoKQogeworI2lmIEVOQUJMRShDQUNIRURfU0NSSVBUX0RFTEFZX05PVElGSUNBVElP
TikKKyAgICBtX2NsaWVudHNUb05vdGlmeS5jbGVhcigpOworICAgIG1fbm90aWZ5VGltZXIuc3Rv
cCgpOworICAgIG1fZGVjb2RlZERhdGFEZWxldGlvblRpbWVyLnN0YXJ0T25lU2hvdChjYWNoZWRT
Y3JpcHRLZWVwQWxpdmVUaW1lKTsKKyNlbHNlCiAgICAgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGlt
ZXIuc3RhcnRPbmVTaG90KDApOworI2VuZGlmCiB9CiAKIHZvaWQgQ2FjaGVkU2NyaXB0OjpzZXRF
bmNvZGluZyhjb25zdCBTdHJpbmcmIGNocykKQEAgLTgwLDcgKzEwMiwxMSBAQCBjb25zdCBTdHJp
bmcmIENhY2hlZFNjcmlwdDo6c2NyaXB0KCkKICAgICAgICAgc2V0RGVjb2RlZFNpemUobV9zY3Jp
cHQubGVuZ3RoKCkgKiBzaXplb2YoVUNoYXIpKTsKICAgICB9CiAKKyNpZiBFTkFCTEUoQ0FDSEVE
X1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04pCisgICAgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGlt
ZXIuc3RhcnRPbmVTaG90KGNhY2hlZFNjcmlwdEtlZXBBbGl2ZVRpbWUpOworI2Vsc2UKICAgICBt
X2RlY29kZWREYXRhRGVsZXRpb25UaW1lci5zdGFydE9uZVNob3QoMCk7CisjZW5kaWYKICAgICBy
ZXR1cm4gbV9zY3JpcHQ7CiB9CiAKQEAgLTEwMCw5ICsxMjYsMTcgQEAgdm9pZCBDYWNoZWRTY3Jp
cHQ6OmNoZWNrTm90aWZ5KCkKICAgICBpZiAobV9sb2FkaW5nKQogICAgICAgICByZXR1cm47CiAK
KyNpZiBFTkFCTEUoQ0FDSEVEX1NDUklQVF9ERUxBWV9OT1RJRklDQVRJT04pCisgICAgQ2FjaGVk
UmVzb3VyY2VDbGllbnRXYWxrZXIgdyhtX2NsaWVudHMpOworICAgIHdoaWxlIChDYWNoZWRSZXNv
dXJjZUNsaWVudCogYyA9IHcubmV4dCgpKQorICAgICAgICBtX2NsaWVudHNUb05vdGlmeS5hcHBl
bmQoYyk7CisgICAgaWYgKCFtX2NsaWVudHNUb05vdGlmeS5pc0VtcHR5KCkgJiYgIW1fbm90aWZ5
VGltZXIuaXNBY3RpdmUoKSkKKyAgICAgICAgbV9ub3RpZnlUaW1lci5zdGFydE9uZVNob3QoMCk7
CisjZWxzZQogICAgIENhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyIHcobV9jbGllbnRzKTsKICAg
ICB3aGlsZSAoQ2FjaGVkUmVzb3VyY2VDbGllbnQqIGMgPSB3Lm5leHQoKSkKICAgICAgICAgYy0+
bm90aWZ5RmluaXNoZWQodGhpcyk7CisjZW5kaWYKIH0KIAogdm9pZCBDYWNoZWRTY3JpcHQ6OmVy
cm9yKCkKQEAgLTEyMiw3ICsxNTYsNDMgQEAgdm9pZCBDYWNoZWRTY3JpcHQ6OmRlc3Ryb3lEZWNv
ZGVkRGF0YSgpCiAKIHZvaWQgQ2FjaGVkU2NyaXB0OjpkZWNvZGVkRGF0YURlbGV0aW9uVGltZXJG
aXJlZChUaW1lcjxDYWNoZWRTY3JpcHQ+KikKIHsKKyNpZiBFTkFCTEUoQ0FDSEVEX1NDUklQVF9E
RUxBWV9OT1RJRklDQVRJT04pCisgICAgaWYgKCFtX2NsaWVudHNUb05vdGlmeS5pc0VtcHR5KCkp
CisgICAgICAgIHJldHVybjsKKyNlbmRpZgogICAgIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwogfQog
CisjaWYgRU5BQkxFKENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OKQordm9pZCBDYWNo
ZWRTY3JpcHQ6Om5vdGlmeUxhdGVyKENhY2hlZFJlc291cmNlQ2xpZW50KiBjKQoreworICAgIGlm
ICghbV9jbGllbnRzLmNvbnRhaW5zKGMpKQorICAgICAgICByZXR1cm47CisgICAgZm9yIChEZXF1
ZTxDYWNoZWRSZXNvdXJjZUNsaWVudCo+Ojpjb25zdF9pdGVyYXRvciBpID0gbV9jbGllbnRzVG9O
b3RpZnkuYmVnaW4oKTsgaSAhPSBtX2NsaWVudHNUb05vdGlmeS5lbmQoKTsgKytpKSB7CisgICAg
ICAgIGlmICgqaSA9PSBjKQorICAgICAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBtX2NsaWVu
dHNUb05vdGlmeS5hcHBlbmQoYyk7Cit9CisKK3ZvaWQgQ2FjaGVkU2NyaXB0Ojpub3RpZnlUaW1l
ckZpcmVkKFRpbWVyPENhY2hlZFNjcmlwdD4qKQoreworICAgIHdoaWxlICghbV9jbGllbnRzVG9O
b3RpZnkuaXNFbXB0eSgpKSB7CisgICAgICAgIENhY2hlZFJlc291cmNlQ2xpZW50KiBjID0gbV9j
bGllbnRzVG9Ob3RpZnkuZmlyc3QoKTsKKyAgICAgICAgbV9jbGllbnRzVG9Ob3RpZnkucmVtb3Zl
Rmlyc3QoKTsKKyAgICAgICAgaWYgKG1fY2xpZW50cy5jb250YWlucyhjKSkgeworICAgICAgICAg
ICAgaWYgKCFtX2NsaWVudHNUb05vdGlmeS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgbV9u
b3RpZnlUaW1lci5zdGFydE9uZVNob3QoMCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgbV9kZWNvZGVkRGF0YURlbGV0aW9uVGltZXIuc3RhcnRPbmVTaG90KGNhY2hlZFNjcmlw
dEtlZXBBbGl2ZVRpbWUpOworCisgICAgICAgICAgICBjLT5ub3RpZnlGaW5pc2hlZCh0aGlzKTsK
KyAgICAgICAgICAgIC8vIFRoZSBvYmplY3QgbWF5IGhhdmUgYmVlbiBkZWxldGVkIGZyb20gdGhp
cyBwb2ludAorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorICAgIG1fZGVj
b2RlZERhdGFEZWxldGlvblRpbWVyLnN0YXJ0T25lU2hvdChjYWNoZWRTY3JpcHRLZWVwQWxpdmVU
aW1lKTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL2xvYWRlci9DYWNoZWRTY3JpcHQuaCBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlw
dC5oCmluZGV4IDEzYWZhODkuLmY4Y2RhNDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0Nh
Y2hlZFNjcmlwdC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL0NhY2hlZFNjcmlwdC5oCkBAIC0zLDYg
KzMsNyBAQAogICAgIENvcHlyaWdodCAoQykgMjAwMSBEaXJrIE11ZWxsZXIgPG11ZWxsZXJAa2Rl
Lm9yZz4KICAgICBDb3B5cmlnaHQgKEMpIDIwMDYgU2FtdWVsIFdlaW5pZyAoc2FtLndlaW5pZ0Bn
bWFpbC5jb20pCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDA4
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDkg
VG9yY2ggTW9iaWxlLCBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI5LDYgKzMwLDEwIEBACiAjaW5jbHVkZSAiQ2FjaGVkUmVzb3VyY2UuaCIKICNpbmNs
dWRlICJUaW1lci5oIgogCisjaWYgRU5BQkxFKENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FU
SU9OKQorI2luY2x1ZGUgInd0Zi9EZXF1ZS5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogICAgIGNsYXNzIERvY0xvYWRlcjsKQEAgLTU1LDEyICs2MCwyNCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIGRlc3Ryb3lEZWNvZGVkRGF0YSgpOwog
CisjaWYgRU5BQkxFKENBQ0hFRF9TQ1JJUFRfREVMQVlfTk9USUZJQ0FUSU9OKQorICAgICAgICB2
b2lkIG5vdGlmeUxhdGVyKENhY2hlZFJlc291cmNlQ2xpZW50Kik7CisjZW5kaWYKKwogICAgIHBy
aXZhdGU6CiAgICAgICAgIHZvaWQgZGVjb2RlZERhdGFEZWxldGlvblRpbWVyRmlyZWQoVGltZXI8
Q2FjaGVkU2NyaXB0PiopOworI2lmIEVOQUJMRShDQUNIRURfU0NSSVBUX0RFTEFZX05PVElGSUNB
VElPTikKKyAgICAgICAgdm9pZCBub3RpZnlUaW1lckZpcmVkKFRpbWVyPENhY2hlZFNjcmlwdD4q
KTsKKyNlbmRpZgogCiAgICAgICAgIFN0cmluZyBtX3NjcmlwdDsKICAgICAgICAgUmVmUHRyPFRl
eHRSZXNvdXJjZURlY29kZXI+IG1fZGVjb2RlcjsKICAgICAgICAgVGltZXI8Q2FjaGVkU2NyaXB0
PiBtX2RlY29kZWREYXRhRGVsZXRpb25UaW1lcjsKKyNpZiBFTkFCTEUoQ0FDSEVEX1NDUklQVF9E
RUxBWV9OT1RJRklDQVRJT04pCisgICAgICAgIC8vIERlbGF5IG5vdGlmaWNhdGlvbnMKKyAgICAg
ICAgVGltZXI8Q2FjaGVkU2NyaXB0PiBtX25vdGlmeVRpbWVyOworICAgICAgICBEZXF1ZTxDYWNo
ZWRSZXNvdXJjZUNsaWVudCo+IG1fY2xpZW50c1RvTm90aWZ5OworI2VuZGlmCiAgICAgfTsKIH0K
IApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3BwCmluZGV4IDNkMzRjODQuLjZjYjM3OWEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9Eb2N1bWVudExvYWRlci5jcHAKQEAgLTQ1NCw2ICs0NTQsMTUgQEAgYm9vbCBEb2N1bWVu
dExvYWRlcjo6aXNMb2FkaW5nSW5BUElTZW5zZSgpIGNvbnN0CiAgICAgICAgIGlmICghbV9zdWJy
ZXNvdXJjZUxvYWRlcnMuaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIERvY3VtZW50KiBkb2MgPSBtX2ZyYW1lLT5kb2N1bWVudCgpOworI2lmIEVOQUJMRShDQUNI
RURfU0NSSVBUX0RFTEFZX05PVElGSUNBVElPTikKKyAgICAgICAgLy8gV2hlbiBhIHBlbmRpbmcg
Y2FjaGVkIHNjcmlwdCBpcyBhbHJlYWR5IGxvYWRlZCwgYW5kIGp1c3Qgd2FpdGluZyAKKyAgICAg
ICAgLy8gZm9yIHRpbWVyIHRvIHB1c2ggdG9rZW5pemVyLCB0b2stPnByb2Nlc3NpbmdEYXRhKCkg
Y2FuIHJldHVybiBmYWxzZSwgCisgICAgICAgIC8vIGFuZCBkb2MtPmRvY0xvYWRlcigpLT5yZXF1
ZXN0Q291bnQoKSBjYW4gYmUgMC4gSW4gdGhpcyBjYXNlLCAKKyAgICAgICAgLy8gd2UgY2FuIHJl
bHkgb24gZG9jLT5wYXJzaW5nKCkuIFByb2JhYmx5IHdlIHNob3VsZCBhbHdheXMKKyAgICAgICAg
Ly8gcmVseSBvbiBkb2MtPnBhcnNpbmcgaW5zdGVhZCBvZiB0b2stPnByb2Nlc3NpbmdEYXRhKCku
CisgICAgICAgIGlmIChkb2MtPnBhcnNpbmcoKSkKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
I2VuZGlmCiAgICAgICAgIGlmIChkb2MtPmRvY0xvYWRlcigpLT5yZXF1ZXN0Q291bnQoKSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBpZiAoVG9rZW5pemVyKiB0b2sgPSBkb2Mt
PnRva2VuaXplcigpKQo=
</data>
<flag name="review"
          id="19054"
          type_id="1"
          status="-"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44738</attachid>
            <date>2009-12-12 07:44:28 -0800</date>
            <delta_ts>2009-12-14 07:21:49 -0800</delta_ts>
            <desc>Patch. </desc>
            <filename>27612.patch</filename>
            <type>text/plain</type>
            <size>5044</size>
            <attacher name="Yael">yael</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MjA0OSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjIgQEAKKzIwMDktMTItMTIgIFlhZWwgQWhhcm9uICA8eWFlbC5haGFyb25Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IGhhbmRsaW5nIHNjcmlwdHMgY2FuIGJsb2NrIFVJCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzYxMgorCisgICAgICAgIEJyZWFrIGV4ZWN1dGlvbiBv
ZiBleHRlcm5hbCBzY3JpcHMgdG8gc21hbGxlciBjaHVua3MuIAorICAgICAgICBObyBuZXcgdGVz
dHMgc2luY2Ugbm8gbmV3IGZ1bmN0aW9uYWxpdHkgd2FzIGludHJvZHVjZWQuCisKKyAgICAgICAg
KiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRva2VuaXpl
cjo6SFRNTFRva2VuaXplcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpyZXNl
dCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpub3RpZnlGaW5pc2hlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpleGVjdXRlRXh0ZXJuYWxTY3JpcHRzSWZS
ZWFkeSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpleGVjdXRlRXh0ZXJuYWxT
Y3JpcHRzVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVG9rZW5pemVyOjpjb250
aW51ZUV4ZWN1dGluZ0V4dGVybmFsU2NyaXB0cyk6CisgICAgICAgICogaHRtbC9IVE1MVG9rZW5p
emVyLmg6CisKIDIwMDktMTItMTIgIERpcmsgU2NodWx6ZSAgPGtyaXRAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1M
VG9rZW5pemVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuaAko
cmV2aXNpb24gNTIwMzApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5oCSh3b3JraW5n
IGNvcHkpCkBAIC0yMDUsNiArMjA1LDEwIEBACiAgICAgLy8gZnJvbSBDYWNoZWRSZXNvdXJjZUNs
aWVudAogICAgIHZvaWQgbm90aWZ5RmluaXNoZWQoQ2FjaGVkUmVzb3VyY2UqKTsKIAorICAgIHZv
aWQgZXhlY3V0ZUV4dGVybmFsU2NyaXB0c0lmUmVhZHkoKTsKKyAgICB2b2lkIGV4ZWN1dGVFeHRl
cm5hbFNjcmlwdHNUaW1lckZpcmVkKFRpbWVyPEhUTUxUb2tlbml6ZXI+Kik7CisgICAgYm9vbCBj
b250aW51ZUV4ZWN1dGluZ0V4dGVybmFsU2NyaXB0cyhkb3VibGUgc3RhcnRUaW1lKTsKKwogICAg
IC8vIEludGVybmFsIGJ1ZmZlcnMKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vCiAgICAgVUNoYXIq
IG1fYnVmZmVyOwpAQCAtNDAxLDYgKzQwNSw5IEBACiAgICAgLy8gVGhlIHRpbWVyIGZvciBjb250
aW51ZWQgcHJvY2Vzc2luZy4KICAgICBUaW1lcjxIVE1MVG9rZW5pemVyPiBtX3RpbWVyOwogCisg
ICAgLy8gVGhlIHRpbWVyIGZvciBjb250aW51ZWQgZXhlY3V0aW5nIGV4dGVybmFsIHNjcmlwdHMu
CisgICAgVGltZXI8SFRNTFRva2VuaXplcj4gbV9leHRlcm5hbFNjcmlwdHNUaW1lcjsKKwogLy8g
VGhpcyBidWZmZXIgY2FuIGhvbGQgYXJiaXRyYXJpbHkgbG9uZyB1c2VyLWRlZmluZWQgYXR0cmli
dXRlIG5hbWVzLCBzdWNoIGFzIGluIEVNQkVEIHRhZ3MuCiAvLyBTbyBhbnkgZml4ZWQgbnVtYmVy
IG1pZ2h0IGJlIHRvbyBzbWFsbCwgYnV0IHJhdGhlciB0aGFuIHJld3JpdGluZyBhbGwgdXNhZ2Ug
b2YgdGhpcyBidWZmZXIKIC8vIHdlJ2xsIGp1c3QgbWFrZSBpdCBsYXJnZSBlbm91Z2ggdG8gaGFu
ZGxlIGFsbCBpbWFnaW5hYmxlIGNhc2VzLgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6
ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVG9rZW5pemVyLmNwcAkocmV2
aXNpb24gNTIwMzApCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXplci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTE2Nyw2ICsxNjcsNyBAQAogICAgICwgbV9yZXF1ZXN0aW5nU2NyaXB0KGZhbHNl
KQogICAgICwgbV9oYXNTY3JpcHRzV2FpdGluZ0ZvclN0eWxlc2hlZXRzKGZhbHNlKQogICAgICwg
bV90aW1lcih0aGlzLCAmSFRNTFRva2VuaXplcjo6dGltZXJGaXJlZCkKKyAgICAsIG1fZXh0ZXJu
YWxTY3JpcHRzVGltZXIodGhpcywgJkhUTUxUb2tlbml6ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlw
dHNUaW1lckZpcmVkKQogICAgICwgbV9kb2MoZG9jKQogICAgICwgbV9wYXJzZXIobmV3IEhUTUxQ
YXJzZXIoZG9jLCByZXBvcnRFcnJvcnMpKQogICAgICwgbV9pbldyaXRlKGZhbHNlKQpAQCAtMTg2
LDYgKzE4Nyw3IEBACiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2UpCiAgICAgLCBtX2hh
c1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoZmFsc2UpCiAgICAgLCBtX3RpbWVyKHRoaXMs
ICZIVE1MVG9rZW5pemVyOjp0aW1lckZpcmVkKQorICAgICwgbV9leHRlcm5hbFNjcmlwdHNUaW1l
cih0aGlzLCAmSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0c1RpbWVyRmlyZWQp
CiAgICAgLCBtX2RvYyhkb2MpCiAgICAgLCBtX3BhcnNlcigwKQogICAgICwgbV9pbldyaXRlKGZh
bHNlKQpAQCAtMjA0LDYgKzIwNiw3IEBACiAgICAgLCBtX3JlcXVlc3RpbmdTY3JpcHQoZmFsc2Up
CiAgICAgLCBtX2hhc1NjcmlwdHNXYWl0aW5nRm9yU3R5bGVzaGVldHMoZmFsc2UpCiAgICAgLCBt
X3RpbWVyKHRoaXMsICZIVE1MVG9rZW5pemVyOjp0aW1lckZpcmVkKQorICAgICwgbV9leHRlcm5h
bFNjcmlwdHNUaW1lcih0aGlzLCAmSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4dGVybmFsU2NyaXB0
c1RpbWVyRmlyZWQpCiAgICAgLCBtX2RvYyhmcmFnLT5kb2N1bWVudCgpKQogICAgICwgbV9wYXJz
ZXIobmV3IEhUTUxQYXJzZXIoZnJhZykpCiAgICAgLCBtX2luV3JpdGUoZmFsc2UpCkBAIC0yMzIs
NiArMjM1LDggQEAKICAgICBtX3NjcmlwdENvZGVTaXplID0gbV9zY3JpcHRDb2RlQ2FwYWNpdHkg
PSBtX3NjcmlwdENvZGVSZXN5bmMgPSAwOwogCiAgICAgbV90aW1lci5zdG9wKCk7CisgICAgbV9l
eHRlcm5hbFNjcmlwdHNUaW1lci5zdG9wKCk7CisKICAgICBtX3N0YXRlLnNldEFsbG93WWllbGQo
ZmFsc2UpOwogICAgIG1fc3RhdGUuc2V0Rm9yY2VTeW5jaHJvbm91cyhmYWxzZSk7CiAKQEAgLTIw
MDcsNiArMjAxMiwxMSBAQAogCiB2b2lkIEhUTUxUb2tlbml6ZXI6Om5vdGlmeUZpbmlzaGVkKENh
Y2hlZFJlc291cmNlKikKIHsKKyAgICBleGVjdXRlRXh0ZXJuYWxTY3JpcHRzSWZSZWFkeSgpOwor
fQorCit2b2lkIEhUTUxUb2tlbml6ZXI6OmV4ZWN1dGVFeHRlcm5hbFNjcmlwdHNJZlJlYWR5KCkK
K3sKICNpZmRlZiBJTlNUUlVNRU5UX0xBWU9VVF9TQ0hFRFVMSU5HCiAgICAgaWYgKCFtX2RvYy0+
b3duZXJFbGVtZW50KCkpCiAgICAgICAgIHByaW50Zigic2NyaXB0IGxvYWRlZCBhdCAlZFxuIiwg
bV9kb2MtPmVsYXBzZWRUaW1lKCkpOwpAQCAtMjAyMSw3ICsyMDMxLDEyIEBACiAgICAgICAgIHJl
dHVybjsKIAogICAgIGJvb2wgZmluaXNoZWQgPSBmYWxzZTsKKyAgICAKKyAgICBkb3VibGUgc3Rh
cnRUaW1lID0gY3VycmVudFRpbWUoKTsKICAgICB3aGlsZSAoIWZpbmlzaGVkICYmIG1fcGVuZGlu
Z1NjcmlwdHMuZmlyc3QoKS0+aXNMb2FkZWQoKSkgeworICAgICAgICBpZiAoIWNvbnRpbnVlRXhl
Y3V0aW5nRXh0ZXJuYWxTY3JpcHRzKHN0YXJ0VGltZSkpCisgICAgICAgICAgICBicmVhazsKKwog
ICAgICAgICBDYWNoZWRTY3JpcHQqIGNzID0gbV9wZW5kaW5nU2NyaXB0cy5maXJzdCgpLmdldCgp
OwogICAgICAgICBtX3BlbmRpbmdTY3JpcHRzLnJlbW92ZUZpcnN0KCk7CiAgICAgICAgIEFTU0VS
VChjYWNoZSgpLT5kaXNhYmxlZCgpIHx8IGNzLT5hY2Nlc3NDb3VudCgpID4gMCk7CkBAIC0yMDgx
LDYgKzIwOTYsMzEgQEAKICAgICB9CiB9CiAKK3ZvaWQgSFRNTFRva2VuaXplcjo6ZXhlY3V0ZUV4
dGVybmFsU2NyaXB0c1RpbWVyRmlyZWQoVGltZXI8SFRNTFRva2VuaXplcj4qKQoreworICAgIGlm
IChtX2RvYy0+dmlldygpICYmIG1fZG9jLT52aWV3KCktPmxheW91dFBlbmRpbmcoKSAmJiAhbV9k
b2MtPm1pbmltdW1MYXlvdXREZWxheSgpKSB7CisgICAgICAgIC8vIFJlc3RhcnQgdGhlIHRpbWVy
IGFuZCBkbyBsYXlvdXQgZmlyc3QuCisgICAgICAgIG1fZXh0ZXJuYWxTY3JpcHRzVGltZXIuc3Rh
cnRPbmVTaG90KDApOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8gQ29udGludWUg
ZXhlY3V0aW5nIGV4dGVybmFsIHNjcmlwdHMuCisgICAgZXhlY3V0ZUV4dGVybmFsU2NyaXB0c0lm
UmVhZHkoKTsKK30KKworYm9vbCBIVE1MVG9rZW5pemVyOjpjb250aW51ZUV4ZWN1dGluZ0V4dGVy
bmFsU2NyaXB0cyhkb3VibGUgc3RhcnRUaW1lKQoreworICAgIGlmIChtX2V4dGVybmFsU2NyaXB0
c1RpbWVyLmlzQWN0aXZlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChjdXJy
ZW50VGltZSgpIC0gc3RhcnRUaW1lID4gbV90b2tlbml6ZXJUaW1lRGVsYXkpIHsKKyAgICAgICAg
Ly8gU2NoZWR1bGUgdGhlIHRpbWVyIHRvIGtlZXAgcHJvY2Vzc2luZyBhcyBzb29uIGFzIHBvc3Np
YmxlLgorICAgICAgICBtX2V4dGVybmFsU2NyaXB0c1RpbWVyLnN0YXJ0T25lU2hvdCgwKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogYm9vbCBI
VE1MVG9rZW5pemVyOjppc1dhaXRpbmdGb3JTY3JpcHRzKCkgY29uc3QKIHsKICAgICByZXR1cm4g
bV9zdGF0ZS5sb2FkaW5nRXh0U2NyaXB0KCk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>