<?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>7107</bug_id>
          
          <creation_ts>2006-02-06 11:14:17 -0800</creation_ts>
          <short_desc>Refactor Date object to provide direct access to milliseconds/offset</short_desc>
          <delta_ts>2006-02-07 02:13:42 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>7012</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>31595</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-06 11:14:17 -0800</bug_when>
    <thetext>This is needed to convert JavaScript dates to AppleScript ones in WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31599</commentid>
    <comment_count>1</comment_count>
      <attachid>6294</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2006-02-06 11:31:18 -0800</bug_when>
    <thetext>Created attachment 6294
proposed patch

While refactoring the code, I had to also make several Windows-specific changes.

Apparently, the Windows _daylight global has a different meaning than seems to have been expected by GetTimezoneOffset implementation. In fact, _daylight is non-zero if the machine is configured to support daylight savings time, not when DST is active. In other words, there are two ways to make _daylight non-zero:
1) Tick &quot;Automatically adjust clock for daylight saving changes&quot; checkbox in Date and Time control panel - _daylight becomes 1 (the actual value is undocumented).
2) give TZ environment variable a value that includes a DST timezone. E.g.:
set TZ=MSK3  -&gt; _daylight=0
set TZ=MSK3MSD  -&gt; _daylight=77 (value depends on the timezone, also undocumented).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>31651</commentid>
    <comment_count>2</comment_count>
      <attachid>6294</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2006-02-06 18:18:56 -0800</bug_when>
    <thetext>Comment on attachment 6294
proposed patch

+static bool isTime_tSigned()
+{
+    time_t minusOne = (time_t)(-1);
+    return minusOne &lt; 0;
+}

The above function should be marked inline, because if so it will act as a compile-time constant.

If tested thoroughly, looks good, r=me.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>6294</attachid>
            <date>2006-02-06 11:31:18 -0800</date>
            <delta_ts>2006-02-06 18:18:56 -0800</delta_ts>
            <desc>proposed patch</desc>
            <filename>7107r1_patch.txt</filename>
            <type>text/plain</type>
            <size>10371</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IENoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBDaGFuZ2VMb2cJKHJldmlzaW9uIDEyNTk3
KQorKysgQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDYtMDIt
WFggIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBueXBvcC5jb20+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBSZWZhY3RvciBEYXRlSW5zdGFuY2Ug
dG8gcHJvdmlkZSBkaXJlY3QgYWNjZXNzIHRvIGRhdGEuIFNldmVyYWwgV0lOMzIgbW9kaWZpY2F0
aW9ucy4KKyAgICAgICAgaHR0cDovL2J1Z3ppbGxhLm9wZW5kYXJ3aW4ub3JnL3Nob3dfYnVnLmNn
aT9pZD03MTA3CisKKyAgICAgICAgKiBranMvZGF0ZV9vYmplY3QuY3BwOgorICAgICAgICAoZ210
b2Zmc2V0KTogT24gV0lOMzIsIHVzZSB0aGUgcmVjb21tZW5kZWQgZ2xvYmFsIChfdGltZXpvbmUg
cmF0aGVyIHRoYW4gdGltZXpvbmUpLgorICAgICAgICBVcGRhdGVkIGNvbW1lbnRzLiAKKyAgICAg
ICAgKEtKUzo6dGltZVpvbmVPZmZzZXQpOiBSZW1vdmVkLCB3YXMgYmFzaWNhbGx5IHRoZSBzYW1l
IGFzIHRoZSBhYm92ZS4KKyAgICAgICAgKEtKUzo6Zm9ybWF0VGltZSk6IFBhc3MgYW4gVVRDIGZs
YWcgLSBVVEMvbG9jYWwgY2Fubm90IGJlIGNvcnJlY3RseSBzZWxlY3RlZCBvbgorICAgICAgICBX
aW5kb3dzIGJhc2VkIG9uIHN0cnVjdCB0bSBpdHNlbGYuCisgICAgICAgIChLSlM6OkRhdGVJbnN0
YW5jZTo6Z2V0VGltZSk6IEFkZGVkLgorICAgICAgICAoS0pTOjpEYXRlSW5zdGFuY2U6OmdldFVU
Q1RpbWUpOiBBZGRlZC4KKyAgICAgICAgKEtKUzo6bWlsbGlzZWNvbmRzVG9UTSk6IEZhY3RvcmVk
IG91dCBmcm9tIERhdGVQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKCkuCisgICAgICAgIChLSlM6
OkRhdGVPYmplY3RJbXA6OmNhbGxBc0Z1bmN0aW9uKTogVXNlIHRoZSBuZXcgcGFyYW1ldGVyIHRv
IGZvcm1hdFRpbWUoKS4KKyAgICAgICAgKEtKUzo6RGF0ZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rp
b24pOiBVcGRhdGVkIGZvciB0aGUgb3RoZXIgY2hhbmdlcy4gVGhlIGNvZGUgZm9yCisgICAgICAg
IEdldFRpbWV6b25lT2Zmc2V0IHdhcyBpbmNvcnJlY3Qgb24gV0lOMzIgLSBfZGF5bGlnaHQgZ2xv
YmFsIGhhcyBub3RoaW5nIHRvIGRvCisgICAgICAgIHdpdGggZGF5bGlnaHQgc2F2aW5ncyB0aW1l
IGJlaW5nIGluIGVmZmVjdC4KKworICAgICAgICAqIGtqcy9kYXRlX29iamVjdC5oOiBBZGRlZCBw
cm90b3R5cGVzIGZvciBuZXcgZnVuY3Rpb25zLgorCiAyMDA2LTAyLTA1ICBNYWNpZWogU3RhY2hv
d2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJzLgpJbmRl
eDoga2pzL2RhdGVfb2JqZWN0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBranMvZGF0ZV9vYmplY3QuY3Bw
CShyZXZpc2lvbiAxMjU4OCkKKysrIGtqcy9kYXRlX29iamVjdC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTY1LDggKzY1LDkgQEAKIGlubGluZSBpbnQgZ210b2Zmc2V0KGNvbnN0IHRtJiB0KQogewog
I2lmIFdJTjMyCi0gICAgLy8gRklYTUU6IFRoaXMgbWlnaHQgbm90IGJlIGNvbXBsZXRlbHkgY29y
cmVjdCBpZiB0aGUgdGltZSBpcyBub3QgdGhlIGN1cnJlbnQgdGltZXpvbmUuCi0gICAgcmV0dXJu
IC0odGltZXpvbmUgLyA2MCAtICh0LnRtX2lzZHN0ID4gMCA/IDYwIDogMCApKSAqIDYwOworICAg
IC8vIFRpbWUgaXMgc3VwcG9zZWQgdG8gYmUgaW4gdGhlIGN1cnJlbnQgdGltZXpvbmUuCisgICAg
Ly8gRklYTUU6IFVzZSB1bmRvY3VtZW50ZWQgX2RzdGJpYXM/CisgICAgcmV0dXJuIC0oX3RpbWV6
b25lIC8gNjAgLSAodC50bV9pc2RzdCA+IDAgPyA2MCA6IDAgKSkgKiA2MDsKICNlbHNlCiAgICAg
cmV0dXJuIHQudG1fZ210b2ZmOwogI2VuZGlmCkBAIC0xNDAsNiArMTQxLDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIgKiBjb25zdCBtb250aE5hbWVbMTJdIAogc3RhdGljIGRvdWJsZSBtYWtlVGltZSh0
bSAqLCBkb3VibGUgbXMsIGJvb2wgdXRjKTsKIHN0YXRpYyBkb3VibGUgcGFyc2VEYXRlKGNvbnN0
IFVTdHJpbmcgJik7CiBzdGF0aWMgZG91YmxlIHRpbWVDbGlwKGRvdWJsZSk7CitzdGF0aWMgdm9p
ZCBtaWxsaXNlY29uZHNUb1RNKGRvdWJsZSBtaWxsaSwgYm9vbCB1dGMsIHRtICp0KTsKIAogI2lm
IF9fQVBQTEVfXwogCkBAIC0yMjYsMTAgKzIyOCwxMyBAQCBzdGF0aWMgVVN0cmluZyBmb3JtYXRE
YXRlVVRDVmFyaWFudChjb25zCiAgICAgcmV0dXJuIGJ1ZmZlcjsKIH0KIAotc3RhdGljIFVTdHJp
bmcgZm9ybWF0VGltZShjb25zdCB0bSAmdCkKK3N0YXRpYyBVU3RyaW5nIGZvcm1hdFRpbWUoY29u
c3QgdG0gJnQsIGJvb2wgdXRjKQogewogICAgIGNoYXIgYnVmZmVyWzEwMF07Ci0gICAgaWYgKGdt
dG9mZnNldCh0KSA9PSAwKSB7CisgICAgaWYgKHV0YykgeworI2lmICFXSU4zMgorICAgICAgICBB
U1NFUlQodC50bV9nbXRvZmYgPT0gMCk7CisjZW5kaWYKICAgICAgICAgc25wcmludGYoYnVmZmVy
LCBzaXplb2YoYnVmZmVyKSwgIiUwMmQ6JTAyZDolMDJkIEdNVCIsIHQudG1faG91ciwgdC50bV9t
aW4sIHQudG1fc2VjKTsKICAgICB9IGVsc2UgewogICAgICAgICBpbnQgb2Zmc2V0ID0gYWJzKGdt
dG9mZnNldCh0KSk7CkBAIC0zMDEsMjQgKzMwNiw2IEBAIHN0YXRpYyBpbnQgd2Vla0RheShkb3Vi
bGUgdCkKICAgICByZXR1cm4gd2Q7CiB9CiAKLXN0YXRpYyBsb25nIHRpbWVab25lT2Zmc2V0KGNv
bnN0IHRtICZ0KQotewotI2lmICFXSU4zMgotICAgIHJldHVybiAtKHQudG1fZ210b2ZmIC8gNjAp
OwotI2Vsc2UKLSMgIGlmIF9fQk9STEFORENfXyB8fCBfX0NZR1dJTl9fCi0vLyBGSVhNRTogQ2Fu
J3QgYmUgcmlnaHQgYmVjYXVzZSB0aW1lIHpvbmUgaXMgc3VwcG9zZWQgdG8gYmUgZnJvbSB0aGUg
cGFyYW1ldGVyLCBub3QgdGhlIGNvbXB1dGVyLgotLy8gRklYTUU6IGNvbnNpZGVyIG5vbiBvbmUt
aG91ciBEU1QgY2hhbmdlLgotIyAgICBpZiAhX19DWUdXSU5fXwotIyAgICAgIGVycm9yIHBsZWFz
ZSBhZGQgZGF5bGlnaHQgc2F2aW5ncyBvZmZzZXQgaGVyZSEKLSMgICAgZW5kaWYKLSAgICByZXR1
cm4gX3RpbWV6b25lIC8gNjAgLSAodC50bV9pc2RzdCA+IDAgPyA2MCA6IDApOwotIyAgZWxzZQot
ICAgIHJldHVybiB0aW1lem9uZSAvIDYwIC0gKHQudG1faXNkc3QgPiAwID8gNjAgOiAwICk7Ci0j
ICBlbmRpZgotI2VuZGlmCi19Ci0KIC8vIENvbnZlcnRzIGEgbGlzdCBvZiBhcmd1bWVudHMgc2Vu
dCB0byBhIERhdGUgbWVtYmVyIGZ1bmN0aW9uIGludG8gbWlsbGlzZWNvbmRzLCB1cGRhdGluZwog
Ly8gbXMgKHJlcHJlc2VudGluZyBtaWxsaXNlY29uZHMpIGFuZCB0IChyZXByZXNlbnRpbmcgdGhl
IHJlc3Qgb2YgdGhlIGRhdGUgc3RydWN0dXJlKSBhcHByb3ByaWF0ZWx5LgogLy8KQEAgLTM5OCw2
ICszODUsOTEgQEAgRGF0ZUluc3RhbmNlOjpEYXRlSW5zdGFuY2UoSlNPYmplY3QgKnBybwogewog
fQogCitib29sIERhdGVJbnN0YW5jZTo6Z2V0VGltZSh0bSAmdCwgaW50ICZvZmZzZXQpIGNvbnN0
Cit7CisgICAgZG91YmxlIG1pbGxpID0gaW50ZXJuYWxWYWx1ZSgpLT5nZXROdW1iZXIoKTsKKyAg
ICBpZiAoaXNOYU4obWlsbGkpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgbWls
bGlzZWNvbmRzVG9UTShtaWxsaSwgZmFsc2UsICZ0KTsKKyAgICBvZmZzZXQgPSBnbXRvZmZzZXQo
dCk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgRGF0ZUluc3RhbmNlOjpnZXRVVENUaW1l
KHRtICZ0KSBjb25zdAoreworICAgIGRvdWJsZSBtaWxsaSA9IGludGVybmFsVmFsdWUoKS0+Z2V0
TnVtYmVyKCk7CisgICAgaWYgKGlzTmFOKG1pbGxpKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIAorICAgIG1pbGxpc2Vjb25kc1RvVE0obWlsbGksIHRydWUsICZ0KTsKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBEYXRlSW5zdGFuY2U6OmdldFRpbWUoZG91YmxlICZtaWxsaSwgaW50
ICZvZmZzZXQpIGNvbnN0Cit7CisgICAgbWlsbGkgPSBpbnRlcm5hbFZhbHVlKCktPmdldE51bWJl
cigpOworICAgIGlmIChpc05hTihtaWxsaSkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAK
KyAgICB0bSB0OworICAgIG1pbGxpc2Vjb25kc1RvVE0obWlsbGksIGZhbHNlLCAmdCk7CisgICAg
b2Zmc2V0ID0gZ210b2Zmc2V0KHQpOworICAgIHJldHVybiB0cnVlOworfQorCitib29sIERhdGVJ
bnN0YW5jZTo6Z2V0VVRDVGltZShkb3VibGUgJm1pbGxpKSBjb25zdAoreworICAgIG1pbGxpID0g
aW50ZXJuYWxWYWx1ZSgpLT5nZXROdW1iZXIoKTsKKyAgICBpZiAoaXNOYU4obWlsbGkpKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK3N0YXRpYyBi
b29sIGlzVGltZV90U2lnbmVkKCkKK3sKKyAgICB0aW1lX3QgbWludXNPbmUgPSAodGltZV90KSgt
MSk7CisgICAgcmV0dXJuIG1pbnVzT25lIDwgMDsKK30KKworc3RhdGljIHZvaWQgbWlsbGlzZWNv
bmRzVG9UTShkb3VibGUgbWlsbGksIGJvb2wgdXRjLCB0bSAqdCkKK3sKKyAgLy8gY2hlY2sgd2hl
dGhlciB0aW1lIHZhbHVlIGlzIG91dHNpZGUgdGltZV90J3MgdXN1YWwgcmFuZ2UKKyAgLy8gbWFr
ZSB0aGUgbmVjZXNzYXJ5IHRyYW5zZm9ybWF0aW9ucyBpZiBuZWNlc3NhcnkKKyAgc3RhdGljIGJv
b2wgdGltZV90SXNTaWduZWQgPSBpc1RpbWVfdFNpZ25lZCgpOworICBzdGF0aWMgZG91YmxlIHRp
bWVfdE1pbiA9ICh0aW1lX3RJc1NpZ25lZCA/IC0gKGRvdWJsZSkoMVVMTCA8PCAoOCAqIHNpemVv
Zih0aW1lX3QpIC0gMSkpIDogMCk7CisgIHN0YXRpYyBkb3VibGUgdGltZV90TWF4ID0gKHRpbWVf
dElzU2lnbmVkID8gKDFVTEwgPDwgOCAqIHNpemVvZih0aW1lX3QpIC0gMSkgLSAxIDogMiAqIChk
b3VibGUpKDFVTEwgPDwgOCAqIHNpemVvZih0aW1lX3QpIC0gMSkgLSAxKTsKKyAgaW50IHJlYWxZ
ZWFyT2Zmc2V0ID0gMDsKKyAgZG91YmxlIG1pbGxpT2Zmc2V0ID0gMC4wOworICBkb3VibGUgc2Vj
cyA9IGZsb29yKG1pbGxpIC8gbXNQZXJTZWNvbmQpOworCisgIGlmIChzZWNzIDwgdGltZV90TWlu
IHx8IHNlY3MgPiB0aW1lX3RNYXgpIHsKKyAgICAvLyAjIyMgdWdseSBhbmQgcHJvYmFibHkgbm90
IHZlcnkgcHJlY2lzZQorICAgIGludCByZWFsWWVhciA9IHllYXJGcm9tVGltZShtaWxsaSk7Cisg
ICAgaW50IGJhc2UgPSBkYXlzSW5ZZWFyKHJlYWxZZWFyKSA9PSAzNjUgPyAyMDAxIDogMjAwMDsK
KyAgICBtaWxsaU9mZnNldCA9IHRpbWVGcm9tWWVhcihiYXNlKSAtIHRpbWVGcm9tWWVhcihyZWFs
WWVhcik7CisgICAgbWlsbGkgKz0gbWlsbGlPZmZzZXQ7CisgICAgcmVhbFllYXJPZmZzZXQgPSBy
ZWFsWWVhciAtIGJhc2U7CisgIH0KKworICB0aW1lX3QgdHYgPSAodGltZV90KSBmbG9vcihtaWxs
aSAvIG1zUGVyU2Vjb25kKTsKKworICAqdCA9ICoodXRjID8gZ210aW1lKCZ0dikgOiBsb2NhbHRp
bWUoJnR2KSk7CisgIC8vIFdlIGhhZCBhbiBvdXQgb2YgcmFuZ2UgeWVhci4gUmVzdG9yZSB0aGUg
eWVhciAocGx1cy9taW51cyBvZmZzZXQKKyAgLy8gZm91bmQgYnkgY2FsY3VsYXRpbmcgdG1feWVh
cikgYW5kIGZpeCB0aGUgd2VlayBkYXkgY2FsY3VsYXRpb24uCisgIGlmIChyZWFsWWVhck9mZnNl
dCAhPSAwKSB7CisgICAgdC0+dG1feWVhciArPSByZWFsWWVhck9mZnNldDsKKyAgICBtaWxsaSAt
PSBtaWxsaU9mZnNldDsKKyAgICAvLyBEbyBvdXIgb3duIHdlZWtkYXkgY2FsY3VsYXRpb24uIFVz
ZSB0aW1lIHpvbmUgb2Zmc2V0IHRvIGhhbmRsZSBsb2NhbCB0aW1lLgorICAgIGRvdWJsZSBtID0g
bWlsbGk7CisgICAgaWYgKCF1dGMpCisgICAgICBtICs9IGdtdG9mZnNldCgqdCkgKiBtc1BlclNl
Y29uZDsKKyAgICB0LT50bV93ZGF5ID0gd2Vla0RheShtKTsKKyAgfQorfSAgICAKKworCiAvLyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRGF0ZVByb3RvdHlwZSAtLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLQogCiBjb25zdCBDbGFzc0luZm8gRGF0ZVByb3RvdHlwZTo6aW5mbyA9
IHsiRGF0ZSIsICZEYXRlSW5zdGFuY2U6OmluZm8sICZkYXRlVGFibGUsIDB9OwpAQCAtNDgwLDEy
ICs1NTIsNiBAQCBib29sIERhdGVQcm90b0Z1bmM6OmltcGxlbWVudHNDYWxsKCkgY29uCiAgICAg
cmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyBib29sIGlzVGltZV90U2lnbmVkKCkKLXsKLSAgICB0
aW1lX3QgbWludXNPbmUgPSAodGltZV90KSgtMSk7Ci0gICAgcmV0dXJuIG1pbnVzT25lIDwgMDsK
LX0KLQogSlNWYWx1ZSAqRGF0ZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRXhlY1N0YXRlICpl
eGVjLCBKU09iamVjdCAqdGhpc09iaiwgY29uc3QgTGlzdCAmYXJncykKIHsKICAgaWYgKCF0aGlz
T2JqLT5pbmhlcml0cygmRGF0ZUluc3RhbmNlOjppbmZvKSkKQEAgLTUzMCw1MiArNTk2LDI0IEBA
IEpTVmFsdWUgKkRhdGVQcm90b0Z1bmM6OmNhbGxBc0Z1bmN0aW9uKEUKICAgICB9CiAgIH0KICAg
Ci0gIC8vIGNoZWNrIHdoZXRoZXIgdGltZSB2YWx1ZSBpcyBvdXRzaWRlIHRpbWVfdCdzIHVzdWFs
IHJhbmdlCi0gIC8vIG1ha2UgdGhlIG5lY2Vzc2FyeSB0cmFuc2Zvcm1hdGlvbnMgaWYgbmVjZXNz
YXJ5Ci0gIHN0YXRpYyBib29sIHRpbWVfdElzU2lnbmVkID0gaXNUaW1lX3RTaWduZWQoKTsKLSAg
c3RhdGljIGRvdWJsZSB0aW1lX3RNaW4gPSAodGltZV90SXNTaWduZWQgPyAtIChkb3VibGUpKDFV
TEwgPDwgKDggKiBzaXplb2YodGltZV90KSAtIDEpKSA6IDApOwotICBzdGF0aWMgZG91YmxlIHRp
bWVfdE1heCA9ICh0aW1lX3RJc1NpZ25lZCA/ICgxVUxMIDw8IDggKiBzaXplb2YodGltZV90KSAt
IDEpIC0gMSA6IDIgKiAoZG91YmxlKSgxVUxMIDw8IDggKiBzaXplb2YodGltZV90KSAtIDEpIC0g
MSk7Ci0gIGludCByZWFsWWVhck9mZnNldCA9IDA7Ci0gIGRvdWJsZSBtaWxsaU9mZnNldCA9IDAu
MDsKICAgZG91YmxlIHNlY3MgPSBmbG9vcihtaWxsaSAvIG1zUGVyU2Vjb25kKTsKKyAgZG91Ymxl
IG1zID0gbWlsbGkgLSBzZWNzICogbXNQZXJTZWNvbmQ7CiAKLSAgaWYgKHNlY3MgPCB0aW1lX3RN
aW4gfHwgc2VjcyA+IHRpbWVfdE1heCkgewotICAgIC8vICMjIyB1Z2x5IGFuZCBwcm9iYWJseSBu
b3QgdmVyeSBwcmVjaXNlCi0gICAgaW50IHJlYWxZZWFyID0geWVhckZyb21UaW1lKG1pbGxpKTsK
LSAgICBpbnQgYmFzZSA9IGRheXNJblllYXIocmVhbFllYXIpID09IDM2NSA/IDIwMDEgOiAyMDAw
OwotICAgIG1pbGxpT2Zmc2V0ID0gdGltZUZyb21ZZWFyKGJhc2UpIC0gdGltZUZyb21ZZWFyKHJl
YWxZZWFyKTsKLSAgICBtaWxsaSArPSBtaWxsaU9mZnNldDsKLSAgICByZWFsWWVhck9mZnNldCA9
IHJlYWxZZWFyIC0gYmFzZTsKLSAgfQotCi0gIHRpbWVfdCB0diA9ICh0aW1lX3QpIGZsb29yKG1p
bGxpIC8gbXNQZXJTZWNvbmQpOwotICBkb3VibGUgbXMgPSBtaWxsaSAtIHR2ICogbXNQZXJTZWNv
bmQ7Ci0KLSAgdG0gdCA9ICoodXRjID8gZ210aW1lKCZ0dikgOiBsb2NhbHRpbWUoJnR2KSk7Ci0g
IC8vIFdlIGhhZCBhbiBvdXQgb2YgcmFuZ2UgeWVhci4gUmVzdG9yZSB0aGUgeWVhciAocGx1cy9t
aW51cyBvZmZzZXQKLSAgLy8gZm91bmQgYnkgY2FsY3VsYXRpbmcgdG1feWVhcikgYW5kIGZpeCB0
aGUgd2VlayBkYXkgY2FsY3VsYXRpb24uCi0gIGlmIChyZWFsWWVhck9mZnNldCAhPSAwKSB7Ci0g
ICAgdC50bV95ZWFyICs9IHJlYWxZZWFyT2Zmc2V0OwotICAgIG1pbGxpIC09IG1pbGxpT2Zmc2V0
OwotICAgIC8vIERvIG91ciBvd24gd2Vla2RheSBjYWxjdWxhdGlvbi4gVXNlIHRpbWUgem9uZSBv
ZmZzZXQgdG8gaGFuZGxlIGxvY2FsIHRpbWUuCi0gICAgZG91YmxlIG0gPSBtaWxsaTsKLSAgICBp
ZiAoIXV0YykKLSAgICAgIG0gLT0gdGltZVpvbmVPZmZzZXQodCkgKiBtc1Blck1pbnV0ZTsKLSAg
ICB0LnRtX3dkYXkgPSB3ZWVrRGF5KG0pOwotICB9CisgIHRtIHQ7CisgIG1pbGxpc2Vjb25kc1Rv
VE0obWlsbGksIHV0YywgJnQpOwogCiAgIHN3aXRjaCAoaWQpIHsKICAgY2FzZSBUb1N0cmluZzoK
LSAgICByZXR1cm4ganNTdHJpbmcoZm9ybWF0RGF0ZSh0KSArICIgIiArIGZvcm1hdFRpbWUodCkp
OworICAgIHJldHVybiBqc1N0cmluZyhmb3JtYXREYXRlKHQpICsgIiAiICsgZm9ybWF0VGltZSh0
LCB1dGMpKTsKICAgY2FzZSBUb0RhdGVTdHJpbmc6CiAgICAgcmV0dXJuIGpzU3RyaW5nKGZvcm1h
dERhdGUodCkpOwogICAgIGJyZWFrOwogICBjYXNlIFRvVGltZVN0cmluZzoKLSAgICByZXR1cm4g
anNTdHJpbmcoZm9ybWF0VGltZSh0KSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGZvcm1hdFRpbWUo
dCwgdXRjKSk7CiAgICAgYnJlYWs7CiAgIGNhc2UgVG9HTVRTdHJpbmc6CiAgIGNhc2UgVG9VVENT
dHJpbmc6Ci0gICAgcmV0dXJuIGpzU3RyaW5nKGZvcm1hdERhdGVVVENWYXJpYW50KHQpICsgIiAi
ICsgZm9ybWF0VGltZSh0KSk7CisgICAgcmV0dXJuIGpzU3RyaW5nKGZvcm1hdERhdGVVVENWYXJp
YW50KHQpICsgIiAiICsgZm9ybWF0VGltZSh0LCB1dGMpKTsKICAgICBicmVhazsKICNpZiBfX0FQ
UExFX18KICAgY2FzZSBUb0xvY2FsZVN0cmluZzoKQEAgLTYyNiwxOCArNjY0LDcgQEAgSlNWYWx1
ZSAqRGF0ZVByb3RvRnVuYzo6Y2FsbEFzRnVuY3Rpb24oRQogICBjYXNlIEdldE1pbGxpU2Vjb25k
czoKICAgICByZXR1cm4ganNOdW1iZXIobXMpOwogICBjYXNlIEdldFRpbWV6b25lT2Zmc2V0Ogot
I2lmICFXSU4zMgotICAgIHJldHVybiBqc051bWJlcigtdC50bV9nbXRvZmYgLyA2MCk7Ci0jZWxz
ZQotIyAgaWYgX19CT1JMQU5EQ19fCi0jZXJyb3IgcGxlYXNlIGFkZCBkYXlsaWdodCBzYXZpbmdz
IG9mZnNldCBoZXJlIQotICAgIC8vIEZJWE1FOiBVc2luZyB0aGUgZGF5bGlnaHQgdmFsdWUgd2Fz
IHdyb25nIGZvciBCU0QsIG1heWJlIHdyb25nIGhlcmUgdG9vLgotICAgIHJldHVybiBqc051bWJl
cihfdGltZXpvbmUgLyA2MCAtIChfZGF5bGlnaHQgPyA2MCA6IDApKTsKLSMgIGVsc2UKLSAgICAv
LyBGSVhNRTogVXNpbmcgdGhlIGRheWxpZ2h0IHZhbHVlIHdhcyB3cm9uZyBmb3IgQlNELCBtYXli
ZSB3cm9uZyBoZXJlIHRvby4KLSAgICByZXR1cm4ganNOdW1iZXIoKCB0aW1lem9uZSAvIDYwIC0g
KGRheWxpZ2h0ID8gNjAgOiAwICkpKTsKLSMgIGVuZGlmCi0jZW5kaWYKKyAgICByZXR1cm4ganNO
dW1iZXIoLWdtdG9mZnNldCh0KSAvIDYwKTsKICAgY2FzZSBTZXRUaW1lOgogICAgIG1pbGxpID0g
cm91bmRWYWx1ZShleGVjLCBhcmdzWzBdKTsKICAgICByZXN1bHQgPSBqc051bWJlcihtaWxsaSk7
CkBAIC03NzgsNyArODA1LDcgQEAgSlNWYWx1ZSAqRGF0ZU9iamVjdEltcDo6Y2FsbEFzRnVuY3Rp
b24oRQogewogICAgIHRpbWVfdCB0ID0gdGltZSgwKTsKICAgICB0bSB0cyA9ICpsb2NhbHRpbWUo
JnQpOwotICAgIHJldHVybiBqc1N0cmluZyhmb3JtYXREYXRlKHRzKSArICIgIiArIGZvcm1hdFRp
bWUodHMpKTsKKyAgICByZXR1cm4ganNTdHJpbmcoZm9ybWF0RGF0ZSh0cykgKyAiICIgKyBmb3Jt
YXRUaW1lKHRzLCBmYWxzZSkpOwogfQogCiAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0gRGF0ZU9iamVjdEZ1bmNJbXAgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpJbmRleDog
a2pzL2RhdGVfb2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0ga2pzL2RhdGVfb2JqZWN0LmgJKHJldmlz
aW9uIDEyNTg4KQorKysga2pzL2RhdGVfb2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTMxLDcg
KzMxLDEyIEBAIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIERhdGVJbnN0YW5jZSA6IHB1Ymxp
YyBKU09iamVjdCB7CiAgICAgcHVibGljOgogICAgICAgICBEYXRlSW5zdGFuY2UoSlNPYmplY3Qg
KnByb3RvKTsKLQorICAgICAgICAKKyAgICAgICAgYm9vbCBnZXRUaW1lKHRtICZ0LCBpbnQgJmdt
dG9mZnNldCkgY29uc3Q7CisgICAgICAgIGJvb2wgZ2V0VVRDVGltZSh0bSAmdCkgY29uc3Q7Cisg
ICAgICAgIGJvb2wgZ2V0VGltZShkb3VibGUgJm1zLCBpbnQgJmdtdG9mZnNldCkgY29uc3Q7Cisg
ICAgICAgIGJvb2wgZ2V0VVRDVGltZShkb3VibGUgJm1zKSBjb25zdDsKKyAgICAgICAgCiAgICAg
ICAgIHZpcnR1YWwgY29uc3QgQ2xhc3NJbmZvICpjbGFzc0luZm8oKSBjb25zdCB7IHJldHVybiAm
aW5mbzsgfQogICAgICAgICBzdGF0aWMgY29uc3QgQ2xhc3NJbmZvIGluZm87CiAgICAgfTsK
</data>
<flag name="review"
          id="1529"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>