<?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>23207</bug_id>
          
          <creation_ts>2009-01-08 22:25:37 -0800</creation_ts>
          <short_desc>Move currentTime() from WebCore into WTF (to use in WTF::MessageQueue::WaitForMessageTimed)</short_desc>
          <delta_ts>2009-01-11 00:15:57 -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>Web Template Framework</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>
          
          <blocked>22718</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dmitry Titov">dimich</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ap</cc>
    
    <cc>darin</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>105002</commentid>
    <comment_count>0</comment_count>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-08 22:25:37 -0800</bug_when>
    <thetext>Combined implementations of currentTime() from several platform-dependent files in WebCore/platform and from JSC/runtime/DateMath.cpp into JSC/WTF/CurrentTime.(h,cpp)

This brings all implementations close to each other, eliminates duplication and allows to sue currentTime() anywhere in the project, including WTF itself, in particulr to implement WTF::MessageQueue::WaitForMessageTimed and correct implementation of ThreadCondition::waitTimed() - those changes are following.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105003</commentid>
    <comment_count>1</comment_count>
      <attachid>26560</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-08 23:24:32 -0800</bug_when>
    <thetext>Created attachment 26560
Proposed patch

Although there are many files, most of the files in this patch only have a different header file included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105133</commentid>
    <comment_count>2</comment_count>
      <attachid>26560</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-01-10 14:34:23 -0800</bug_when>
    <thetext>Comment on attachment 26560
Proposed patch

&gt; +// Platform note: GTK should use gettimeofday everywhere except WIN, where 

Sentence fragment here. Also, I think it might be better to put this comment after the includes rather than in the middle of them.

&gt; +#if PLATFORM(MAC)
&gt; +double currentTime()
&gt; +{
&gt; +    return CFAbsoluteTimeGetCurrent() + kCFAbsoluteTimeIntervalSince1970;
&gt; +}
&gt; +#elif PLATFORM(WIN)

I think some blank lines here would make it easier to read. The per-platform sections are large enough that a little more vertical whitespace will make it easier to spot the boundaries.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105172</commentid>
    <comment_count>3</comment_count>
      <attachid>26596</attachid>
    <who name="Dmitry Titov">dimich</who>
    <bug_when>2009-01-10 18:34:19 -0800</bug_when>
    <thetext>Created attachment 26596
Updated patch

Fixed comment, whitespaces and resolved against current tree.
Seems to be ready for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>105185</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-01-11 00:15:57 -0800</bug_when>
    <thetext>Committed revision 39784.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26560</attachid>
            <date>2009-01-08 23:24:32 -0800</date>
            <delta_ts>2009-01-10 18:34:19 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>wtfTime.txt</filename>
            <type>text/plain</type>
            <size>58706</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5NzM3KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMDEtMDggIERtaXRyeSBU
aXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjA3CisgICAgICAgIE1vdmVkIGN1cnJlbnRUaW1lKCkgdG8gZnJvbSBXZWJDb3JlIHRv
IFdURi4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDogYWRkZWQgZXhwb3J0IGZvciBXVEY6OmN1cnJlbnRUaW1lKCkKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS5wcmk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuc2NvbnM6CisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmVTb3VyY2VzLmJrbDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVNYXRoLmNwcDoKKyAg
ICAgICAgKEpTQzo6Z2V0Q3VycmVudFVUQ1RpbWVXaXRoTWljcm9zZWNvbmRzKTogVGhpcyBmdW5j
dGlvbiBoYWQgYW5vdGhlciBpbXBsZW1lbnRhdGlvbiBvZiBjdXJyZW50VGltZSgpLCBlc3NlbnRp
YWxseS4gTm93IHVzZXMgV1RGIHZlcnNpb24uCisgICAgICAgICogd3RmL0N1cnJlbnRUaW1lLmNw
cDogQWRkZWQuCisgICAgICAgIChXVEY6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdURjo6aGln
aFJlc1VwVGltZSk6CisgICAgICAgIChXVEY6Omxvd1Jlc1VUQ1RpbWUpOgorICAgICAgICAoV1RG
OjpxcGNBdmFpbGFibGUpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5oOiBBZGRlZC4KKwog
MjAwOS0wMS0wOCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmVy
dCByMzk3MjAuIEl0IGJyb2tlIEludGVycHJldGVkIG1vZGUuCkluZGV4OiBKYXZhU2NyaXB0Q29y
ZS9HTlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmls
ZS5hbQkocmV2aXNpb24gMzk3MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQko
d29ya2luZyBjb3B5KQpAQCAtMTkyLDYgKzE5Miw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMg
Kz0gXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9BbHdheXNJbmxpbmUuaCBcCiAJSmF2YVNjcmlwdENv
cmUvd3RmL0Fzc2VydGlvbnMuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5o
IFwKKwlKYXZhU2NyaXB0Q29yZS93dGYvQ3VycmVudFRpbWUuY3BwIFwKKwlKYXZhU2NyaXB0Q29y
ZS93dGYvQ3VycmVudFRpbWUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmggXAogCUph
dmFTY3JpcHRDb3JlL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9G
b3J3YXJkLmggXApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gMzk3
MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2OCw2ICsyNjgsNyBAQCBfX1pOM0pTQ2d0RVJLTlNfN1VTdHJpbmdFUzJfCiBfX1pOM0pT
Q2x0RVJLTlNfN1VTdHJpbmdFUzJfCiBfX1pOM1dURjEwZmFzdENhbGxvY0VtbQogX19aTjNXVEYx
MGZhc3RNYWxsb2NFbQorX19aTjNXVEYxMWN1cnJlbnRUaW1lRXYKIF9fWk4zV1RGMTFmYXN0UmVh
bGxvY0VQdm0KIF9fWk4zV1RGMTJjcmVhdGVUaHJlYWRFUEZQdlMwX0VTMF8KIF9fWk4zV1RGMTJj
cmVhdGVUaHJlYWRFUEZQdlMwX0VTMF9QS2MKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5w
cmkJKHJldmlzaW9uIDM5NzM3KQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJp
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcnVu
dGltZS9Db2xsZWN0b3IuY3BwIFwKICAgICBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBc
CiAgICAgcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcCBcCisgICAgd3RmL0N1cnJlbnRUaW1lLmNw
cCBcCiAgICAgcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIFwKICAgICBydW50aW1lL0RhdGVJ
bnN0YW5jZS5jcHAgXAogICAgIHJ1bnRpbWUvRGF0ZU1hdGguY3BwIFwKSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnNjb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnNjb25zCShyZXZpc2lvbiAzOTczNykKKysrIEphdmFTY3JpcHRDb3Jl
L0phdmFTY3JpcHRDb3JlLnNjb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQyLDcgQEAg
c291cmNlc1snd3JlYyddID0gWwogXQogc291cmNlc1snd3RmJ10gPSBbCiAgICAgJ3d0Zi9Bc3Nl
cnRpb25zLmNwcCcsCisgICAgJ3d0Zi9DdXJyZW50VGltZS5jcHAnLAogICAgICd3dGYvRmFzdE1h
bGxvYy5jcHAnLAogICAgICd3dGYvSGFzaFRhYmxlLmNwcCcsCiAgICAgJ3d0Zi9SYW5kb21OdW1i
ZXIuY3BwJywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAko
cmV2aXNpb24gMzk3MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMu
YmtsCSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDcgQEAgU291cmNlIGZpbGVzIGZvciBK
U0NvcmUuCiAgICAgPC9zZXQ+CiAgICAgPHNldCBhcHBlbmQ9IjEiIHZhcj0iSlNDT1JFX1dURl9T
T1VSQ0VTIj4KICAgICAgICAgd3RmL0Fzc2VydGlvbnMuY3BwCisgICAgICAgIHd0Zi9DdXJyZW50
VGltZS5jcHAKICAgICAgICAgd3RmL0Zhc3RNYWxsb2MuY3BwCiAgICAgICAgIHd0Zi9IYXNoVGFi
bGUuY3BwCiAgICAgICAgIHd0Zi9NYWluVGhyZWFkLmNwcApJbmRleDogSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagkocmV2aXNpb24g
Mzk3MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52
Y3Byb2oJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2ICsyNDMsMTQgQEAKIAkJCT4NCiAJCTwvRmls
ZT4NCiAJCTxGaWxlDQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3Bw
Ig0KKwkJCT4NCisJCTwvRmlsZT4NCisJCTxGaWxlDQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3
dGZcQ3VycmVudFRpbWUuaCINCisJCQk+DQorCQk8L0ZpbGU+DQorCQk8RmlsZQ0KIAkJCVJlbGF0
aXZlUGF0aD0iLi5cLi5cd3RmXERlcXVlLmgiDQogCQkJPg0KIAkJPC9GaWxlPg0KSW5kZXg6IEph
dmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMzk3MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04Nyw2ICs4
Nyw4IEBACiAJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0NvbnRleHRSZWYuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCRDVBMjkwQTNF
OTFGNjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5jcHAgKi87IH07CiAJCTE0QkQ1QTMyMEEzRTkx
RjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDE0QkQ1QTJCMEEzRTkxRjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVm
LmNwcCAqLzsgfTsKIAkJMTRGMzQ4OEYwRTk1RUY4QTAwMzY0OEJDIC8qIENvbGxlY3RvckhlYXBJ
dGVyYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MTRGMzQ4OEUwRTk1RUY4QTAwMzY0OEJDIC8qIENvbGxlY3RvckhlYXBJdGVyYXRvci5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE4MEI5QjA4MEYx
NkQ5NEYwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMTgwQjlBRjAwRjE2QzU2OTAwOUJEQkM1IC8qIEN1cnJlbnRU
aW1lLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
MTgwQjlCRkUwRjE2RTk0RDAwOUJEQkM1IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4MEI5QUVGMEYxNkM1NjkwMDlCREJD
NSAvKiBDdXJyZW50VGltZS5jcHAgKi87IH07CiAJCTFDNjE1MTZDMEVCQUM3QTAwMDMxMzc2RiAv
KiBQcm9maWxlclNlcnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDFDNjE1MTZBMEVCQUM3QTAwMDMxMzc2RiAvKiBQcm9maWxlclNlcnZlci5tbSAq
Lzsgc2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1zdHJpY3QtYWxpYXNpbmciOyB9
OyB9OwogCQkxQzYxNTE2RDBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjE1MTZCMEVCQUM3
QTAwMDMxMzc2RiAvKiBQcm9maWxlclNlcnZlci5oICovOyB9OwogCQk1RDUzNzI2RjBFMUM1NDg4
MDAyMUU1NDkgLyogVHJhY2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUQ1MzcyNkUwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCAqLzsgfTsK
QEAgLTQ5NSw2ICs0OTcsOCBAQAogCQkxNERFMEQ2ODBEMDI0MzE0MDBBQUNDQTIgLyogSlNHbG9i
YWxPYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9i
YWxPYmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYyNTI1NjBEMDhE
RDhEMDA0RUNGRkYgLyogSlNWYXJpYWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBKU1ZhcmlhYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTE0RjM0ODhFMEU5NUVGOEEwMDM2NDhCQyAvKiBDb2xsZWN0b3JIZWFwSXRlcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdG9ySGVhcEl0ZXJhdG9yLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE4MEI5QUVGMEYxNkM1NjkwMDlCREJDNSAv
KiBDdXJyZW50VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBD
dXJyZW50VGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE4MEI5QUYwMEYx
NkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBDdXJyZW50VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYx
NTE2QTBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9maWxlclNlcnZlci5tbTsgcGF0aCA9IHByb2Zp
bGVyL1Byb2ZpbGVyU2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYx
NTE2QjBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJTZXJ2ZXIuaDsgcGF0aCA9IHByb2ZpbGVyL1Byb2Zp
bGVyU2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA1MTQyMEJBOUU4
QTcwMDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsg
cGF0aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
MDc3LDYgKzEwODEsOCBAQAogCQkJCTkzQUE0Rjc3MDk1NzI1MUYwMDg0QjNBNyAvKiBBbHdheXNJ
bmxpbmUuaCAqLywKIAkJCQk2NUUyMTdCODA4RTdFRUNDMDAyM0U1RjYgLyogQXNzZXJ0aW9ucy5j
cHAgKi8sCiAJCQkJNjVFMjE3QjcwOEU3RUVDQzAwMjNFNUY2IC8qIEFzc2VydGlvbnMuaCAqLywK
KwkJCQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICovLAorCQkJ
CTE4MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJCTUxODYx
MTFEMENDODI0ODMwMDgxNDEyQiAvKiBEZXF1ZS5oICovLAogCQkJCTkzOEM0RjZCMENBMDZCQ0Uw
MEQ5MzEwQSAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCiAJCQkJNjVFMjE3QjkwOEU3RUVDQzAwMjNF
NUY2IC8qIEZhc3RNYWxsb2MuY3BwICovLApAQCAtMTUwNCw2ICsxNTEwLDcgQEAKIAkJCQlCQzE4
QzNGMzBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMThDM0Y0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBDb21wbGV0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzE4QzNGNjBFMTZGNUNEMDBCMzQ0NjAgLyogQ29uc3RydWN0RGF0YS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJMTgwQjlCMDgwRjE2RDk0RjAwOUJEQkM1IC8qIEN1cnJlbnRUaW1l
LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDM0QTBFMTcxMzVFMDAyQzdFODIgLyogRGF0ZUNv
bnN0cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjYwMjBFMTk5N0I0MDA4MDY2REQg
LyogRGF0ZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGOTBFMTZGNUNEMDBC
MzQ0NjAgLyogRGF0ZU1hdGguaCBpbiBIZWFkZXJzICovLApAQCAtMTk4MCw2ICsxOTg3LDcgQEAK
IAkJCQk5NjlBMDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUUxQTg2MkQ2MEQ3RjJCNUMwMDFFQzZBQSAvKiBDb2xsYXRvckRlZmF1bHQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJRTFBODYyQTkwRDdFQkI3NjAwMUVDNkFBIC8qIENvbGxhdG9y
SUNVLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE4MEI5QkZFMEYxNkU5NEQwMDlCREJDNSAvKiBD
dXJyZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDk1NTlFRTBERENEREY3MDA2NDgw
ODcgLyogRGVidWdnZXJDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ4Nzgw
RUQyMUFDRDAwQjg5NjE5IC8qIEV4Y2VwdGlvbkhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTdCNDhGNDkwRUU4OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGlu
IFNvdXJjZXMgKi8sCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAkocmV2aXNp
b24gMzk3MzcpCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvQVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8
d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvU3RyaW5nRXh0cmFzLmg+CiAKQEAgLTI5MSwxMzkgKzI5MiwxMCBAQCBkb3VibGUgZ2V0
Q3VycmVudFVUQ1RpbWUoKQogICAgIHJldHVybiBmbG9vcihnZXRDdXJyZW50VVRDVGltZVdpdGhN
aWNyb3NlY29uZHMoKSk7CiB9CiAKLSNpZiBQTEFURk9STShXSU5fT1MpCi0KLXN0YXRpYyBMQVJH
RV9JTlRFR0VSIHFwY0ZyZXF1ZW5jeTsKLXN0YXRpYyBib29sIHN5bmNlZFRpbWU7Ci0KLXN0YXRp
YyBkb3VibGUgaGlnaFJlc1VwVGltZSgpCi17Ci0gICAgLy8gV2UgdXNlIFFQQywgYnV0IG9ubHkg
YWZ0ZXIgc2FuaXR5IGNoZWNraW5nIGl0cyByZXN1bHQsIGR1ZSB0byBidWdzOgotICAgIC8vIGh0
dHA6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvMjc0MzIzCi0gICAgLy8gaHR0cDovL3N1cHBv
cnQubWljcm9zb2Z0LmNvbS9rYi84OTU5ODAKLSAgICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQu
Y29tL2VuLXVzL2xpYnJhcnkvbXM2NDQ5MDQuYXNweCAoIi4uLnlvdSBjYW4gZ2V0IGRpZmZlcmVu
dCByZXN1bHRzIG9uIGRpZmZlcmVudCBwcm9jZXNzb3JzIGR1ZSB0byBidWdzIGluIHRoZSBiYXNp
YyBpbnB1dC9vdXRwdXQgc3lzdGVtIChCSU9TKSBvciB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24g
bGF5ZXIgKEhBTCkuIgotCi0gICAgc3RhdGljIExBUkdFX0lOVEVHRVIgcXBjTGFzdDsKLSAgICBz
dGF0aWMgRFdPUkQgdGlja0NvdW50TGFzdDsKLSAgICBzdGF0aWMgYm9vbCBpbml0ZWQ7Ci0KLSAg
ICBMQVJHRV9JTlRFR0VSIHFwYzsKLSAgICBRdWVyeVBlcmZvcm1hbmNlQ291bnRlcigmcXBjKTsK
LSAgICBEV09SRCB0aWNrQ291bnQgPSBHZXRUaWNrQ291bnQoKTsKLQotICAgIGlmIChpbml0ZWQp
IHsKLSAgICAgICAgX19pbnQ2NCBxcGNFbGFwc2VkID0gKChxcGMuUXVhZFBhcnQgLSBxcGNMYXN0
LlF1YWRQYXJ0KSAqIDEwMDApIC8gcXBjRnJlcXVlbmN5LlF1YWRQYXJ0OwotICAgICAgICBfX2lu
dDY0IHRpY2tDb3VudEVsYXBzZWQ7Ci0gICAgICAgIGlmICh0aWNrQ291bnQgPj0gdGlja0NvdW50
TGFzdCkKLSAgICAgICAgICAgIHRpY2tDb3VudEVsYXBzZWQgPSAodGlja0NvdW50IC0gdGlja0Nv
dW50TGFzdCk7Ci0gICAgICAgIGVsc2UgewotI2lmIENPTVBJTEVSKE1JTkdXKQotICAgICAgICAg
ICAgX19pbnQ2NCB0aWNrQ291bnRMYXJnZSA9IHRpY2tDb3VudCArIDB4MTAwMDAwMDAwVUxMOwot
I2Vsc2UKLSAgICAgICAgICAgIF9faW50NjQgdGlja0NvdW50TGFyZ2UgPSB0aWNrQ291bnQgKyAw
eDEwMDAwMDAwMEk2NDsKLSNlbmRpZgotICAgICAgICAgICAgdGlja0NvdW50RWxhcHNlZCA9IHRp
Y2tDb3VudExhcmdlIC0gdGlja0NvdW50TGFzdDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGZv
cmNlIGEgcmUtc3luYyBpZiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBkaWZmZXJzIGZyb20gR2V0
VGlja0NvdW50IGJ5IG1vcmUgdGhhbiA1MDBtcy4KLSAgICAgICAgLy8gKDUwMG1zIHZhbHVlIGlz
IGZyb20gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8yNzQzMjMpCi0gICAgICAgIF9f
aW50NjQgZGlmZiA9IHRpY2tDb3VudEVsYXBzZWQgLSBxcGNFbGFwc2VkOwotICAgICAgICBpZiAo
ZGlmZiA+IDUwMCB8fCBkaWZmIDwgLTUwMCkKLSAgICAgICAgICAgIHN5bmNlZFRpbWUgPSBmYWxz
ZTsKLSAgICB9IGVsc2UKLSAgICAgICAgaW5pdGVkID0gdHJ1ZTsKLQotICAgIHFwY0xhc3QgPSBx
cGM7Ci0gICAgdGlja0NvdW50TGFzdCA9IHRpY2tDb3VudDsKLQotICAgIHJldHVybiAoMTAwMC4w
ICogcXBjLlF1YWRQYXJ0KSAvIHN0YXRpY19jYXN0PGRvdWJsZT4ocXBjRnJlcXVlbmN5LlF1YWRQ
YXJ0KTs7Ci19Ci0KLXN0YXRpYyBkb3VibGUgbG93UmVzVVRDVGltZSgpCi17Ci0jaWYgUExBVEZP
Uk0oV0lOX0NFKQotICAgIFNZU1RFTVRJTUUgc3lzdGVtVGltZTsKLSAgICBHZXRTeXN0ZW1UaW1l
KCZzeXN0ZW1UaW1lKTsKLSAgICBzdHJ1Y3QgdG0gdG10aW1lOwotICAgIHRtdGltZS50bV95ZWFy
ID0gc3lzdGVtVGltZS53WWVhciAtIDE5MDA7Ci0gICAgdG10aW1lLnRtX21vbiA9IHN5c3RlbVRp
bWUud01vbnRoIC0gMTsKLSAgICB0bXRpbWUudG1fbWRheSA9IHN5c3RlbVRpbWUud0RheTsKLSAg
ICB0bXRpbWUudG1fd2RheSA9IHN5c3RlbVRpbWUud0RheU9mV2VlazsKLSAgICB0bXRpbWUudG1f
aG91ciA9IHN5c3RlbVRpbWUud0hvdXI7Ci0gICAgdG10aW1lLnRtX21pbiA9IHN5c3RlbVRpbWUu
d01pbnV0ZTsKLSAgICB0bXRpbWUudG1fc2VjID0gc3lzdGVtVGltZS53U2Vjb25kOwotICAgIHRp
bWVfdCB0aW1ldCA9IG1rdGltZSgmdG10aW1lKTsKLSAgICByZXR1cm4gdGltZXQgKiBtc1BlclNl
Y29uZCArIHN5c3RlbVRpbWUud01pbGxpc2Vjb25kczsKLSNlbHNlCi0gICAgc3RydWN0IF90aW1l
YiB0aW1lYnVmZmVyOwotICAgIF9mdGltZSgmdGltZWJ1ZmZlcik7Ci0gICAgcmV0dXJuIHRpbWVi
dWZmZXIudGltZSAqIG1zUGVyU2Vjb25kICsgdGltZWJ1ZmZlci5taWxsaXRtOwotI2VuZGlmCi19
Ci0KLXN0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCi17Ci0gICAgc3RhdGljIGJvb2wgYXZhaWxh
YmxlOwotICAgIHN0YXRpYyBib29sIGNoZWNrZWQ7Ci0KLSAgICBpZiAoY2hlY2tlZCkKLSAgICAg
ICAgcmV0dXJuIGF2YWlsYWJsZTsKLQotICAgIGF2YWlsYWJsZSA9IFF1ZXJ5UGVyZm9ybWFuY2VG
cmVxdWVuY3koJnFwY0ZyZXF1ZW5jeSk7Ci0gICAgY2hlY2tlZCA9IHRydWU7Ci0gICAgcmV0dXJu
IGF2YWlsYWJsZTsKLX0KLQotI2VuZGlmCi0KKy8vIFJldHVybnMgY3VycmVudCB0aW1lIGluIG1p
bGxpc2Vjb25kcyBzaW5jZSAxIEphbiAxOTcwLgogZG91YmxlIGdldEN1cnJlbnRVVENUaW1lV2l0
aE1pY3Jvc2Vjb25kcygpCiB7Ci0jaWYgUExBVEZPUk0oV0lOX09TKQotICAgIC8vIFVzZSBhIGNv
bWJpbmF0aW9uIG9mIGZ0aW1lIGFuZCBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4KLSAgICAvLyBm
dGltZSByZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiB3ZSB3YW50LCBidXQgZG9lc24ndCBoYXZlIHN1
ZmZpY2llbnQgcmVzb2x1dGlvbi4KLSAgICAvLyBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBoYXMg
aGlnaCByZXNvbHV0aW9uLCBidXQgaXMgb25seSB1c2FibGUgdG8gbWVhc3VyZSB0aW1lIGludGVy
dmFscy4KLSAgICAvLyBUbyBjb21iaW5lIHRoZW0sIHdlIGNhbGwgZnRpbWUgYW5kIFF1ZXJ5UGVy
Zm9ybWFuY2VDb3VudGVyIGluaXRpYWxseS4gTGF0ZXIgY2FsbHMgd2lsbCB1c2UgUXVlcnlQZXJm
b3JtYW5jZUNvdW50ZXIKLSAgICAvLyBieSBpdHNlbGYsIGFkZGluZyB0aGUgZGVsdGEgdG8gdGhl
IHNhdmVkIGZ0aW1lLiAgV2UgcGVyaW9kaWNhbGx5IHJlLXN5bmMgdG8gY29ycmVjdCBmb3IgZHJp
ZnQuCi0gICAgc3RhdGljIGJvb2wgc3RhcnRlZDsKLSAgICBzdGF0aWMgZG91YmxlIHN5bmNMb3dS
ZXNVVENUaW1lOwotICAgIHN0YXRpYyBkb3VibGUgc3luY0hpZ2hSZXNVcFRpbWU7Ci0gICAgc3Rh
dGljIGRvdWJsZSBsYXN0VVRDVGltZTsKLQotICAgIGRvdWJsZSBsb3dSZXNUaW1lID0gbG93UmVz
VVRDVGltZSgpOwotCi0gICAgaWYgKCFxcGNBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIGxv
d1Jlc1RpbWU7Ci0KLSAgICBkb3VibGUgaGlnaFJlc1RpbWUgPSBoaWdoUmVzVXBUaW1lKCk7Ci0K
LSAgICBpZiAoIXN5bmNlZFRpbWUpIHsKLSAgICAgICAgdGltZUJlZ2luUGVyaW9kKDEpOyAvLyBp
bmNyZWFzZSB0aW1lIHJlc29sdXRpb24gYXJvdW5kIGxvdy1yZXMgdGltZSBnZXR0ZXIKLSAgICAg
ICAgc3luY0xvd1Jlc1VUQ1RpbWUgPSBsb3dSZXNUaW1lID0gbG93UmVzVVRDVGltZSgpOwotICAg
ICAgICB0aW1lRW5kUGVyaW9kKDEpOyAvLyByZXN0b3JlIHRpbWUgcmVzb2x1dGlvbgotICAgICAg
ICBzeW5jSGlnaFJlc1VwVGltZSA9IGhpZ2hSZXNUaW1lOwotICAgICAgICBzeW5jZWRUaW1lID0g
dHJ1ZTsKLSAgICB9Ci0KLSAgICBkb3VibGUgaGlnaFJlc0VsYXBzZWQgPSBoaWdoUmVzVGltZSAt
IHN5bmNIaWdoUmVzVXBUaW1lOwotICAgIGRvdWJsZSB1dGMgPSBzeW5jTG93UmVzVVRDVGltZSAr
IGhpZ2hSZXNFbGFwc2VkOwotCi0gICAgLy8gZm9yY2UgYSBjbG9jayByZS1zeW5jIGlmIHdlJ3Zl
IGRyaWZ0ZWQKLSAgICBkb3VibGUgbG93UmVzRWxhcHNlZCA9IGxvd1Jlc1RpbWUgLSBzeW5jTG93
UmVzVVRDVGltZTsKLSAgICBjb25zdCBkb3VibGUgbWF4aW11bUFsbG93ZWREcmlmdE1zZWMgPSAx
NS42MjUgKiAyLjA7IC8vIDJ4IHRoZSB0eXBpY2FsIGxvdy1yZXMgYWNjdXJhY3kKLSAgICBpZiAo
ZmFicyhoaWdoUmVzRWxhcHNlZCAtIGxvd1Jlc0VsYXBzZWQpID4gbWF4aW11bUFsbG93ZWREcmlm
dE1zZWMpCi0gICAgICAgIHN5bmNlZFRpbWUgPSBmYWxzZTsKLQotICAgIC8vIG1ha2Ugc3VyZSB0
aW1lIGRvZXNuJ3QgcnVuIGJhY2t3YXJkcyAob25seSBjb3JyZWN0IGlmIGRpZmZlcmVuY2UgaXMg
PCAyIHNlY29uZHMsIHNpbmNlIERTVCBvciBjbG9jayBjaGFuZ2VzIGNvdWxkIG9jY3VyKQotICAg
IGNvbnN0IGRvdWJsZSBiYWNrd2FyZFRpbWVMaW1pdCA9IDIwMDAuMDsKLSAgICBpZiAodXRjIDwg
bGFzdFVUQ1RpbWUgJiYgKGxhc3RVVENUaW1lIC0gdXRjKSA8IGJhY2t3YXJkVGltZUxpbWl0KQot
ICAgICAgICByZXR1cm4gbGFzdFVUQ1RpbWU7Ci0gICAgbGFzdFVUQ1RpbWUgPSB1dGM7Ci0jZWxz
ZQotICAgIHN0cnVjdCB0aW1ldmFsIHR2OwotICAgIGdldHRpbWVvZmRheSgmdHYsIDApOwotICAg
IGRvdWJsZSB1dGMgPSB0di50dl9zZWMgKiBtc1BlclNlY29uZCArIHR2LnR2X3VzZWMgLyAxMDAw
LjA7Ci0jZW5kaWYKLSAgICByZXR1cm4gdXRjOworICAgIHJldHVybiBjdXJyZW50VGltZSgpICog
MTAwMC4wOyAKIH0KIAogdm9pZCBnZXRMb2NhbFRpbWUoY29uc3QgdGltZV90KiBsb2NhbFRpbWUs
IHN0cnVjdCB0bSogbG9jYWxUTSkKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGlt
ZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcAko
cmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGltZS5jcHAJKHJldmlz
aW9uIDApCkBAIC0wLDAgKzEsMjA5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxl
IENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAy
MDA4IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
ICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAg
ICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMK
KyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVj
dHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
VEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QK
KyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2lu
Y2x1ZGUgIkN1cnJlbnRUaW1lLmgiCisKKy8vIFBsYXRmb3JtIG5vdGU6IEdUSyBzaG91bGQgdXNl
IGdldHRpbWVvZmRheSBldmVyeXdoZXJlIGV4Y2VwdCBXSU4sIHdoZXJlIAorCisjaWYgUExBVEZP
Uk0oTUFDKQorI2luY2x1ZGUgPENvcmVGb3VuZGF0aW9uL0NGRGF0ZS5oPgorI2VsaWYgUExBVEZP
Uk0oV0lOKQorI2luY2x1ZGUgPHdpbmRvd3MuaD4KKyNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVk
ZSA8c3RkaW50Lmg+CisjaW5jbHVkZSA8dGltZS5oPgorI2VsaWYgUExBVEZPUk0oR1RLKQorI2lu
Y2x1ZGUgPGdsaWIuaD4KKyNlbGlmIFBMQVRGT1JNKFdYKQorI2luY2x1ZGUgPHd4L2RhdGV0aW1l
Lmg+CisjZWxzZSAvLyBQb3NpeCBzeXN0ZW1zIHJlbHlpbmcgb24gdGhlIGdldHRpbWVvZmRheSgp
CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNlbmRpZgorCituYW1lc3BhY2UgV1RGIHsKKworI2lm
IFBMQVRGT1JNKE1BQykKK2RvdWJsZSBjdXJyZW50VGltZSgpCit7CisgICAgcmV0dXJuIENGQWJz
b2x1dGVUaW1lR2V0Q3VycmVudCgpICsga0NGQWJzb2x1dGVUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7
Cit9CisjZWxpZiBQTEFURk9STShXSU4pCitzdGF0aWMgTEFSR0VfSU5URUdFUiBxcGNGcmVxdWVu
Y3k7CitzdGF0aWMgYm9vbCBzeW5jZWRUaW1lOworCitzdGF0aWMgZG91YmxlIGhpZ2hSZXNVcFRp
bWUoKQoreworICAgIC8vIFdlIHVzZSBRUEMsIGJ1dCBvbmx5IGFmdGVyIHNhbml0eSBjaGVja2lu
ZyBpdHMgcmVzdWx0LCBkdWUgdG8gYnVnczoKKyAgICAvLyBodHRwOi8vc3VwcG9ydC5taWNyb3Nv
ZnQuY29tL2tiLzI3NDMyMworICAgIC8vIGh0dHA6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2Iv
ODk1OTgwCisgICAgLy8gaHR0cDovL21zZG4ubWljcm9zb2Z0LmNvbS9lbi11cy9saWJyYXJ5L21z
NjQ0OTA0LmFzcHggKCIuLi55b3UgY2FuIGdldCBkaWZmZXJlbnQgcmVzdWx0cyBvbiBkaWZmZXJl
bnQgcHJvY2Vzc29ycyBkdWUgdG8gYnVncyBpbiB0aGUgYmFzaWMgaW5wdXQvb3V0cHV0IHN5c3Rl
bSAoQklPUykgb3IgdGhlIGhhcmR3YXJlIGFic3RyYWN0aW9uIGxheWVyIChIQUwpLiIKKyAgICAK
KyAgICBzdGF0aWMgTEFSR0VfSU5URUdFUiBxcGNMYXN0OworICAgIHN0YXRpYyBEV09SRCB0aWNr
Q291bnRMYXN0OworICAgIHN0YXRpYyBib29sIGluaXRlZDsKKyAgICAKKyAgICBMQVJHRV9JTlRF
R0VSIHFwYzsKKyAgICBRdWVyeVBlcmZvcm1hbmNlQ291bnRlcigmcXBjKTsKKyAgICBEV09SRCB0
aWNrQ291bnQgPSBHZXRUaWNrQ291bnQoKTsKKyAgICAKKyAgICBpZiAoaW5pdGVkKSB7CisgICAg
ICAgIF9faW50NjQgcXBjRWxhcHNlZCA9ICgocXBjLlF1YWRQYXJ0IC0gcXBjTGFzdC5RdWFkUGFy
dCkgKiAxMDAwKSAvIHFwY0ZyZXF1ZW5jeS5RdWFkUGFydDsKKyAgICAgICAgX19pbnQ2NCB0aWNr
Q291bnRFbGFwc2VkOworICAgICAgICBpZiAodGlja0NvdW50ID49IHRpY2tDb3VudExhc3QpCisg
ICAgICAgICAgICB0aWNrQ291bnRFbGFwc2VkID0gKHRpY2tDb3VudCAtIHRpY2tDb3VudExhc3Qp
OworICAgICAgICBlbHNlIHsKKyNpZiBDT01QSUxFUihNSU5HVykKKyAgICAgICAgICAgIF9faW50
NjQgdGlja0NvdW50TGFyZ2UgPSB0aWNrQ291bnQgKyAweDEwMDAwMDAwMFVMTDsKKyNlbHNlCisg
ICAgICAgICAgICBfX2ludDY0IHRpY2tDb3VudExhcmdlID0gdGlja0NvdW50ICsgMHgxMDAwMDAw
MDBJNjQ7CisjZW5kaWYKKyAgICAgICAgICAgIHRpY2tDb3VudEVsYXBzZWQgPSB0aWNrQ291bnRM
YXJnZSAtIHRpY2tDb3VudExhc3Q7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIC8vIGZv
cmNlIGEgcmUtc3luYyBpZiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBkaWZmZXJzIGZyb20gR2V0
VGlja0NvdW50IGJ5IG1vcmUgdGhhbiA1MDBtcy4KKyAgICAgICAgLy8gKDUwMG1zIHZhbHVlIGlz
IGZyb20gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8yNzQzMjMpCisgICAgICAgIF9f
aW50NjQgZGlmZiA9IHRpY2tDb3VudEVsYXBzZWQgLSBxcGNFbGFwc2VkOworICAgICAgICBpZiAo
ZGlmZiA+IDUwMCB8fCBkaWZmIDwgLTUwMCkKKyAgICAgICAgICAgIHN5bmNlZFRpbWUgPSBmYWxz
ZTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW5pdGVkID0gdHJ1ZTsKKyAgICAKKyAgICBxcGNMYXN0
ID0gcXBjOworICAgIHRpY2tDb3VudExhc3QgPSB0aWNrQ291bnQ7CisgICAgCisgICAgcmV0dXJu
ICgxMDAwLjAgKiBxcGMuUXVhZFBhcnQpIC8gc3RhdGljX2Nhc3Q8ZG91YmxlPihxcGNGcmVxdWVu
Y3kuUXVhZFBhcnQpOzsKK30KKworc3RhdGljIGRvdWJsZSBsb3dSZXNVVENUaW1lKCkKK3sKKyNp
ZiBQTEFURk9STShXSU5fQ0UpCisgICAgU1lTVEVNVElNRSBzeXN0ZW1UaW1lOworICAgIEdldFN5
c3RlbVRpbWUoJnN5c3RlbVRpbWUpOworICAgIHN0cnVjdCB0bSB0bXRpbWU7CisgICAgdG10aW1l
LnRtX3llYXIgPSBzeXN0ZW1UaW1lLndZZWFyIC0gMTkwMDsKKyAgICB0bXRpbWUudG1fbW9uID0g
c3lzdGVtVGltZS53TW9udGggLSAxOworICAgIHRtdGltZS50bV9tZGF5ID0gc3lzdGVtVGltZS53
RGF5OworICAgIHRtdGltZS50bV93ZGF5ID0gc3lzdGVtVGltZS53RGF5T2ZXZWVrOworICAgIHRt
dGltZS50bV9ob3VyID0gc3lzdGVtVGltZS53SG91cjsKKyAgICB0bXRpbWUudG1fbWluID0gc3lz
dGVtVGltZS53TWludXRlOworICAgIHRtdGltZS50bV9zZWMgPSBzeXN0ZW1UaW1lLndTZWNvbmQ7
CisgICAgdGltZV90IHRpbWV0ID0gbWt0aW1lKCZ0bXRpbWUpOworICAgIHJldHVybiB0aW1ldCAq
IG1zUGVyU2Vjb25kICsgc3lzdGVtVGltZS53TWlsbGlzZWNvbmRzOworI2Vsc2UgLy8gUExBVEZP
Uk0oV0lOX0NFKQorICAgIHN0cnVjdCBfdGltZWIgdGltZWJ1ZmZlcjsKKyAgICBfZnRpbWUoJnRp
bWVidWZmZXIpOworICAgIHJldHVybiB0aW1lYnVmZmVyLnRpbWUgKiBtc1BlclNlY29uZCArIHRp
bWVidWZmZXIubWlsbGl0bTsKKyNlbmRpZiAvLyBQTEFURk9STShXSU5fQ0UpCit9CisKK3N0YXRp
YyBib29sIHFwY0F2YWlsYWJsZSgpCit7CisgICAgc3RhdGljIGJvb2wgYXZhaWxhYmxlOworICAg
IHN0YXRpYyBib29sIGNoZWNrZWQ7CisgICAgCisgICAgaWYgKGNoZWNrZWQpCisgICAgICAgIHJl
dHVybiBhdmFpbGFibGU7CisgICAgCisgICAgYXZhaWxhYmxlID0gUXVlcnlQZXJmb3JtYW5jZUZy
ZXF1ZW5jeSgmcXBjRnJlcXVlbmN5KTsKKyAgICBjaGVja2VkID0gdHJ1ZTsKKyAgICByZXR1cm4g
YXZhaWxhYmxlOworfQorCitkb3VibGUgY3VycmVudFRpbWUoKQoreworICAgIC8vIFVzZSBhIGNv
bWJpbmF0aW9uIG9mIGZ0aW1lIGFuZCBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4KKyAgICAvLyBm
dGltZSByZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiB3ZSB3YW50LCBidXQgZG9lc24ndCBoYXZlIHN1
ZmZpY2llbnQgcmVzb2x1dGlvbi4KKyAgICAvLyBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBoYXMg
aGlnaCByZXNvbHV0aW9uLCBidXQgaXMgb25seSB1c2FibGUgdG8gbWVhc3VyZSB0aW1lIGludGVy
dmFscy4KKyAgICAvLyBUbyBjb21iaW5lIHRoZW0sIHdlIGNhbGwgZnRpbWUgYW5kIFF1ZXJ5UGVy
Zm9ybWFuY2VDb3VudGVyIGluaXRpYWxseS4gTGF0ZXIgY2FsbHMgd2lsbCB1c2UgUXVlcnlQZXJm
b3JtYW5jZUNvdW50ZXIKKyAgICAvLyBieSBpdHNlbGYsIGFkZGluZyB0aGUgZGVsdGEgdG8gdGhl
IHNhdmVkIGZ0aW1lLiAgV2UgcGVyaW9kaWNhbGx5IHJlLXN5bmMgdG8gY29ycmVjdCBmb3IgZHJp
ZnQuCisgICAgc3RhdGljIGJvb2wgc3RhcnRlZDsKKyAgICBzdGF0aWMgZG91YmxlIHN5bmNMb3dS
ZXNVVENUaW1lOworICAgIHN0YXRpYyBkb3VibGUgc3luY0hpZ2hSZXNVcFRpbWU7CisgICAgc3Rh
dGljIGRvdWJsZSBsYXN0VVRDVGltZTsKKyAgICAKKyAgICBkb3VibGUgbG93UmVzVGltZSA9IGxv
d1Jlc1VUQ1RpbWUoKTsKKyAgICAKKyAgICBpZiAoIXFwY0F2YWlsYWJsZSgpKQorICAgICAgICBy
ZXR1cm4gbG93UmVzVGltZTsKKyAgICAKKyAgICBkb3VibGUgaGlnaFJlc1RpbWUgPSBoaWdoUmVz
VXBUaW1lKCk7CisgICAgCisgICAgaWYgKCFzeW5jZWRUaW1lKSB7CisgICAgICAgIHRpbWVCZWdp
blBlcmlvZCgxKTsgLy8gaW5jcmVhc2UgdGltZSByZXNvbHV0aW9uIGFyb3VuZCBsb3ctcmVzIHRp
bWUgZ2V0dGVyCisgICAgICAgIHN5bmNMb3dSZXNVVENUaW1lID0gbG93UmVzVGltZSA9IGxvd1Jl
c1VUQ1RpbWUoKTsKKyAgICAgICAgdGltZUVuZFBlcmlvZCgxKTsgLy8gcmVzdG9yZSB0aW1lIHJl
c29sdXRpb24KKyAgICAgICAgc3luY0hpZ2hSZXNVcFRpbWUgPSBoaWdoUmVzVGltZTsKKyAgICAg
ICAgc3luY2VkVGltZSA9IHRydWU7CisgICAgfQorICAgIAorICAgIGRvdWJsZSBoaWdoUmVzRWxh
cHNlZCA9IGhpZ2hSZXNUaW1lIC0gc3luY0hpZ2hSZXNVcFRpbWU7CisgICAgZG91YmxlIHV0YyA9
IHN5bmNMb3dSZXNVVENUaW1lICsgaGlnaFJlc0VsYXBzZWQ7CisgICAgCisgICAgLy8gZm9yY2Ug
YSBjbG9jayByZS1zeW5jIGlmIHdlJ3ZlIGRyaWZ0ZWQKKyAgICBkb3VibGUgbG93UmVzRWxhcHNl
ZCA9IGxvd1Jlc1RpbWUgLSBzeW5jTG93UmVzVVRDVGltZTsKKyAgICBjb25zdCBkb3VibGUgbWF4
aW11bUFsbG93ZWREcmlmdE1zZWMgPSAxNS42MjUgKiAyLjA7IC8vIDJ4IHRoZSB0eXBpY2FsIGxv
dy1yZXMgYWNjdXJhY3kKKyAgICBpZiAoZmFicyhoaWdoUmVzRWxhcHNlZCAtIGxvd1Jlc0VsYXBz
ZWQpID4gbWF4aW11bUFsbG93ZWREcmlmdE1zZWMpCisgICAgICAgIHN5bmNlZFRpbWUgPSBmYWxz
ZTsKKyAgICAKKyAgICAvLyBtYWtlIHN1cmUgdGltZSBkb2Vzbid0IHJ1biBiYWNrd2FyZHMgKG9u
bHkgY29ycmVjdCBpZiBkaWZmZXJlbmNlIGlzIDwgMiBzZWNvbmRzLCBzaW5jZSBEU1Qgb3IgY2xv
Y2sgY2hhbmdlcyBjb3VsZCBvY2N1cikKKyAgICBjb25zdCBkb3VibGUgYmFja3dhcmRUaW1lTGlt
aXQgPSAyMDAwLjA7CisgICAgaWYgKHV0YyA8IGxhc3RVVENUaW1lICYmIChsYXN0VVRDVGltZSAt
IHV0YykgPCBiYWNrd2FyZFRpbWVMaW1pdCkKKyAgICAgICAgcmV0dXJuIGxhc3RVVENUaW1lOwor
ICAgIGxhc3RVVENUaW1lID0gdXRjOworICAgIHJldHVybiB1dGMgLyAxMDAwLjA7Cit9CisjZWxp
ZiBQTEFURk9STShHVEspCitkb3VibGUgY3VycmVudFRpbWUoKQoreworICAgIEdUaW1lVmFsIG5v
dzsKKyAgICBnX2dldF9jdXJyZW50X3RpbWUoJm5vdyk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0
PGRvdWJsZT4obm93LnR2X3NlYykgKyBzdGF0aWNfY2FzdDxkb3VibGU+KG5vdy50dl91c2VjIC8g
MTAwMDAwMC4wKTsKK30KKyAgICAKKyNlbGlmIFBMQVRGT1JNKFdYKQorZG91YmxlIGN1cnJlbnRU
aW1lKCkKK3sKKyAgICB3eERhdGVUaW1lIG5vdyA9IHd4RGF0ZVRpbWU6OlVOb3coKTsKKyAgICBy
ZXR1cm4gKGRvdWJsZSlub3cuR2V0VGlja3MoKSArIChkb3VibGUpKG5vdy5HZXRNaWxsaXNlY29u
ZCgpIC8gMTAwMC4wKTsKK30KKyNlbHNlIC8vIFBvc2l4IHN5c3RlbXMgcmVseWluZyBvbiB0aGUg
Z2V0dGltZW9mZGF5KCkKK2RvdWJsZSBjdXJyZW50VGltZSgpCit7CisgICAgc3RydWN0IHRpbWV2
YWwgbm93OworICAgIHN0cnVjdCB0aW1lem9uZSB6b25lOworICAgIAorICAgIGdldHRpbWVvZmRh
eSgmbm93LCAmem9uZSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGRvdWJsZT4obm93LnR2X3Nl
YykgKyAoZG91YmxlKShub3cudHZfdXNlYyAvIDEwMDAwMDAuMCk7Cit9CisjZW5kaWYKKworfSAv
LyBuYW1lc3BhY2UgV1RGCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvQ3VycmVudFRpbWUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvQ3VycmVudFRpbWUuaAkocmV2aXNpb24g
MCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oCShyZXZpc2lvbiAwKQpAQCAt
MCwwICsxLDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENvbXB1dGVyLCBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4IEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNv
cHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIg
dGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1
dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBm
cm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJt
aXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdI
VCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IK
KyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBDdXJyZW50VGltZV9oCisjZGVmaW5lIEN1cnJl
bnRUaW1lX2gKKworbmFtZXNwYWNlIFdURiB7CisKKyAgICAvLyBSZXR1cm5zIHRoZSBjdXJyZW50
IHN5c3RlbSAoVVRDKSB0aW1lIGluIHNlY29uZHMsIHN0YXJ0aW5nIEphbnVhcnkgMSwgMTk3MC4K
KyAgICAvLyBQcmVjaXNpb24gdmFyaWVzIGRlcGVuZGluZyBvbiBhIHBsYXRmb3JtIGJ1dCB1c3Vh
bGx5IGlzIGFzIGdvb2Qgb3IgYmV0dGVyIAorICAgIC8vIHRoZW4gYSBtaWxsaXNlY29uZC4KKyAg
ICBkb3VibGUgY3VycmVudFRpbWUoKTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisKK3VzaW5nIFdU
Rjo6Y3VycmVudFRpbWU7CisKKyNlbmRpZiAvLyBDdXJyZW50VGltZV9oCisKSW5kZXg6IFdlYkNv
cmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAz
OTczNykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNjgg
QEAKKzIwMDktMDEtMDggIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjA3CisgICAgICAgIE1vdmVkIGN1cnJlbnRU
aW1lKCkgdG8gZnJvbSBXZWJDb3JlIHRvIFdURi4KKworICAgICAgICBNb3N0IG9mIHRoZXNlIGZp
bGVzIG9ubHkgaGF2ZSBhIGRpZmZlcmVudCBoZWFkZXIgZmlsZSBpbmNsdWRlZC4KKyAgICAgICAg
VmFyaW91cyBidWlsZCBmaWxlcyByZWZsZWN0IHJlbW92YWwgb2YgU3lzdGVtVGltZUd0aywgV3gs
IFF0IGFuZCBMaW51eAorICAgICAgICB3aGljaCB3ZXJlIHJlbW92ZWQgc2luY2UgdGhleSBvbmx5
IGltcGxlbWVudGVkIGN1cnJlbnRUaW1lKCkuCisKKyAgICAgICAgKiBGb3J3YXJkaW5nSGVhZGVy
cy93dGYvQ3VycmVudFRpbWUuaDogQWRkZWQuCisgICAgICAgICogR05VbWFrZWZpbGUuYW06Cisg
ICAgICAgICogV2ViQ29yZS5iYXNlLmV4cDoKKyAgICAgICAgKiBXZWJDb3JlLnBybzoKKyAgICAg
ICAgKiBkb20vQ29udGFpbmVyTm9kZS5jcHA6CisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoK
KyAgICAgICAgKiBkb20vRXZlbnQuY3BwOgorICAgICAgICAqIGhpc3RvcnkvQ2FjaGVkUGFnZS5j
cHA6CisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3BwOgorICAgICAgICAqIGh0bWwvSFRN
TE1lZGlhRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojps
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnByb2dyZXNzRXZlbnRU
aW1lckZpcmVkKToKKyAgICAgICAgKiBodG1sL0hUTUxUb2tlbml6ZXIuY3BwOgorICAgICAgICAq
IGh0bWwvUHJlbG9hZFNjYW5uZXIuY3BwOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q2FjaGU6OnBydW5lTGl2ZVJlc291cmNlcyk6CisgICAgICAgICogbG9hZGVyL0NhY2hl
ZEltYWdlLmNwcDoKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAg
ICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAgICAgICogbG9hZGVyL1Byb2dyZXNzVHJh
Y2tlci5jcHA6CisgICAgICAgICogbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKiBsb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcDoKKyAgICAgICAgKiBwYWdlL0RyYWdDb250
cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKiBwYWdlL0Zy
YW1lVmlldy5jcHA6CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5jcHA6
CisgICAgICAgICogcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHA6CisgICAg
ICAgICogcGFnZS9hbmltYXRpb24vS2V5ZnJhbWVBbmltYXRpb24uY3BwOgorICAgICAgICAqIHBs
YXRmb3JtL1N5c3RlbVRpbWUuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9UaW1lci5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2UuY3BwOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9Nb3VzZUV2ZW50R3RrLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2hhcmVk
VGltZXJHdGsuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TeXN0ZW1UaW1lR3RrLmNwcDog
UmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU3lzdGVtVGltZUxpbnV4LmNwcDogUmVt
b3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU3lzdGVtVGltZU1hYy5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvUGxhdGZvcm1Nb3VzZUV2ZW50UXQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UGxhdGZvcm1Nb3VzZUV2ZW50OjpQbGF0Zm9ybU1vdXNlRXZlbnQpOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3F0L1NoYXJl
ZFRpbWVyUXQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9TeXN0ZW1UaW1lUXQuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9TaGFyZWRUaW1lcldpbi5jcHA6CisgICAgICAg
ICogcGxhdGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3BwOgorICAgICAgICAqIHBsYXRmb3JtL3d4
L01vdXNlRXZlbnRXeC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6
OlBsYXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vd3gvU2hhcmVkVGltZXJX
eC5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd3gvU3lzdGVtVGltZVd4LmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwOgorICAgICAgICAqIHJlbmRlcmlu
Zy9SZW5kZXJNZWRpYS5jcHA6CisgICAgICAgICogc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRh
aW5lci5jcHA6CisgICAgICAgICogd2ViY29yZS13eC5ia2w6CisgICAgICAgICogeG1sL1hNTEh0
dHBSZXF1ZXN0LmNwcDoKKwogMjAwOS0wMS0wOCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gUm9iZW4uCkluZGV4OiBXZWJDb3JlL0dO
VW1ha2VmaWxlLmFtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHJldmlz
aW9uIDM5NzM3KQorKysgV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQkod29ya2luZyBjb3B5KQpAQCAt
MTczMSw3ICsxNzMxLDYgQEAgd2ViY29yZWd0a19zb3VyY2VzICs9IFwKIAlXZWJDb3JlL3BsYXRm
b3JtL2d0ay9TaGFyZWRCdWZmZXJHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9TaGFy
ZWRUaW1lckd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NvdW5kR3RrLmNwcCBcCi0J
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvU3lzdGVtVGltZUd0ay5jcHAgXAogCVdlYkNvcmUvcGxhdGZv
cm0vZ3RrL1RlbXBvcmFyeUxpbmtTdHVicy5jcHAgXAogCVdlYkNvcmUvcGxhdGZvcm0vZ3RrL1do
ZWVsRXZlbnRHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaWRnZXRHdGsuY3BwIFwK
SW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dl
YkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9XZWJDb3JlLmJhc2Uu
ZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDMsNyArMjAzLDYgQEAgX19aTjdXZWJDb3JlMTFJY29u
RmV0Y2hlcjZjcmVhdGVFUE5TXzVGcgogX19aTjdXZWJDb3JlMTFSZW5kZXJMYXllcjE4Z0FsaWdu
Q2VudGVyQWx3YXlzRQogX19aTjdXZWJDb3JlMTFSZW5kZXJMYXllcjE5c2Nyb2xsUmVjdFRvVmlz
aWJsZUVSS05TXzdJbnRSZWN0RWJSS05TMF8xNVNjcm9sbEFsaWdubWVudEVTNl8KIF9fWk43V2Vi
Q29yZTExUmVuZGVyTGF5ZXIyMGdBbGlnblRvRWRnZUlmTmVlZGVkRQotX19aTjdXZWJDb3JlMTFj
dXJyZW50VGltZUV2CiBfX1pON1dlYkNvcmUxMWdsb2JhbFBvaW50RVJLOF9OU1BvaW50UDhOU1dp
bmRvdwogX19aTjdXZWJDb3JlMTF0b1VzZXJTcGFjZUVSSzdfTlNSZWN0UDhOU1dpbmRvdwogX19a
TjdXZWJDb3JlMTJBdG9taWNTdHJpbmczYWRkRVBLYwpJbmRleDogV2ViQ29yZS9XZWJDb3JlLnBy
bwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL1dlYkNvcmUucHJvCShyZXZpc2lvbiAzOTczNykKKysr
IFdlYkNvcmUvV2ViQ29yZS5wcm8JKHdvcmtpbmcgY29weSkKQEAgLTExNTgsOSArMTE1OCw2IEBA
IFNPVVJDRVMgKz0gXAogICAgIC4uL1dlYktpdC9xdC9BcGkvcXdlYmRhdGFiYXNlLmNwcAogCiAK
LSAgICB3aW4zMi0qfHdpbmNlKjogU09VUkNFUyArPSBwbGF0Zm9ybS93aW4vU3lzdGVtVGltZVdp
bi5jcHAKLSAgICBlbHNlOiBTT1VSQ0VTICs9IHBsYXRmb3JtL3F0L1N5c3RlbVRpbWVRdC5jcHAK
LQogICAgIG1hYyB7CiAgICAgICAgIFNPVVJDRVMgKz0gXAogICAgICAgICAgICAgcGxhdGZvcm0v
dGV4dC9jZi9TdHJpbmdDRi5jcHAgXApJbmRleDogV2ViQ29yZS93ZWJjb3JlLXd4LmJrbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3dlYmNvcmUtd3guYmtsCShyZXZpc2lvbiAzOTczNykKKysrIFdl
YkNvcmUvd2ViY29yZS13eC5ia2wJKHdvcmtpbmcgY29weSkKQEAgLTg5LDcgKzg5LDYgQEAgd3hX
ZWJDb3JlIHBvcnQgQmFrZWZpbGUgcHJvamVjdCBmaWxlLgogICAgICAgICAgICAgcGxhdGZvcm0v
d3gvU2Nyb2xsVmlld1d4LmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vd3gvU291bmRXeC5jcHAK
ICAgICAgICAgICAgIHBsYXRmb3JtL3RleHQvd3gvU3RyaW5nV3guY3BwCi0gICAgICAgICAgICBw
bGF0Zm9ybS93eC9TeXN0ZW1UaW1lV3guY3BwCiAgICAgICAgICAgICBwbGF0Zm9ybS93eC9XaWRn
ZXRXeC5jcHAKICAgICAgICAgICAgIHBsYXRmb3JtL3d4L0NvbnRleHRNZW51V3guY3BwCiAgICAg
ICAgICAgICBwbGF0Zm9ybS93eC9Db250ZXh0TWVudUl0ZW1XeC5jcHAKSW5kZXg6IFdlYkNvcmUv
Rm9yd2FyZGluZ0hlYWRlcnMvd3RmL0N1cnJlbnRUaW1lLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9Gb3J3YXJkaW5nSGVhZGVycy93dGYvQ3VycmVudFRpbWUuaAkocmV2aXNpb24gMCkKKysrIFdl
YkNvcmUvRm9yd2FyZGluZ0hlYWRlcnMvd3RmL0N1cnJlbnRUaW1lLmgJKHJldmlzaW9uIDApCkBA
IC0wLDAgKzEgQEAKKyNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9DdXJyZW50VGltZS5oPgpJbmRl
eDogV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vQ29udGFpbmVyTm9kZS5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAKICNpbmNsdWRl
ICJNdXRhdGlvbkV2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNsdWRlICJS
b290SW5saW5lQm94LmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIAogbmFtZXNwYWNlIFdlYkNv
cmUgewpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw3ICsxMDQsNiBAQAogI2luY2x1ZGUgIlNl
dHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUV2ZW50LmgiCiAjaW5jbHVkZSAiU3R5bGVTaGVl
dExpc3QuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiVGV4dEV2ZW50Lmgi
CiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rl
ci5oIgpAQCAtMTE5LDYgKzExOCw3IEBACiAjaW5jbHVkZSAiWE1MVG9rZW5pemVyLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJvbGxlci5oIgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoRnVuY3Rpb25zLmg+
CiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFz
Lmg+CkluZGV4OiBXZWJDb3JlL2RvbS9FdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9k
b20vRXZlbnQuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvZG9tL0V2ZW50LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogI2luY2x1ZGUgIkV2ZW50LmgiCiAKICNp
bmNsdWRlICJBdG9taWNTdHJpbmcuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisjaW5jbHVk
ZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2Vi
Q29yZS9oaXN0b3J5L0NhY2hlZFBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9y
eS9DYWNoZWRQYWdlLmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkUGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VHcm91cC5oIgotI2lu
Y2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+CiAKICNpZiBFTkFCTEUoU1ZHKQpJbmRl
eDogV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9o
aXN0b3J5L1BhZ2VDYWNoZS5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9oaXN0b3J5
L1BhZ2VDYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRl
ICJIaXN0b3J5SXRlbS5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTeXN0ZW1U
aW1lLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBz
dGQ7CiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAJKHJldmlzaW9uIDM5NzM3KQor
KysgV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
Niw4ICs0Niw4IEBACiAjaW5jbHVkZSAiTWVkaWFQbGF5ZXIuaCIKICNpbmNsdWRlICJQYWdlLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlkZW8uaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5j
bHVkZSAiVGltZVJhbmdlcy5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1
ZGUgPHd0Zi9NYXRoRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkBAIC0zNDgsNyAr
MzQ4LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpsb2FkKEV4Y2VwdGlvbkNvZAogICAgICAg
ICByZW5kZXJlcigpLT51cGRhdGVGcm9tRWxlbWVudCgpOwogICAgIAogICAgIC8vIDE0Ci0gICAg
bV9wcmV2aW91c1Byb2dyZXNzVGltZSA9IFdlYkNvcmU6OmN1cnJlbnRUaW1lKCk7CisgICAgbV9w
cmV2aW91c1Byb2dyZXNzVGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKICAgICBtX3ByZXZpb3Vz
UHJvZ3Jlc3MgPSAwOwogICAgIGlmIChtX2JlZ3VuKQogICAgICAgICAvLyAzNTBtcyBpcyBub3Qg
bWFnaWMsIGl0IGlzIGluIHRoZSBzcGVjIQpAQCAtNDkzLDcgKzQ5Myw3IEBAIHZvaWQgSFRNTE1l
ZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWUKIHsKICAgICBBU1NFUlQobV9wbGF5ZXIpOwog
ICAgIHVuc2lnbmVkIHByb2dyZXNzID0gbV9wbGF5ZXItPmJ5dGVzTG9hZGVkKCk7Ci0gICAgZG91
YmxlIHRpbWUgPSBXZWJDb3JlOjpjdXJyZW50VGltZSgpOworICAgIGRvdWJsZSB0aW1lID0gV1RG
OjpjdXJyZW50VGltZSgpOwogICAgIGRvdWJsZSB0aW1lZGVsdGEgPSB0aW1lIC0gbV9wcmV2aW91
c1Byb2dyZXNzVGltZTsKICAgICBpZiAodGltZWRlbHRhKQogICAgICAgICBtX2J1ZmZlcmluZ1Jh
dGUgPSAoZmxvYXQpKDAuOCAqIG1fYnVmZmVyaW5nUmF0ZSArIDAuMiAqICgoZmxvYXQpKHByb2dy
ZXNzIC0gbV9wcmV2aW91c1Byb2dyZXNzKSkgLyB0aW1lZGVsdGEpOwpJbmRleDogV2ViQ29yZS9o
dG1sL0hUTUxUb2tlbml6ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MVG9r
ZW5pemVyLmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXpl
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ2LDggKzQ2LDggQEAKICNpbmNsdWRlICJTY3JpcHRD
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2NyaXB0U291cmNlQ29kZS5oIgogI2luY2x1ZGUgIlNj
cmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgPHd0Zi9BU0NJ
SUNUeXBlLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKICNpbmNsdWRlICJIVE1M
RW50aXR5TmFtZXMuYyIKIApJbmRleDogV2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCShyZXZpc2lvbiAz
OTczNykKKysrIFdlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQwLDcgKzQwLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkhU
TUxMaW5rRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgotI2luY2x1ZGUgIlN5c3Rl
bVRpbWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvdW5p
Y29kZS9Vbmljb2RlLmg+CiAKICNpZmRlZiBfX0dOVUNfXwpJbmRleDogV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9pbnNwZWN0
b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcg
KzYxLDYgQEAKICNpbmNsdWRlICJTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlNjcmlwdENhbGxTdGFj
ay5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIK
ICNpbmNsdWRlICJUZXh0RW5jb2RpbmcuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNp
bmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC03NCw2ICs3Myw3IEBACiAjaW5jbHVkZSA8
cnVudGltZS9Db2xsZWN0b3JIZWFwSXRlcmF0b3IuaD4KICNpbmNsdWRlIDxwcm9maWxlci9Qcm9m
aWxlLmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZXIuaD4KKyNpbmNsdWRlIDx3dGYvQ3Vy
cmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgogI2luY2x1ZGUgPHd0Zi9T
dGRMaWJFeHRyYXMuaD4KIApJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJD
b3JlL2xvYWRlci9DYWNoZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDggKzM0LDggQEAKICNp
bmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJJbWFnZS5oIgogI2luY2x1ZGUgIlJlc291
cmNlSGFuZGxlLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgPHN0ZGlvLmg+
CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAK
QEAgLTI3NCw3ICsyNzQsNyBAQCB2b2lkIENhY2hlOjpwcnVuZUxpdmVSZXNvdXJjZXMoKQogICAg
IHVuc2lnbmVkIHRhcmdldFNpemUgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oY2FwYWNpdHkgKiBj
VGFyZ2V0UHJ1bmVQZXJjZW50YWdlKTsgLy8gQ3V0IGJ5IGEgcGVyY2VudGFnZSB0byBhdm9pZCBp
bW1lZGlhdGVseSBwcnVuaW5nIGFnYWluLgogICAgIGRvdWJsZSBjdXJyZW50VGltZSA9IEZyYW1l
Vmlldzo6Y3VycmVudFBhaW50VGltZVN0YW1wKCk7CiAgICAgaWYgKCFjdXJyZW50VGltZSkgLy8g
SW4gY2FzZSBwcnVuZSBpcyBjYWxsZWQgZGlyZWN0bHksIG91dHNpZGUgb2YgYSBGcmFtZSBwYWlu
dC4KLSAgICAgICAgY3VycmVudFRpbWUgPSBXZWJDb3JlOjpjdXJyZW50VGltZSgpOworICAgICAg
ICBjdXJyZW50VGltZSA9IFdURjo6Y3VycmVudFRpbWUoKTsKICAgICAKICAgICAvLyBEZXN0cm95
IGFueSBkZWNvZGVkIGRhdGEgaW4gbGl2ZSBvYmplY3RzIHRoYXQgd2UgY2FuLgogICAgIC8vIFN0
YXJ0IGZyb20gdGhlIHRhaWwsIHNpbmNlIHRoaXMgaXMgdGhlIGxlYXN0IHJlY2VudGx5IGFjY2Vz
c2VkIG9mIHRoZSBvYmplY3RzLgpJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmNwcAkocmV2aXNpb24g
Mzk3MzcpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDcgKzMzLDcgQEAKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisj
aW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5o
PgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApJbmRleDogV2ViQ29yZS9sb2FkZXIvQ2FjaGVk
UmVzb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291cmNl
LmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAj
aW5jbHVkZSAiUHVyZ2VhYmxlQnVmZmVyLmgiCiAjaW5jbHVkZSAiUmVxdWVzdC5oIgotI2luY2x1
ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZExlYWtDb3VudGVyLmg+
CiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogCkluZGV4OiBXZWJDb3JlL2xvYWRlci9GcmFtZUxv
YWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCShy
ZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODUsMTEgKzg1LDExIEBACiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIK
ICNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2lu
Y2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAj
aW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdC5oIgog
I2luY2x1ZGUgIlhNTFRva2VuaXplci5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgog
I2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KIAogI2lmIEVOQUJMRShPRkZMSU5FX1dFQl9B
UFBMSUNBVElPTlMpCkluZGV4OiBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHJldmlzaW9u
IDM5NzM3KQorKysgV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCiAjaW5jbHVk
ZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCi0j
aW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiB1
c2luZyBzdGQ6Om1pbjsKIApJbmRleDogV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAko
cmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDggQEAKICNpbmNsdWRlICJQYWdlVVJMUmVjb3Jk
LmgiCiAjaW5jbHVkZSAiU1FMaXRlU3RhdGVtZW50LmgiCiAjaW5jbHVkZSAiU1FMaXRlVHJhbnNh
Y3Rpb24uaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSA8cnVudGltZS9Jbml0
aWFsaXplVGhyZWFkaW5nLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVk
ZSA8d3RmL01haW5UaHJlYWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKSW5k
ZXg6IFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9sb2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJD
b3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw3ICsz
NCw2IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudC5o
IgogI2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9uLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5o
IgogCiAjaW5jbHVkZSA8bGltaXRzLmg+CiAKSW5kZXg6IFdlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAko
cmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC01NywxMCArNTcsMTAgQEAKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3Qu
aCIKICNpbmNsdWRlICJTZWxlY3Rpb25Db250cm9sbGVyLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3Mu
aCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiVGV4dC5oIgogI2luY2x1ZGUg
Imh0bWxlZGl0aW5nLmgiCiAjaW5jbHVkZSAibWFya3VwLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJl
bnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNjcsNyArNjcsNiBAQAogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgi
CiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVk
ZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRl
eHRSZXNvdXJjZURlY29kZXIuaCIKICNpbmNsdWRlICJYTUxOYW1lcy5oIgpJbmRleDogV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgog
I2luY2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUg
IlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCkluZGV4OiBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25C
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNiBAQAogI2luY2x1ZGUgIk1hdHJp
eFRyYW5zZm9ybU9wZXJhdGlvbi5oIgogI2luY2x1ZGUgIlJlbmRlck9iamVjdC5oIgogI2luY2x1
ZGUgIlJlbmRlclN0eWxlLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIlVu
aXRCZXppZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRleDogV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAzOTczNykKKysr
IFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlICJDU1NQYXJzZXIuaCIKICNpbmNsdWRl
ICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiRnJhbWUuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1l
LmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkluZGV4OiBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tleWZy
YW1lQW5pbWF0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0tl
eWZyYW1lQW5pbWF0aW9uLmNwcAkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL3BhZ2UvYW5p
bWF0aW9uL0tleWZyYW1lQW5pbWF0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNyArMzUs
NiBAQAogI2luY2x1ZGUgIkNvbXBvc2l0ZUFuaW1hdGlvbi5oIgogI2luY2x1ZGUgIkV2ZW50TmFt
ZXMuaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgi
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1U
aW1lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1UaW1lLmgJKHJldmlz
aW9uIDM5NzM3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TeXN0ZW1UaW1lLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTI4LDEwICsyOCw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIC8vIFJl
dHVybiB0aGUgY3VycmVudCBzeXN0ZW0gdGltZSBpbiBzZWNvbmRzLCB1c2luZyB0aGUgY2xhc3Np
YyBQT1NJWCBlcG9jaCBvZiBKYW51YXJ5IDEsIDE5NzAuCi0gICAgLy8gTGlrZSB0aW1lKDApIGZy
b20gPHRpbWUuaD4sIGV4Y2VwdCB3aXRoIGEgd2lkZXIgcmFuZ2Ugb2YgdmFsdWVzIGFuZCBoaWdo
ZXIgcHJlY2lzaW9uLgotICAgIGRvdWJsZSBjdXJyZW50VGltZSgpOwotCiAgICAgLy8gUmV0dXJu
IHRoZSBudW1iZXIgb2Ygc2Vjb25kcyBzaW5jZSBhIHVzZXIgZXZlbnQgaGFzIGJlZW4gZ2VuZXJh
dGVkCiAgICAgZmxvYXQgdXNlcklkbGVUaW1lKCk7CiAgICAgCkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL1RpbWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAko
cmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1RpbWVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBACiAjaW5jbHVkZSAiVGltZXIuaCIKIAogI2luY2x1ZGUg
IlNoYXJlZFRpbWVyLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgPGxpbWl0
cy5oPgogI2luY2x1ZGUgPGxpbWl0cz4KICNpbmNsdWRlIDxtYXRoLmg+CisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYv
VmVjdG9yLmg+CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFwSW1hZ2Uu
Y3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvQml0bWFw
SW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMSArMzAsMTEgQEAKICNpbmNsdWRlICJG
bG9hdFJlY3QuaCIKICNpbmNsdWRlICJJbWFnZU9ic2VydmVyLmgiCiAjaW5jbHVkZSAiSW50UmVj
dC5oIgorI2luY2x1ZGUgIk1JTUVUeXBlUmVnaXN0cnkuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNs
dWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvTW91c2VFdmVudEd0ay5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9ndGsvTW91c2VFdmVudEd0ay5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysg
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvTW91c2VFdmVudEd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDcgKzI3LDYgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybU1v
dXNlRXZlbnQuaCIKIAotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlICJBc3NlcnRp
b25zLmgiCiAKICNpbmNsdWRlIDxnZGsvZ2RrLmg+CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0
ay9TaGFyZWRUaW1lckd0ay5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
U2hhcmVkVGltZXJHdGsuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvcGxhdGZvcm0v
Z3RrL1NoYXJlZFRpbWVyR3RrLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgsOCArMjgsOCBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCiAKLSNpbmNsdWRl
ICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDxnbGliLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1N5c3RlbVRpbWVHdGsuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1N5c3RlbVRpbWVHdGsuY3BwCShyZXZpc2lvbiAz
OTczNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1N5c3RlbVRpbWVHdGsuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMyICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQWxwIFRv
a2VyIDxhbHBAYXRva2VyLmNvbT4KLSAqCi0gKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2Fy
ZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gKiBtb2RpZnkgaXQgdW5kZXIgdGhl
IHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICogTGljZW5zZSBhcyBw
dWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gKiB2ZXJz
aW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNp
b24uCi0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQg
aXQgd2lsbCBiZSB1c2VmdWwsCi0gKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQg
ZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAqIExpYnJhcnkgR2Vu
ZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotICoKLSAqIFlvdSBzaG91bGQg
aGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExp
Y2Vuc2UKLSAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5M
SUIuICBJZiBub3QsIHdyaXRlIHRvCi0gKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJ
bmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgPGdsaWIu
aD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1kb3VibGUgY3VycmVudFRpbWUoKQotewotICBH
VGltZVZhbCBub3c7Ci0gIGdfZ2V0X2N1cnJlbnRfdGltZSgmbm93KTsKLSAgcmV0dXJuIHN0YXRp
Y19jYXN0PGRvdWJsZT4obm93LnR2X3NlYykgKyBzdGF0aWNfY2FzdDxkb3VibGU+KG5vdy50dl91
c2VjIC8gMTAwMDAwMC4wKTsKLX0KLQotfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU3lz
dGVtVGltZUxpbnV4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TeXN0
ZW1UaW1lTGludXguY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vZ3Rr
L1N5c3RlbVRpbWVMaW51eC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsNDQgKzAsMCBAQAotLyoK
LSAqIENvcHlyaWdodCAoQykgMjAwNiBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KLSAqIENvcHlyaWdodCAoQykgMjAwNiBNaWNoYWVsIEVtbWVsIG1pa2UuZW1tZWxA
Z21haWwuY29tCi0gKiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCi0KLSNpbmNsdWRlIDxzeXMvdGltZS5oPgot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRvdWJsZSBjdXJyZW50VGltZSgpCi17Ci0gIHN0cnVj
dCB0aW1ldmFsIGFUaW1ldmFsOwotICBzdHJ1Y3QgdGltZXpvbmUgYVRpbWV6b25lOwotCi0gIGdl
dHRpbWVvZmRheSggJmFUaW1ldmFsLCAmYVRpbWV6b25lICk7Ci0gIHJldHVybiAoZG91YmxlKWFU
aW1ldmFsLnR2X3NlYyArIChkb3VibGUpKGFUaW1ldmFsLnR2X3VzZWMgLyAxMDAwMDAwLjAgKTsK
LX0KLQotfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3lzdGVtVGltZU1hYy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3lzdGVtVGltZU1hYy5jcHAJKHJldmlz
aW9uIDM5NzM3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3lzdGVtVGltZU1hYy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMxLDExICszMSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
ZG91YmxlIGN1cnJlbnRUaW1lKCkKLXsKLSAgICByZXR1cm4gQ0ZBYnNvbHV0ZVRpbWVHZXRDdXJy
ZW50KCkgKyBrQ0ZBYnNvbHV0ZVRpbWVJbnRlcnZhbFNpbmNlMTk3MDsKLX0KLQogZmxvYXQgdXNl
cklkbGVUaW1lKCkKIHsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KENHRXZlbnRTb3Vy
Y2VTZWNvbmRzU2luY2VMYXN0RXZlbnRUeXBlKGtDR0V2ZW50U291cmNlU3RhdGVDb21iaW5lZFNl
c3Npb25TdGF0ZSwga0NHQW55SW5wdXRFdmVudFR5cGUpKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vcXQvUGxhdGZvcm1Nb3VzZUV2ZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxh
dGZvcm0vcXQvUGxhdGZvcm1Nb3VzZUV2ZW50UXQuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdl
YkNvcmUvcGxhdGZvcm0vcXQvUGxhdGZvcm1Nb3VzZUV2ZW50UXQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yOCw3ICsyOCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZv
cm1Nb3VzZUV2ZW50LmgiCiAKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKICNpbmNsdWRlIDxRTW91c2VFdmVudD4KIApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1N
b3VzZUV2ZW50KFFJbnB1dEV2ZW50KiBldmVudCwgaW50IGNsaWNrQ291bnQpCiB7Ci0gICAgbV90
aW1lc3RhbXAgPSBXZWJDb3JlOjpjdXJyZW50VGltZSgpOworICAgIG1fdGltZXN0YW1wID0gV1RG
OjpjdXJyZW50VGltZSgpOwogCiAgICAgUU1vdXNlRXZlbnQgKm1lID0gMDsKIApJbmRleDogV2Vi
Q29yZS9wbGF0Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNv
cmUvcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDYg
KzI4LDggQEAKIAogI2luY2x1ZGUgIlNoYXJlZFRpbWVyUXQuaCIKIAorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgorCiAjaW5jbHVkZSA8UUFwcGxpY2F0aW9uPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuaAkocmV2aXNpb24gMzk3
MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuaAkod29ya2luZyBjb3B5
KQpAQCAtMjksNyArMjksNiBAQAogI2RlZmluZSBTaGFyZWRUaW1lclF0X2gKIAogI2luY2x1ZGUg
IlNoYXJlZFRpbWVyUXQuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAKICNpbmNsdWRlIDxR
VGltZXI+CiAjaW5jbHVkZSA8UUNvcmVBcHBsaWNhdGlvbj4KSW5kZXg6IFdlYkNvcmUvcGxhdGZv
cm0vcXQvU3lzdGVtVGltZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0
L1N5c3RlbVRpbWVRdC5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9x
dC9TeXN0ZW1UaW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ2ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMDYgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+Ci0gKgot
ICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU3lzdGVtVGltZS5oIgotCi0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLQotbmFtZXNwYWNl
IFdlYkNvcmUgewotCi1kb3VibGUgY3VycmVudFRpbWUoKQotewotICAgIHN0cnVjdCB0aW1ldmFs
IHR2OwotICAgIHN0cnVjdCB0aW1lem9uZSB0ejsKLQotICAgIGdldHRpbWVvZmRheSgmdHYsICZ0
eik7Ci0gICAgcmV0dXJuIChkb3VibGUpdHYudHZfc2VjICsgKGRvdWJsZSkodHYudHZfdXNlYyAv
IDEwMDAwMDAuMCk7Ci19Ci0KLX0KLQotLy8gdmltOiB0cz00IHN3PTQgZXQKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3dpbi9TaGFyZWRUaW1lcldpbi5jcHAJKHJldmlzaW9uIDM5NzM3KQorKysgV2Vi
Q29yZS9wbGF0Zm9ybS93aW4vU2hhcmVkVGltZXJXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw5ICsyNyw5IEBACiAjaW5jbHVkZSAiU2hhcmVkVGltZXIuaCIKIAogI2luY2x1ZGUgIlBhZ2Uu
aCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAjaW5jbHVk
ZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogLy8g
Tm90ZTogd3ggaGVhZGVycyBzZXQgZGVmaW5lcyB0aGF0IGFmZmVjdCB0aGUgY29uZmlndXJhdGlv
biBvZiB3aW5kb3dzLmgKIC8vIHNvIHdlIG11c3QgaW5jbHVkZSB0aGUgd3ggaGVhZGVyIGZpcnN0
IHRvIGdldCB1bmljb2RlIHZlcnNpb25zIG9mIGZ1bmN0aW9ucywKSW5kZXg6IFdlYkNvcmUvcGxh
dGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZv
cm0vd2luL1N5c3RlbVRpbWVXaW4uY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvcGxh
dGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw2
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogCi0jaW5j
bHVkZSA8RGF0ZU1hdGguaD4KICNpbmNsdWRlIDx3aW5kb3dzLmg+CiAKICNpZiBDT01QSUxFUihN
SU5HVykgfHwgKFBMQVRGT1JNKFFUKSAmJiBDT01QSUxFUihNU1ZDKSkKQEAgLTM2LDE0ICszNSw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotZG91YmxlIGN1cnJlbnRUaW1lKCkKLXsKLSAg
ICAvLyBDYWxsIHRocm91Z2ggdG8gb3VyIGhpZ2gtcmVzb2x1dGlvbiBKU0MgdGltZSBjb2RlLCBz
aW5jZSBjYWxscyBsaWtlIEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lIGFuZCBmdGltZSBhcmUgb25s
eSBhY2N1cmF0ZSB3aXRoaW4gMTVtcy4KLSAgICAvLyBUaGlzIHJlc29sdXRpb24gY2FuIGJlIGlt
cHJvdmVkIHdpdGggdGltZUJlZ2luUGVyaW9kL3RpbWVFbmRQZXJpb2Qgb24gVmlzdGEsIGJ1dCB0
aGVzZSBjYWxscyBkb24ndAotICAgIC8vIGltcHJvdmUgdGhlIHJlc29sdXRpb24gb2YgZGF0ZS90
aW1lIGdldHRlcnMgKEdldFN5c3RlbVRpbWVBc0ZpbGVUaW1lLCBmdGltZSwgZXRjLikgb24gWFAu
Ci0gICAgcmV0dXJuIEpTQzo6Z2V0Q3VycmVudFVUQ1RpbWVXaXRoTWljcm9zZWNvbmRzKCkgKiAw
LjAwMTsKLX0KLQogZmxvYXQgdXNlcklkbGVUaW1lKCkKIHsKICNpZiAhUExBVEZPUk0oV0lOX0NF
KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAkocmV2aXNpb24gMzk3Mzcp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L01vdXNlRXZlbnRXeC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI2LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJBc3NlcnRp
b25zLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2ZW50LmgiCi0jaW5jbHVkZSAiU3lzdGVt
VGltZS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaW5jbHVkZSA8d3gvZGVm
cy5oPgogI2luY2x1ZGUgPHd4L2V2ZW50Lmg+CkBAIC02OSw3ICs2OSw3IEBAIFBsYXRmb3JtTW91
c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KGMKICAgICBlbHNlCiAgICAgICAgIG1fY2xpY2tD
b3VudCA9IGV2ZW50LkJ1dHRvbkRDbGljaygpID8gMiA6IDE7CiAKLSAgICBtX3RpbWVzdGFtcCA9
IFdlYkNvcmU6OmN1cnJlbnRUaW1lKCk7CisgICAgbV90aW1lc3RhbXAgPSBXVEY6OmN1cnJlbnRU
aW1lKCk7CiB9CiAKIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vd3gvU2hhcmVkVGltZXJXeC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9TaGFyZWRUaW1lcld4LmNwcAko
cmV2aXNpb24gMzk3MzcpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1NoYXJlZFRpbWVyV3guY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNywxMCArMjcsMTAgQEAKIAogI2luY2x1ZGUgIlNoYXJlZFRp
bWVyLmgiCiAjaW5jbHVkZSAiTm90SW1wbGVtZW50ZWQuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1l
LmgiCiAjaW5jbHVkZSAiV2lkZ2V0LmgiCiAKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHN0ZGlvLmg+CiAKICNpbmNs
dWRlICJ3eC9kZWZzLmgiCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1N5c3RlbVRpbWVXeC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9TeXN0ZW1UaW1lV3guY3BwCShy
ZXZpc2lvbiAzOTczNykKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvU3lzdGVtVGltZVd4LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMSwzOSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3
IFJvYmluIER1bm4uICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25m
aWcuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCi0KLSNpbmNsdWRlIDx3eC9kYXRldGltZS5o
PgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWRvdWJsZSBjdXJyZW50VGltZSgpCi17Ci0gICAg
d3hEYXRlVGltZSBub3cgPSB3eERhdGVUaW1lOjpVTm93KCk7Ci0gICAgcmV0dXJuIChkb3VibGUp
bm93LkdldFRpY2tzKCkgKyAoZG91YmxlKShub3cuR2V0TWlsbGlzZWNvbmQoKSAvIDEwMDAuMCk7
Ci19Ci0KLX0KSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAJKHJldmlzaW9uIDM5NzM3
KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zNyw3ICszNyw3IEBACiAjaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgogI2luY2x1ZGUgIlBh
Z2UuaCIKICNpbmNsdWRlICJSZW5kZXJWaWV3LmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgor
I2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaWYgRU5BQkxFKFdNTCkKICNpbmNsdWRl
ICJXTUxJbWFnZUVsZW1lbnQuaCIKSW5kZXg6IFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlh
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAJKHJl
dmlzaW9uIDM5NzM3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw3ICs0MCw3IEBACiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgogI2lu
Y2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyU2xpZGVyLmgiCi0jaW5jbHVk
ZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUg
PHd0Zi9NYXRoRXh0cmFzLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CkluZGV4OiBXZWJDb3Jl
L3N2Zy9hbmltYXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvc3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAJKHJldmlzaW9uIDM5NzM3KQor
KysgV2ViQ29yZS9zdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgIlNWR0FuaW1hdGlvbkVsZW1lbnQuaCIK
ICNpbmNsdWRlICJTVkdTTUlMRWxlbWVudC5oIgogI2luY2x1ZGUgIlNWR1NWR0VsZW1lbnQuaCIK
LSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAK
IHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAKSW5kZXg6IFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAJKHJldmlz
aW9uIDM5NzM3KQorKysgV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC00MCwxMiArNDAsMTIgQEAKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiU2V0
dGluZ3MuaCIKICNpbmNsdWRlICJTdWJyZXNvdXJjZUxvYWRlci5oIgotI2luY2x1ZGUgIlN5c3Rl
bVRpbWUuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiWE1M
SHR0cFJlcXVlc3RFeGNlcHRpb24uaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFByb2dyZXNz
RXZlbnQuaCIKICNpbmNsdWRlICJYTUxIdHRwUmVxdWVzdFVwbG9hZC5oIgogI2luY2x1ZGUgIm1h
cmt1cC5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9Ob25j
b3B5YWJsZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+CkluZGV4OiBXZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gMzk3MzcpCisrKyBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEyIEBACisyMDA5LTAxLTA4ICBEbWl0cnkg
VGl0b3YgIDxkaW1pY2hAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzIwNworICAgICAgICBNb3ZlZCBjdXJyZW50VGltZSgpIHRvIGZyb20gV2ViQ29yZSB0
byBXVEYuCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOiBhIGRpZmZlcmVudCBoZWFk
ZXIgZmlsZSBpbmNsdWRlZC4KKwogMjAwOS0wMS0wOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJz
Y2FAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYkZyYW1lLm1tCShyZXZpc2lvbiAzOTczNykKKysrIFdlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNiBAQAogI2ltcG9ydCA8
V2ViQ29yZS9SZW5kZXJMYXllci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9u
Q29tbWFuZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9TbWFydFJlcGxhY2UuaD4KLSNpbXBvcnQgPFdl
YkNvcmUvU3lzdGVtVGltZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNp
bXBvcnQgPFdlYkNvcmUvVHlwaW5nQ29tbWFuZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9odG1sZWRp
dGluZy5oPgpAQCAtODMsNiArODIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS92aXNpYmxlX3VuaXRz
Lmg+CiAjaW1wb3J0IDxydW50aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8cnVudGltZS9KU1ZhbHVl
Lmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAzOTczNykKKysrIFdl
YktpdC93aW4vQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDkt
MDEtMDggIERtaXRyeSBUaXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMjA3CisgICAgICAgIE1vdmVkIGN1cnJlbnRUaW1lKCkgdG8g
ZnJvbSBXZWJDb3JlIHRvIFdURi4KKworICAgICAgICAqIFdlYkRvd25sb2FkLmNwcDogYSBkaWZm
ZXJlbnQgaGVhZGVyIGZpbGUgaW5jbHVkZWQuCisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6
IGEgZGlmZmVyZW50IGhlYWRlciBmaWxlIGluY2x1ZGVkLgorCiAyMDA5LTAxLTA4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBSb2Jl
bi4KSW5kZXg6IFdlYktpdC93aW4vV2ViRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC93aW4vV2ViRG93bmxvYWQuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYktpdC93aW4vV2Vi
RG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MCw4ICs1MCw4IEBACiAjaW5jbHVkZSA8
V2ViQ29yZS9SZXNvdXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1
ZXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlLmg+Ci0jaW5jbHVkZSA8
V2ViQ29yZS9TeXN0ZW1UaW1lLmg+CiAjcHJhZ21hIHdhcm5pbmcocG9wKQorI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApJbmRleDogV2Vi
S2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvd2luL1dlYkRy
b3BTb3VyY2UuY3BwCShyZXZpc2lvbiAzOTczNykKKysrIFdlYktpdC93aW4vV2ViRHJvcFNvdXJj
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDcgKzM0LDcgQEAKICNpbmNsdWRlIDxXZWJDb3Jl
L0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Q
bGF0Zm9ybU1vdXNlRXZlbnQuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbVRpbWUuaD4KKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2luY2x1ZGUgPFdpbmRvd3MuaD4KIAo=
</data>
<flag name="review"
          id="12619"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>26596</attachid>
            <date>2009-01-10 18:34:19 -0800</date>
            <delta_ts>2009-01-10 18:34:19 -0800</delta_ts>
            <desc>Updated patch</desc>
            <filename>currentTime_v2.txt</filename>
            <type>text/plain</type>
            <size>58636</size>
            <attacher name="Dmitry Titov">dimich</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5NzgwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMDEtMTAgIERtaXRyeSBU
aXRvdiAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIzMjA3CisgICAgICAgIE1vdmVkIGN1cnJlbnRUaW1lKCkgdG8gZnJvbSBXZWJDb3JlIHRv
IFdURi4KKworICAgICAgICAqIEdOVW1ha2VmaWxlLmFtOgorICAgICAgICAqIEphdmFTY3JpcHRD
b3JlLmV4cDogYWRkZWQgZXhwb3J0IGZvciBXVEY6OmN1cnJlbnRUaW1lKCkKKyAgICAgICAgKiBK
YXZhU2NyaXB0Q29yZS5wcmk6CisgICAgICAgICogSmF2YVNjcmlwdENvcmUuc2NvbnM6CisgICAg
ICAgICogSmF2YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qOgorICAgICAgICAqIEph
dmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogSmF2YVNj
cmlwdENvcmVTb3VyY2VzLmJrbDoKKyAgICAgICAgKiBydW50aW1lL0RhdGVNYXRoLmNwcDoKKyAg
ICAgICAgKEpTQzo6Z2V0Q3VycmVudFVUQ1RpbWVXaXRoTWljcm9zZWNvbmRzKTogVGhpcyBmdW5j
dGlvbiBoYWQgYW5vdGhlciBpbXBsZW1lbnRhdGlvbiBvZiBjdXJyZW50VGltZSgpLCBlc3NlbnRp
YWxseS4gTm93IHVzZXMgV1RGIHZlcnNpb24uCisgICAgICAgICogd3RmL0N1cnJlbnRUaW1lLmNw
cDogQWRkZWQuCisgICAgICAgIChXVEY6OmN1cnJlbnRUaW1lKToKKyAgICAgICAgKFdURjo6aGln
aFJlc1VwVGltZSk6CisgICAgICAgIChXVEY6Omxvd1Jlc1VUQ1RpbWUpOgorICAgICAgICAoV1RG
OjpxcGNBdmFpbGFibGUpOgorICAgICAgICAqIHd0Zi9DdXJyZW50VGltZS5oOiBBZGRlZC4KKwog
MjAwOS0wMS0wOSAgR2F2aW4gQmFycmFjbG91Z2ggIDxiYXJyYWNsb3VnaEBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgT2xpdmVyIEh1bnQuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9H
TlVtYWtlZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5h
bQkocmV2aXNpb24gMzk3ODApCisrKyBKYXZhU2NyaXB0Q29yZS9HTlVtYWtlZmlsZS5hbQkod29y
a2luZyBjb3B5KQpAQCAtMTkyLDYgKzE5Miw4IEBAIGphdmFzY3JpcHRjb3JlX3NvdXJjZXMgKz0g
XAogCUphdmFTY3JpcHRDb3JlL3d0Zi9BbHdheXNJbmxpbmUuaCBcCiAJSmF2YVNjcmlwdENvcmUv
d3RmL0Fzc2VydGlvbnMuY3BwIFwKIAlKYXZhU2NyaXB0Q29yZS93dGYvQXNzZXJ0aW9ucy5oIFwK
KwlKYXZhU2NyaXB0Q29yZS93dGYvQ3VycmVudFRpbWUuY3BwIFwKKwlKYXZhU2NyaXB0Q29yZS93
dGYvQ3VycmVudFRpbWUuaCBcCiAJSmF2YVNjcmlwdENvcmUvd3RmL0RlcXVlLmggXAogCUphdmFT
Y3JpcHRDb3JlL3d0Zi9EaXNhbGxvd0NUeXBlLmggXAogCUphdmFTY3JpcHRDb3JlL3d0Zi9Gb3J3
YXJkLmggXApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUuZXhwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLmV4cAkocmV2aXNpb24gMzk3ODAp
CisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5leHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2OCw2ICsyNjgsNyBAQCBfX1pOM0pTQ2d0RVJLTlNfN1VTdHJpbmdFUzJfCiBfX1pOM0pTQ2x0
RVJLTlNfN1VTdHJpbmdFUzJfCiBfX1pOM1dURjEwZmFzdENhbGxvY0VtbQogX19aTjNXVEYxMGZh
c3RNYWxsb2NFbQorX19aTjNXVEYxMWN1cnJlbnRUaW1lRXYKIF9fWk4zV1RGMTFmYXN0UmVhbGxv
Y0VQdm0KIF9fWk4zV1RGMTJjcmVhdGVUaHJlYWRFUEZQdlMwX0VTMF8KIF9fWk4zV1RGMTJjcmVh
dGVUaHJlYWRFUEZQdlMwX0VTMF9QS2MKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRD
b3JlLnByaQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS5wcmkJ
KHJldmlzaW9uIDM5NzgwKQorKysgSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUucHJpCSh3
b3JraW5nIGNvcHkpCkBAIC0xMTAsNiArMTEwLDcgQEAgU09VUkNFUyArPSBcCiAgICAgcnVudGlt
ZS9Db2xsZWN0b3IuY3BwIFwKICAgICBydW50aW1lL0NvbW1vbklkZW50aWZpZXJzLmNwcCBcCiAg
ICAgcnVudGltZS9Db25zdHJ1Y3REYXRhLmNwcCBcCisgICAgd3RmL0N1cnJlbnRUaW1lLmNwcCBc
CiAgICAgcnVudGltZS9EYXRlQ29uc3RydWN0b3IuY3BwIFwKICAgICBydW50aW1lL0RhdGVJbnN0
YW5jZS5jcHAgXAogICAgIHJ1bnRpbWUvRGF0ZU1hdGguY3BwIFwKSW5kZXg6IEphdmFTY3JpcHRD
b3JlL0phdmFTY3JpcHRDb3JlLnNjb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnNjb25zCShyZXZpc2lvbiAzOTc4MCkKKysrIEphdmFTY3JpcHRDb3JlL0ph
dmFTY3JpcHRDb3JlLnNjb25zCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsNiArMTQyLDcgQEAgc291
cmNlc1snd3JlYyddID0gWwogXQogc291cmNlc1snd3RmJ10gPSBbCiAgICAgJ3d0Zi9Bc3NlcnRp
b25zLmNwcCcsCisgICAgJ3d0Zi9DdXJyZW50VGltZS5jcHAnLAogICAgICd3dGYvRmFzdE1hbGxv
Yy5jcHAnLAogICAgICd3dGYvSGFzaFRhYmxlLmNwcCcsCiAgICAgJ3d0Zi9SYW5kb21OdW1iZXIu
Y3BwJywKSW5kZXg6IEphdmFTY3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlU291cmNlcy5ia2wKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmVTb3VyY2VzLmJrbAkocmV2
aXNpb24gMzk3ODApCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZVNvdXJjZXMuYmts
CSh3b3JraW5nIGNvcHkpCkBAIC0xNTksNiArMTU5LDcgQEAgU291cmNlIGZpbGVzIGZvciBKU0Nv
cmUuCiAgICAgPC9zZXQ+CiAgICAgPHNldCBhcHBlbmQ9IjEiIHZhcj0iSlNDT1JFX1dURl9TT1VS
Q0VTIj4KICAgICAgICAgd3RmL0Fzc2VydGlvbnMuY3BwCisgICAgICAgIHd0Zi9DdXJyZW50VGlt
ZS5jcHAKICAgICAgICAgd3RmL0Zhc3RNYWxsb2MuY3BwCiAgICAgICAgIHd0Zi9IYXNoVGFibGUu
Y3BwCiAgICAgICAgIHd0Zi9NYWluVGhyZWFkLmNwcApJbmRleDogSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUudmNwcm9qL1dURi9XVEYudmNwcm9qCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3Jp
cHRDb3JlL0phdmFTY3JpcHRDb3JlLnZjcHJvai9XVEYvV1RGLnZjcHJvagkocmV2aXNpb24gMzk3
ODApCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29yZS52Y3Byb2ovV1RGL1dURi52Y3By
b2oJKHdvcmtpbmcgY29weSkKQEAgLTI0Myw2ICsyNDMsMTQgQEAKIAkJCT4NCiAJCTwvRmlsZT4N
CiAJCTxGaWxlDQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZcQ3VycmVudFRpbWUuY3BwIg0K
KwkJCT4NCisJCTwvRmlsZT4NCisJCTxGaWxlDQorCQkJUmVsYXRpdmVQYXRoPSIuLlwuLlx3dGZc
Q3VycmVudFRpbWUuaCINCisJCQk+DQorCQk8L0ZpbGU+DQorCQk8RmlsZQ0KIAkJCVJlbGF0aXZl
UGF0aD0iLi5cLi5cd3RmXERlcXVlLmgiDQogCQkJPg0KIAkJPC9GaWxlPg0KSW5kZXg6IEphdmFT
Y3JpcHRDb3JlL0phdmFTY3JpcHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagkocmV2aXNpb24gMzk3ODApCisrKyBKYXZhU2NyaXB0Q29yZS9KYXZhU2NyaXB0Q29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC04OCw2ICs4OCw4
IEBACiAJCTE0QkQ1QTMwMEEzRTkxRjYwMEJBRjU5QyAvKiBKU0NvbnRleHRSZWYuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRCRDVBMjkwQTNFOTFG
NjAwQkFGNTlDIC8qIEpTQ29udGV4dFJlZi5jcHAgKi87IH07CiAJCTE0QkQ1QTMyMEEzRTkxRjYw
MEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDE0QkQ1QTJCMEEzRTkxRjYwMEJBRjU5QyAvKiBKU1ZhbHVlUmVmLmNw
cCAqLzsgfTsKIAkJMTRGMzQ4OEYwRTk1RUY4QTAwMzY0OEJDIC8qIENvbGxlY3RvckhlYXBJdGVy
YXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMTRG
MzQ4OEUwRTk1RUY4QTAwMzY0OEJDIC8qIENvbGxlY3RvckhlYXBJdGVyYXRvci5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTE4MEI5QjA4MEYxNkQ5
NEYwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMTgwQjlBRjAwRjE2QzU2OTAwOUJEQkM1IC8qIEN1cnJlbnRUaW1l
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJMTgw
QjlCRkUwRjE2RTk0RDAwOUJEQkM1IC8qIEN1cnJlbnRUaW1lLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDE4MEI5QUVGMEYxNkM1NjkwMDlCREJDNSAv
KiBDdXJyZW50VGltZS5jcHAgKi87IH07CiAJCTFDNjE1MTZDMEVCQUM3QTAwMDMxMzc2RiAvKiBQ
cm9maWxlclNlcnZlci5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDFDNjE1MTZBMEVCQUM3QTAwMDMxMzc2RiAvKiBQcm9maWxlclNlcnZlci5tbSAqLzsg
c2V0dGluZ3MgPSB7Q09NUElMRVJfRkxBR1MgPSAiLWZuby1zdHJpY3QtYWxpYXNpbmciOyB9OyB9
OwogCQkxQzYxNTE2RDBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDNjE1MTZCMEVCQUM3QTAw
MDMxMzc2RiAvKiBQcm9maWxlclNlcnZlci5oICovOyB9OwogCQk1RDUzNzI2RjBFMUM1NDg4MDAy
MUU1NDkgLyogVHJhY2luZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNUQ1MzcyNkUwRTFDNTQ4ODAwMjFFNTQ5IC8qIFRyYWNpbmcuaCAqLzsgfTsKQEAg
LTQ5Nyw2ICs0OTksOCBAQAogCQkxNERFMEQ2ODBEMDI0MzE0MDBBQUNDQTIgLyogSlNHbG9iYWxP
YmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNHbG9iYWxP
YmplY3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxNEYyNTI1NjBEMDhERDhE
MDA0RUNGRkYgLyogSlNWYXJpYWJsZU9iamVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBKU1ZhcmlhYmxlT2JqZWN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTE0RjM0ODhFMEU5NUVGOEEwMDM2NDhCQyAvKiBDb2xsZWN0b3JIZWFwSXRlcmF0b3IuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ29sbGVjdG9ySGVhcEl0ZXJhdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE4MEI5QUVGMEYxNkM1NjkwMDlCREJDNSAvKiBD
dXJyZW50VGltZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBDdXJy
ZW50VGltZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTE4MEI5QUYwMEYxNkM1
NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBDdXJyZW50VGltZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYxNTE2
QTBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IG5hbWUgPSBQcm9maWxlclNlcnZlci5tbTsgcGF0aCA9IHByb2ZpbGVy
L1Byb2ZpbGVyU2VydmVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzYxNTE2
QjBFQkFDN0EwMDAzMTM3NkYgLyogUHJvZmlsZXJTZXJ2ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBuYW1lID0gUHJvZmlsZXJTZXJ2ZXIuaDsgcGF0aCA9IHByb2ZpbGVyL1Byb2ZpbGVy
U2VydmVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFDOTA1MTQyMEJBOUU4QTcw
MDgxRTlEMCAvKiBWZXJzaW9uLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IFZlcnNpb24ueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDc5
LDYgKzEwODMsOCBAQAogCQkJCTkzQUE0Rjc3MDk1NzI1MUYwMDg0QjNBNyAvKiBBbHdheXNJbmxp
bmUuaCAqLywKIAkJCQk2NUUyMTdCODA4RTdFRUNDMDAyM0U1RjYgLyogQXNzZXJ0aW9ucy5jcHAg
Ki8sCiAJCQkJNjVFMjE3QjcwOEU3RUVDQzAwMjNFNUY2IC8qIEFzc2VydGlvbnMuaCAqLywKKwkJ
CQkxODBCOUFFRjBGMTZDNTY5MDA5QkRCQzUgLyogQ3VycmVudFRpbWUuY3BwICovLAorCQkJCTE4
MEI5QUYwMEYxNkM1NjkwMDlCREJDNSAvKiBDdXJyZW50VGltZS5oICovLAogCQkJCTUxODYxMTFE
MENDODI0ODMwMDgxNDEyQiAvKiBEZXF1ZS5oICovLAogCQkJCTkzOEM0RjZCMENBMDZCQ0UwMEQ5
MzEwQSAvKiBEaXNhbGxvd0NUeXBlLmggKi8sCiAJCQkJNjVFMjE3QjkwOEU3RUVDQzAwMjNFNUY2
IC8qIEZhc3RNYWxsb2MuY3BwICovLApAQCAtMTUwOCw2ICsxNTE0LDcgQEAKIAkJCQlCQzE4QzNG
MzBFMTZGNUNEMDBCMzQ0NjAgLyogQ29tbW9uSWRlbnRpZmllcnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMThDM0Y0MEUxNkY1Q0QwMEIzNDQ2MCAvKiBDb21wbGV0aW9uLmggaW4gSGVhZGVycyAq
LywKIAkJCQlCQzE4QzNGNjBFMTZGNUNEMDBCMzQ0NjAgLyogQ29uc3RydWN0RGF0YS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMTgwQjlCMDgwRjE2RDk0RjAwOUJEQkM1IC8qIEN1cnJlbnRUaW1lLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlCQ0QyMDM0QTBFMTcxMzVFMDAyQzdFODIgLyogRGF0ZUNvbnN0
cnVjdG9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzExNjYwMjBFMTk5N0I0MDA4MDY2REQgLyog
RGF0ZUluc3RhbmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzE4QzNGOTBFMTZGNUNEMDBCMzQ0
NjAgLyogRGF0ZU1hdGguaCBpbiBIZWFkZXJzICovLApAQCAtMTk4NSw2ICsxOTkyLDcgQEAKIAkJ
CQk5NjlBMDc5NjBFRDFEM0FFMDBGMUY2ODEgLyogQ29kZUJsb2NrLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUUxQTg2MkQ2MEQ3RjJCNUMwMDFFQzZBQSAvKiBDb2xsYXRvckRlZmF1bHQuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRTFBODYyQTkwRDdFQkI3NjAwMUVDNkFBIC8qIENvbGxhdG9ySUNV
LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTE4MEI5QkZFMEYxNkU5NEQwMDlCREJDNSAvKiBDdXJy
ZW50VGltZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxNDk1NTlFRTBERENEREY3MDA2NDgwODcg
LyogRGVidWdnZXJDYWxsRnJhbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMTQyOUQ4NzgwRUQy
MUFDRDAwQjg5NjE5IC8qIEV4Y2VwdGlvbkhlbHBlcnMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QTdCNDhGNDkwRUU4OTM2RjAwRENCREI2IC8qIEV4ZWN1dGFibGVBbGxvY2F0b3IuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAkocmV2aXNpb24g
Mzk3ODApCisrKyBKYXZhU2NyaXB0Q29yZS9ydW50aW1lL0RhdGVNYXRoLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNDgsNiArNDgsNyBAQAogI2luY2x1ZGUgPHRpbWUuaD4KICNpbmNsdWRlIDx3dGYv
QVNDSUlDVHlwZS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01hdGhFeHRyYXMuaD4KICNpbmNsdWRlIDx3
dGYvU3RyaW5nRXh0cmFzLmg+CiAKQEAgLTI5MSwxMzkgKzI5MiwxMCBAQCBkb3VibGUgZ2V0Q3Vy
cmVudFVUQ1RpbWUoKQogICAgIHJldHVybiBmbG9vcihnZXRDdXJyZW50VVRDVGltZVdpdGhNaWNy
b3NlY29uZHMoKSk7CiB9CiAKLSNpZiBQTEFURk9STShXSU5fT1MpCi0KLXN0YXRpYyBMQVJHRV9J
TlRFR0VSIHFwY0ZyZXF1ZW5jeTsKLXN0YXRpYyBib29sIHN5bmNlZFRpbWU7Ci0KLXN0YXRpYyBk
b3VibGUgaGlnaFJlc1VwVGltZSgpCi17Ci0gICAgLy8gV2UgdXNlIFFQQywgYnV0IG9ubHkgYWZ0
ZXIgc2FuaXR5IGNoZWNraW5nIGl0cyByZXN1bHQsIGR1ZSB0byBidWdzOgotICAgIC8vIGh0dHA6
Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvMjc0MzIzCi0gICAgLy8gaHR0cDovL3N1cHBvcnQu
bWljcm9zb2Z0LmNvbS9rYi84OTU5ODAKLSAgICAvLyBodHRwOi8vbXNkbi5taWNyb3NvZnQuY29t
L2VuLXVzL2xpYnJhcnkvbXM2NDQ5MDQuYXNweCAoIi4uLnlvdSBjYW4gZ2V0IGRpZmZlcmVudCBy
ZXN1bHRzIG9uIGRpZmZlcmVudCBwcm9jZXNzb3JzIGR1ZSB0byBidWdzIGluIHRoZSBiYXNpYyBp
bnB1dC9vdXRwdXQgc3lzdGVtIChCSU9TKSBvciB0aGUgaGFyZHdhcmUgYWJzdHJhY3Rpb24gbGF5
ZXIgKEhBTCkuIgotCi0gICAgc3RhdGljIExBUkdFX0lOVEVHRVIgcXBjTGFzdDsKLSAgICBzdGF0
aWMgRFdPUkQgdGlja0NvdW50TGFzdDsKLSAgICBzdGF0aWMgYm9vbCBpbml0ZWQ7Ci0KLSAgICBM
QVJHRV9JTlRFR0VSIHFwYzsKLSAgICBRdWVyeVBlcmZvcm1hbmNlQ291bnRlcigmcXBjKTsKLSAg
ICBEV09SRCB0aWNrQ291bnQgPSBHZXRUaWNrQ291bnQoKTsKLQotICAgIGlmIChpbml0ZWQpIHsK
LSAgICAgICAgX19pbnQ2NCBxcGNFbGFwc2VkID0gKChxcGMuUXVhZFBhcnQgLSBxcGNMYXN0LlF1
YWRQYXJ0KSAqIDEwMDApIC8gcXBjRnJlcXVlbmN5LlF1YWRQYXJ0OwotICAgICAgICBfX2ludDY0
IHRpY2tDb3VudEVsYXBzZWQ7Ci0gICAgICAgIGlmICh0aWNrQ291bnQgPj0gdGlja0NvdW50TGFz
dCkKLSAgICAgICAgICAgIHRpY2tDb3VudEVsYXBzZWQgPSAodGlja0NvdW50IC0gdGlja0NvdW50
TGFzdCk7Ci0gICAgICAgIGVsc2UgewotI2lmIENPTVBJTEVSKE1JTkdXKQotICAgICAgICAgICAg
X19pbnQ2NCB0aWNrQ291bnRMYXJnZSA9IHRpY2tDb3VudCArIDB4MTAwMDAwMDAwVUxMOwotI2Vs
c2UKLSAgICAgICAgICAgIF9faW50NjQgdGlja0NvdW50TGFyZ2UgPSB0aWNrQ291bnQgKyAweDEw
MDAwMDAwMEk2NDsKLSNlbmRpZgotICAgICAgICAgICAgdGlja0NvdW50RWxhcHNlZCA9IHRpY2tD
b3VudExhcmdlIC0gdGlja0NvdW50TGFzdDsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIGZvcmNl
IGEgcmUtc3luYyBpZiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBkaWZmZXJzIGZyb20gR2V0VGlj
a0NvdW50IGJ5IG1vcmUgdGhhbiA1MDBtcy4KLSAgICAgICAgLy8gKDUwMG1zIHZhbHVlIGlzIGZy
b20gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8yNzQzMjMpCi0gICAgICAgIF9faW50
NjQgZGlmZiA9IHRpY2tDb3VudEVsYXBzZWQgLSBxcGNFbGFwc2VkOwotICAgICAgICBpZiAoZGlm
ZiA+IDUwMCB8fCBkaWZmIDwgLTUwMCkKLSAgICAgICAgICAgIHN5bmNlZFRpbWUgPSBmYWxzZTsK
LSAgICB9IGVsc2UKLSAgICAgICAgaW5pdGVkID0gdHJ1ZTsKLQotICAgIHFwY0xhc3QgPSBxcGM7
Ci0gICAgdGlja0NvdW50TGFzdCA9IHRpY2tDb3VudDsKLQotICAgIHJldHVybiAoMTAwMC4wICog
cXBjLlF1YWRQYXJ0KSAvIHN0YXRpY19jYXN0PGRvdWJsZT4ocXBjRnJlcXVlbmN5LlF1YWRQYXJ0
KTs7Ci19Ci0KLXN0YXRpYyBkb3VibGUgbG93UmVzVVRDVGltZSgpCi17Ci0jaWYgUExBVEZPUk0o
V0lOX0NFKQotICAgIFNZU1RFTVRJTUUgc3lzdGVtVGltZTsKLSAgICBHZXRTeXN0ZW1UaW1lKCZz
eXN0ZW1UaW1lKTsKLSAgICBzdHJ1Y3QgdG0gdG10aW1lOwotICAgIHRtdGltZS50bV95ZWFyID0g
c3lzdGVtVGltZS53WWVhciAtIDE5MDA7Ci0gICAgdG10aW1lLnRtX21vbiA9IHN5c3RlbVRpbWUu
d01vbnRoIC0gMTsKLSAgICB0bXRpbWUudG1fbWRheSA9IHN5c3RlbVRpbWUud0RheTsKLSAgICB0
bXRpbWUudG1fd2RheSA9IHN5c3RlbVRpbWUud0RheU9mV2VlazsKLSAgICB0bXRpbWUudG1faG91
ciA9IHN5c3RlbVRpbWUud0hvdXI7Ci0gICAgdG10aW1lLnRtX21pbiA9IHN5c3RlbVRpbWUud01p
bnV0ZTsKLSAgICB0bXRpbWUudG1fc2VjID0gc3lzdGVtVGltZS53U2Vjb25kOwotICAgIHRpbWVf
dCB0aW1ldCA9IG1rdGltZSgmdG10aW1lKTsKLSAgICByZXR1cm4gdGltZXQgKiBtc1BlclNlY29u
ZCArIHN5c3RlbVRpbWUud01pbGxpc2Vjb25kczsKLSNlbHNlCi0gICAgc3RydWN0IF90aW1lYiB0
aW1lYnVmZmVyOwotICAgIF9mdGltZSgmdGltZWJ1ZmZlcik7Ci0gICAgcmV0dXJuIHRpbWVidWZm
ZXIudGltZSAqIG1zUGVyU2Vjb25kICsgdGltZWJ1ZmZlci5taWxsaXRtOwotI2VuZGlmCi19Ci0K
LXN0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCi17Ci0gICAgc3RhdGljIGJvb2wgYXZhaWxhYmxl
OwotICAgIHN0YXRpYyBib29sIGNoZWNrZWQ7Ci0KLSAgICBpZiAoY2hlY2tlZCkKLSAgICAgICAg
cmV0dXJuIGF2YWlsYWJsZTsKLQotICAgIGF2YWlsYWJsZSA9IFF1ZXJ5UGVyZm9ybWFuY2VGcmVx
dWVuY3koJnFwY0ZyZXF1ZW5jeSk7Ci0gICAgY2hlY2tlZCA9IHRydWU7Ci0gICAgcmV0dXJuIGF2
YWlsYWJsZTsKLX0KLQotI2VuZGlmCi0KKy8vIFJldHVybnMgY3VycmVudCB0aW1lIGluIG1pbGxp
c2Vjb25kcyBzaW5jZSAxIEphbiAxOTcwLgogZG91YmxlIGdldEN1cnJlbnRVVENUaW1lV2l0aE1p
Y3Jvc2Vjb25kcygpCiB7Ci0jaWYgUExBVEZPUk0oV0lOX09TKQotICAgIC8vIFVzZSBhIGNvbWJp
bmF0aW9uIG9mIGZ0aW1lIGFuZCBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4KLSAgICAvLyBmdGlt
ZSByZXR1cm5zIHRoZSBpbmZvcm1hdGlvbiB3ZSB3YW50LCBidXQgZG9lc24ndCBoYXZlIHN1ZmZp
Y2llbnQgcmVzb2x1dGlvbi4KLSAgICAvLyBRdWVyeVBlcmZvcm1hbmNlQ291bnRlciBoYXMgaGln
aCByZXNvbHV0aW9uLCBidXQgaXMgb25seSB1c2FibGUgdG8gbWVhc3VyZSB0aW1lIGludGVydmFs
cy4KLSAgICAvLyBUbyBjb21iaW5lIHRoZW0sIHdlIGNhbGwgZnRpbWUgYW5kIFF1ZXJ5UGVyZm9y
bWFuY2VDb3VudGVyIGluaXRpYWxseS4gTGF0ZXIgY2FsbHMgd2lsbCB1c2UgUXVlcnlQZXJmb3Jt
YW5jZUNvdW50ZXIKLSAgICAvLyBieSBpdHNlbGYsIGFkZGluZyB0aGUgZGVsdGEgdG8gdGhlIHNh
dmVkIGZ0aW1lLiAgV2UgcGVyaW9kaWNhbGx5IHJlLXN5bmMgdG8gY29ycmVjdCBmb3IgZHJpZnQu
Ci0gICAgc3RhdGljIGJvb2wgc3RhcnRlZDsKLSAgICBzdGF0aWMgZG91YmxlIHN5bmNMb3dSZXNV
VENUaW1lOwotICAgIHN0YXRpYyBkb3VibGUgc3luY0hpZ2hSZXNVcFRpbWU7Ci0gICAgc3RhdGlj
IGRvdWJsZSBsYXN0VVRDVGltZTsKLQotICAgIGRvdWJsZSBsb3dSZXNUaW1lID0gbG93UmVzVVRD
VGltZSgpOwotCi0gICAgaWYgKCFxcGNBdmFpbGFibGUoKSkKLSAgICAgICAgcmV0dXJuIGxvd1Jl
c1RpbWU7Ci0KLSAgICBkb3VibGUgaGlnaFJlc1RpbWUgPSBoaWdoUmVzVXBUaW1lKCk7Ci0KLSAg
ICBpZiAoIXN5bmNlZFRpbWUpIHsKLSAgICAgICAgdGltZUJlZ2luUGVyaW9kKDEpOyAvLyBpbmNy
ZWFzZSB0aW1lIHJlc29sdXRpb24gYXJvdW5kIGxvdy1yZXMgdGltZSBnZXR0ZXIKLSAgICAgICAg
c3luY0xvd1Jlc1VUQ1RpbWUgPSBsb3dSZXNUaW1lID0gbG93UmVzVVRDVGltZSgpOwotICAgICAg
ICB0aW1lRW5kUGVyaW9kKDEpOyAvLyByZXN0b3JlIHRpbWUgcmVzb2x1dGlvbgotICAgICAgICBz
eW5jSGlnaFJlc1VwVGltZSA9IGhpZ2hSZXNUaW1lOwotICAgICAgICBzeW5jZWRUaW1lID0gdHJ1
ZTsKLSAgICB9Ci0KLSAgICBkb3VibGUgaGlnaFJlc0VsYXBzZWQgPSBoaWdoUmVzVGltZSAtIHN5
bmNIaWdoUmVzVXBUaW1lOwotICAgIGRvdWJsZSB1dGMgPSBzeW5jTG93UmVzVVRDVGltZSArIGhp
Z2hSZXNFbGFwc2VkOwotCi0gICAgLy8gZm9yY2UgYSBjbG9jayByZS1zeW5jIGlmIHdlJ3ZlIGRy
aWZ0ZWQKLSAgICBkb3VibGUgbG93UmVzRWxhcHNlZCA9IGxvd1Jlc1RpbWUgLSBzeW5jTG93UmVz
VVRDVGltZTsKLSAgICBjb25zdCBkb3VibGUgbWF4aW11bUFsbG93ZWREcmlmdE1zZWMgPSAxNS42
MjUgKiAyLjA7IC8vIDJ4IHRoZSB0eXBpY2FsIGxvdy1yZXMgYWNjdXJhY3kKLSAgICBpZiAoZmFi
cyhoaWdoUmVzRWxhcHNlZCAtIGxvd1Jlc0VsYXBzZWQpID4gbWF4aW11bUFsbG93ZWREcmlmdE1z
ZWMpCi0gICAgICAgIHN5bmNlZFRpbWUgPSBmYWxzZTsKLQotICAgIC8vIG1ha2Ugc3VyZSB0aW1l
IGRvZXNuJ3QgcnVuIGJhY2t3YXJkcyAob25seSBjb3JyZWN0IGlmIGRpZmZlcmVuY2UgaXMgPCAy
IHNlY29uZHMsIHNpbmNlIERTVCBvciBjbG9jayBjaGFuZ2VzIGNvdWxkIG9jY3VyKQotICAgIGNv
bnN0IGRvdWJsZSBiYWNrd2FyZFRpbWVMaW1pdCA9IDIwMDAuMDsKLSAgICBpZiAodXRjIDwgbGFz
dFVUQ1RpbWUgJiYgKGxhc3RVVENUaW1lIC0gdXRjKSA8IGJhY2t3YXJkVGltZUxpbWl0KQotICAg
ICAgICByZXR1cm4gbGFzdFVUQ1RpbWU7Ci0gICAgbGFzdFVUQ1RpbWUgPSB1dGM7Ci0jZWxzZQot
ICAgIHN0cnVjdCB0aW1ldmFsIHR2OwotICAgIGdldHRpbWVvZmRheSgmdHYsIDApOwotICAgIGRv
dWJsZSB1dGMgPSB0di50dl9zZWMgKiBtc1BlclNlY29uZCArIHR2LnR2X3VzZWMgLyAxMDAwLjA7
Ci0jZW5kaWYKLSAgICByZXR1cm4gdXRjOworICAgIHJldHVybiBjdXJyZW50VGltZSgpICogMTAw
MC4wOyAKIH0KIAogdm9pZCBnZXRMb2NhbFRpbWUoY29uc3QgdGltZV90KiBsb2NhbFRpbWUsIHN0
cnVjdCB0bSogbG9jYWxUTSkKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGltZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0N1cnJlbnRUaW1lLmNwcAkocmV2
aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGltZS5jcHAJKHJldmlzaW9u
IDApCkBAIC0wLDAgKzEsMjIwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA2IEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA4
IEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAq
IE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAq
IGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMg
ZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhF
IENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAq
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIkN1cnJlbnRUaW1lLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisjaW5jbHVkZSA8Q29yZUZv
dW5kYXRpb24vQ0ZEYXRlLmg+CisjZWxpZiBQTEFURk9STShXSU4pCisjaW5jbHVkZSA8d2luZG93
cy5oPgorI2luY2x1ZGUgPG1hdGguaD4KKyNpbmNsdWRlIDxzdGRpbnQuaD4KKyNpbmNsdWRlIDx0
aW1lLmg+CisjZWxpZiBQTEFURk9STShHVEspCisjaW5jbHVkZSA8Z2xpYi5oPgorI2VsaWYgUExB
VEZPUk0oV1gpCisjaW5jbHVkZSA8d3gvZGF0ZXRpbWUuaD4KKyNlbHNlIC8vIFBvc2l4IHN5c3Rl
bXMgcmVseWluZyBvbiB0aGUgZ2V0dGltZW9mZGF5KCkKKyNpbmNsdWRlIDxzeXMvdGltZS5oPgor
I2VuZGlmCisKK25hbWVzcGFjZSBXVEYgeworCisjaWYgUExBVEZPUk0oTUFDKQorCitkb3VibGUg
Y3VycmVudFRpbWUoKQoreworICAgIHJldHVybiBDRkFic29sdXRlVGltZUdldEN1cnJlbnQoKSAr
IGtDRkFic29sdXRlVGltZUludGVydmFsU2luY2UxOTcwOworfQorCisjZWxpZiBQTEFURk9STShX
SU4pCisKK3N0YXRpYyBMQVJHRV9JTlRFR0VSIHFwY0ZyZXF1ZW5jeTsKK3N0YXRpYyBib29sIHN5
bmNlZFRpbWU7CisKK3N0YXRpYyBkb3VibGUgaGlnaFJlc1VwVGltZSgpCit7CisgICAgLy8gV2Ug
dXNlIFFQQywgYnV0IG9ubHkgYWZ0ZXIgc2FuaXR5IGNoZWNraW5nIGl0cyByZXN1bHQsIGR1ZSB0
byBidWdzOgorICAgIC8vIGh0dHA6Ly9zdXBwb3J0Lm1pY3Jvc29mdC5jb20va2IvMjc0MzIzCisg
ICAgLy8gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi84OTU5ODAKKyAgICAvLyBodHRw
Oi8vbXNkbi5taWNyb3NvZnQuY29tL2VuLXVzL2xpYnJhcnkvbXM2NDQ5MDQuYXNweCAoIi4uLnlv
dSBjYW4gZ2V0IGRpZmZlcmVudCByZXN1bHRzIG9uIGRpZmZlcmVudCBwcm9jZXNzb3JzIGR1ZSB0
byBidWdzIGluIHRoZSBiYXNpYyBpbnB1dC9vdXRwdXQgc3lzdGVtIChCSU9TKSBvciB0aGUgaGFy
ZHdhcmUgYWJzdHJhY3Rpb24gbGF5ZXIgKEhBTCkuIgorCisgICAgc3RhdGljIExBUkdFX0lOVEVH
RVIgcXBjTGFzdDsKKyAgICBzdGF0aWMgRFdPUkQgdGlja0NvdW50TGFzdDsKKyAgICBzdGF0aWMg
Ym9vbCBpbml0ZWQ7CisKKyAgICBMQVJHRV9JTlRFR0VSIHFwYzsKKyAgICBRdWVyeVBlcmZvcm1h
bmNlQ291bnRlcigmcXBjKTsKKyAgICBEV09SRCB0aWNrQ291bnQgPSBHZXRUaWNrQ291bnQoKTsK
KworICAgIGlmIChpbml0ZWQpIHsKKyAgICAgICAgX19pbnQ2NCBxcGNFbGFwc2VkID0gKChxcGMu
UXVhZFBhcnQgLSBxcGNMYXN0LlF1YWRQYXJ0KSAqIDEwMDApIC8gcXBjRnJlcXVlbmN5LlF1YWRQ
YXJ0OworICAgICAgICBfX2ludDY0IHRpY2tDb3VudEVsYXBzZWQ7CisgICAgICAgIGlmICh0aWNr
Q291bnQgPj0gdGlja0NvdW50TGFzdCkKKyAgICAgICAgICAgIHRpY2tDb3VudEVsYXBzZWQgPSAo
dGlja0NvdW50IC0gdGlja0NvdW50TGFzdCk7CisgICAgICAgIGVsc2UgeworI2lmIENPTVBJTEVS
KE1JTkdXKQorICAgICAgICAgICAgX19pbnQ2NCB0aWNrQ291bnRMYXJnZSA9IHRpY2tDb3VudCAr
IDB4MTAwMDAwMDAwVUxMOworI2Vsc2UKKyAgICAgICAgICAgIF9faW50NjQgdGlja0NvdW50TGFy
Z2UgPSB0aWNrQ291bnQgKyAweDEwMDAwMDAwMEk2NDsKKyNlbmRpZgorICAgICAgICAgICAgdGlj
a0NvdW50RWxhcHNlZCA9IHRpY2tDb3VudExhcmdlIC0gdGlja0NvdW50TGFzdDsKKyAgICAgICAg
fQorCisgICAgICAgIC8vIGZvcmNlIGEgcmUtc3luYyBpZiBRdWVyeVBlcmZvcm1hbmNlQ291bnRl
ciBkaWZmZXJzIGZyb20gR2V0VGlja0NvdW50IGJ5IG1vcmUgdGhhbiA1MDBtcy4KKyAgICAgICAg
Ly8gKDUwMG1zIHZhbHVlIGlzIGZyb20gaHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9rYi8y
NzQzMjMpCisgICAgICAgIF9faW50NjQgZGlmZiA9IHRpY2tDb3VudEVsYXBzZWQgLSBxcGNFbGFw
c2VkOworICAgICAgICBpZiAoZGlmZiA+IDUwMCB8fCBkaWZmIDwgLTUwMCkKKyAgICAgICAgICAg
IHN5bmNlZFRpbWUgPSBmYWxzZTsKKyAgICB9IGVsc2UKKyAgICAgICAgaW5pdGVkID0gdHJ1ZTsK
KworICAgIHFwY0xhc3QgPSBxcGM7CisgICAgdGlja0NvdW50TGFzdCA9IHRpY2tDb3VudDsKKwor
ICAgIHJldHVybiAoMTAwMC4wICogcXBjLlF1YWRQYXJ0KSAvIHN0YXRpY19jYXN0PGRvdWJsZT4o
cXBjRnJlcXVlbmN5LlF1YWRQYXJ0KTsKK30KKworc3RhdGljIGRvdWJsZSBsb3dSZXNVVENUaW1l
KCkKK3sKKyNpZiBQTEFURk9STShXSU5fQ0UpCisgICAgU1lTVEVNVElNRSBzeXN0ZW1UaW1lOwor
ICAgIEdldFN5c3RlbVRpbWUoJnN5c3RlbVRpbWUpOworICAgIHN0cnVjdCB0bSB0bXRpbWU7Cisg
ICAgdG10aW1lLnRtX3llYXIgPSBzeXN0ZW1UaW1lLndZZWFyIC0gMTkwMDsKKyAgICB0bXRpbWUu
dG1fbW9uID0gc3lzdGVtVGltZS53TW9udGggLSAxOworICAgIHRtdGltZS50bV9tZGF5ID0gc3lz
dGVtVGltZS53RGF5OworICAgIHRtdGltZS50bV93ZGF5ID0gc3lzdGVtVGltZS53RGF5T2ZXZWVr
OworICAgIHRtdGltZS50bV9ob3VyID0gc3lzdGVtVGltZS53SG91cjsKKyAgICB0bXRpbWUudG1f
bWluID0gc3lzdGVtVGltZS53TWludXRlOworICAgIHRtdGltZS50bV9zZWMgPSBzeXN0ZW1UaW1l
LndTZWNvbmQ7CisgICAgdGltZV90IHRpbWV0ID0gbWt0aW1lKCZ0bXRpbWUpOworICAgIHJldHVy
biB0aW1ldCAqIG1zUGVyU2Vjb25kICsgc3lzdGVtVGltZS53TWlsbGlzZWNvbmRzOworI2Vsc2Ug
Ly8gUExBVEZPUk0oV0lOX0NFKQorICAgIHN0cnVjdCBfdGltZWIgdGltZWJ1ZmZlcjsKKyAgICBf
ZnRpbWUoJnRpbWVidWZmZXIpOworICAgIHJldHVybiB0aW1lYnVmZmVyLnRpbWUgKiBtc1BlclNl
Y29uZCArIHRpbWVidWZmZXIubWlsbGl0bTsKKyNlbmRpZiAvLyBQTEFURk9STShXSU5fQ0UpCit9
CisKK3N0YXRpYyBib29sIHFwY0F2YWlsYWJsZSgpCit7CisgICAgc3RhdGljIGJvb2wgYXZhaWxh
YmxlOworICAgIHN0YXRpYyBib29sIGNoZWNrZWQ7CisKKyAgICBpZiAoY2hlY2tlZCkKKyAgICAg
ICAgcmV0dXJuIGF2YWlsYWJsZTsKKworICAgIGF2YWlsYWJsZSA9IFF1ZXJ5UGVyZm9ybWFuY2VG
cmVxdWVuY3koJnFwY0ZyZXF1ZW5jeSk7CisgICAgY2hlY2tlZCA9IHRydWU7CisgICAgcmV0dXJu
IGF2YWlsYWJsZTsKK30KKworZG91YmxlIGN1cnJlbnRUaW1lKCkKK3sKKyAgICAvLyBVc2UgYSBj
b21iaW5hdGlvbiBvZiBmdGltZSBhbmQgUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIuCisgICAgLy8g
ZnRpbWUgcmV0dXJucyB0aGUgaW5mb3JtYXRpb24gd2Ugd2FudCwgYnV0IGRvZXNuJ3QgaGF2ZSBz
dWZmaWNpZW50IHJlc29sdXRpb24uCisgICAgLy8gUXVlcnlQZXJmb3JtYW5jZUNvdW50ZXIgaGFz
IGhpZ2ggcmVzb2x1dGlvbiwgYnV0IGlzIG9ubHkgdXNhYmxlIHRvIG1lYXN1cmUgdGltZSBpbnRl
cnZhbHMuCisgICAgLy8gVG8gY29tYmluZSB0aGVtLCB3ZSBjYWxsIGZ0aW1lIGFuZCBRdWVyeVBl
cmZvcm1hbmNlQ291bnRlciBpbml0aWFsbHkuIExhdGVyIGNhbGxzIHdpbGwgdXNlIFF1ZXJ5UGVy
Zm9ybWFuY2VDb3VudGVyCisgICAgLy8gYnkgaXRzZWxmLCBhZGRpbmcgdGhlIGRlbHRhIHRvIHRo
ZSBzYXZlZCBmdGltZS4gIFdlIHBlcmlvZGljYWxseSByZS1zeW5jIHRvIGNvcnJlY3QgZm9yIGRy
aWZ0LgorICAgIHN0YXRpYyBib29sIHN0YXJ0ZWQ7CisgICAgc3RhdGljIGRvdWJsZSBzeW5jTG93
UmVzVVRDVGltZTsKKyAgICBzdGF0aWMgZG91YmxlIHN5bmNIaWdoUmVzVXBUaW1lOworICAgIHN0
YXRpYyBkb3VibGUgbGFzdFVUQ1RpbWU7CisKKyAgICBkb3VibGUgbG93UmVzVGltZSA9IGxvd1Jl
c1VUQ1RpbWUoKTsKKworICAgIGlmICghcXBjQXZhaWxhYmxlKCkpCisgICAgICAgIHJldHVybiBs
b3dSZXNUaW1lOworCisgICAgZG91YmxlIGhpZ2hSZXNUaW1lID0gaGlnaFJlc1VwVGltZSgpOwor
CisgICAgaWYgKCFzeW5jZWRUaW1lKSB7CisgICAgICAgIHRpbWVCZWdpblBlcmlvZCgxKTsgLy8g
aW5jcmVhc2UgdGltZSByZXNvbHV0aW9uIGFyb3VuZCBsb3ctcmVzIHRpbWUgZ2V0dGVyCisgICAg
ICAgIHN5bmNMb3dSZXNVVENUaW1lID0gbG93UmVzVGltZSA9IGxvd1Jlc1VUQ1RpbWUoKTsKKyAg
ICAgICAgdGltZUVuZFBlcmlvZCgxKTsgLy8gcmVzdG9yZSB0aW1lIHJlc29sdXRpb24KKyAgICAg
ICAgc3luY0hpZ2hSZXNVcFRpbWUgPSBoaWdoUmVzVGltZTsKKyAgICAgICAgc3luY2VkVGltZSA9
IHRydWU7CisgICAgfQorCisgICAgZG91YmxlIGhpZ2hSZXNFbGFwc2VkID0gaGlnaFJlc1RpbWUg
LSBzeW5jSGlnaFJlc1VwVGltZTsKKyAgICBkb3VibGUgdXRjID0gc3luY0xvd1Jlc1VUQ1RpbWUg
KyBoaWdoUmVzRWxhcHNlZDsKKworICAgIC8vIGZvcmNlIGEgY2xvY2sgcmUtc3luYyBpZiB3ZSd2
ZSBkcmlmdGVkCisgICAgZG91YmxlIGxvd1Jlc0VsYXBzZWQgPSBsb3dSZXNUaW1lIC0gc3luY0xv
d1Jlc1VUQ1RpbWU7CisgICAgY29uc3QgZG91YmxlIG1heGltdW1BbGxvd2VkRHJpZnRNc2VjID0g
MTUuNjI1ICogMi4wOyAvLyAyeCB0aGUgdHlwaWNhbCBsb3ctcmVzIGFjY3VyYWN5CisgICAgaWYg
KGZhYnMoaGlnaFJlc0VsYXBzZWQgLSBsb3dSZXNFbGFwc2VkKSA+IG1heGltdW1BbGxvd2VkRHJp
ZnRNc2VjKQorICAgICAgICBzeW5jZWRUaW1lID0gZmFsc2U7CisKKyAgICAvLyBtYWtlIHN1cmUg
dGltZSBkb2Vzbid0IHJ1biBiYWNrd2FyZHMgKG9ubHkgY29ycmVjdCBpZiBkaWZmZXJlbmNlIGlz
IDwgMiBzZWNvbmRzLCBzaW5jZSBEU1Qgb3IgY2xvY2sgY2hhbmdlcyBjb3VsZCBvY2N1cikKKyAg
ICBjb25zdCBkb3VibGUgYmFja3dhcmRUaW1lTGltaXQgPSAyMDAwLjA7CisgICAgaWYgKHV0YyA8
IGxhc3RVVENUaW1lICYmIChsYXN0VVRDVGltZSAtIHV0YykgPCBiYWNrd2FyZFRpbWVMaW1pdCkK
KyAgICAgICAgcmV0dXJuIGxhc3RVVENUaW1lOworICAgIGxhc3RVVENUaW1lID0gdXRjOworICAg
IHJldHVybiB1dGMgLyAxMDAwLjA7Cit9CisKKyNlbGlmIFBMQVRGT1JNKEdUSykKKworLy8gTm90
ZTogR1RLIG9uIFdpbmRvd3Mgd2lsbCBwaWNrIHVwIHRoZSBQTEFURk9STShXSU4pIGltcGxlbWVu
dGF0aW9uIGFib3ZlIHdoaWNoIHByb3ZpZGVzCisvLyBiZXR0ZXIgYWNjdXJhY3kgY29tcGFyZWQg
d2l0aCBXaW5kb3dzIGltcGxlbWVudGF0aW9uIG9mIGdfZ2V0X2N1cnJlbnRfdGltZToKKy8vICho
dHRwOi8vd3d3Lmdvb2dsZS5jb20vY29kZXNlYXJjaC9wP2hsPWVuI0hIbk5SamtzMXQwL2dsaWIt
Mi41LjIvZ2xpYi9nbWFpbi5jJnE9Z19nZXRfY3VycmVudF90aW1lKS4KKy8vIE5vbi1XaW5kb3dz
IEdUSyBidWlsZHMgY291bGQgdXNlIGdldHRpbWVvZmRheSgpIGRpcmVjdGx5IGJ1dCBmb3IgdGhl
IHNha2Ugb2YgY29uc2lzdGVuY3kgbGV0cyB1c2UgR1RLIGZ1bmN0aW9uLgorZG91YmxlIGN1cnJl
bnRUaW1lKCkKK3sKKyAgICBHVGltZVZhbCBub3c7CisgICAgZ19nZXRfY3VycmVudF90aW1lKCZu
b3cpOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxkb3VibGU+KG5vdy50dl9zZWMpICsgc3RhdGlj
X2Nhc3Q8ZG91YmxlPihub3cudHZfdXNlYyAvIDEwMDAwMDAuMCk7Cit9CisKKyNlbGlmIFBMQVRG
T1JNKFdYKQorCitkb3VibGUgY3VycmVudFRpbWUoKQoreworICAgIHd4RGF0ZVRpbWUgbm93ID0g
d3hEYXRlVGltZTo6VU5vdygpOworICAgIHJldHVybiAoZG91YmxlKW5vdy5HZXRUaWNrcygpICsg
KGRvdWJsZSkobm93LkdldE1pbGxpc2Vjb25kKCkgLyAxMDAwLjApOworfQorCisjZWxzZSAvLyBP
dGhlciBQb3NpeCBzeXN0ZW1zIHJlbHkgb24gdGhlIGdldHRpbWVvZmRheSgpLgorCitkb3VibGUg
Y3VycmVudFRpbWUoKQoreworICAgIHN0cnVjdCB0aW1ldmFsIG5vdzsKKyAgICBzdHJ1Y3QgdGlt
ZXpvbmUgem9uZTsKKworICAgIGdldHRpbWVvZmRheSgmbm93LCAmem9uZSk7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PGRvdWJsZT4obm93LnR2X3NlYykgKyAoZG91YmxlKShub3cudHZfdXNlYyAv
IDEwMDAwMDAuMCk7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXVEYKSW5kZXg6IEph
dmFTY3JpcHRDb3JlL3d0Zi9DdXJyZW50VGltZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRD
b3JlL3d0Zi9DdXJyZW50VGltZS5oCShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdENvcmUvd3Rm
L0N1cnJlbnRUaW1lLmgJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDggR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAg
KiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogICAgICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICog
ZGlzdHJpYnV0aW9uLgorICogICAgICogTmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBu
b3IgdGhlIG5hbWVzIG9mIGl0cworICogY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9y
c2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9S
UworICogIkFTIElTIiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVS
IE9SIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLAorICogU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAq
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZu
ZGVmIEN1cnJlbnRUaW1lX2gKKyNkZWZpbmUgQ3VycmVudFRpbWVfaAorCituYW1lc3BhY2UgV1RG
IHsKKworICAgIC8vIFJldHVybnMgdGhlIGN1cnJlbnQgc3lzdGVtIChVVEMpIHRpbWUgaW4gc2Vj
b25kcywgc3RhcnRpbmcgSmFudWFyeSAxLCAxOTcwLgorICAgIC8vIFByZWNpc2lvbiB2YXJpZXMg
ZGVwZW5kaW5nIG9uIGEgcGxhdGZvcm0gYnV0IHVzdWFsbHkgaXMgYXMgZ29vZCBvciBiZXR0ZXIg
CisgICAgLy8gdGhlbiBhIG1pbGxpc2Vjb25kLgorICAgIGRvdWJsZSBjdXJyZW50VGltZSgpOwor
Cit9IC8vIG5hbWVzcGFjZSBXVEYKKwordXNpbmcgV1RGOjpjdXJyZW50VGltZTsKKworI2VuZGlm
IC8vIEN1cnJlbnRUaW1lX2gKKwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw2OCBAQAorMjAwOS0wMS0xMCAgRG1pdHJ5IFRp
dG92ICA8ZGltaWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyMDcKKyAgICAgICAgTW92ZWQgY3VycmVudFRpbWUoKSB0byBmcm9tIFdlYkNvcmUgdG8g
V1RGLgorCisgICAgICAgIE1vc3Qgb2YgdGhlc2UgZmlsZXMgb25seSBoYXZlIGEgZGlmZmVyZW50
IGhlYWRlciBmaWxlIGluY2x1ZGVkLgorICAgICAgICBWYXJpb3VzIGJ1aWxkIGZpbGVzIHJlZmxl
Y3QgcmVtb3ZhbCBvZiBTeXN0ZW1UaW1lR3RrLCBXeCwgUXQgYW5kIExpbnV4CisgICAgICAgIHdo
aWNoIHdlcmUgcmVtb3ZlZCBzaW5jZSB0aGV5IG9ubHkgaW1wbGVtZW50ZWQgY3VycmVudFRpbWUo
KS4KKworICAgICAgICAqIEZvcndhcmRpbmdIZWFkZXJzL3d0Zi9DdXJyZW50VGltZS5oOiBBZGRl
ZC4KKyAgICAgICAgKiBHTlVtYWtlZmlsZS5hbToKKyAgICAgICAgKiBXZWJDb3JlLmJhc2UuZXhw
OgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAqIGRvbS9Db250YWluZXJOb2RlLmNw
cDoKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAqIGRvbS9FdmVudC5jcHA6
CisgICAgICAgICogaGlzdG9yeS9DYWNoZWRQYWdlLmNwcDoKKyAgICAgICAgKiBoaXN0b3J5L1Bh
Z2VDYWNoZS5jcHA6CisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmxvYWQpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6cHJvZ3Jlc3NFdmVudFRpbWVyRmlyZWQpOgorICAgICAgICAqIGh0
bWwvSFRNTFRva2VuaXplci5jcHA6CisgICAgICAgICogaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHA6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwOgorICAgICAgICAq
IGxvYWRlci9DYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDYWNoZTo6cHJ1bmVMaXZlUmVz
b3VyY2VzKToKKyAgICAgICAgKiBsb2FkZXIvQ2FjaGVkSW1hZ2UuY3BwOgorICAgICAgICAqIGxv
YWRlci9DYWNoZWRSZXNvdXJjZS5jcHA6CisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cDoKKyAgICAgICAgKiBsb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcDoKKyAgICAgICAgKiBsb2Fk
ZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwOgorICAgICAgICAqIGxvYWRlci9pY29uL0ljb25SZWNv
cmQuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoKKyAgICAgICAgKiBw
YWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlv
bi9BbmltYXRpb25Db250cm9sbGVyLmNwcDoKKyAgICAgICAgKiBwYWdlL2FuaW1hdGlvbi9LZXlm
cmFtZUFuaW1hdGlvbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vU3lzdGVtVGltZS5oOgorICAg
ICAgICAqIHBsYXRmb3JtL1RpbWVyLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9C
aXRtYXBJbWFnZS5jcHA6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL01vdXNlRXZlbnRHdGsuY3Bw
OgorICAgICAgICAqIHBsYXRmb3JtL2d0ay9TaGFyZWRUaW1lckd0ay5jcHA6CisgICAgICAgICog
cGxhdGZvcm0vZ3RrL1N5c3RlbVRpbWVHdGsuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9TeXN0ZW1UaW1lTGludXguY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TeXN0ZW1UaW1lTWFjLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9QbGF0Zm9ybU1v
dXNlRXZlbnRRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBs
YXRmb3JtTW91c2VFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5j
cHA6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5oOgorICAgICAgICAqIHBs
YXRmb3JtL3F0L1N5c3RlbVRpbWVRdC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0v
d2luL1NoYXJlZFRpbWVyV2luLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU3lzdGVtVGlt
ZVdpbi5jcHA6CisgICAgICAgICogcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlBsYXRmb3JtTW91c2VFdmVudDo6UGxhdGZvcm1Nb3VzZUV2ZW50KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS93eC9TaGFyZWRUaW1lcld4LmNwcDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93eC9TeXN0ZW1UaW1lV3guY3BwOiBSZW1vdmVkLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHA6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcDoKKyAgICAg
ICAgKiBzdmcvYW5pbWF0aW9uL1NNSUxUaW1lQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKiB3ZWJj
b3JlLXd4LmJrbDoKKyAgICAgICAgKiB4bWwvWE1MSHR0cFJlcXVlc3QuY3BwOgorCiAyMDA5LTAx
LTA5ICBIb2xnZXIgSGFucyBQZXRlciBGcmV5dGhlciAgPHplY2tlQHNlbGZpc2gub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEhhdXNtYW5uLgpJbmRleDogV2ViQ29yZS9HTlVtYWtl
ZmlsZS5hbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL0dOVW1ha2VmaWxlLmFtCShyZXZpc2lvbiAz
OTc4MCkKKysrIFdlYkNvcmUvR05VbWFrZWZpbGUuYW0JKHdvcmtpbmcgY29weSkKQEAgLTE3MzEs
NyArMTczMSw2IEBAIHdlYmNvcmVndGtfc291cmNlcyArPSBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9n
dGsvU2hhcmVkQnVmZmVyR3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hhcmVkVGlt
ZXJHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9Tb3VuZEd0ay5jcHAgXAotCVdlYkNv
cmUvcGxhdGZvcm0vZ3RrL1N5c3RlbVRpbWVHdGsuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0
ay9UZW1wb3JhcnlMaW5rU3R1YnMuY3BwIFwKIAlXZWJDb3JlL3BsYXRmb3JtL2d0ay9XaGVlbEV2
ZW50R3RrLmNwcCBcCiAJV2ViQ29yZS9wbGF0Zm9ybS9ndGsvV2lkZ2V0R3RrLmNwcCBcCkluZGV4
OiBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3Jl
LmJhc2UuZXhwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAko
d29ya2luZyBjb3B5KQpAQCAtMjAzLDcgKzIwMyw2IEBAIF9fWk43V2ViQ29yZTExSWNvbkZldGNo
ZXI2Y3JlYXRlRVBOU181RnIKIF9fWk43V2ViQ29yZTExUmVuZGVyTGF5ZXIxOGdBbGlnbkNlbnRl
ckFsd2F5c0UKIF9fWk43V2ViQ29yZTExUmVuZGVyTGF5ZXIxOXNjcm9sbFJlY3RUb1Zpc2libGVF
UktOU183SW50UmVjdEViUktOUzBfMTVTY3JvbGxBbGlnbm1lbnRFUzZfCiBfX1pON1dlYkNvcmUx
MVJlbmRlckxheWVyMjBnQWxpZ25Ub0VkZ2VJZk5lZWRlZEUKLV9fWk43V2ViQ29yZTExY3VycmVu
dFRpbWVFdgogX19aTjdXZWJDb3JlMTFnbG9iYWxQb2ludEVSSzhfTlNQb2ludFA4TlNXaW5kb3cK
IF9fWk43V2ViQ29yZTExdG9Vc2VyU3BhY2VFUks3X05TUmVjdFA4TlNXaW5kb3cKIF9fWk43V2Vi
Q29yZTEyQXRvbWljU3RyaW5nM2FkZEVQS2MKSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5wcm8KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9XZWJDb3JlLnBybwkocmV2aXNpb24gMzk3ODApCisrKyBXZWJD
b3JlL1dlYkNvcmUucHJvCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUzLDkgKzExNTMsNiBAQCBTT1VS
Q0VTICs9IFwKICAgICAuLi9XZWJLaXQvcXQvQXBpL3F3ZWJkYXRhYmFzZS5jcHAKIAogCi0gICAg
d2luMzItKnx3aW5jZSo6IFNPVVJDRVMgKz0gcGxhdGZvcm0vd2luL1N5c3RlbVRpbWVXaW4uY3Bw
Ci0gICAgZWxzZTogU09VUkNFUyArPSBwbGF0Zm9ybS9xdC9TeXN0ZW1UaW1lUXQuY3BwCi0KICAg
ICBtYWMgewogICAgICAgICBTT1VSQ0VTICs9IFwKICAgICAgICAgICAgIHBsYXRmb3JtL3RleHQv
Y2YvU3RyaW5nQ0YuY3BwIFwKSW5kZXg6IFdlYkNvcmUvd2ViY29yZS13eC5ia2wKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViQ29yZS93ZWJjb3JlLXd4LmJrbAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3Jl
L3dlYmNvcmUtd3guYmtsCSh3b3JraW5nIGNvcHkpCkBAIC04OSw3ICs4OSw2IEBAIHd4V2ViQ29y
ZSBwb3J0IEJha2VmaWxlIHByb2plY3QgZmlsZS4KICAgICAgICAgICAgIHBsYXRmb3JtL3d4L1Nj
cm9sbFZpZXdXeC5jcHAKICAgICAgICAgICAgIHBsYXRmb3JtL3d4L1NvdW5kV3guY3BwCiAgICAg
ICAgICAgICBwbGF0Zm9ybS90ZXh0L3d4L1N0cmluZ1d4LmNwcAotICAgICAgICAgICAgcGxhdGZv
cm0vd3gvU3lzdGVtVGltZVd4LmNwcAogICAgICAgICAgICAgcGxhdGZvcm0vd3gvV2lkZ2V0V3gu
Y3BwCiAgICAgICAgICAgICBwbGF0Zm9ybS93eC9Db250ZXh0TWVudVd4LmNwcAogICAgICAgICAg
ICAgcGxhdGZvcm0vd3gvQ29udGV4dE1lbnVJdGVtV3guY3BwCkluZGV4OiBXZWJDb3JlL0Zvcndh
cmRpbmdIZWFkZXJzL3d0Zi9DdXJyZW50VGltZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvRm9y
d2FyZGluZ0hlYWRlcnMvd3RmL0N1cnJlbnRUaW1lLmgJKHJldmlzaW9uIDApCisrKyBXZWJDb3Jl
L0ZvcndhcmRpbmdIZWFkZXJzL3d0Zi9DdXJyZW50VGltZS5oCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxIEBACisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQ3VycmVudFRpbWUuaD4KSW5kZXg6IFdl
YkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0Nv
bnRhaW5lck5vZGUuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiw3ICszNiw3IEBACiAjaW5jbHVkZSAiTXV0
YXRpb25FdmVudC5oIgogI2luY2x1ZGUgIlJlbmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUm9vdElu
bGluZUJveC5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVu
dFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNyArMTA0LDYgQEAKICNpbmNsdWRlICJTZXR0aW5n
cy5oIgogI2luY2x1ZGUgIlN0b3JhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlN0eWxlU2hlZXRMaXN0
LmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIlRleHRFdmVudC5oIgogI2lu
Y2x1ZGUgIlRleHRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIK
QEAgLTExOSw2ICsxMTgsNyBAQAogI2luY2x1ZGUgIlhNTFRva2VuaXplci5oIgogI2luY2x1ZGUg
IkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvSGFzaEZ1bmN0aW9ucy5oPgogI2lu
Y2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgpJ
bmRleDogV2ViQ29yZS9kb20vRXZlbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvZG9tL0V2
ZW50LmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL2RvbS9FdmVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDcgKzI0LDcgQEAKICNpbmNsdWRlICJFdmVudC5oIgogCiAjaW5jbHVk
ZSAiQXRvbWljU3RyaW5nLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0
Zi9DdXJyZW50VGltZS5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUv
aGlzdG9yeS9DYWNoZWRQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2hpc3RvcnkvQ2Fj
aGVkUGFnZS5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9oaXN0b3J5L0NhY2hlZFBh
Z2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw3ICszOSw3IEBACiAjaW5jbHVkZSAiTG9nZ2lu
Zy5oIgogI2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQYWdlR3JvdXAuaCIKLSNpbmNsdWRl
ICJTeXN0ZW1UaW1lLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogCiAjaWYgRU5BQkxFKFNWRykKSW5kZXg6IFdl
YkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaGlzdG9y
eS9QYWdlQ2FjaGUuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvaGlzdG9yeS9QYWdl
Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAiSGlz
dG9yeUl0ZW0uaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiU3lzdGVtVGltZS5o
IgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwog
CkluZGV4OiBXZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdl
YkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYsOCAr
NDYsOCBAQAogI2luY2x1ZGUgIk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZGVvLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUg
IlRpbWVSYW5nZXMuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpAQCAtMzQ4LDcgKzM0OCw3
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bG9hZChFeGNlcHRpb25Db2QKICAgICAgICAgcmVu
ZGVyZXIoKS0+dXBkYXRlRnJvbUVsZW1lbnQoKTsKICAgICAKICAgICAvLyAxNAotICAgIG1fcHJl
dmlvdXNQcm9ncmVzc1RpbWUgPSBXZWJDb3JlOjpjdXJyZW50VGltZSgpOworICAgIG1fcHJldmlv
dXNQcm9ncmVzc1RpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CiAgICAgbV9wcmV2aW91c1Byb2dy
ZXNzID0gMDsKICAgICBpZiAobV9iZWd1bikKICAgICAgICAgLy8gMzUwbXMgaXMgbm90IG1hZ2lj
LCBpdCBpcyBpbiB0aGUgc3BlYyEKQEAgLTQ5Myw3ICs0OTMsNyBAQCB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnByb2dyZXNzRXZlbnRUaW1lCiB7CiAgICAgQVNTRVJUKG1fcGxheWVyKTsKICAgICB1
bnNpZ25lZCBwcm9ncmVzcyA9IG1fcGxheWVyLT5ieXRlc0xvYWRlZCgpOwotICAgIGRvdWJsZSB0
aW1lID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKKyAgICBkb3VibGUgdGltZSA9IFdURjo6Y3Vy
cmVudFRpbWUoKTsKICAgICBkb3VibGUgdGltZWRlbHRhID0gdGltZSAtIG1fcHJldmlvdXNQcm9n
cmVzc1RpbWU7CiAgICAgaWYgKHRpbWVkZWx0YSkKICAgICAgICAgbV9idWZmZXJpbmdSYXRlID0g
KGZsb2F0KSgwLjggKiBtX2J1ZmZlcmluZ1JhdGUgKyAwLjIgKiAoKGZsb2F0KShwcm9ncmVzcyAt
IG1fcHJldmlvdXNQcm9ncmVzcykpIC8gdGltZWRlbHRhKTsKSW5kZXg6IFdlYkNvcmUvaHRtbC9I
VE1MVG9rZW5pemVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2h0bWwvSFRNTFRva2VuaXpl
ci5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9odG1sL0hUTUxUb2tlbml6ZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00Niw4ICs0Niw4IEBACiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgogI2luY2x1ZGUgIlNjcmlwdFNvdXJjZUNvZGUuaCIKICNpbmNsdWRlICJTY3JpcHRW
YWx1ZS5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlIDx3dGYvQVNDSUlDVHlw
ZS5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiAjaW5jbHVkZSAiSFRNTEVudGl0
eU5hbWVzLmMiCiAKSW5kZXg6IFdlYkNvcmUvaHRtbC9QcmVsb2FkU2Nhbm5lci5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9odG1sL1ByZWxvYWRTY2FubmVyLmNwcAkocmV2aXNpb24gMzk3ODAp
CisrKyBXZWJDb3JlL2h0bWwvUHJlbG9hZFNjYW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00
MCw3ICs0MCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJIVE1MTGlu
a0VsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1l
LmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUv
VW5pY29kZS5oPgogCiAjaWZkZWYgX19HTlVDX18KSW5kZXg6IFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaW5zcGVjdG9yL0lu
c3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02MSw3ICs2MSw2
IEBACiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTY3JpcHRDYWxsU3RhY2suaCIK
ICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5j
bHVkZSAiVGV4dEVuY29kaW5nLmgiCiAjaW5jbHVkZSAiVGV4dEl0ZXJhdG9yLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0Q29udHJvbGxlci5oIgpAQCAtNzQsNiArNzMsNyBAQAogI2luY2x1ZGUgPHJ1bnRp
bWUvQ29sbGVjdG9ySGVhcEl0ZXJhdG9yLmg+CiAjaW5jbHVkZSA8cHJvZmlsZXIvUHJvZmlsZS5o
PgogI2luY2x1ZGUgPHByb2ZpbGVyL1Byb2ZpbGVyLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRU
aW1lLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL2xvYWRlci9DYWNoZS5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9s
b2FkZXIvQ2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw4ICszNCw4IEBACiAjaW5jbHVk
ZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiSW1hZ2UuaCIKICNpbmNsdWRlICJSZXNvdXJjZUhh
bmRsZS5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlIDxzdGRpby5oPgorI2lu
Y2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwogCkBAIC0y
NzQsNyArMjc0LDcgQEAgdm9pZCBDYWNoZTo6cHJ1bmVMaXZlUmVzb3VyY2VzKCkKICAgICB1bnNp
Z25lZCB0YXJnZXRTaXplID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGNhcGFjaXR5ICogY1Rhcmdl
dFBydW5lUGVyY2VudGFnZSk7IC8vIEN1dCBieSBhIHBlcmNlbnRhZ2UgdG8gYXZvaWQgaW1tZWRp
YXRlbHkgcHJ1bmluZyBhZ2Fpbi4KICAgICBkb3VibGUgY3VycmVudFRpbWUgPSBGcmFtZVZpZXc6
OmN1cnJlbnRQYWludFRpbWVTdGFtcCgpOwogICAgIGlmICghY3VycmVudFRpbWUpIC8vIEluIGNh
c2UgcHJ1bmUgaXMgY2FsbGVkIGRpcmVjdGx5LCBvdXRzaWRlIG9mIGEgRnJhbWUgcGFpbnQuCi0g
ICAgICAgIGN1cnJlbnRUaW1lID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKKyAgICAgICAgY3Vy
cmVudFRpbWUgPSBXVEY6OmN1cnJlbnRUaW1lKCk7CiAgICAgCiAgICAgLy8gRGVzdHJveSBhbnkg
ZGVjb2RlZCBkYXRhIGluIGxpdmUgb2JqZWN0cyB0aGF0IHdlIGNhbi4KICAgICAvLyBTdGFydCBm
cm9tIHRoZSB0YWlsLCBzaW5jZSB0aGlzIGlzIHRoZSBsZWFzdCByZWNlbnRseSBhY2Nlc3NlZCBv
ZiB0aGUgb2JqZWN0cy4KSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZEltYWdlLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRJbWFnZS5jcHAJKHJldmlzaW9uIDM5Nzgw
KQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkSW1hZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
Myw3ICszMyw3IEBACiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5jbHVkZSAiUmVxdWVzdC5o
IgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1
ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9TdGRMaWJFeHRyYXMuaD4KICNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL0NhY2hlZFJlc291
cmNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9DYWNoZWRSZXNvdXJjZS5jcHAJ
KHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9sb2FkZXIvQ2FjaGVkUmVzb3VyY2UuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw2IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1
ZGUgIlB1cmdlYWJsZUJ1ZmZlci5oIgogI2luY2x1ZGUgIlJlcXVlc3QuaCIKLSNpbmNsdWRlICJT
eXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWRMZWFrQ291bnRlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9WZWN0b3IuaD4KIApJbmRleDogV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcAkocmV2aXNp
b24gMzk3ODApCisrKyBXZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg1LDExICs4NSwxMSBAQAogI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luLmgiCiAjaW5j
bHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRl
ICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1
ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3QuaCIKICNpbmNs
dWRlICJYTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNs
dWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAKICNpZiBFTkFCTEUoT0ZGTElORV9XRUJfQVBQTElD
QVRJT05TKQpJbmRleDogV2ViQ29yZS9sb2FkZXIvUHJvZ3Jlc3NUcmFja2VyLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9Qcm9ncmVzc1RyYWNrZXIuY3BwCShyZXZpc2lvbiAzOTc4
MCkKKysrIFdlYkNvcmUvbG9hZGVyL1Byb2dyZXNzVHJhY2tlci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgotI2luY2x1
ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogdXNpbmcg
c3RkOjptaW47CiAKSW5kZXg6IFdlYkNvcmUvbG9hZGVyL2ljb24vSWNvbkRhdGFiYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL2xvYWRlci9pY29uL0ljb25EYXRhYmFzZS5jcHAJKHJldmlz
aW9uIDM5NzgwKQorKysgV2ViQ29yZS9sb2FkZXIvaWNvbi9JY29uRGF0YWJhc2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MCw4ICs0MCw4IEBACiAjaW5jbHVkZSAiUGFnZVVSTFJlY29yZC5oIgog
I2luY2x1ZGUgIlNRTGl0ZVN0YXRlbWVudC5oIgogI2luY2x1ZGUgIlNRTGl0ZVRyYW5zYWN0aW9u
LmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgPHJ1bnRpbWUvSW5pdGlhbGl6
ZVRocmVhZGluZy5oPgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogI2luY2x1ZGUgPHd0
Zi9NYWluVGhyZWFkLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4dHJhcy5oPgogCkluZGV4OiBX
ZWJDb3JlL2xvYWRlci9pY29uL0ljb25SZWNvcmQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
bG9hZGVyL2ljb24vSWNvblJlY29yZC5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9s
b2FkZXIvaWNvbi9JY29uUmVjb3JkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzQsNyArMzQsNiBA
QAogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTUUxpdGVTdGF0ZW1lbnQuaCIKICNp
bmNsdWRlICJTUUxpdGVUcmFuc2FjdGlvbi5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKIAog
I2luY2x1ZGUgPGxpbWl0cy5oPgogCkluZGV4OiBXZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAJKHJldmlz
aW9uIDM5NzgwKQorKysgV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtNTcsMTAgKzU3LDEwIEBACiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiU2VsZWN0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCi0j
aW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIlRleHQuaCIKICNpbmNsdWRlICJodG1s
ZWRpdGluZy5oIgogI2luY2x1ZGUgIm1hcmt1cC5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGlt
ZS5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpJbmRl
eDogV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJh
bWUuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTY3LDcgKzY3LDYgQEAKICNpbmNsdWRlICJSZW5kZXJUaGVtZS5oIgogI2lu
Y2x1ZGUgIlJlbmRlclZpZXcuaCIKICNpbmNsdWRlICJTZXR0aW5ncy5oIgotI2luY2x1ZGUgIlN5
c3RlbVRpbWUuaCIKICNpbmNsdWRlICJUZXh0SXRlcmF0b3IuaCIKICNpbmNsdWRlICJUZXh0UmVz
b3VyY2VEZWNvZGVyLmgiCiAjaW5jbHVkZSAiWE1MTmFtZXMuaCIKSW5kZXg6IFdlYkNvcmUvcGFn
ZS9GcmFtZVZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3Bw
CShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC00OSw3ICs0OSw3IEBACiAjaW5jbHVkZSAiUmVuZGVyVGhlbWUuaCIKICNpbmNs
dWRlICJSZW5kZXJWaWV3LmgiCiAjaW5jbHVkZSAiU2V0dGluZ3MuaCIKLSNpbmNsdWRlICJTeXN0
ZW1UaW1lLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIApJbmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9BbmltYXRpb25CYXNlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkJhc2UuY3BwCShy
ZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvcGFnZS9hbmltYXRpb24vQW5pbWF0aW9uQmFzZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRlICJNYXRyaXhUcmFu
c2Zvcm1PcGVyYXRpb24uaCIKICNpbmNsdWRlICJSZW5kZXJPYmplY3QuaCIKICNpbmNsdWRlICJS
ZW5kZXJTdHlsZS5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlICJVbml0QmV6
aWVyLmgiCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKSW5kZXg6IFdlYkNvcmUvcGFnZS9hbmltYXRp
b24vQW5pbWF0aW9uQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2Fu
aW1hdGlvbi9BbmltYXRpb25Db250cm9sbGVyLmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJD
b3JlL3BhZ2UvYW5pbWF0aW9uL0FuaW1hdGlvbkNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSAiQ1NTUGFyc2VyLmgiCiAjaW5jbHVkZSAiRXZl
bnROYW1lcy5oIgogI2luY2x1ZGUgIkZyYW1lLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgog
I2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIApJbmRleDogV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFtZUFu
aW1hdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdlL2FuaW1hdGlvbi9LZXlmcmFt
ZUFuaW1hdGlvbi5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29yZS9wYWdlL2FuaW1hdGlv
bi9LZXlmcmFtZUFuaW1hdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAK
ICNpbmNsdWRlICJDb21wb3NpdGVBbmltYXRpb24uaCIKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiUmVuZGVyT2JqZWN0LmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU3lzdGVtVGltZS5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU3lzdGVtVGltZS5oCShyZXZpc2lvbiAz
OTc4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU3lzdGVtVGltZS5oCSh3b3JraW5nIGNvcHkpCkBA
IC0yOCwxMCArMjgsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLSAgICAvLyBSZXR1cm4g
dGhlIGN1cnJlbnQgc3lzdGVtIHRpbWUgaW4gc2Vjb25kcywgdXNpbmcgdGhlIGNsYXNzaWMgUE9T
SVggZXBvY2ggb2YgSmFudWFyeSAxLCAxOTcwLgotICAgIC8vIExpa2UgdGltZSgwKSBmcm9tIDx0
aW1lLmg+LCBleGNlcHQgd2l0aCBhIHdpZGVyIHJhbmdlIG9mIHZhbHVlcyBhbmQgaGlnaGVyIHBy
ZWNpc2lvbi4KLSAgICBkb3VibGUgY3VycmVudFRpbWUoKTsKLQogICAgIC8vIFJldHVybiB0aGUg
bnVtYmVyIG9mIHNlY29uZHMgc2luY2UgYSB1c2VyIGV2ZW50IGhhcyBiZWVuIGdlbmVyYXRlZAog
ICAgIGZsb2F0IHVzZXJJZGxlVGltZSgpOwogICAgIApJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9U
aW1lci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHJldmlz
aW9uIDM5NzgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9UaW1lci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTI3LDEwICsyNywxMCBAQAogI2luY2x1ZGUgIlRpbWVyLmgiCiAKICNpbmNsdWRlICJTaGFy
ZWRUaW1lci5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKICNpbmNsdWRlIDxsaW1pdHMuaD4K
ICNpbmNsdWRlIDxsaW1pdHM+CiAjaW5jbHVkZSA8bWF0aC5oPgorI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1ZlY3Rv
ci5oPgogCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdlLmNwcAko
cmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0JpdG1hcEltYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTEgKzMwLDExIEBACiAjaW5jbHVkZSAiRmxvYXRS
ZWN0LmgiCiAjaW5jbHVkZSAiSW1hZ2VPYnNlcnZlci5oIgogI2luY2x1ZGUgIkludFJlY3QuaCIK
KyNpbmNsdWRlICJNSU1FVHlwZVJlZ2lzdHJ5LmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1TdHJpbmcu
aCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
IDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSAi
TUlNRVR5cGVSZWdpc3RyeS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKSW5kZXg6IFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL01vdXNlRXZlbnRHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUv
cGxhdGZvcm0vZ3RrL01vdXNlRXZlbnRHdGsuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vZ3RrL01vdXNlRXZlbnRHdGsuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3
ICsyNyw2IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1Nb3VzZUV2
ZW50LmgiCiAKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5o
IgogCiAjaW5jbHVkZSA8Z2RrL2dkay5oPgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU2hh
cmVkVGltZXJHdGsuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1NoYXJl
ZFRpbWVyR3RrLmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9T
aGFyZWRUaW1lckd0ay5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4LDggKzI4LDggQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogCi0jaW5jbHVkZSAiU3lz
dGVtVGltZS5oIgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1
cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8Z2xpYi5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TeXN0ZW1UaW1lR3RrLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TeXN0ZW1UaW1lR3RrLmNwcAkocmV2aXNpb24gMzk3ODAp
CisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TeXN0ZW1UaW1lR3RrLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFscCBUb2tlciA8
YWxwQGF0b2tlci5jb20+Ci0gKgotICogVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlv
dSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICogbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJt
cyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAqIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICogdmVyc2lvbiAy
IG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAqIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gKiBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLSAqCi0gKiBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gKiBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAg
SWYgbm90LCB3cml0ZSB0bwotICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwg
NTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDxnbGliLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotZG91YmxlIGN1cnJlbnRUaW1lKCkKLXsKLSAgR1RpbWVW
YWwgbm93OwotICBnX2dldF9jdXJyZW50X3RpbWUoJm5vdyk7Ci0gIHJldHVybiBzdGF0aWNfY2Fz
dDxkb3VibGU+KG5vdy50dl9zZWMpICsgc3RhdGljX2Nhc3Q8ZG91YmxlPihub3cudHZfdXNlYyAv
IDEwMDAwMDAuMCk7Ci19Ci0KLX0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vZ3RrL1N5c3RlbVRp
bWVMaW51eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9ndGsvU3lzdGVtVGlt
ZUxpbnV4LmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL2d0ay9TeXN0
ZW1UaW1lTGludXguY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQ0ICswLDAgQEAKLS8qCi0gKiBD
b3B5cmlnaHQgKEMpIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDYgTWljaGFlbCBFbW1lbCBtaWtlLmVtbWVsQGdtYWls
LmNvbQotICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgotCi0jaW5jbHVkZSA8c3lzL3RpbWUuaD4KLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi1kb3VibGUgY3VycmVudFRpbWUoKQotewotICBzdHJ1Y3QgdGlt
ZXZhbCBhVGltZXZhbDsKLSAgc3RydWN0IHRpbWV6b25lIGFUaW1lem9uZTsKLQotICBnZXR0aW1l
b2ZkYXkoICZhVGltZXZhbCwgJmFUaW1lem9uZSApOwotICByZXR1cm4gKGRvdWJsZSlhVGltZXZh
bC50dl9zZWMgKyAoZG91YmxlKShhVGltZXZhbC50dl91c2VjIC8gMTAwMDAwMC4wICk7Ci19Ci0K
LX0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1N5c3RlbVRpbWVNYWMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1N5c3RlbVRpbWVNYWMuY3BwCShyZXZpc2lvbiAz
OTc4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vbWFjL1N5c3RlbVRpbWVNYWMuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMSwxMSArMzEsNiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWRvdWJs
ZSBjdXJyZW50VGltZSgpCi17Ci0gICAgcmV0dXJuIENGQWJzb2x1dGVUaW1lR2V0Q3VycmVudCgp
ICsga0NGQWJzb2x1dGVUaW1lSW50ZXJ2YWxTaW5jZTE5NzA7Ci19Ci0KIGZsb2F0IHVzZXJJZGxl
VGltZSgpCiB7CiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihDR0V2ZW50U291cmNlU2Vj
b25kc1NpbmNlTGFzdEV2ZW50VHlwZShrQ0dFdmVudFNvdXJjZVN0YXRlQ29tYmluZWRTZXNzaW9u
U3RhdGUsIGtDR0FueUlucHV0RXZlbnRUeXBlKSk7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0
L1BsYXRmb3JtTW91c2VFdmVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3Jt
L3F0L1BsYXRmb3JtTW91c2VFdmVudFF0LmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL3F0L1BsYXRmb3JtTW91c2VFdmVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjgsNyArMjgsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlBsYXRmb3JtTW91
c2VFdmVudC5oIgogCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJy
ZW50VGltZS5oPgogCiAjaW5jbHVkZSA8UU1vdXNlRXZlbnQ+CiAKQEAgLTM2LDcgKzM2LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBsYXRmb3JtTW91c2VF
dmVudChRSW5wdXRFdmVudCogZXZlbnQsIGludCBjbGlja0NvdW50KQogewotICAgIG1fdGltZXN0
YW1wID0gV2ViQ29yZTo6Y3VycmVudFRpbWUoKTsKKyAgICBtX3RpbWVzdGFtcCA9IFdURjo6Y3Vy
cmVudFRpbWUoKTsKIAogICAgIFFNb3VzZUV2ZW50ICptZSA9IDA7CiAKSW5kZXg6IFdlYkNvcmUv
cGxhdGZvcm0vcXQvU2hhcmVkVGltZXJRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0
Zm9ybS9xdC9TaGFyZWRUaW1lclF0LmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL3Bs
YXRmb3JtL3F0L1NoYXJlZFRpbWVyUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw3
IEBACiAKICNpbmNsdWRlICJjb25maWcuaCIKIAotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2luY2x1ZGUgPFFCYXNpY1RpbWVyPgogI2lu
Y2x1ZGUgPFFDb3JlQXBwbGljYXRpb24+CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1N5c3Rl
bVRpbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9xdC9TeXN0ZW1UaW1l
UXQuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vcXQvU3lzdGVtVGlt
ZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDA2IERpcmsgTXVlbGxlciA8bXVlbGxlckBrZGUub3JnPgotICoKLSAqIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6
Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAq
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlN5c3Rl
bVRpbWUuaCIKLQotI2luY2x1ZGUgPHN5cy90aW1lLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotZG91YmxlIGN1cnJlbnRUaW1lKCkKLXsKLSAgICBzdHJ1Y3QgdGltZXZhbCB0djsKLSAgICBz
dHJ1Y3QgdGltZXpvbmUgdHo7Ci0KLSAgICBnZXR0aW1lb2ZkYXkoJnR2LCAmdHopOwotICAgIHJl
dHVybiAoZG91YmxlKXR2LnR2X3NlYyArIChkb3VibGUpKHR2LnR2X3VzZWMgLyAxMDAwMDAwLjAp
OwotfQotCi19Ci0KLS8vIHZpbTogdHM9NCBzdz00IGV0CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L3dpbi9TaGFyZWRUaW1lcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93
aW4vU2hhcmVkVGltZXJXaW4uY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUvcGxhdGZv
cm0vd2luL1NoYXJlZFRpbWVyV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcsOSArMjcsOSBA
QAogI2luY2x1ZGUgIlNoYXJlZFRpbWVyLmgiCiAKICNpbmNsdWRlICJQYWdlLmgiCi0jaW5jbHVk
ZSAiU3lzdGVtVGltZS5oIgogI2luY2x1ZGUgIldpZGdldC5oIgogI2luY2x1ZGUgPHd0Zi9Bc3Nl
cnRpb25zLmg+CisjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAKIC8vIE5vdGU6IHd4IGhl
YWRlcnMgc2V0IGRlZmluZXMgdGhhdCBhZmZlY3QgdGhlIGNvbmZpZ3VyYXRpb24gb2Ygd2luZG93
cy5oCiAvLyBzbyB3ZSBtdXN0IGluY2x1ZGUgdGhlIHd4IGhlYWRlciBmaXJzdCB0byBnZXQgdW5p
Y29kZSB2ZXJzaW9ucyBvZiBmdW5jdGlvbnMsCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3dpbi9T
eXN0ZW1UaW1lV2luLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3dpbi9TeXN0
ZW1UaW1lV2luLmNwcAkocmV2aXNpb24gMzk3ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL3dpbi9T
eXN0ZW1UaW1lV2luLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYsNyArMjYsNiBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKIAotI2luY2x1ZGUgPERhdGVN
YXRoLmg+CiAjaW5jbHVkZSA8d2luZG93cy5oPgogCiAjaWYgQ09NUElMRVIoTUlOR1cpIHx8IChQ
TEFURk9STShRVCkgJiYgQ09NUElMRVIoTVNWQykpCkBAIC0zNiwxNCArMzUsNiBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWRvdWJsZSBjdXJyZW50VGltZSgpCi17Ci0gICAgLy8gQ2FsbCB0
aHJvdWdoIHRvIG91ciBoaWdoLXJlc29sdXRpb24gSlNDIHRpbWUgY29kZSwgc2luY2UgY2FsbHMg
bGlrZSBHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSBhbmQgZnRpbWUgYXJlIG9ubHkgYWNjdXJhdGUg
d2l0aGluIDE1bXMuCi0gICAgLy8gVGhpcyByZXNvbHV0aW9uIGNhbiBiZSBpbXByb3ZlZCB3aXRo
IHRpbWVCZWdpblBlcmlvZC90aW1lRW5kUGVyaW9kIG9uIFZpc3RhLCBidXQgdGhlc2UgY2FsbHMg
ZG9uJ3QKLSAgICAvLyBpbXByb3ZlIHRoZSByZXNvbHV0aW9uIG9mIGRhdGUvdGltZSBnZXR0ZXJz
IChHZXRTeXN0ZW1UaW1lQXNGaWxlVGltZSwgZnRpbWUsIGV0Yy4pIG9uIFhQLgotICAgIHJldHVy
biBKU0M6OmdldEN1cnJlbnRVVENUaW1lV2l0aE1pY3Jvc2Vjb25kcygpICogMC4wMDE7Ci19Ci0K
IGZsb2F0IHVzZXJJZGxlVGltZSgpCiB7CiAjaWYgIVBMQVRGT1JNKFdJTl9DRSkKSW5kZXg6IFdl
YkNvcmUvcGxhdGZvcm0vd3gvTW91c2VFdmVudFd4LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BsYXRmb3JtL3d4L01vdXNlRXZlbnRXeC5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS93eC9Nb3VzZUV2ZW50V3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiQXNzZXJ0aW9ucy5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtTW91c2VFdmVudC5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KIAogI2luY2x1ZGUgPHd4L2RlZnMuaD4KICNpbmNs
dWRlIDx3eC9ldmVudC5oPgpAQCAtNjksNyArNjksNyBAQCBQbGF0Zm9ybU1vdXNlRXZlbnQ6OlBs
YXRmb3JtTW91c2VFdmVudChjCiAgICAgZWxzZQogICAgICAgICBtX2NsaWNrQ291bnQgPSBldmVu
dC5CdXR0b25EQ2xpY2soKSA/IDIgOiAxOwogCi0gICAgbV90aW1lc3RhbXAgPSBXZWJDb3JlOjpj
dXJyZW50VGltZSgpOworICAgIG1fdGltZXN0YW1wID0gV1RGOjpjdXJyZW50VGltZSgpOwogfQog
CiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1NoYXJlZFRpbWVyV3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2hhcmVkVGltZXJXeC5jcHAJKHJldmlzaW9uIDM5
NzgwKQorKysgV2ViQ29yZS9wbGF0Zm9ybS93eC9TaGFyZWRUaW1lcld4LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMjcsMTAgKzI3LDEwIEBACiAKICNpbmNsdWRlICJTaGFyZWRUaW1lci5oIgogI2lu
Y2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCi0jaW5jbHVkZSAiU3lzdGVtVGltZS5oIgogI2luY2x1
ZGUgIldpZGdldC5oIgogCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KKyNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDxzdGRpby5oPgogCiAjaW5jbHVkZSAid3gvZGVm
cy5oIgpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9TeXN0ZW1UaW1lV3guY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vd3gvU3lzdGVtVGltZVd4LmNwcAkocmV2aXNpb24gMzk3
ODApCisrKyBXZWJDb3JlL3BsYXRmb3JtL3d4L1N5c3RlbVRpbWVXeC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMzkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNyBSb2JpbiBEdW5u
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIENPTVBVVEVSLCBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgQ09NUFVURVIsIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICog
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5j
bHVkZSAiU3lzdGVtVGltZS5oIgotCi0jaW5jbHVkZSA8d3gvZGF0ZXRpbWUuaD4KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1kb3VibGUgY3VycmVudFRpbWUoKQotewotICAgIHd4RGF0ZVRpbWUg
bm93ID0gd3hEYXRlVGltZTo6VU5vdygpOwotICAgIHJldHVybiAoZG91YmxlKW5vdy5HZXRUaWNr
cygpICsgKGRvdWJsZSkobm93LkdldE1pbGxpc2Vjb25kKCkgLyAxMDAwLjApOwotfQotCi19Cklu
ZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzcsNyArMzcs
NyBAQAogI2luY2x1ZGUgIkhpdFRlc3RSZXN1bHQuaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5j
bHVkZSAiUmVuZGVyVmlldy5oIgotI2luY2x1ZGUgIlN5c3RlbVRpbWUuaCIKKyNpbmNsdWRlIDx3
dGYvQ3VycmVudFRpbWUuaD4KIAogI2lmIEVOQUJMRShXTUwpCiAjaW5jbHVkZSAiV01MSW1hZ2VF
bGVtZW50LmgiCkluZGV4OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZWRpYS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWVkaWEuY3BwCShyZXZpc2lvbiAzOTc4
MCkKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1lZGlhLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDAsNyArNDAsNyBAQAogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKICNpbmNsdWRlICJNZWRp
YVBsYXllci5oIgogI2luY2x1ZGUgIlJlbmRlclNsaWRlci5oIgotI2luY2x1ZGUgIlN5c3RlbVRp
bWUuaCIKKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTWF0aEV4
dHJhcy5oPgogCiB1c2luZyBuYW1lc3BhY2Ugc3RkOwpJbmRleDogV2ViQ29yZS9zdmcvYW5pbWF0
aW9uL1NNSUxUaW1lQ29udGFpbmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3N2Zy9hbmlt
YXRpb24vU01JTFRpbWVDb250YWluZXIuY3BwCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYkNvcmUv
c3ZnL2FuaW1hdGlvbi9TTUlMVGltZUNvbnRhaW5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0
LDcgKzM0LDcgQEAKICNpbmNsdWRlICJTVkdBbmltYXRpb25FbGVtZW50LmgiCiAjaW5jbHVkZSAi
U1ZHU01JTEVsZW1lbnQuaCIKICNpbmNsdWRlICJTVkdTVkdFbGVtZW50LmgiCi0jaW5jbHVkZSAi
U3lzdGVtVGltZS5oIgorI2luY2x1ZGUgPHd0Zi9DdXJyZW50VGltZS5oPgogCiB1c2luZyBuYW1l
c3BhY2Ugc3RkOwogCkluZGV4OiBXZWJDb3JlL3htbC9YTUxIdHRwUmVxdWVzdC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS94bWwvWE1MSHR0cFJlcXVlc3QuY3BwCShyZXZpc2lvbiAzOTc4MCkK
KysrIFdlYkNvcmUveG1sL1hNTEh0dHBSZXF1ZXN0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDAs
MTIgKzQwLDEyIEBACiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAj
aW5jbHVkZSAiU3VicmVzb3VyY2VMb2FkZXIuaCIKLSNpbmNsdWRlICJTeXN0ZW1UaW1lLmgiCiAj
aW5jbHVkZSAiVGV4dFJlc291cmNlRGVjb2Rlci5oIgogI2luY2x1ZGUgIlhNTEh0dHBSZXF1ZXN0
RXhjZXB0aW9uLmgiCiAjaW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RQcm9ncmVzc0V2ZW50LmgiCiAj
aW5jbHVkZSAiWE1MSHR0cFJlcXVlc3RVcGxvYWQuaCIKICNpbmNsdWRlICJtYXJrdXAuaCIKKyNp
bmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4K
ICNpbmNsdWRlIDx3dGYvU3RkTGliRXh0cmFzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGluZy5o
PgpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAwOS0wMS0xMCAgRG1pdHJ5IFRpdG92ICA8ZGlt
aWNoQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMyMDcK
KyAgICAgICAgTW92ZWQgY3VycmVudFRpbWUoKSB0byBmcm9tIFdlYkNvcmUgdG8gV1RGLgorCisg
ICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbTogYSBkaWZmZXJlbnQgaGVhZGVyIGZpbGUgaW5j
bHVkZWQuCisKIDIwMDktMDEtMTAgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
CShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtNzMsNyArNzMsNiBAQAogI2ltcG9ydCA8V2ViQ29yZS9SZW5kZXJMYXll
ci5oPgogI2ltcG9ydCA8V2ViQ29yZS9SZXBsYWNlU2VsZWN0aW9uQ29tbWFuZC5oPgogI2ltcG9y
dCA8V2ViQ29yZS9TbWFydFJlcGxhY2UuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU3lzdGVtVGltZS5o
PgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SXRlcmF0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVHlw
aW5nQ29tbWFuZC5oPgogI2ltcG9ydCA8V2ViQ29yZS9odG1sZWRpdGluZy5oPgpAQCAtODMsNiAr
ODIsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS92aXNpYmxlX3VuaXRzLmg+CiAjaW1wb3J0IDxydW50
aW1lL0pTTG9jay5oPgogI2ltcG9ydCA8cnVudGltZS9KU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3Rm
L0N1cnJlbnRUaW1lLmg+CiAKIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKSW5kZXg6IFdlYktpdC93aW4vQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktp
dC93aW4vQ2hhbmdlTG9nCShyZXZpc2lvbiAzOTc4MCkKKysrIFdlYktpdC93aW4vQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDEtMTAgIERtaXRyeSBUaXRv
diAgPGRpbWljaEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMjA3CisgICAgICAgIE1vdmVkIGN1cnJlbnRUaW1lKCkgdG8gZnJvbSBXZWJDb3JlIHRvIFdU
Ri4KKworICAgICAgICAqIFdlYkRvd25sb2FkLmNwcDogYSBkaWZmZXJlbnQgaGVhZGVyIGZpbGUg
aW5jbHVkZWQuCisgICAgICAgICogV2ViRHJvcFNvdXJjZS5jcHA6IGEgZGlmZmVyZW50IGhlYWRl
ciBmaWxlIGluY2x1ZGVkLgorCiAyMDA5LTAxLTA5ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBKb24gSG9uZXljdXR0LgpJbmRleDogV2ViS2l0
L3dpbi9XZWJEb3dubG9hZC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3dpbi9XZWJEb3dubG9h
ZC5jcHAJKHJldmlzaW9uIDM5NzgwKQorKysgV2ViS2l0L3dpbi9XZWJEb3dubG9hZC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ5LDcgKzQ5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1Jlc291cmNl
SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1N5c3RlbVRp
bWUuaD4KKyNpbmNsdWRlIDx3dGYvQ3VycmVudFRpbWUuaD4KICNpbmNsdWRlIDx3dGYvU3RkTGli
RXh0cmFzLmg+CiAjcHJhZ21hIHdhcm5pbmcocG9wKQogCkluZGV4OiBXZWJLaXQvd2luL1dlYkRy
b3BTb3VyY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC93aW4vV2ViRHJvcFNvdXJjZS5jcHAJ
KHJldmlzaW9uIDM5NzgwKQorKysgV2ViS2l0L3dpbi9XZWJEcm9wU291cmNlLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMzQsNyArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtTW91c2VF
dmVudC5oPgotI2luY2x1ZGUgPFdlYkNvcmUvU3lzdGVtVGltZS5oPgorI2luY2x1ZGUgPHd0Zi9D
dXJyZW50VGltZS5oPgogCiAjaW5jbHVkZSA8V2luZG93cy5oPgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>