<?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>210785</bug_id>
          
          <creation_ts>2020-04-20 23:20:26 -0700</creation_ts>
          <short_desc>[Win] Use generic WorkQueue instead of WorkQueueWin.cpp</short_desc>
          <delta_ts>2020-04-21 17:31:14 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=186455</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1643782</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-20 23:20:26 -0700</bug_when>
    <thetext>[Win] Use generic WorkQueue instead of WorkQueueWin.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643783</commentid>
    <comment_count>1</comment_count>
      <attachid>397056</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-20 23:20:43 -0700</bug_when>
    <thetext>Created attachment 397056
WIP patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644011</commentid>
    <comment_count>2</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 14:22:06 -0700</bug_when>
    <thetext>WorkQueueWin is using random threads to executing dispatched
functions. This is not desired for IPC::Connection because it
need to call CancelIo API in the thread started aync ReadFile
operations. (Bug 209847 Comment 25)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644015</commentid>
    <comment_count>3</comment_count>
      <attachid>397120</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 14:26:38 -0700</bug_when>
    <thetext>Created attachment 397120
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644020</commentid>
    <comment_count>4</comment_count>
      <attachid>397120</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-04-21 14:38:01 -0700</bug_when>
    <thetext>Comment on attachment 397120
Patch

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

&gt; Source/WTF/wtf/WorkQueue.h:35
&gt; -#if USE(COCOA_EVENT_LOOP)
&gt; +#if PLATFORM(COCOA)

Why is this a good change? Our overall plan is to eventually cut PLATFORM(XXX) down to an absolute minimum. Seems sad to move in the other direction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644038</commentid>
    <comment_count>5</comment_count>
      <attachid>397120</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 15:03:48 -0700</bug_when>
    <thetext>Comment on attachment 397120
Patch

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

Thank you for the review.

&gt;&gt; Source/WTF/wtf/WorkQueue.h:35
&gt;&gt; +#if PLATFORM(COCOA)
&gt; 
&gt; Why is this a good change? Our overall plan is to eventually cut PLATFORM(XXX) down to an absolute minimum. Seems sad to move in the other direction.

Agreed. Will fix.
I think USE_*_EVENT_LOOP macros should be refined. But it is another topic.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644090</commentid>
    <comment_count>6</comment_count>
      <attachid>397139</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 16:46:25 -0700</bug_when>
    <thetext>Created attachment 397139
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644113</commentid>
    <comment_count>7</comment_count>
      <attachid>397139</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 17:30:00 -0700</bug_when>
    <thetext>Comment on attachment 397139
Patch for landing

Clearing flags on attachment: 397139

Committed r260477: &lt;https://trac.webkit.org/changeset/260477&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644114</commentid>
    <comment_count>8</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-04-21 17:30:03 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644115</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-21 17:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62140869&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397056</attachid>
            <date>2020-04-20 23:20:43 -0700</date>
            <delta_ts>2020-04-21 14:26:27 -0700</delta_ts>
            <desc>WIP patch</desc>
            <filename>wip.patch</filename>
            <type>text/plain</type>
            <size>11843</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlIGIvU291cmNlL1dU
Ri93dGYvUGxhdGZvcm1XaW4uY21ha2UKaW5kZXggZThmZDE5OGE1YmIuLjZlODBiOTlhMDRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQorKysgYi9Tb3VyY2Uv
V1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZQpAQCAtOCw2ICs4LDggQEAgbGlzdChBUFBFTkQgV1RG
X1BVQkxJQ19IRUFERVJTCiApCiAKIGxpc3QoQVBQRU5EIFdURl9TT1VSQ0VTCisgICAgZ2VuZXJp
Yy9Xb3JrUXVldWVHZW5lcmljLmNwcAorCiAgICAgdGV4dC93aW4vU3RyaW5nV2luLmNwcAogICAg
IHRleHQvd2luL1RleHRCcmVha0l0ZXJhdG9ySW50ZXJuYWxJQ1VXaW4uY3BwCiAKQEAgLTIyLDcg
KzI0LDYgQEAgbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKICAgICB3aW4vUGF0aFdhbGtlci5jcHAK
ICAgICB3aW4vUnVuTG9vcFdpbi5jcHAKICAgICB3aW4vVGhyZWFkaW5nV2luLmNwcAotICAgIHdp
bi9Xb3JrUXVldWVXaW4uY3BwCiApCiAKIGxpc3QoQVBQRU5EIFdURl9MSUJSQVJJRVMKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3AuaCBiL1NvdXJjZS9XVEYvd3RmL1J1bkxvb3Au
aAppbmRleCA3MjhmN2UzZDc3Zi4uMmUyNDZlMjQwZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYv
d3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTk2LDcgKzk2
LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VXaW5k
b3dDbGFzcygpOwogI2VuZGlmCiAKLSNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKSB8fCBVU0UoR0VO
RVJJQ19FVkVOVF9MT09QKQorI2lmICFVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICBXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaEFmdGVyKFNlY29uZHMsIEZ1bmN0aW9uPHZvaWQoKT4m
Jik7CiAjZW5kaWYKIApAQCAtMTc2LDYgKzE3NiwyNSBAQCBwdWJsaWM6CiAgICAgICAgIFRpbWVy
RmlyZWRDbGFzcyogbV9vYmplY3Q7CiAgICAgfTsKIAorI2lmIFVTRShXSU5ET1dTX0VWRU5UX0xP
T1ApCisgICAgY2xhc3MgRGlzcGF0Y2hUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgeworICAgIHB1
YmxpYzoKKyAgICAgICAgRGlzcGF0Y2hUaW1lcihSdW5Mb29wJiBydW5Mb29wKQorICAgICAgICAg
ICAgOiBUaW1lckJhc2UocnVuTG9vcCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAgICAg
dm9pZCBzZXRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCisgICAgICAgIHsK
KyAgICAgICAgICAgIG1fZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKKyAgICAgICAgfQor
ICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IG1fZnVuY3Rpb24o
KTsgfQorCisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKKyAgICB9OworI2Vu
ZGlmCisKICAgICBjbGFzcyBIb2xkZXI7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4IGIz
ODQ0Mjc1YTY1Li4xNjVmNTJkNmY3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvV29ya1F1
ZXVlLmgKKysrIGIvU291cmNlL1dURi93dGYvV29ya1F1ZXVlLmgKQEAgLTMyLDE4ICszMiw5IEBA
CiAjaW5jbHVkZSA8d3RmL1NlY29uZHMuaD4KICNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+CiAK
LSNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKKyNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRl
IDxkaXNwYXRjaC9kaXNwYXRjaC5oPgotI2VuZGlmCi0KLSNpZiBVU0UoV0lORE9XU19FVkVOVF9M
T09QKQotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL1RocmVhZGluZ1By
aW1pdGl2ZXMuaD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jZW5kaWYKLQotI2lmIFVTRShH
TElCX0VWRU5UX0xPT1ApIHx8IFVTRShHRU5FUklDX0VWRU5UX0xPT1ApCi0jaW5jbHVkZSA8d3Rm
L0NvbmRpdGlvbi5oPgorI2Vsc2UKICNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgogI2VuZGlmCiAK
QEAgLTcyLDkgKzYzLDkgQEAgcHVibGljOgogCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyB2b2lkIGNvbmN1cnJlbnRBcHBseShzaXplX3QgaXRlcmF0aW9ucywgV1RGOjpGdW5jdGlvbjx2
b2lkKHNpemVfdCBpbmRleCk+JiYpOwogCi0jaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCisjaWYg
UExBVEZPUk0oQ09DT0EpCiAgICAgZGlzcGF0Y2hfcXVldWVfdCBkaXNwYXRjaFF1ZXVlKCkgY29u
c3QgeyByZXR1cm4gbV9kaXNwYXRjaFF1ZXVlOyB9Ci0jZWxpZiBVU0UoR0xJQl9FVkVOVF9MT09Q
KSB8fCBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQorI2Vsc2UKICAgICBSdW5Mb29wJiBydW5Mb29w
KCkgY29uc3QgeyByZXR1cm4gKm1fcnVuTG9vcDsgfQogI2VuZGlmCiAKQEAgLTg0LDI2ICs3NSwx
MCBAQCBwcml2YXRlOgogICAgIHZvaWQgcGxhdGZvcm1Jbml0aWFsaXplKGNvbnN0IGNoYXIqIG5h
bWUsIFR5cGUsIFFPUyk7CiAgICAgdm9pZCBwbGF0Zm9ybUludmFsaWRhdGUoKTsKIAotI2lmIFVT
RShXSU5ET1dTX0VWRU5UX0xPT1ApCi0gICAgc3RhdGljIHZvaWQgQ0FMTEJBQ0sgdGltZXJDYWxs
YmFjayh2b2lkKiBjb250ZXh0LCBCT09MRUFOIHRpbWVyT3JXYWl0RmlyZWQpOwotICAgIHN0YXRp
YyBEV09SRCBXSU5BUEkgd29ya1RocmVhZENhbGxiYWNrKHZvaWQqIGNvbnRleHQpOwotCi0gICAg
Ym9vbCB0cnlSZWdpc3RlckFzV29ya1RocmVhZCgpOwotICAgIHZvaWQgdW5yZWdpc3RlckFzV29y
a1RocmVhZCgpOwotICAgIHZvaWQgcGVyZm9ybVdvcmtPblJlZ2lzdGVyZWRXb3JrVGhyZWFkKCk7
Ci0jZW5kaWYKLQotI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQorI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIHN0YXRpYyB2b2lkIGV4ZWN1dGVGdW5jdGlvbih2b2lkKik7CiAgICAgZGlzcGF0Y2hf
cXVldWVfdCBtX2Rpc3BhdGNoUXVldWU7Ci0jZWxpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQot
ICAgIHZvbGF0aWxlIExPTkcgbV9pc1dvcmtUaHJlYWRSZWdpc3RlcmVkOwotCi0gICAgTG9jayBt
X2Z1bmN0aW9uUXVldWVMb2NrOwotICAgIFZlY3RvcjxGdW5jdGlvbjx2b2lkKCk+PiBtX2Z1bmN0
aW9uUXVldWU7Ci0KLSAgICBIQU5ETEUgbV90aW1lclF1ZXVlOwotI2VsaWYgVVNFKEdMSUJfRVZF
TlRfTE9PUCkgfHwgVVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKKyNlbHNlCiAgICAgUnVuTG9vcCog
bV9ydW5Mb29wOwogI2VuZGlmCiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3BwCmluZGV4IGQy
M2M3NjFkZTE2Li5lMThiMzdmMDBkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvd2luL1J1
bkxvb3BXaW4uY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApAQCAt
MTQwLDYgKzE0MCwxNiBAQCBSdW5Mb29wOjpDeWNsZVJlc3VsdCBSdW5Mb29wOjpjeWNsZShSdW5M
b29wTW9kZSkKICAgICByZXR1cm4gQ3ljbGVSZXN1bHQ6OkNvbnRpbnVlOwogfQogCit2b2lkIFJ1
bkxvb3A6OmRpc3BhdGNoQWZ0ZXIoU2Vjb25kcyBkZWxheSwgRnVuY3Rpb248dm9pZCgpPiYmIGZ1
bmN0aW9uKQoreworICAgIGF1dG8gdGltZXIgPSBuZXcgRGlzcGF0Y2hUaW1lcigqdGhpcyk7Cisg
ICAgdGltZXItPnNldEZ1bmN0aW9uKFt0aW1lciwgZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9u
KV0geworICAgICAgICBmdW5jdGlvbigpOworICAgICAgICBkZWxldGUgdGltZXI7CisgICAgfSk7
CisgICAgdGltZXItPnN0YXJ0T25lU2hvdChkZWxheSk7Cit9CisKIC8vIFJ1bkxvb3A6OlRpbWVy
CiAKIHZvaWQgUnVuTG9vcDo6VGltZXJCYXNlOjp0aW1lckZpcmVkKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XVEYvd3RmL3dpbi9Xb3JrUXVldWVXaW4uY3BwIGIvU291cmNlL1dURi93dGYvd2luL1dv
cmtRdWV1ZVdpbi5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQxOTUxNzY0ZmQz
Li4wMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2luLmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDEw
LTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0IChDKSAy
MDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0KLSNpbmNsdWRlIDx3
dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNl
IFdURiB7Ci0KLURXT1JEIFdvcmtRdWV1ZTo6d29ya1RocmVhZENhbGxiYWNrKHZvaWQqIGNvbnRl
eHQpCi17Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKLQotICAgIFdvcmtRdWV1
ZSogcXVldWUgPSBzdGF0aWNfY2FzdDxXb3JrUXVldWUqPihjb250ZXh0KTsKLQotICAgIGlmIChx
dWV1ZS0+dHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKSkKLSAgICAgICAgcXVldWUtPnBlcmZvcm1X
b3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpOwotCi0gICAgcXVldWUtPmRlcmVmKCk7Ci0KLSAg
ICByZXR1cm4gMDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVk
V29ya1RocmVhZCgpCi17Ci0gICAgQVNTRVJUKG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCk7Ci0K
LSAgICBtX2Z1bmN0aW9uUXVldWVMb2NrLmxvY2soKTsKLQotICAgIHdoaWxlICghbV9mdW5jdGlv
blF1ZXVlLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gZnVu
Y3Rpb25RdWV1ZTsKLSAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25RdWV1ZSk7
Ci0KLSAgICAgICAgLy8gQWxsb3cgbW9yZSB3b3JrIHRvIGJlIHNjaGVkdWxlZCB3aGlsZSB3ZSdy
ZSBub3QgdXNpbmcgdGhlIHF1ZXVlIGRpcmVjdGx5LgotICAgICAgICBtX2Z1bmN0aW9uUXVldWVM
b2NrLnVubG9jaygpOwotICAgICAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogZnVuY3Rpb25RdWV1
ZSkKLSAgICAgICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgICAgIG1fZnVuY3Rpb25RdWV1ZUxvY2su
bG9jaygpOwotICAgIH0KLQotICAgIC8vIE9uZSBpbnZhcmlhbnQgd2UgbWFpbnRhaW4gaXMgdGhh
dCBhbnkgd29yayBzY2hlZHVsZWQgd2hpbGUgYSB3b3JrIHRocmVhZCBpcyByZWdpc3RlcmVkIHdp
bGwKLSAgICAvLyBiZSBoYW5kbGVkIGJ5IHRoYXQgd29yayB0aHJlYWQuIFVucmVnaXN0ZXIgYXMg
dGhlIHdvcmsgdGhyZWFkIHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIHN0aWxsCi0gICAgLy8gaGVs
ZCBzbyB0aGF0IG5vIHdvcmsgY2FuIGJlIHNjaGVkdWxlZCB3aGlsZSB3ZSdyZSBzdGlsbCByZWdp
c3RlcmVkLgotICAgIHVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKLQotICAgIG1fZnVuY3Rpb25R
dWV1ZUxvY2sudW5sb2NrKCk7Ci19Ci0KLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUluaXRpYWxp
emUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQotewotICAgIG1faXNXb3JrVGhyZWFkUmVn
aXN0ZXJlZCA9IDA7Ci0gICAgbV90aW1lclF1ZXVlID0gOjpDcmVhdGVUaW1lclF1ZXVlKCk7Ci0g
ICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3RpbWVyUXVldWUsICI6OkNyZWF0ZVRpbWVyUXVldWUg
ZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci19Ci0KLWJvb2wgV29y
a1F1ZXVlOjp0cnlSZWdpc3RlckFzV29ya1RocmVhZCgpCi17Ci0gICAgTE9ORyByZXN1bHQgPSA6
OkludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQsIDEs
IDApOwotICAgIEFTU0VSVCghcmVzdWx0IHx8IHJlc3VsdCA9PSAxKTsKLSAgICByZXR1cm4gIXJl
c3VsdDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKQotewot
ICAgIExPTkcgcmVzdWx0ID0gOjpJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmbV9pc1dvcmtU
aHJlYWRSZWdpc3RlcmVkLCAwLCAxKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwgcmVzdWx0
ID09IDEpOwotfQotCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKLXsKLSAg
ICAvLyBGSVhNRTogV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgdGltZXItcXVldWUgdGltZXJz
IHRoYXQgZmlyZSBhZnRlciB0aGlzIHBvaW50IGRvbid0IHRyeSB0bwotICAgIC8vIGFjY2VzcyB0
aGlzIFdvcmtRdWV1ZSA8aHR0cDovL3dlYmtpdC5vcmcvYi80NDY5MD4uCi0gICAgOjpEZWxldGVU
aW1lclF1ZXVlRXgobV90aW1lclF1ZXVlLCAwKTsKLX0KLQotdm9pZCBXb3JrUXVldWU6OmRpc3Bh
dGNoKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKLXsKLSAgICBhdXRvIGxvY2tlciA9IGhv
bGRMb2NrKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5hcHBlbmQo
V1RGTW92ZShmdW5jdGlvbikpOwotCi0gICAgLy8gU3Bhd24gYSB3b3JrIHRocmVhZCB0byBwZXJm
b3JtIHRoZSB3b3JrIHdlIGp1c3QgYWRkZWQuIEFzIGFuIG9wdGltaXphdGlvbiwgd2UgYXZvaWQK
LSAgICAvLyBzcGF3bmluZyB0aGUgdGhyZWFkIGlmIGEgd29yayB0aHJlYWQgaXMgYWxyZWFkeSBy
ZWdpc3RlcmVkLiBUaGlzIHByZXZlbnRzIG11bHRpcGxlIHdvcmsKLSAgICAvLyB0aHJlYWRzIGZy
b20gYmVpbmcgc3Bhd25lZCBpbiBtb3N0IGNhc2VzLiAoTm90ZSB0aGF0IHdoZW4gYSB3b3JrIHRo
cmVhZCBoYXMgYmVlbiBzcGF3bmVkIGJ1dAotICAgIC8vIGhhc24ndCByZWdpc3RlcmVkIGl0c2Vs
ZiB5ZXQsIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCB3aWxsIGJlIGZhbHNlIGFuZCB3ZSdsbCBl
bmQgdXAKLSAgICAvLyBzcGF3bmluZyBhIHNlY29uZCB3b3JrIHRocmVhZCBoZXJlLiBCdXQgd29y
ayB0aHJlYWQgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgd2lsbCBlbnN1cmUgdGhhdAotICAgIC8vIG9u
bHkgb25lIHRocmVhZCBhY3R1YWxseSBlbmRzIHVwIHBlcmZvcm1pbmcgd29yay4pCi0gICAgaWYg
KCFtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQpIHsKLSAgICAgICAgcmVmKCk7Ci0gICAgICAgIDo6
UXVldWVVc2VyV29ya0l0ZW0od29ya1RocmVhZENhbGxiYWNrLCB0aGlzLCBXVF9FWEVDVVRFREVG
QVVMVCk7Ci0gICAgfQotfQotCi1zdHJ1Y3QgVGltZXJDb250ZXh0IDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFRpbWVyQ29udGV4dD4gewotICAgIHN0YXRpYyBSZWY8VGltZXJDb250ZXh0
PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVyQ29udGV4dCk7IH0KLQotICAg
IExvY2sgdGltZXJMb2NrOwotICAgIFdvcmtRdWV1ZSogcXVldWUgeyBudWxscHRyIH07Ci0gICAg
SEFORExFIHRpbWVyIHsgbnVsbHB0ciB9OwotICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVuY3Rpb247
Ci0KLXByaXZhdGU6Ci0gICAgVGltZXJDb250ZXh0KCkgPSBkZWZhdWx0OwotfTsKLQotdm9pZCBX
b3JrUXVldWU6OnRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9yV2Fp
dEZpcmVkKQotewotICAgIEFTU0VSVF9BUkcoY29udGV4dCwgY29udGV4dCk7Ci0gICAgQVNTRVJU
X1VOVVNFRCh0aW1lck9yV2FpdEZpcmVkLCB0aW1lck9yV2FpdEZpcmVkKTsKLQotICAgIC8vIEJh
bGFuY2VkIGJ5IGxlYWtSZWYgaW4gc2NoZWR1bGVXb3JrQWZ0ZXJEZWxheS4KLSAgICBSZWZQdHI8
VGltZXJDb250ZXh0PiB0aW1lckNvbnRleHQgPSBhZG9wdFJlZihzdGF0aWNfY2FzdDxUaW1lckNv
bnRleHQqPihjb250ZXh0KSk7Ci0KLSAgICB0aW1lckNvbnRleHQtPnF1ZXVlLT5kaXNwYXRjaChX
VEZNb3ZlKHRpbWVyQ29udGV4dC0+ZnVuY3Rpb24pKTsKLQotICAgIGF1dG8gbG9ja2VyID0gaG9s
ZExvY2sodGltZXJDb250ZXh0LT50aW1lckxvY2spOwotICAgIEFTU0VSVCh0aW1lckNvbnRleHQt
PnRpbWVyKTsKLSAgICBBU1NFUlQodGltZXJDb250ZXh0LT5xdWV1ZS0+bV90aW1lclF1ZXVlKTsK
LSAgICBpZiAoITo6RGVsZXRlVGltZXJRdWV1ZVRpbWVyKHRpbWVyQ29udGV4dC0+cXVldWUtPm1f
dGltZXJRdWV1ZSwgdGltZXJDb250ZXh0LT50aW1lciwgMCkpIHsKLSAgICAgICAgLy8gR2V0dGlu
ZyBFUlJPUl9JT19QRU5ESU5HIGhlcmUgbWVhbnMgdGhhdCB0aGUgdGltZXIgd2lsbCBiZSBkZXN0
cm95ZWQgb25jZSB0aGUgY2FsbGJhY2sgaXMgZG9uZSBleGVjdXRpbmcuCi0gICAgICAgIEFTU0VS
VF9XSVRIX01FU1NBR0UoOjpHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JT19QRU5ESU5HLCAiOjpE
ZWxldGVUaW1lclF1ZXVlVGltZXIgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJy
b3IoKSk7Ci0gICAgfQotfQotCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihTZWNvbmRz
IGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCi17Ci0gICAgQVNTRVJUKG1f
dGltZXJRdWV1ZSk7Ci0gICAgcmVmKCk7Ci0KLSAgICBSZWY8VGltZXJDb250ZXh0PiBjb250ZXh0
ID0gVGltZXJDb250ZXh0OjpjcmVhdGUoKTsKLSAgICBjb250ZXh0LT5xdWV1ZSA9IHRoaXM7Ci0g
ICAgY29udGV4dC0+ZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKLQotICAgIHsKLSAgICAg
ICAgLy8gVGhlIHRpbWVyIGNhbGxiYWNrIGNvdWxkIGZpcmUgYmVmb3JlIDo6Q3JlYXRlVGltZXJR
dWV1ZVRpbWVyIGV2ZW4gcmV0dXJucywgc28gd2UgcHJvdGVjdAotICAgICAgICAvLyBjb250ZXh0
LT50aW1lciB3aXRoIGEgbXV0ZXggdG8gZW5zdXJlIHRoZSB0aW1lciBjYWxsYmFjayBkb2Vzbid0
IGFjY2VzcyBpdCBiZWZvcmUgdGhlCi0gICAgICAgIC8vIHRpbWVyIGhhbmRsZSBoYXMgYmVlbiBz
dG9yZWQgaW4gaXQuCi0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29udGV4dC0+dGlt
ZXJMb2NrKTsKLQotICAgICAgICBpbnQ2NF90IG1pbGxpc2Vjb25kcyA9IGR1cmF0aW9uLm1pbGxp
c2Vjb25kcygpOwotCi0gICAgICAgIC8vIEZyb20gZW1waXJpY2FsIHRlc3RpbmcsIHdlJ3ZlIHNl
ZW4gQ3JlYXRlVGltZXJRdWV1ZVRpbWVyKCkgc29tZXRpbWVzIGZpcmUgdXAgdG8gNSsgbXMgZWFy
bHkuCi0gICAgICAgIC8vIFRoaXMgY2F1c2VzIGhhdm9jIGZvciBjbGllbnRzIG9mIHRoaXMgY29k
ZSB0aGF0IGV4cGVjdCB0byBub3QgYmUgY2FsbGVkIGJhY2sgdW50aWwgdGhlCi0gICAgICAgIC8v
IHNwZWNpZmllZCBkdXJhdGlvbiBoYXMgZXhwaXJlZC4gT3RoZXIgZm9sa3Mgb25saW5lIGhhdmUg
YWxzbyBvYnNlcnZlZCBzb21lIHNsb3AgaW4gdGhlCi0gICAgICAgIC8vIGZpcmluZyB0aW1lcyBv
ZiBDcmVhdGVUaW1lclF1cXVlVGltZXIoKS4gRnJvbSB0aGUgZGF0YSBwb3N0ZWQgYXQKLSAgICAg
ICAgLy8gaHR0cDovL29tZWcucGwvYmxvZy8yMDExLzExL29uLXdpbmFwaS10aW1lcnMtYW5kLXRo
ZWlyLXJlc29sdXRpb24sIGl0IGFwcGVhcnMgdGhhdCB0aGUgc2xvcAotICAgICAgICAvLyBjYW4g
YmUgdXAgdG8gYWJvdXQgMTAgbXMuIFRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGZpcmUgdGhlIHRp
bWVyIGVhcmx5LCB3ZSdsbCB0YWNrIG9uIGEKLSAgICAgICAgLy8gc2xvcCBhZGp1c3RtZW50IHRv
IHRoZSBkdXJhdGlvbiwgYW5kIHdlJ2xsIHVzZSBkb3VibGUgdGhlIHdvcnN0IGFtb3VudCBvZiBz
bG9wIG9ic2VydmVkCi0gICAgICAgIC8vIHNvIGZhci4KLSAgICAgICAgY29uc3QgaW50NjRfdCBz
bG9wQWRqdXN0bWVudCA9IDIwOwotICAgICAgICBpZiAobWlsbGlzZWNvbmRzKSAKLSAgICAgICAg
ICAgIG1pbGxpc2Vjb25kcyArPSBzbG9wQWRqdXN0bWVudDsKLQotICAgICAgICAvLyBTaW5jZSBv
dXIgdGltZXIgY2FsbGJhY2sgaXMgcXVpY2ssIHdlIGNhbiBleGVjdXRlIGluIHRoZSB0aW1lciB0
aHJlYWQgaXRzZWxmIGFuZCBhdm9pZAotICAgICAgICAvLyBhbiBleHRyYSB0aHJlYWQgc3dpdGNo
IG92ZXIgdG8gYSB3b3JrZXIgdGhyZWFkLgotICAgICAgICBpZiAoITo6Q3JlYXRlVGltZXJRdWV1
ZVRpbWVyKCZjb250ZXh0LT50aW1lciwgbV90aW1lclF1ZXVlLCB0aW1lckNhbGxiYWNrLCBjb250
ZXh0LnB0cigpLCBjbGFtcFRvPERXT1JEPihtaWxsaXNlY29uZHMpLCAwLCBXVF9FWEVDVVRFSU5U
SU1FUlRIUkVBRCkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFsc2UsICI6
OkNyZWF0ZVRpbWVyUXVldWVUaW1lciBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6OkdldExhc3RF
cnJvcigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQotICAgIC8v
IFRoZSB0aW1lciBjYWxsYmFjayB3aWxsIGhhbmRsZSBkZXN0cm95aW5nIGNvbnRleHQuCi0gICAg
Y29udGV4dC5sZWFrUmVmKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397120</attachid>
            <date>2020-04-21 14:26:38 -0700</date>
            <delta_ts>2020-04-21 16:46:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210785-20200422062636.patch</filename>
            <type>text/plain</type>
            <size>13562</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2EzYmE5YTNmN2E3OTMzM2JjMWE0
ZDdhZmJmZmRlNmUxNzZmYjYuLjE2MGEzODJkNDc5MmEyODI3MGE2MjQxM2Y1MTY4YjAyMTEwNGVi
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDQtMjEgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gVXNlIGdlbmVyaWMgV29ya1F1
ZXVlIGluc3RlYWQgb2YgV29ya1F1ZXVlV2luLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgV29ya1F1ZXVlV2luIHdhcyB1c2luZyByYW5kb20gdGhy
ZWFkcyB0byBleGVjdXRlIGRpc3BhdGNoZWQKKyAgICAgICAgZnVuY3Rpb25zLiBUaGlzIGlzIG5v
dCBkZXNpcmVkIGZvciBJUEM6OkNvbm5lY3Rpb24gYmVjYXVzZSBpdAorICAgICAgICBuZWVkcyB0
byBjYWxsIENhbmNlbElvIEFQSSBpbiB0aGUgc2FtZSB0aHJlYWQgc3RhcnRlZCBheW5jCisgICAg
ICAgIFJlYWRGaWxlIG9wZXJhdGlvbnMuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgUnVuTG9vcDo6
ZGlzcGF0Y2hBZnRlciBpbiBSdW5Mb29wV2luLmNwcCBpbiBvcmRlciB0bworICAgICAgICB1c2Ug
Z2VuZXJpYyBXb3JrUXVldWUuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21ha2U6Cisg
ICAgICAgICogd3RmL1J1bkxvb3AuaDogQWRkZWQgRGlzcGF0Y2hUaW1lciBjbGFzcyBmb3IgVVNF
KFdJTkRPV1NfRVZFTlRfTE9PUCkuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OkRpc3BhdGNoVGlt
ZXI6OkRpc3BhdGNoVGltZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpEaXNwYXRjaFRpbWVy
OjpzZXRGdW5jdGlvbik6CisgICAgICAgICogd3RmL1dvcmtRdWV1ZS5oOiBSZW1vdmVkIGNvZGUg
Zm9yIFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApLgorICAgICAgICAqIHd0Zi93aW4vUnVuTG9vcFdp
bi5jcHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmRpc3BhdGNoQWZ0ZXIpOiBBZGRlZC4KKyAg
ICAgICAgKiB3dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHA6IFJlbW92ZWQuCisKIDIwMjAtMDQtMjAg
IERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIy
NTM5ODcpOiBTdHJpbmdJbXBsOjphZG9wdChWZWN0b3ImJikgY29waWVzIG9ubHkgaGFsZiBvZiB0
aGUgY2hhcmFjdGVycyBpbiB0aGUgVmVjdG9yIHdoZW4gY29weWluZyBhY3Jvc3MgbWFsbG9jIHpv
bmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGU4ZmQxOThhNWJiM2FjNmY4MTFiMTI3
NTAyYWQwYmVjYzRjMWQxOTAuLjZlODBiOTlhMDRhNmM2ZGU0ZTJmZjU5YTdiNGVkNGM4YzRhYWZh
YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1Nv
dXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCkBAIC04LDYgKzgsOCBAQCBsaXN0KEFQUEVO
RCBXVEZfUFVCTElDX0hFQURFUlMKICkKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKKyAgICBn
ZW5lcmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCisKICAgICB0ZXh0L3dpbi9TdHJpbmdXaW4uY3Bw
CiAgICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVdpbi5jcHAKIApAQCAt
MjIsNyArMjQsNiBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHdpbi9QYXRoV2Fsa2Vy
LmNwcAogICAgIHdpbi9SdW5Mb29wV2luLmNwcAogICAgIHdpbi9UaHJlYWRpbmdXaW4uY3BwCi0g
ICAgd2luL1dvcmtRdWV1ZVdpbi5jcHAKICkKIAogbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVu
TG9vcC5oCmluZGV4IDcyOGY3ZTNkNzdmMTFkNTkwMTNhYWVlNjA3YzhlMmZlOTljYWYxZGUuLjJl
MjQ2ZTI0MGU3ZjY0MWJiZmFmZTAwZGNlYThkNTk5ZTUwMjE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTk2
LDcgKzk2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUnVuTG9vcE1lc3Nh
Z2VXaW5kb3dDbGFzcygpOwogI2VuZGlmCiAKLSNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKSB8fCBV
U0UoR0VORVJJQ19FVkVOVF9MT09QKQorI2lmICFVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICBX
VEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaEFmdGVyKFNlY29uZHMsIEZ1bmN0aW9uPHZv
aWQoKT4mJik7CiAjZW5kaWYKIApAQCAtMTc2LDYgKzE3NiwyNSBAQCBwdWJsaWM6CiAgICAgICAg
IFRpbWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CiAgICAgfTsKIAorI2lmIFVTRShXSU5ET1dTX0VW
RU5UX0xPT1ApCisgICAgY2xhc3MgRGlzcGF0Y2hUaW1lciA6IHB1YmxpYyBUaW1lckJhc2Ugewor
ICAgIHB1YmxpYzoKKyAgICAgICAgRGlzcGF0Y2hUaW1lcihSdW5Mb29wJiBydW5Mb29wKQorICAg
ICAgICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAg
ICAgICAgdm9pZCBzZXRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCisgICAg
ICAgIHsKKyAgICAgICAgICAgIG1fZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKKyAgICAg
ICAgfQorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IG1fZnVu
Y3Rpb24oKTsgfQorCisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKKyAgICB9
OworI2VuZGlmCisKICAgICBjbGFzcyBIb2xkZXI7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV1RGL3d0Zi9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmlu
ZGV4IGIzODQ0Mjc1YTY1MzljMjhmNmMyMmNkZWEyYzFkMWYwZjI2OTNhYzUuLjE2NWY1MmQ2Zjdj
NzljZWI3ODgxMzk2YjZlNmY0NGQ3ZDFmZThkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3Rm
L1dvcmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC0zMiwxOCAr
MzIsOSBAQAogI2luY2x1ZGUgPHd0Zi9TZWNvbmRzLmg+CiAjaW5jbHVkZSA8d3RmL1RocmVhZGlu
Zy5oPgogCi0jaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCisjaWYgUExBVEZPUk0oQ09DT0EpCiAj
aW5jbHVkZSA8ZGlzcGF0Y2gvZGlzcGF0Y2guaD4KLSNlbmRpZgotCi0jaWYgVVNFKFdJTkRPV1Nf
RVZFTlRfTE9PUCkKLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJl
YWRpbmdQcmltaXRpdmVzLmg+Ci0jaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2VuZGlmCi0KLSNp
ZiBVU0UoR0xJQl9FVkVOVF9MT09QKSB8fCBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQotI2luY2x1
ZGUgPHd0Zi9Db25kaXRpb24uaD4KKyNlbHNlCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNl
bmRpZgogCkBAIC03Miw5ICs2Myw5IEBAIHB1YmxpYzoKIAogICAgIFdURl9FWFBPUlRfUFJJVkFU
RSBzdGF0aWMgdm9pZCBjb25jdXJyZW50QXBwbHkoc2l6ZV90IGl0ZXJhdGlvbnMsIFdURjo6RnVu
Y3Rpb248dm9pZChzaXplX3QgaW5kZXgpPiYmKTsKIAotI2lmIFVTRShDT0NPQV9FVkVOVF9MT09Q
KQorI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIGRpc3BhdGNoX3F1ZXVlX3QgZGlzcGF0Y2hRdWV1
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGF0Y2hRdWV1ZTsgfQotI2VsaWYgVVNFKEdMSUJfRVZF
TlRfTE9PUCkgfHwgVVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKKyNlbHNlCiAgICAgUnVuTG9vcCYg
cnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuICptX3J1bkxvb3A7IH0KICNlbmRpZgogCkBAIC04NCwy
NiArNzUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZShjb25zdCBj
aGFyKiBuYW1lLCBUeXBlLCBRT1MpOwogICAgIHZvaWQgcGxhdGZvcm1JbnZhbGlkYXRlKCk7CiAK
LSNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQotICAgIHN0YXRpYyB2b2lkIENBTExCQUNLIHRp
bWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1lck9yV2FpdEZpcmVkKTsKLSAg
ICBzdGF0aWMgRFdPUkQgV0lOQVBJIHdvcmtUaHJlYWRDYWxsYmFjayh2b2lkKiBjb250ZXh0KTsK
LQotICAgIGJvb2wgdHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKLSAgICB2b2lkIHVucmVnaXN0
ZXJBc1dvcmtUaHJlYWQoKTsKLSAgICB2b2lkIHBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1Ro
cmVhZCgpOwotI2VuZGlmCi0KLSNpZiBVU0UoQ09DT0FfRVZFTlRfTE9PUCkKKyNpZiBQTEFURk9S
TShDT0NPQSkKICAgICBzdGF0aWMgdm9pZCBleGVjdXRlRnVuY3Rpb24odm9pZCopOwogICAgIGRp
c3BhdGNoX3F1ZXVlX3QgbV9kaXNwYXRjaFF1ZXVlOwotI2VsaWYgVVNFKFdJTkRPV1NfRVZFTlRf
TE9PUCkKLSAgICB2b2xhdGlsZSBMT05HIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZDsKLQotICAg
IExvY2sgbV9mdW5jdGlvblF1ZXVlTG9jazsKLSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4g
bV9mdW5jdGlvblF1ZXVlOwotCi0gICAgSEFORExFIG1fdGltZXJRdWV1ZTsKLSNlbGlmIFVTRShH
TElCX0VWRU5UX0xPT1ApIHx8IFVTRShHRU5FUklDX0VWRU5UX0xPT1ApCisjZWxzZQogICAgIFJ1
bkxvb3AqIG1fcnVuTG9vcDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3Rm
L3dpbi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcApp
bmRleCBkMjNjNzYxZGUxNjFhNTI3NGVhNWViYjliOTVlZGNkMmQzOTgxMGIyLi5lMThiMzdmMDBk
ZTdlYjI2OTA2Njc2MGQzNWY4OWVhNjEyNmQ4MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0
Zi93aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4u
Y3BwCkBAIC0xNDAsNiArMTQwLDE2IEBAIFJ1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxvb3A6OmN5
Y2xlKFJ1bkxvb3BNb2RlKQogICAgIHJldHVybiBDeWNsZVJlc3VsdDo6Q29udGludWU7CiB9CiAK
K3ZvaWQgUnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcihTZWNvbmRzIGRlbGF5LCBGdW5jdGlvbjx2b2lk
KCk+JiYgZnVuY3Rpb24pCit7CisgICAgYXV0byB0aW1lciA9IG5ldyBEaXNwYXRjaFRpbWVyKCp0
aGlzKTsKKyAgICB0aW1lci0+c2V0RnVuY3Rpb24oW3RpbWVyLCBmdW5jdGlvbiA9IFdURk1vdmUo
ZnVuY3Rpb24pXSB7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIGRlbGV0ZSB0aW1lcjsK
KyAgICB9KTsKKyAgICB0aW1lci0+c3RhcnRPbmVTaG90KGRlbGF5KTsKK30KKwogLy8gUnVuTG9v
cDo6VGltZXIKIAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0
Zi93aW4vV29ya1F1ZXVlV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE5
NTE3NjRmZDM3N2VhOGE2ZWY0NTNkMjBhNzlmY2JmZDU4YWQ3Ni4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVl
V2luLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJp
Z2h0IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
Ci0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0g
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQot
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICov
Ci0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0KLSNp
bmNsdWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQot
bmFtZXNwYWNlIFdURiB7Ci0KLURXT1JEIFdvcmtRdWV1ZTo6d29ya1RocmVhZENhbGxiYWNrKHZv
aWQqIGNvbnRleHQpCi17Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKLQotICAg
IFdvcmtRdWV1ZSogcXVldWUgPSBzdGF0aWNfY2FzdDxXb3JrUXVldWUqPihjb250ZXh0KTsKLQot
ICAgIGlmIChxdWV1ZS0+dHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKSkKLSAgICAgICAgcXVldWUt
PnBlcmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpOwotCi0gICAgcXVldWUtPmRlcmVm
KCk7Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25S
ZWdpc3RlcmVkV29ya1RocmVhZCgpCi17Ci0gICAgQVNTRVJUKG1faXNXb3JrVGhyZWFkUmVnaXN0
ZXJlZCk7Ci0KLSAgICBtX2Z1bmN0aW9uUXVldWVMb2NrLmxvY2soKTsKLQotICAgIHdoaWxlICgh
bV9mdW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8RnVuY3Rpb248dm9p
ZCgpPj4gZnVuY3Rpb25RdWV1ZTsKLSAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rp
b25RdWV1ZSk7Ci0KLSAgICAgICAgLy8gQWxsb3cgbW9yZSB3b3JrIHRvIGJlIHNjaGVkdWxlZCB3
aGlsZSB3ZSdyZSBub3QgdXNpbmcgdGhlIHF1ZXVlIGRpcmVjdGx5LgotICAgICAgICBtX2Z1bmN0
aW9uUXVldWVMb2NrLnVubG9jaygpOwotICAgICAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogZnVu
Y3Rpb25RdWV1ZSkKLSAgICAgICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgICAgIG1fZnVuY3Rpb25R
dWV1ZUxvY2subG9jaygpOwotICAgIH0KLQotICAgIC8vIE9uZSBpbnZhcmlhbnQgd2UgbWFpbnRh
aW4gaXMgdGhhdCBhbnkgd29yayBzY2hlZHVsZWQgd2hpbGUgYSB3b3JrIHRocmVhZCBpcyByZWdp
c3RlcmVkIHdpbGwKLSAgICAvLyBiZSBoYW5kbGVkIGJ5IHRoYXQgd29yayB0aHJlYWQuIFVucmVn
aXN0ZXIgYXMgdGhlIHdvcmsgdGhyZWFkIHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIHN0aWxsCi0g
ICAgLy8gaGVsZCBzbyB0aGF0IG5vIHdvcmsgY2FuIGJlIHNjaGVkdWxlZCB3aGlsZSB3ZSdyZSBz
dGlsbCByZWdpc3RlcmVkLgotICAgIHVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKLQotICAgIG1f
ZnVuY3Rpb25RdWV1ZUxvY2sudW5sb2NrKCk7Ci19Ci0KLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9y
bUluaXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQotewotICAgIG1faXNXb3Jr
VGhyZWFkUmVnaXN0ZXJlZCA9IDA7Ci0gICAgbV90aW1lclF1ZXVlID0gOjpDcmVhdGVUaW1lclF1
ZXVlKCk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3RpbWVyUXVldWUsICI6OkNyZWF0ZVRp
bWVyUXVldWUgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci19Ci0K
LWJvb2wgV29ya1F1ZXVlOjp0cnlSZWdpc3RlckFzV29ya1RocmVhZCgpCi17Ci0gICAgTE9ORyBy
ZXN1bHQgPSA6OkludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZtX2lzV29ya1RocmVhZFJlZ2lz
dGVyZWQsIDEsIDApOwotICAgIEFTU0VSVCghcmVzdWx0IHx8IHJlc3VsdCA9PSAxKTsKLSAgICBy
ZXR1cm4gIXJlc3VsdDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJBc1dvcmtUaHJl
YWQoKQotewotICAgIExPTkcgcmVzdWx0ID0gOjpJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgm
bV9pc1dvcmtUaHJlYWRSZWdpc3RlcmVkLCAwLCAxKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3Vs
dCwgcmVzdWx0ID09IDEpOwotfQotCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRl
KCkKLXsKLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgdGltZXItcXVl
dWUgdGltZXJzIHRoYXQgZmlyZSBhZnRlciB0aGlzIHBvaW50IGRvbid0IHRyeSB0bwotICAgIC8v
IGFjY2VzcyB0aGlzIFdvcmtRdWV1ZSA8aHR0cDovL3dlYmtpdC5vcmcvYi80NDY5MD4uCi0gICAg
OjpEZWxldGVUaW1lclF1ZXVlRXgobV90aW1lclF1ZXVlLCAwKTsKLX0KLQotdm9pZCBXb3JrUXVl
dWU6OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKLXsKLSAgICBhdXRvIGxv
Y2tlciA9IGhvbGRMb2NrKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1
ZS5hcHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwotCi0gICAgLy8gU3Bhd24gYSB3b3JrIHRocmVh
ZCB0byBwZXJmb3JtIHRoZSB3b3JrIHdlIGp1c3QgYWRkZWQuIEFzIGFuIG9wdGltaXphdGlvbiwg
d2UgYXZvaWQKLSAgICAvLyBzcGF3bmluZyB0aGUgdGhyZWFkIGlmIGEgd29yayB0aHJlYWQgaXMg
YWxyZWFkeSByZWdpc3RlcmVkLiBUaGlzIHByZXZlbnRzIG11bHRpcGxlIHdvcmsKLSAgICAvLyB0
aHJlYWRzIGZyb20gYmVpbmcgc3Bhd25lZCBpbiBtb3N0IGNhc2VzLiAoTm90ZSB0aGF0IHdoZW4g
YSB3b3JrIHRocmVhZCBoYXMgYmVlbiBzcGF3bmVkIGJ1dAotICAgIC8vIGhhc24ndCByZWdpc3Rl
cmVkIGl0c2VsZiB5ZXQsIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCB3aWxsIGJlIGZhbHNlIGFu
ZCB3ZSdsbCBlbmQgdXAKLSAgICAvLyBzcGF3bmluZyBhIHNlY29uZCB3b3JrIHRocmVhZCBoZXJl
LiBCdXQgd29yayB0aHJlYWQgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgd2lsbCBlbnN1cmUgdGhhdAot
ICAgIC8vIG9ubHkgb25lIHRocmVhZCBhY3R1YWxseSBlbmRzIHVwIHBlcmZvcm1pbmcgd29yay4p
Ci0gICAgaWYgKCFtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQpIHsKLSAgICAgICAgcmVmKCk7Ci0g
ICAgICAgIDo6UXVldWVVc2VyV29ya0l0ZW0od29ya1RocmVhZENhbGxiYWNrLCB0aGlzLCBXVF9F
WEVDVVRFREVGQVVMVCk7Ci0gICAgfQotfQotCi1zdHJ1Y3QgVGltZXJDb250ZXh0IDogcHVibGlj
IFRocmVhZFNhZmVSZWZDb3VudGVkPFRpbWVyQ29udGV4dD4gewotICAgIHN0YXRpYyBSZWY8VGlt
ZXJDb250ZXh0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVyQ29udGV4dCk7
IH0KLQotICAgIExvY2sgdGltZXJMb2NrOwotICAgIFdvcmtRdWV1ZSogcXVldWUgeyBudWxscHRy
IH07Ci0gICAgSEFORExFIHRpbWVyIHsgbnVsbHB0ciB9OwotICAgIEZ1bmN0aW9uPHZvaWQoKT4g
ZnVuY3Rpb247Ci0KLXByaXZhdGU6Ci0gICAgVGltZXJDb250ZXh0KCkgPSBkZWZhdWx0OwotfTsK
LQotdm9pZCBXb3JrUXVldWU6OnRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0
aW1lck9yV2FpdEZpcmVkKQotewotICAgIEFTU0VSVF9BUkcoY29udGV4dCwgY29udGV4dCk7Ci0g
ICAgQVNTRVJUX1VOVVNFRCh0aW1lck9yV2FpdEZpcmVkLCB0aW1lck9yV2FpdEZpcmVkKTsKLQot
ICAgIC8vIEJhbGFuY2VkIGJ5IGxlYWtSZWYgaW4gc2NoZWR1bGVXb3JrQWZ0ZXJEZWxheS4KLSAg
ICBSZWZQdHI8VGltZXJDb250ZXh0PiB0aW1lckNvbnRleHQgPSBhZG9wdFJlZihzdGF0aWNfY2Fz
dDxUaW1lckNvbnRleHQqPihjb250ZXh0KSk7Ci0KLSAgICB0aW1lckNvbnRleHQtPnF1ZXVlLT5k
aXNwYXRjaChXVEZNb3ZlKHRpbWVyQ29udGV4dC0+ZnVuY3Rpb24pKTsKLQotICAgIGF1dG8gbG9j
a2VyID0gaG9sZExvY2sodGltZXJDb250ZXh0LT50aW1lckxvY2spOwotICAgIEFTU0VSVCh0aW1l
ckNvbnRleHQtPnRpbWVyKTsKLSAgICBBU1NFUlQodGltZXJDb250ZXh0LT5xdWV1ZS0+bV90aW1l
clF1ZXVlKTsKLSAgICBpZiAoITo6RGVsZXRlVGltZXJRdWV1ZVRpbWVyKHRpbWVyQ29udGV4dC0+
cXVldWUtPm1fdGltZXJRdWV1ZSwgdGltZXJDb250ZXh0LT50aW1lciwgMCkpIHsKLSAgICAgICAg
Ly8gR2V0dGluZyBFUlJPUl9JT19QRU5ESU5HIGhlcmUgbWVhbnMgdGhhdCB0aGUgdGltZXIgd2ls
bCBiZSBkZXN0cm95ZWQgb25jZSB0aGUgY2FsbGJhY2sgaXMgZG9uZSBleGVjdXRpbmcuCi0gICAg
ICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoOjpHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JT19QRU5E
SU5HLCAiOjpEZWxldGVUaW1lclF1ZXVlVGltZXIgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpH
ZXRMYXN0RXJyb3IoKSk7Ci0gICAgfQotfQotCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRl
cihTZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCi17Ci0gICAg
QVNTRVJUKG1fdGltZXJRdWV1ZSk7Ci0gICAgcmVmKCk7Ci0KLSAgICBSZWY8VGltZXJDb250ZXh0
PiBjb250ZXh0ID0gVGltZXJDb250ZXh0OjpjcmVhdGUoKTsKLSAgICBjb250ZXh0LT5xdWV1ZSA9
IHRoaXM7Ci0gICAgY29udGV4dC0+ZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKLQotICAg
IHsKLSAgICAgICAgLy8gVGhlIHRpbWVyIGNhbGxiYWNrIGNvdWxkIGZpcmUgYmVmb3JlIDo6Q3Jl
YXRlVGltZXJRdWV1ZVRpbWVyIGV2ZW4gcmV0dXJucywgc28gd2UgcHJvdGVjdAotICAgICAgICAv
LyBjb250ZXh0LT50aW1lciB3aXRoIGEgbXV0ZXggdG8gZW5zdXJlIHRoZSB0aW1lciBjYWxsYmFj
ayBkb2Vzbid0IGFjY2VzcyBpdCBiZWZvcmUgdGhlCi0gICAgICAgIC8vIHRpbWVyIGhhbmRsZSBo
YXMgYmVlbiBzdG9yZWQgaW4gaXQuCi0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29u
dGV4dC0+dGltZXJMb2NrKTsKLQotICAgICAgICBpbnQ2NF90IG1pbGxpc2Vjb25kcyA9IGR1cmF0
aW9uLm1pbGxpc2Vjb25kcygpOwotCi0gICAgICAgIC8vIEZyb20gZW1waXJpY2FsIHRlc3Rpbmcs
IHdlJ3ZlIHNlZW4gQ3JlYXRlVGltZXJRdWV1ZVRpbWVyKCkgc29tZXRpbWVzIGZpcmUgdXAgdG8g
NSsgbXMgZWFybHkuCi0gICAgICAgIC8vIFRoaXMgY2F1c2VzIGhhdm9jIGZvciBjbGllbnRzIG9m
IHRoaXMgY29kZSB0aGF0IGV4cGVjdCB0byBub3QgYmUgY2FsbGVkIGJhY2sgdW50aWwgdGhlCi0g
ICAgICAgIC8vIHNwZWNpZmllZCBkdXJhdGlvbiBoYXMgZXhwaXJlZC4gT3RoZXIgZm9sa3Mgb25s
aW5lIGhhdmUgYWxzbyBvYnNlcnZlZCBzb21lIHNsb3AgaW4gdGhlCi0gICAgICAgIC8vIGZpcmlu
ZyB0aW1lcyBvZiBDcmVhdGVUaW1lclF1cXVlVGltZXIoKS4gRnJvbSB0aGUgZGF0YSBwb3N0ZWQg
YXQKLSAgICAgICAgLy8gaHR0cDovL29tZWcucGwvYmxvZy8yMDExLzExL29uLXdpbmFwaS10aW1l
cnMtYW5kLXRoZWlyLXJlc29sdXRpb24sIGl0IGFwcGVhcnMgdGhhdCB0aGUgc2xvcAotICAgICAg
ICAvLyBjYW4gYmUgdXAgdG8gYWJvdXQgMTAgbXMuIFRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGZp
cmUgdGhlIHRpbWVyIGVhcmx5LCB3ZSdsbCB0YWNrIG9uIGEKLSAgICAgICAgLy8gc2xvcCBhZGp1
c3RtZW50IHRvIHRoZSBkdXJhdGlvbiwgYW5kIHdlJ2xsIHVzZSBkb3VibGUgdGhlIHdvcnN0IGFt
b3VudCBvZiBzbG9wIG9ic2VydmVkCi0gICAgICAgIC8vIHNvIGZhci4KLSAgICAgICAgY29uc3Qg
aW50NjRfdCBzbG9wQWRqdXN0bWVudCA9IDIwOwotICAgICAgICBpZiAobWlsbGlzZWNvbmRzKSAK
LSAgICAgICAgICAgIG1pbGxpc2Vjb25kcyArPSBzbG9wQWRqdXN0bWVudDsKLQotICAgICAgICAv
LyBTaW5jZSBvdXIgdGltZXIgY2FsbGJhY2sgaXMgcXVpY2ssIHdlIGNhbiBleGVjdXRlIGluIHRo
ZSB0aW1lciB0aHJlYWQgaXRzZWxmIGFuZCBhdm9pZAotICAgICAgICAvLyBhbiBleHRyYSB0aHJl
YWQgc3dpdGNoIG92ZXIgdG8gYSB3b3JrZXIgdGhyZWFkLgotICAgICAgICBpZiAoITo6Q3JlYXRl
VGltZXJRdWV1ZVRpbWVyKCZjb250ZXh0LT50aW1lciwgbV90aW1lclF1ZXVlLCB0aW1lckNhbGxi
YWNrLCBjb250ZXh0LnB0cigpLCBjbGFtcFRvPERXT1JEPihtaWxsaXNlY29uZHMpLCAwLCBXVF9F
WEVDVVRFSU5USU1FUlRIUkVBRCkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0Uo
ZmFsc2UsICI6OkNyZWF0ZVRpbWVyUXVldWVUaW1lciBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6
OkdldExhc3RFcnJvcigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0K
LQotICAgIC8vIFRoZSB0aW1lciBjYWxsYmFjayB3aWxsIGhhbmRsZSBkZXN0cm95aW5nIGNvbnRl
eHQuCi0gICAgY29udGV4dC5sZWFrUmVmKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397139</attachid>
            <date>2020-04-21 16:46:25 -0700</date>
            <delta_ts>2020-04-21 16:46:25 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210785-20200422084624.patch</filename>
            <type>text/plain</type>
            <size>13331</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMzk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGJhN2EzYmE5YTNmN2E3OTMzM2JjMWE0
ZDdhZmJmZmRlNmUxNzZmYjYuLmNjZGIzZTg0YjJjMjIzYjk2Y2FiNTE0NmM1N2MwMDM4Mjk0ODE4
N2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMjAtMDQtMjEgIEZ1amlpIEhpcm9ub3JpICA8SGly
b25vcmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl0gVXNlIGdlbmVyaWMgV29ya1F1
ZXVlIGluc3RlYWQgb2YgV29ya1F1ZXVlV2luLmNwcAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwNzg1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFy
aW4gQWRsZXIuCisKKyAgICAgICAgV29ya1F1ZXVlV2luIHdhcyB1c2luZyByYW5kb20gdGhyZWFk
cyB0byBleGVjdXRlIGRpc3BhdGNoZWQKKyAgICAgICAgZnVuY3Rpb25zLiBUaGlzIGlzIG5vdCBk
ZXNpcmVkIGZvciBJUEM6OkNvbm5lY3Rpb24gYmVjYXVzZSBpdAorICAgICAgICBuZWVkcyB0byBj
YWxsIENhbmNlbElvIEFQSSBpbiB0aGUgc2FtZSB0aHJlYWQgc3RhcnRlZCBheW5jCisgICAgICAg
IFJlYWRGaWxlIG9wZXJhdGlvbnMuCisKKyAgICAgICAgSW1wbGVtZW50ZWQgUnVuTG9vcDo6ZGlz
cGF0Y2hBZnRlciBpbiBSdW5Mb29wV2luLmNwcCBpbiBvcmRlciB0bworICAgICAgICB1c2UgZ2Vu
ZXJpYyBXb3JrUXVldWUuCisKKyAgICAgICAgKiB3dGYvUGxhdGZvcm1XaW4uY21ha2U6CisgICAg
ICAgICogd3RmL1J1bkxvb3AuaDogQWRkZWQgRGlzcGF0Y2hUaW1lciBjbGFzcyBmb3IgVVNFKFdJ
TkRPV1NfRVZFTlRfTE9PUCkuCisgICAgICAgIChXVEY6OlJ1bkxvb3A6OkRpc3BhdGNoVGltZXI6
OkRpc3BhdGNoVGltZXIpOgorICAgICAgICAoV1RGOjpSdW5Mb29wOjpEaXNwYXRjaFRpbWVyOjpz
ZXRGdW5jdGlvbik6CisgICAgICAgICogd3RmL1dvcmtRdWV1ZS5oOiBSZW1vdmVkIGNvZGUgZm9y
IFVTRShXSU5ET1dTX0VWRU5UX0xPT1ApLgorICAgICAgICAqIHd0Zi93aW4vUnVuTG9vcFdpbi5j
cHA6CisgICAgICAgIChXVEY6OlJ1bkxvb3A6OmRpc3BhdGNoQWZ0ZXIpOiBBZGRlZC4KKyAgICAg
ICAgKiB3dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHA6IFJlbW92ZWQuCisKIDIwMjAtMDQtMjAgIERh
cmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyNTM5
ODcpOiBTdHJpbmdJbXBsOjphZG9wdChWZWN0b3ImJikgY29waWVzIG9ubHkgaGFsZiBvZiB0aGUg
Y2hhcmFjdGVycyBpbiB0aGUgVmVjdG9yIHdoZW4gY29weWluZyBhY3Jvc3MgbWFsbG9jIHpvbmVz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9QbGF0Zm9ybVdpbi5jbWFrZSBiL1NvdXJjZS9X
VEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCmluZGV4IGU4ZmQxOThhNWJiM2FjNmY4MTFiMTI3NTAy
YWQwYmVjYzRjMWQxOTAuLjZlODBiOTlhMDRhNmM2ZGU0ZTJmZjU5YTdiNGVkNGM4YzRhYWZhYjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1BsYXRmb3JtV2luLmNtYWtlCkBAIC04LDYgKzgsOCBAQCBsaXN0KEFQUEVORCBX
VEZfUFVCTElDX0hFQURFUlMKICkKIAogbGlzdChBUFBFTkQgV1RGX1NPVVJDRVMKKyAgICBnZW5l
cmljL1dvcmtRdWV1ZUdlbmVyaWMuY3BwCisKICAgICB0ZXh0L3dpbi9TdHJpbmdXaW4uY3BwCiAg
ICAgdGV4dC93aW4vVGV4dEJyZWFrSXRlcmF0b3JJbnRlcm5hbElDVVdpbi5jcHAKIApAQCAtMjIs
NyArMjQsNiBAQCBsaXN0KEFQUEVORCBXVEZfU09VUkNFUwogICAgIHdpbi9QYXRoV2Fsa2VyLmNw
cAogICAgIHdpbi9SdW5Mb29wV2luLmNwcAogICAgIHdpbi9UaHJlYWRpbmdXaW4uY3BwCi0gICAg
d2luL1dvcmtRdWV1ZVdpbi5jcHAKICkKIAogbGlzdChBUFBFTkQgV1RGX0xJQlJBUklFUwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dURi93dGYvUnVuTG9vcC5oIGIvU291cmNlL1dURi93dGYvUnVuTG9v
cC5oCmluZGV4IDcyOGY3ZTNkNzdmMTFkNTkwMTNhYWVlNjA3YzhlMmZlOTljYWYxZGUuLjJlMjQ2
ZTI0MGU3ZjY0MWJiZmFmZTAwZGNlYThkNTk5ZTUwMjE4NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
VEYvd3RmL1J1bkxvb3AuaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9SdW5Mb29wLmgKQEAgLTk2LDcg
Kzk2LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHJlZ2lzdGVyUnVuTG9vcE1lc3NhZ2VX
aW5kb3dDbGFzcygpOwogI2VuZGlmCiAKLSNpZiBVU0UoR0xJQl9FVkVOVF9MT09QKSB8fCBVU0Uo
R0VORVJJQ19FVkVOVF9MT09QKQorI2lmICFVU0UoQ09DT0FfRVZFTlRfTE9PUCkKICAgICBXVEZf
RVhQT1JUX1BSSVZBVEUgdm9pZCBkaXNwYXRjaEFmdGVyKFNlY29uZHMsIEZ1bmN0aW9uPHZvaWQo
KT4mJik7CiAjZW5kaWYKIApAQCAtMTc2LDYgKzE3NiwyNSBAQCBwdWJsaWM6CiAgICAgICAgIFRp
bWVyRmlyZWRDbGFzcyogbV9vYmplY3Q7CiAgICAgfTsKIAorI2lmIFVTRShXSU5ET1dTX0VWRU5U
X0xPT1ApCisgICAgY2xhc3MgRGlzcGF0Y2hUaW1lciA6IHB1YmxpYyBUaW1lckJhc2UgeworICAg
IHB1YmxpYzoKKyAgICAgICAgRGlzcGF0Y2hUaW1lcihSdW5Mb29wJiBydW5Mb29wKQorICAgICAg
ICAgICAgOiBUaW1lckJhc2UocnVuTG9vcCkKKyAgICAgICAgeworICAgICAgICB9CisKKyAgICAg
ICAgdm9pZCBzZXRGdW5jdGlvbihGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCisgICAgICAg
IHsKKyAgICAgICAgICAgIG1fZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKKyAgICAgICAg
fQorICAgIHByaXZhdGU6CisgICAgICAgIHZvaWQgZmlyZWQoKSBvdmVycmlkZSB7IG1fZnVuY3Rp
b24oKTsgfQorCisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9mdW5jdGlvbjsKKyAgICB9Owor
I2VuZGlmCisKICAgICBjbGFzcyBIb2xkZXI7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi9Xb3JrUXVldWUuaCBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCmluZGV4
IGIzODQ0Mjc1YTY1MzljMjhmNmMyMmNkZWEyYzFkMWYwZjI2OTNhYzUuLjI5MjJmZGZiOGQ4NGJl
OGQxNWYxZTZiNDM0YTc4MDEyNDFmYjgwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1dv
cmtRdWV1ZS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL1dvcmtRdWV1ZS5oCkBAIC0zNCwxNiArMzQs
NyBAQAogCiAjaWYgVVNFKENPQ09BX0VWRU5UX0xPT1ApCiAjaW5jbHVkZSA8ZGlzcGF0Y2gvZGlz
cGF0Y2guaD4KLSNlbmRpZgotCi0jaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9PUCkKLSNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmdQcmltaXRpdmVzLmg+Ci0j
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgotI2VuZGlmCi0KLSNpZiBVU0UoR0xJQl9FVkVOVF9MT09Q
KSB8fCBVU0UoR0VORVJJQ19FVkVOVF9MT09QKQotI2luY2x1ZGUgPHd0Zi9Db25kaXRpb24uaD4K
KyNlbHNlCiAjaW5jbHVkZSA8d3RmL1J1bkxvb3AuaD4KICNlbmRpZgogCkBAIC03NCw3ICs2NSw3
IEBAIHB1YmxpYzoKIAogI2lmIFVTRShDT0NPQV9FVkVOVF9MT09QKQogICAgIGRpc3BhdGNoX3F1
ZXVlX3QgZGlzcGF0Y2hRdWV1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGF0Y2hRdWV1ZTsgfQot
I2VsaWYgVVNFKEdMSUJfRVZFTlRfTE9PUCkgfHwgVVNFKEdFTkVSSUNfRVZFTlRfTE9PUCkKKyNl
bHNlCiAgICAgUnVuTG9vcCYgcnVuTG9vcCgpIGNvbnN0IHsgcmV0dXJuICptX3J1bkxvb3A7IH0K
ICNlbmRpZgogCkBAIC04NCwyNiArNzUsMTAgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBsYXRmb3Jt
SW5pdGlhbGl6ZShjb25zdCBjaGFyKiBuYW1lLCBUeXBlLCBRT1MpOwogICAgIHZvaWQgcGxhdGZv
cm1JbnZhbGlkYXRlKCk7CiAKLSNpZiBVU0UoV0lORE9XU19FVkVOVF9MT09QKQotICAgIHN0YXRp
YyB2b2lkIENBTExCQUNLIHRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1l
ck9yV2FpdEZpcmVkKTsKLSAgICBzdGF0aWMgRFdPUkQgV0lOQVBJIHdvcmtUaHJlYWRDYWxsYmFj
ayh2b2lkKiBjb250ZXh0KTsKLQotICAgIGJvb2wgdHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsK
LSAgICB2b2lkIHVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKLSAgICB2b2lkIHBlcmZvcm1Xb3Jr
T25SZWdpc3RlcmVkV29ya1RocmVhZCgpOwotI2VuZGlmCi0KICNpZiBVU0UoQ09DT0FfRVZFTlRf
TE9PUCkKICAgICBzdGF0aWMgdm9pZCBleGVjdXRlRnVuY3Rpb24odm9pZCopOwogICAgIGRpc3Bh
dGNoX3F1ZXVlX3QgbV9kaXNwYXRjaFF1ZXVlOwotI2VsaWYgVVNFKFdJTkRPV1NfRVZFTlRfTE9P
UCkKLSAgICB2b2xhdGlsZSBMT05HIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZDsKLQotICAgIExv
Y2sgbV9mdW5jdGlvblF1ZXVlTG9jazsKLSAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgpPj4gbV9m
dW5jdGlvblF1ZXVlOwotCi0gICAgSEFORExFIG1fdGltZXJRdWV1ZTsKLSNlbGlmIFVTRShHTElC
X0VWRU5UX0xPT1ApIHx8IFVTRShHRU5FUklDX0VWRU5UX0xPT1ApCisjZWxzZQogICAgIFJ1bkxv
b3AqIG1fcnVuTG9vcDsKICNlbmRpZgogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3dp
bi9SdW5Mb29wV2luLmNwcCBiL1NvdXJjZS9XVEYvd3RmL3dpbi9SdW5Mb29wV2luLmNwcAppbmRl
eCBkMjNjNzYxZGUxNjFhNTI3NGVhNWViYjliOTVlZGNkMmQzOTgxMGIyLi5lMThiMzdmMDBkZTdl
YjI2OTA2Njc2MGQzNWY4OWVhNjEyNmQ4MDY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93
aW4vUnVuTG9vcFdpbi5jcHAKKysrIGIvU291cmNlL1dURi93dGYvd2luL1J1bkxvb3BXaW4uY3Bw
CkBAIC0xNDAsNiArMTQwLDE2IEBAIFJ1bkxvb3A6OkN5Y2xlUmVzdWx0IFJ1bkxvb3A6OmN5Y2xl
KFJ1bkxvb3BNb2RlKQogICAgIHJldHVybiBDeWNsZVJlc3VsdDo6Q29udGludWU7CiB9CiAKK3Zv
aWQgUnVuTG9vcDo6ZGlzcGF0Y2hBZnRlcihTZWNvbmRzIGRlbGF5LCBGdW5jdGlvbjx2b2lkKCk+
JiYgZnVuY3Rpb24pCit7CisgICAgYXV0byB0aW1lciA9IG5ldyBEaXNwYXRjaFRpbWVyKCp0aGlz
KTsKKyAgICB0aW1lci0+c2V0RnVuY3Rpb24oW3RpbWVyLCBmdW5jdGlvbiA9IFdURk1vdmUoZnVu
Y3Rpb24pXSB7CisgICAgICAgIGZ1bmN0aW9uKCk7CisgICAgICAgIGRlbGV0ZSB0aW1lcjsKKyAg
ICB9KTsKKyAgICB0aW1lci0+c3RhcnRPbmVTaG90KGRlbGF5KTsKK30KKwogLy8gUnVuTG9vcDo6
VGltZXIKIAogdm9pZCBSdW5Mb29wOjpUaW1lckJhc2U6OnRpbWVyRmlyZWQoKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dURi93dGYvd2luL1dvcmtRdWV1ZVdpbi5jcHAgYi9Tb3VyY2UvV1RGL3d0Zi93
aW4vV29ya1F1ZXVlV2luLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZDE5NTE3
NjRmZDM3N2VhOGE2ZWY0NTNkMjBhNzlmY2JmZDU4YWQ3Ni4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi93aW4vV29ya1F1ZXVlV2lu
LmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDE5MCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChD
KSAyMDEwLTIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICogQ29weXJpZ2h0
IChDKSAyMDE3IFNvbnkgSW50ZXJhY3RpdmUgRW50ZXJ0YWlubWVudCBJbmMuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlIDx3dGYvV29ya1F1ZXVlLmg+Ci0KLSNpbmNs
dWRlIDx3dGYvTWF0aEV4dHJhcy5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFt
ZXNwYWNlIFdURiB7Ci0KLURXT1JEIFdvcmtRdWV1ZTo6d29ya1RocmVhZENhbGxiYWNrKHZvaWQq
IGNvbnRleHQpCi17Ci0gICAgQVNTRVJUX0FSRyhjb250ZXh0LCBjb250ZXh0KTsKLQotICAgIFdv
cmtRdWV1ZSogcXVldWUgPSBzdGF0aWNfY2FzdDxXb3JrUXVldWUqPihjb250ZXh0KTsKLQotICAg
IGlmIChxdWV1ZS0+dHJ5UmVnaXN0ZXJBc1dvcmtUaHJlYWQoKSkKLSAgICAgICAgcXVldWUtPnBl
cmZvcm1Xb3JrT25SZWdpc3RlcmVkV29ya1RocmVhZCgpOwotCi0gICAgcXVldWUtPmRlcmVmKCk7
Ci0KLSAgICByZXR1cm4gMDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnBlcmZvcm1Xb3JrT25SZWdp
c3RlcmVkV29ya1RocmVhZCgpCi17Ci0gICAgQVNTRVJUKG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJl
ZCk7Ci0KLSAgICBtX2Z1bmN0aW9uUXVldWVMb2NrLmxvY2soKTsKLQotICAgIHdoaWxlICghbV9m
dW5jdGlvblF1ZXVlLmlzRW1wdHkoKSkgewotICAgICAgICBWZWN0b3I8RnVuY3Rpb248dm9pZCgp
Pj4gZnVuY3Rpb25RdWV1ZTsKLSAgICAgICAgbV9mdW5jdGlvblF1ZXVlLnN3YXAoZnVuY3Rpb25R
dWV1ZSk7Ci0KLSAgICAgICAgLy8gQWxsb3cgbW9yZSB3b3JrIHRvIGJlIHNjaGVkdWxlZCB3aGls
ZSB3ZSdyZSBub3QgdXNpbmcgdGhlIHF1ZXVlIGRpcmVjdGx5LgotICAgICAgICBtX2Z1bmN0aW9u
UXVldWVMb2NrLnVubG9jaygpOwotICAgICAgICBmb3IgKGF1dG8mIGZ1bmN0aW9uIDogZnVuY3Rp
b25RdWV1ZSkKLSAgICAgICAgICAgIGZ1bmN0aW9uKCk7Ci0gICAgICAgIG1fZnVuY3Rpb25RdWV1
ZUxvY2subG9jaygpOwotICAgIH0KLQotICAgIC8vIE9uZSBpbnZhcmlhbnQgd2UgbWFpbnRhaW4g
aXMgdGhhdCBhbnkgd29yayBzY2hlZHVsZWQgd2hpbGUgYSB3b3JrIHRocmVhZCBpcyByZWdpc3Rl
cmVkIHdpbGwKLSAgICAvLyBiZSBoYW5kbGVkIGJ5IHRoYXQgd29yayB0aHJlYWQuIFVucmVnaXN0
ZXIgYXMgdGhlIHdvcmsgdGhyZWFkIHdoaWxlIHRoZSBxdWV1ZSBsb2NrIGlzIHN0aWxsCi0gICAg
Ly8gaGVsZCBzbyB0aGF0IG5vIHdvcmsgY2FuIGJlIHNjaGVkdWxlZCB3aGlsZSB3ZSdyZSBzdGls
bCByZWdpc3RlcmVkLgotICAgIHVucmVnaXN0ZXJBc1dvcmtUaHJlYWQoKTsKLQotICAgIG1fZnVu
Y3Rpb25RdWV1ZUxvY2sudW5sb2NrKCk7Ci19Ci0KLXZvaWQgV29ya1F1ZXVlOjpwbGF0Zm9ybUlu
aXRpYWxpemUoY29uc3QgY2hhciogbmFtZSwgVHlwZSwgUU9TKQotewotICAgIG1faXNXb3JrVGhy
ZWFkUmVnaXN0ZXJlZCA9IDA7Ci0gICAgbV90aW1lclF1ZXVlID0gOjpDcmVhdGVUaW1lclF1ZXVl
KCk7Ci0gICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX3RpbWVyUXVldWUsICI6OkNyZWF0ZVRpbWVy
UXVldWUgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRMYXN0RXJyb3IoKSk7Ci19Ci0KLWJv
b2wgV29ya1F1ZXVlOjp0cnlSZWdpc3RlckFzV29ya1RocmVhZCgpCi17Ci0gICAgTE9ORyByZXN1
bHQgPSA6OkludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZtX2lzV29ya1RocmVhZFJlZ2lzdGVy
ZWQsIDEsIDApOwotICAgIEFTU0VSVCghcmVzdWx0IHx8IHJlc3VsdCA9PSAxKTsKLSAgICByZXR1
cm4gIXJlc3VsdDsKLX0KLQotdm9pZCBXb3JrUXVldWU6OnVucmVnaXN0ZXJBc1dvcmtUaHJlYWQo
KQotewotICAgIExPTkcgcmVzdWx0ID0gOjpJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmbV9p
c1dvcmtUaHJlYWRSZWdpc3RlcmVkLCAwLCAxKTsKLSAgICBBU1NFUlRfVU5VU0VEKHJlc3VsdCwg
cmVzdWx0ID09IDEpOwotfQotCi12b2lkIFdvcmtRdWV1ZTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkK
LXsKLSAgICAvLyBGSVhNRTogV2UgbmVlZCB0byBlbnN1cmUgdGhhdCBhbnkgdGltZXItcXVldWUg
dGltZXJzIHRoYXQgZmlyZSBhZnRlciB0aGlzIHBvaW50IGRvbid0IHRyeSB0bwotICAgIC8vIGFj
Y2VzcyB0aGlzIFdvcmtRdWV1ZSA8aHR0cDovL3dlYmtpdC5vcmcvYi80NDY5MD4uCi0gICAgOjpE
ZWxldGVUaW1lclF1ZXVlRXgobV90aW1lclF1ZXVlLCAwKTsKLX0KLQotdm9pZCBXb3JrUXVldWU6
OmRpc3BhdGNoKEZ1bmN0aW9uPHZvaWQoKT4mJiBmdW5jdGlvbikKLXsKLSAgICBhdXRvIGxvY2tl
ciA9IGhvbGRMb2NrKG1fZnVuY3Rpb25RdWV1ZUxvY2spOwotICAgIG1fZnVuY3Rpb25RdWV1ZS5h
cHBlbmQoV1RGTW92ZShmdW5jdGlvbikpOwotCi0gICAgLy8gU3Bhd24gYSB3b3JrIHRocmVhZCB0
byBwZXJmb3JtIHRoZSB3b3JrIHdlIGp1c3QgYWRkZWQuIEFzIGFuIG9wdGltaXphdGlvbiwgd2Ug
YXZvaWQKLSAgICAvLyBzcGF3bmluZyB0aGUgdGhyZWFkIGlmIGEgd29yayB0aHJlYWQgaXMgYWxy
ZWFkeSByZWdpc3RlcmVkLiBUaGlzIHByZXZlbnRzIG11bHRpcGxlIHdvcmsKLSAgICAvLyB0aHJl
YWRzIGZyb20gYmVpbmcgc3Bhd25lZCBpbiBtb3N0IGNhc2VzLiAoTm90ZSB0aGF0IHdoZW4gYSB3
b3JrIHRocmVhZCBoYXMgYmVlbiBzcGF3bmVkIGJ1dAotICAgIC8vIGhhc24ndCByZWdpc3RlcmVk
IGl0c2VsZiB5ZXQsIG1faXNXb3JrVGhyZWFkUmVnaXN0ZXJlZCB3aWxsIGJlIGZhbHNlIGFuZCB3
ZSdsbCBlbmQgdXAKLSAgICAvLyBzcGF3bmluZyBhIHNlY29uZCB3b3JrIHRocmVhZCBoZXJlLiBC
dXQgd29yayB0aHJlYWQgcmVnaXN0cmF0aW9uIHByb2Nlc3Mgd2lsbCBlbnN1cmUgdGhhdAotICAg
IC8vIG9ubHkgb25lIHRocmVhZCBhY3R1YWxseSBlbmRzIHVwIHBlcmZvcm1pbmcgd29yay4pCi0g
ICAgaWYgKCFtX2lzV29ya1RocmVhZFJlZ2lzdGVyZWQpIHsKLSAgICAgICAgcmVmKCk7Ci0gICAg
ICAgIDo6UXVldWVVc2VyV29ya0l0ZW0od29ya1RocmVhZENhbGxiYWNrLCB0aGlzLCBXVF9FWEVD
VVRFREVGQVVMVCk7Ci0gICAgfQotfQotCi1zdHJ1Y3QgVGltZXJDb250ZXh0IDogcHVibGljIFRo
cmVhZFNhZmVSZWZDb3VudGVkPFRpbWVyQ29udGV4dD4gewotICAgIHN0YXRpYyBSZWY8VGltZXJD
b250ZXh0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFRpbWVyQ29udGV4dCk7IH0K
LQotICAgIExvY2sgdGltZXJMb2NrOwotICAgIFdvcmtRdWV1ZSogcXVldWUgeyBudWxscHRyIH07
Ci0gICAgSEFORExFIHRpbWVyIHsgbnVsbHB0ciB9OwotICAgIEZ1bmN0aW9uPHZvaWQoKT4gZnVu
Y3Rpb247Ci0KLXByaXZhdGU6Ci0gICAgVGltZXJDb250ZXh0KCkgPSBkZWZhdWx0OwotfTsKLQot
dm9pZCBXb3JrUXVldWU6OnRpbWVyQ2FsbGJhY2sodm9pZCogY29udGV4dCwgQk9PTEVBTiB0aW1l
ck9yV2FpdEZpcmVkKQotewotICAgIEFTU0VSVF9BUkcoY29udGV4dCwgY29udGV4dCk7Ci0gICAg
QVNTRVJUX1VOVVNFRCh0aW1lck9yV2FpdEZpcmVkLCB0aW1lck9yV2FpdEZpcmVkKTsKLQotICAg
IC8vIEJhbGFuY2VkIGJ5IGxlYWtSZWYgaW4gc2NoZWR1bGVXb3JrQWZ0ZXJEZWxheS4KLSAgICBS
ZWZQdHI8VGltZXJDb250ZXh0PiB0aW1lckNvbnRleHQgPSBhZG9wdFJlZihzdGF0aWNfY2FzdDxU
aW1lckNvbnRleHQqPihjb250ZXh0KSk7Ci0KLSAgICB0aW1lckNvbnRleHQtPnF1ZXVlLT5kaXNw
YXRjaChXVEZNb3ZlKHRpbWVyQ29udGV4dC0+ZnVuY3Rpb24pKTsKLQotICAgIGF1dG8gbG9ja2Vy
ID0gaG9sZExvY2sodGltZXJDb250ZXh0LT50aW1lckxvY2spOwotICAgIEFTU0VSVCh0aW1lckNv
bnRleHQtPnRpbWVyKTsKLSAgICBBU1NFUlQodGltZXJDb250ZXh0LT5xdWV1ZS0+bV90aW1lclF1
ZXVlKTsKLSAgICBpZiAoITo6RGVsZXRlVGltZXJRdWV1ZVRpbWVyKHRpbWVyQ29udGV4dC0+cXVl
dWUtPm1fdGltZXJRdWV1ZSwgdGltZXJDb250ZXh0LT50aW1lciwgMCkpIHsKLSAgICAgICAgLy8g
R2V0dGluZyBFUlJPUl9JT19QRU5ESU5HIGhlcmUgbWVhbnMgdGhhdCB0aGUgdGltZXIgd2lsbCBi
ZSBkZXN0cm95ZWQgb25jZSB0aGUgY2FsbGJhY2sgaXMgZG9uZSBleGVjdXRpbmcuCi0gICAgICAg
IEFTU0VSVF9XSVRIX01FU1NBR0UoOjpHZXRMYXN0RXJyb3IoKSA9PSBFUlJPUl9JT19QRU5ESU5H
LCAiOjpEZWxldGVUaW1lclF1ZXVlVGltZXIgZmFpbGVkIHdpdGggZXJyb3IgJWx1IiwgOjpHZXRM
YXN0RXJyb3IoKSk7Ci0gICAgfQotfQotCi12b2lkIFdvcmtRdWV1ZTo6ZGlzcGF0Y2hBZnRlcihT
ZWNvbmRzIGR1cmF0aW9uLCBGdW5jdGlvbjx2b2lkKCk+JiYgZnVuY3Rpb24pCi17Ci0gICAgQVNT
RVJUKG1fdGltZXJRdWV1ZSk7Ci0gICAgcmVmKCk7Ci0KLSAgICBSZWY8VGltZXJDb250ZXh0PiBj
b250ZXh0ID0gVGltZXJDb250ZXh0OjpjcmVhdGUoKTsKLSAgICBjb250ZXh0LT5xdWV1ZSA9IHRo
aXM7Ci0gICAgY29udGV4dC0+ZnVuY3Rpb24gPSBXVEZNb3ZlKGZ1bmN0aW9uKTsKLQotICAgIHsK
LSAgICAgICAgLy8gVGhlIHRpbWVyIGNhbGxiYWNrIGNvdWxkIGZpcmUgYmVmb3JlIDo6Q3JlYXRl
VGltZXJRdWV1ZVRpbWVyIGV2ZW4gcmV0dXJucywgc28gd2UgcHJvdGVjdAotICAgICAgICAvLyBj
b250ZXh0LT50aW1lciB3aXRoIGEgbXV0ZXggdG8gZW5zdXJlIHRoZSB0aW1lciBjYWxsYmFjayBk
b2Vzbid0IGFjY2VzcyBpdCBiZWZvcmUgdGhlCi0gICAgICAgIC8vIHRpbWVyIGhhbmRsZSBoYXMg
YmVlbiBzdG9yZWQgaW4gaXQuCi0gICAgICAgIGF1dG8gbG9ja2VyID0gaG9sZExvY2soY29udGV4
dC0+dGltZXJMb2NrKTsKLQotICAgICAgICBpbnQ2NF90IG1pbGxpc2Vjb25kcyA9IGR1cmF0aW9u
Lm1pbGxpc2Vjb25kcygpOwotCi0gICAgICAgIC8vIEZyb20gZW1waXJpY2FsIHRlc3RpbmcsIHdl
J3ZlIHNlZW4gQ3JlYXRlVGltZXJRdWV1ZVRpbWVyKCkgc29tZXRpbWVzIGZpcmUgdXAgdG8gNSsg
bXMgZWFybHkuCi0gICAgICAgIC8vIFRoaXMgY2F1c2VzIGhhdm9jIGZvciBjbGllbnRzIG9mIHRo
aXMgY29kZSB0aGF0IGV4cGVjdCB0byBub3QgYmUgY2FsbGVkIGJhY2sgdW50aWwgdGhlCi0gICAg
ICAgIC8vIHNwZWNpZmllZCBkdXJhdGlvbiBoYXMgZXhwaXJlZC4gT3RoZXIgZm9sa3Mgb25saW5l
IGhhdmUgYWxzbyBvYnNlcnZlZCBzb21lIHNsb3AgaW4gdGhlCi0gICAgICAgIC8vIGZpcmluZyB0
aW1lcyBvZiBDcmVhdGVUaW1lclF1cXVlVGltZXIoKS4gRnJvbSB0aGUgZGF0YSBwb3N0ZWQgYXQK
LSAgICAgICAgLy8gaHR0cDovL29tZWcucGwvYmxvZy8yMDExLzExL29uLXdpbmFwaS10aW1lcnMt
YW5kLXRoZWlyLXJlc29sdXRpb24sIGl0IGFwcGVhcnMgdGhhdCB0aGUgc2xvcAotICAgICAgICAv
LyBjYW4gYmUgdXAgdG8gYWJvdXQgMTAgbXMuIFRvIGVuc3VyZSB0aGF0IHdlIGRvbid0IGZpcmUg
dGhlIHRpbWVyIGVhcmx5LCB3ZSdsbCB0YWNrIG9uIGEKLSAgICAgICAgLy8gc2xvcCBhZGp1c3Rt
ZW50IHRvIHRoZSBkdXJhdGlvbiwgYW5kIHdlJ2xsIHVzZSBkb3VibGUgdGhlIHdvcnN0IGFtb3Vu
dCBvZiBzbG9wIG9ic2VydmVkCi0gICAgICAgIC8vIHNvIGZhci4KLSAgICAgICAgY29uc3QgaW50
NjRfdCBzbG9wQWRqdXN0bWVudCA9IDIwOwotICAgICAgICBpZiAobWlsbGlzZWNvbmRzKSAKLSAg
ICAgICAgICAgIG1pbGxpc2Vjb25kcyArPSBzbG9wQWRqdXN0bWVudDsKLQotICAgICAgICAvLyBT
aW5jZSBvdXIgdGltZXIgY2FsbGJhY2sgaXMgcXVpY2ssIHdlIGNhbiBleGVjdXRlIGluIHRoZSB0
aW1lciB0aHJlYWQgaXRzZWxmIGFuZCBhdm9pZAotICAgICAgICAvLyBhbiBleHRyYSB0aHJlYWQg
c3dpdGNoIG92ZXIgdG8gYSB3b3JrZXIgdGhyZWFkLgotICAgICAgICBpZiAoITo6Q3JlYXRlVGlt
ZXJRdWV1ZVRpbWVyKCZjb250ZXh0LT50aW1lciwgbV90aW1lclF1ZXVlLCB0aW1lckNhbGxiYWNr
LCBjb250ZXh0LnB0cigpLCBjbGFtcFRvPERXT1JEPihtaWxsaXNlY29uZHMpLCAwLCBXVF9FWEVD
VVRFSU5USU1FUlRIUkVBRCkpIHsKLSAgICAgICAgICAgIEFTU0VSVF9XSVRIX01FU1NBR0UoZmFs
c2UsICI6OkNyZWF0ZVRpbWVyUXVldWVUaW1lciBmYWlsZWQgd2l0aCBlcnJvciAlbHUiLCA6Okdl
dExhc3RFcnJvcigpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLQot
ICAgIC8vIFRoZSB0aW1lciBjYWxsYmFjayB3aWxsIGhhbmRsZSBkZXN0cm95aW5nIGNvbnRleHQu
Ci0gICAgY29udGV4dC5sZWFrUmVmKCk7Ci19Ci0KLX0gLy8gbmFtZXNwYWNlIFdURgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>